Limitations

Global limitations
For MySQL
Multi threaded environment
Statements execution
Timezone information
For Oracle
For PostgreSQL
BLOB handling
Last inserted row's values
Multi threaded environment
Statements execution
Timezone information
For SQLite
Last inserted row's values
Date and time
Timezone information
Multi threaded environment
Error reporting
For SQLCipher
For LDAP
User name
SSL/TLS certificate validation
For JDBC based providers
Last inserted row's values
Multi threaded environment

Global limitations

Libgda's global limitations are:

Multi threaded environment

Libgda is not thread safe. However it supports working with threads as long as any object (except otherwise stated) created by the API is used by one single thread (that is there is no situation when two threads try to access the same object at the same time). Exceptions are:

  • Libgda's configuration can be accessed from any thread

  • Any object which implements the GdaLockable interface can be accessed from any thread. However one can use the gda_lockable_lock() method to specifically lock an object's usage (especially when getting and setting properties before or after calling methods).

  • Any GdaConnection object can be accessed from any thread (that object implements the GdaLockable interface). Also some database providers may impose other limitations (inherited from the database's specific client APIs) such as only one thread can use the connection object, or even that only one thread can use the database provider.

  • Any GdaAttributesManager can safely be accessed from any thread.

Note that multi threading support is still at an early stage and may contain bugs