PDO transaction isolation level and firebird
| From: | Vjacheslav V. Borisov | Date: | Tue, 17 Sep 2013 18:25:05 +0000 |
| Subject: | PDO transaction isolation level and firebird | ||
| Groups: | php.pdo | ||
| Request: | Send a blank email to pdo+get-524@lists.php.net to get a copy of this message | ||
Hi!
Does any body interested in development of pdo_firebird extension?
A long time ago in a galaxy far, far away Ard Biesheuvel committed to pdo
http://marc.info/?l=pecl-cvs&m=108730900103295
code to manage transaction params
This block is disabled by #if abies_0, there is also no constants defined it uses.
I want to realise this functional and have some questions, how should i do it.
1) There is hard, but may be usable in future by other drivers way
PDO class should have functions like in Java (http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html):
setReadonly/getReadonly (set/get read-only mode as a hint to the driver to enable database optimizations.)
setTransactionIsolation/getTransactionIsolation (set/get transaction isolation level TRANSACTION_READ_UNCOMMITTED/TRANSACTION_READ_COMMITTED/TRANSACTION_REPEATABLE_READ/TRANSACTION_SERIALIZABLE
setConflictResolution/getConflictResolution (PDO_TRANS_RETRY/PDO_TRANS_ABORT) - there is no java equivalent, don't know how to name it
2) Or, istead of writing new functions, should I use setAttribute/getAttribute ?
In this case where should I define constants in pdo or in pdo_firebird extension?
3) Or, istead of cross-driver constants should I define constans like interbase etension does:
/* transaction access mode */
PHP_IBASE_WRITE = 1,
PHP_IBASE_READ = 2,
/* transaction isolation level */
PHP_IBASE_CONCURRENCY = 4,
PHP_IBASE_COMMITTED = 8,
PHP_IBASE_REC_NO_VERSION = 32,
PHP_IBASE_REC_VERSION = 64,
PHP_IBASE_CONSISTENCY = 16,
/* transaction lock resolution */
PHP_IBASE_WAIT = 128,
PHP_IBASE_NOWAIT = 256