Search Postgresql Archives

SPI based table locks.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

I've been working on a small module that I will be pluging into my local PostreSQL 8.x database and am in need of doing some table locking. At this time, I've used various other examples to no avail and was wondering what the proper method for aquiring a table lock within the module would be?

For example I am using an SPI based module:

static void mytest(void) {
 LOCKMETHODID        localLockTableId = INVALID_LOCKMETHOD;
 LOCKTAG                     localtag;

 memset(&localtag, 0, sizeof(localtag));
 localtag.relId = XactLockTableId;
 localtag.dbId = 1;
 localtag.objId.xid = InvalidTransactionId;

if (!LockAcquire(LocalLockTableId, &localtag, GetCurrentTransactionId(), Sharelock, false)) {
  elog(ERROR, "mytest: did not acquire table lock");
 }

 ....

if(!LockRelease(LocalLockTableId, &localtag, GetCurrentTransactionId(), Sharelock)) {
  elog(ERROR, "mytest: could not release lock");
 }
}

I know there is something I am missing and would appreciate any help. I believe I need to initialize the LocalLockTableId, but I have not been able to find any examples of that being done. Could someone look this over and point me in the right direction?





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux