re-establish the link between qt and web client locking
[xtuple] / enyo-client / database / source / xt / functions / pg_advisory_unlock.sql
1 create or replace function xt.pg_advisory_unlock(oid integer, id integer) returns boolean as $$
2   var pid = plv8.execute("select pg_backend_pid() as pid;")[0].pid,
3     username = plv8.execute("select geteffectivextuser() as username;")[0].username,
4     sql = "select * from xt.lock where lock_table_oid = $1 and lock_record_id = $2 and lock_username = $3 and lock_pid = $4;",
5     data = Object.create(XT.Data),
6     query = plv8.execute(sql, [oid, id, username, pid]);
7
8   if (query.length) {
9     data.releaseLock({key: query[0].lock_id});
10     return true;
11   }
12   return false;
13   
14 $$ language plv8;