diff options
-rw-r--r-- | includes/database.mysql.inc | 15 | ||||
-rw-r--r-- | includes/database.pgsql.inc | 16 |
2 files changed, 31 insertions, 0 deletions
diff --git a/includes/database.mysql.inc b/includes/database.mysql.inc index f13636b90..2f771d9e6 100644 --- a/includes/database.mysql.inc +++ b/includes/database.mysql.inc @@ -270,6 +270,21 @@ function db_escape_string($text) { } /** + * Lock a table. + */ +function db_lock_table($table) { + db_query('LOCK TABLES {%s} WRITE', $table); +} + +/** + * Unlock all locked tables. + */ +function db_unlock_tables() { + db_query('UNLOCK TABLES'); +} + + +/** * @} End of "ingroup database". */ diff --git a/includes/database.pgsql.inc b/includes/database.pgsql.inc index 12070dd30..33c960a20 100644 --- a/includes/database.pgsql.inc +++ b/includes/database.pgsql.inc @@ -256,6 +256,22 @@ function db_escape_string($text) { } /** + * Lock a table. + * This function automatically starts a transaction. + */ +function db_lock_table($table) { + db_query('BEGIN; LOCK TABLE {%s} IN EXCLUSIVE MODE', $table); +} + +/** + * Unlock all locked tables. + * This function automatically commits a transation. + */ +function db_unlock_tables() { + db_query('COMMIT'); +} + +/** * @} End of "ingroup database". */ |