[drupal-devel] [bug] PG_QUERY ERROR - LOCK TABLES - IMPLEMENTATION FAULT.

Cvbge drupal-devel at drupal.org
Mon Aug 29 19:11:41 UTC 2005


Issue status update for 
http://drupal.org/node/22911
Post a follow up: 
http://drupal.org/project/comments/add/22911

 Project:      Drupal
 Version:      cvs
 Component:    database system
 Category:     bug reports
 Priority:     critical
 Assigned to:  Anonymous
 Reported by:  kinai
 Updated by:   Cvbge
 Status:       patch (ready to be committed)
 Attachment:   http://drupal.org/files/issues/drupal-head-lock_0.diff (2.82 KB)

Table names are now escaped




Cvbge



Previous comments:
------------------------------------------------------------------------

Sun, 15 May 2005 14:34:48 +0000 : kinai

I get this error :


Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax
error on or near "cache" at character 13 in
/var/www/drupal/includes/database.pgsql.inc on line 45


Fatal error: ERROR: syntax error on or near "cache" at character 13
query: LOCK TABLES cache WRITE in
/var/www/drupal/includes/database.pgsql.inc on line 62


Someone could solve this problem ?


Thanks
kinaï




------------------------------------------------------------------------

Sun, 15 May 2005 15:19:26 +0000 : kinai

The SQL Command : LOCK TABLES like used in bootstrap.inc is only
specified for MySQL, not for PostgreSQL.
The UNLOCK TABLES SQL command is not implemented in PostgreSQL. 


Someone could solve this problem ?


Thanks,
Kinaï




------------------------------------------------------------------------

Sat, 28 May 2005 23:34:03 +0000 : bd_csmc

this issue still exists, i've verified it on a fresh cvs install w/
pgsql 8




------------------------------------------------------------------------

Sat, 28 May 2005 23:39:52 +0000 : bd_csmc

i fixed the problem in my installation, by changing the syntax to:


LOCK TABLE {cache}


it's table, not tables. and i dropped the 'write' bit.


furthermore, pgsql does not support the UNLOCK command, so i had to
comment the unlock tables command. unless there are more lock/unlock
commands elsewhere in the code, this works fine for me.


according to pgsql docs, UNLOCK is automatically performed at
transaction end, which is why there is no such command.




------------------------------------------------------------------------

Fri, 19 Aug 2005 11:29:25 +0000 : Cvbge

Attachment: http://drupal.org/files/issues/locks.diff (2.91 KB)

The patch adds two functions to lock and unlock tables.




------------------------------------------------------------------------

Tue, 23 Aug 2005 12:57:43 +0000 : Cvbge

Attachment: http://drupal.org/files/issues/locks_0.diff (2.8 KB)

Updated, without unnecessary changes.




------------------------------------------------------------------------

Tue, 23 Aug 2005 13:07:18 +0000 : chx

Cvbge says he tested pgsql, I applied to a mysql one, saved system
settings and looks OK.




------------------------------------------------------------------------

Tue, 23 Aug 2005 14:31:53 +0000 : Cvbge

Attachment: http://drupal.org/files/issues/locks_1.diff (2.81 KB)

Worked, yet not worked ...
This version does not use 
<?php
 db_query("{$table}" ) 
?>

 syntax. I promise I won't do that again!




------------------------------------------------------------------------

Thu, 25 Aug 2005 21:10:07 +0000 : Dries

MySQL is happy with the singular 'LOCK TABLE' (rather than 'LOCK
TABLES') which should work with both MySQL and PostgreSQL.  Committed
that changes to CVS.




------------------------------------------------------------------------

Thu, 25 Aug 2005 21:43:09 +0000 : Cvbge

Please rollback your patch and either
a) use syntax LOCK TABLE name (dropping S and WRITE, if you say that
mysql support "LOCK")
b) apply my patch.


Postgres does not support WRITE part (as well as S part).
Also locking won't work without starting transaction.


You can do LOCK TABLE name only, but this lock is too excessive and
won't allow even SELECTs on locked table.




------------------------------------------------------------------------

Fri, 26 Aug 2005 10:15:15 +0000 : Cvbge

Attachment: http://drupal.org/files/issues/drupal-head-lock.diff (2.82 KB)

Attached updated patch for current head.




------------------------------------------------------------------------

Sat, 27 Aug 2005 17:14:55 +0000 : Thomas Ilsche

+1
tested the patch on pgsql, runs as expected.







More information about the drupal-devel mailing list