libgda r3314 - in trunk: . doc/C doc/C/tmpl libgda libgda-report libgda-report/DocBook libgda-report/RML libgda-report/engine libgda-xslt libgda/handlers libgda/providers-support libgda/sql-parser libgda/sqlite libgda/sqlite/virtual providers/mysql providers/postgres providers/skel-implementation/capi



Author: vivien
Date: Thu Feb  5 18:21:48 2009
New Revision: 3314
URL: http://svn.gnome.org/viewvc/libgda?rev=3314&view=rev

Log:
2009-02-05  Vivien Malerba <malerba gnome-db org>

        * libgda/gda-attributes-manager.c: added locking in case several threads use
        the same GdaAttributeManager at the same time, this may be the problem for
        Anjuta bug #569399
        * doc/C: doc. improvements
        * libgda/gda-data-access-wrapper.c: when data model being wrapped does not have
        random access but still can iter forward and backward, then use a pool of GdaRow
        of limited size instead of keeping all the read rows in memory
        * libgda/gda-connection.c:
        * providers/postgres/gda-postgres-provider.c:
        * libgda/sqlite/gda-sqlite-provider.c:
        * providers/mysql/gda-mysql-provider.c:
        * providers/skel-implementation/capi/gda-capi-provider.c: when calling the
        statement_execute() virtual method, the requested data model's access mode
        is checked and altered in GdaConnection to have a common behaviour.
        * other files:
          - s/GdaLockableClass/GdaLockableIface/
          - s/GdaDataModelClass/GdaDataModelIface/
          - added padding for future expansion to guarantee ABI stability



Modified:
   trunk/ChangeLog
   trunk/doc/C/libgda-4.0-sections.txt
   trunk/doc/C/limitations.xml
   trunk/doc/C/tmpl/gda-attributes-manager.sgml
   trunk/doc/C/tmpl/gda-config.sgml
   trunk/doc/C/tmpl/gda-connection.sgml
   trunk/doc/C/tmpl/gda-data-access-wrapper.sgml
   trunk/doc/C/tmpl/gda-data-comparator.sgml
   trunk/doc/C/tmpl/gda-data-model-array.sgml
   trunk/doc/C/tmpl/gda-data-model-bdb.sgml
   trunk/doc/C/tmpl/gda-data-model-dir.sgml
   trunk/doc/C/tmpl/gda-data-model-import.sgml
   trunk/doc/C/tmpl/gda-data-proxy.sgml
   trunk/doc/C/tmpl/gda-data-select-priv.sgml
   trunk/doc/C/tmpl/gda-handler-bin.sgml
   trunk/doc/C/tmpl/gda-handler-boolean.sgml
   trunk/doc/C/tmpl/gda-handler-numerical.sgml
   trunk/doc/C/tmpl/gda-handler-string.sgml
   trunk/doc/C/tmpl/gda-handler-time.sgml
   trunk/doc/C/tmpl/gda-handler-type.sgml
   trunk/doc/C/tmpl/gda-meta-struct.sgml
   trunk/doc/C/tmpl/gda-server-provider.sgml
   trunk/doc/C/tmpl/gda-sql-parser.sgml
   trunk/doc/C/tmpl/gda-sql-statement.sgml
   trunk/doc/C/tmpl/gda-transaction-status.sgml
   trunk/doc/C/tmpl/gda-vconnection-data-model.sgml
   trunk/libgda-report/DocBook/gda-report-docbook-document.h
   trunk/libgda-report/RML/gda-report-rml-document.h
   trunk/libgda-report/engine/gda-report-engine.h
   trunk/libgda-report/gda-report-document.h
   trunk/libgda-xslt/libgda-xslt.h
   trunk/libgda-xslt/sql_backend.h
   trunk/libgda/gda-attributes-manager.c
   trunk/libgda/gda-batch.h
   trunk/libgda/gda-blob-op.h
   trunk/libgda/gda-column.h
   trunk/libgda/gda-config.h
   trunk/libgda/gda-connection-event.h
   trunk/libgda/gda-connection.c
   trunk/libgda/gda-connection.h
   trunk/libgda/gda-data-access-wrapper.c
   trunk/libgda/gda-data-access-wrapper.h
   trunk/libgda/gda-data-comparator.h
   trunk/libgda/gda-data-model-array.c
   trunk/libgda/gda-data-model-array.h
   trunk/libgda/gda-data-model-bdb.c
   trunk/libgda/gda-data-model-bdb.h
   trunk/libgda/gda-data-model-dir.c
   trunk/libgda/gda-data-model-dir.h
   trunk/libgda/gda-data-model-dsn-list.c
   trunk/libgda/gda-data-model-dsn-list.h
   trunk/libgda/gda-data-model-import.c
   trunk/libgda/gda-data-model-import.h
   trunk/libgda/gda-data-model-iter.h
   trunk/libgda/gda-data-model.c
   trunk/libgda/gda-data-model.h
   trunk/libgda/gda-data-proxy.c
   trunk/libgda/gda-data-proxy.h
   trunk/libgda/gda-data-select-extra.h
   trunk/libgda/gda-data-select.c
   trunk/libgda/gda-data-select.h
   trunk/libgda/gda-debug-macros.h
   trunk/libgda/gda-decl.h
   trunk/libgda/gda-holder.h
   trunk/libgda/gda-lockable.c
   trunk/libgda/gda-lockable.h
   trunk/libgda/gda-log.h
   trunk/libgda/gda-meta-store.h
   trunk/libgda/gda-meta-struct.h
   trunk/libgda/gda-row.h
   trunk/libgda/gda-server-operation.h
   trunk/libgda/gda-server-provider.h
   trunk/libgda/gda-set.h
   trunk/libgda/gda-statement-extra.h
   trunk/libgda/gda-statement.h
   trunk/libgda/gda-transaction-status.h
   trunk/libgda/gda-xa-transaction.h
   trunk/libgda/handlers/gda-handler-bin.h
   trunk/libgda/handlers/gda-handler-boolean.h
   trunk/libgda/handlers/gda-handler-numerical.h
   trunk/libgda/handlers/gda-handler-string.h
   trunk/libgda/handlers/gda-handler-time.h
   trunk/libgda/handlers/gda-handler-type.h
   trunk/libgda/providers-support/gda-pstmt.h
   trunk/libgda/sql-parser/gda-sql-parser-private.h
   trunk/libgda/sql-parser/gda-sql-parser.c
   trunk/libgda/sql-parser/gda-sql-parser.h
   trunk/libgda/sql-parser/gda-statement-struct-compound.h
   trunk/libgda/sql-parser/gda-statement-struct-decl.h
   trunk/libgda/sql-parser/gda-statement-struct-delete.h
   trunk/libgda/sql-parser/gda-statement-struct-insert.h
   trunk/libgda/sql-parser/gda-statement-struct-parts.c
   trunk/libgda/sql-parser/gda-statement-struct-parts.h
   trunk/libgda/sql-parser/gda-statement-struct-pspec.h
   trunk/libgda/sql-parser/gda-statement-struct-select.h
   trunk/libgda/sql-parser/gda-statement-struct-trans.h
   trunk/libgda/sql-parser/gda-statement-struct-unknown.h
   trunk/libgda/sql-parser/gda-statement-struct-update.h
   trunk/libgda/sql-parser/gda-statement-struct.c
   trunk/libgda/sql-parser/gda-statement-struct.h
   trunk/libgda/sqlite/gda-sqlite-provider.c
   trunk/libgda/sqlite/gda-sqlite-provider.h
   trunk/libgda/sqlite/virtual/gda-vconnection-data-model-private.h
   trunk/libgda/sqlite/virtual/gda-vconnection-data-model.h
   trunk/libgda/sqlite/virtual/gda-vconnection-hub.h
   trunk/libgda/sqlite/virtual/gda-virtual-connection.h
   trunk/libgda/sqlite/virtual/gda-virtual-provider.h
   trunk/libgda/sqlite/virtual/gda-vprovider-data-model.h
   trunk/libgda/sqlite/virtual/gda-vprovider-hub.h
   trunk/providers/mysql/gda-mysql-provider.c
   trunk/providers/postgres/gda-postgres-provider.c
   trunk/providers/skel-implementation/capi/gda-capi-provider.c

Modified: trunk/doc/C/libgda-4.0-sections.txt
==============================================================================
--- trunk/doc/C/libgda-4.0-sections.txt	(original)
+++ trunk/doc/C/libgda-4.0-sections.txt	Thu Feb  5 18:21:48 2009
@@ -447,7 +447,7 @@
 
 <SECTION>
 <FILE>gda-server-operation-nodes</FILE>
-<TITLE>GdaServerOperation's individual nodes</TITLE>
+<TITLE>GdaServerOperation individual nodes</TITLE>
 GdaServerOperationNodeType
 GdaServerOperationNodeStatus
 GdaServerOperationNode
@@ -460,7 +460,7 @@
 
 <SECTION>
 <FILE>gda-server-operation-sequences</FILE>
-<TITLE>GdaServerOperation's sequences</TITLE>
+<TITLE>GdaServerOperation sequences</TITLE>
 gda_server_operation_get_sequence_name
 gda_server_operation_get_sequence_size
 gda_server_operation_get_sequence_max_size

Modified: trunk/doc/C/limitations.xml
==============================================================================
--- trunk/doc/C/limitations.xml	(original)
+++ trunk/doc/C/limitations.xml	Thu Feb  5 18:21:48 2009
@@ -20,6 +20,8 @@
 		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.</para></listitem>
+	    <listitem><para>Any <link linkend="GdaAttributesManager">GdaAttributesManager</link> can safely be accessed from
+		any thread.</para></listitem>
 	  </itemizedlist>
 	</para>
 	

Modified: trunk/doc/C/tmpl/gda-attributes-manager.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-attributes-manager.sgml	(original)
+++ trunk/doc/C/tmpl/gda-attributes-manager.sgml	Thu Feb  5 18:21:48 2009
@@ -24,6 +24,9 @@
 <para>
   Attibute names can be any string, but &LIBGDA; reserves some for its own usage, see below.
 </para>
+<para>
+  The #GdaAttributesManager implements its own locking mechanism so it is thread-safe.
+</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-config.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-config.sgml	(original)
+++ trunk/doc/C/tmpl/gda-config.sgml	Thu Feb  5 18:21:48 2009
@@ -33,6 +33,9 @@
   instance. Note that setting either of these properties to <literal>NULL</literal> will disable using the corresponding
   configuration file (DSN will exist only in memory and their definition will be lost when the application finishes).
 </para>
+<para>
+  The #GdaConfig object implements its own locking mechanism so it is thread-safe.
+</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
@@ -101,6 +104,10 @@
 @cnc_string: 
 @auth_string: 
 @is_system: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### FUNCTION gda_config_get_dsn_info ##### -->
 <para>
@@ -192,6 +199,10 @@
 @description: 
 @dsn_params: 
 @auth_params: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### FUNCTION gda_config_get_provider_info ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-connection.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-connection.sgml	(original)
+++ trunk/doc/C/tmpl/gda-connection.sgml	Thu Feb  5 18:21:48 2009
@@ -14,6 +14,9 @@
 <para>
   Use the connection object to execute statements, use transactions, get meta data information, ...
 </para>
+<para>
+  The #GdaConnection object implements its own locking mechanism so it is thread-safe.
+</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-access-wrapper.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-access-wrapper.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-access-wrapper.sgml	Thu Feb  5 18:21:48 2009
@@ -35,6 +35,10 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataAccessWrapperPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-comparator.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-comparator.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-comparator.sgml	Thu Feb  5 18:21:48 2009
@@ -47,6 +47,10 @@
 
 @parent_class: 
 @diff_computed: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataComparatorPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-model-array.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-model-array.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-model-array.sgml	Thu Feb  5 18:21:48 2009
@@ -45,6 +45,10 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataModelArrayPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-model-bdb.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-model-bdb.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-model-bdb.sgml	Thu Feb  5 18:21:48 2009
@@ -52,6 +52,10 @@
 @get_data_part: 
 @update_key_part: 
 @update_data_part: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataModelBdbPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-model-dir.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-model-dir.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-model-dir.sgml	Thu Feb  5 18:21:48 2009
@@ -48,6 +48,10 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataModelDirPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-model-import.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-model-import.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-model-import.sgml	Thu Feb  5 18:21:48 2009
@@ -77,6 +77,10 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataModelImportPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-proxy.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-proxy.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-proxy.sgml	Thu Feb  5 18:21:48 2009
@@ -201,6 +201,10 @@
 @validate_row_changes: 
 @row_changes_applied: 
 @filter_changed: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaDataProxyPrivate ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-data-select-priv.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-data-select-priv.sgml	(original)
+++ trunk/doc/C/tmpl/gda-data-select-priv.sgml	Thu Feb  5 18:21:48 2009
@@ -43,6 +43,10 @@
 @fetch_next: virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD
 @fetch_prev: virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD
 @fetch_at: virtual method which can be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD or GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### FUNCTION gda_data_select_take_row ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-bin.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-bin.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-bin.sgml	Thu Feb  5 18:21:48 2009
@@ -29,6 +29,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerBinPriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-boolean.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-boolean.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-boolean.sgml	Thu Feb  5 18:21:48 2009
@@ -29,6 +29,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerBooleanPriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-numerical.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-numerical.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-numerical.sgml	Thu Feb  5 18:21:48 2009
@@ -29,6 +29,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerNumericalPriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-string.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-string.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-string.sgml	Thu Feb  5 18:21:48 2009
@@ -29,6 +29,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerStringPriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-time.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-time.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-time.sgml	Thu Feb  5 18:21:48 2009
@@ -29,6 +29,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerTimePriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-handler-type.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-handler-type.sgml	(original)
+++ trunk/doc/C/tmpl/gda-handler-type.sgml	Thu Feb  5 18:21:48 2009
@@ -31,6 +31,8 @@
 </para>
 
 @parent_class: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaHandlerTypePriv ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-meta-struct.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-meta-struct.sgml	(original)
+++ trunk/doc/C/tmpl/gda-meta-struct.sgml	Thu Feb  5 18:21:48 2009
@@ -152,6 +152,10 @@
 @obj_full_name: 
 @obj_owner: 
 @depend_list: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### MACRO GDA_META_DB_OBJECT ##### -->
 <para>
@@ -187,6 +191,10 @@
 @pk_cols_nb: 
 @reverse_fk_list: 
 @fk_list: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaMetaView ##### -->
 <para>
@@ -196,6 +204,10 @@
 @table: 
 @view_def: 
 @is_updatable: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### STRUCT GdaMetaTableColumn ##### -->
 <para>
@@ -208,6 +220,10 @@
 @pkey: 
 @nullok: 
 @default_value: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### MACRO GDA_META_TABLE_COLUMN ##### -->
 <para>
@@ -270,6 +286,10 @@
 @fk_names_array: 
 @ref_pk_cols_array: 
 @ref_pk_names_array: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
 
 <!-- ##### MACRO GDA_META_TABLE_FOREIGN_KEY ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-server-provider.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-server-provider.sgml	(original)
+++ trunk/doc/C/tmpl/gda-server-provider.sgml	Thu Feb  5 18:21:48 2009
@@ -145,6 +145,22 @@
 @routine_col: 
 @_routine_par: 
 @routine_par: 
+ _gda_reserved1: 
+ _gda_reserved2: 
+ _gda_reserved3: 
+ _gda_reserved4: 
+ _gda_reserved5: 
+ _gda_reserved6: 
+ _gda_reserved7: 
+ _gda_reserved8: 
+ _gda_reserved9: 
+ _gda_reserved10: 
+ _gda_reserved11: 
+ _gda_reserved12: 
+ _gda_reserved13: 
+ _gda_reserved14: 
+ _gda_reserved15: 
+ _gda_reserved16: 
 
 <!-- ##### USER_FUNCTION GdaServerProviderAsyncCallback ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-sql-parser.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-sql-parser.sgml	(original)
+++ trunk/doc/C/tmpl/gda-sql-parser.sgml	Thu Feb  5 18:21:48 2009
@@ -84,6 +84,9 @@
 <para>
   The #GdaSqlParser object internally uses a LEMON generated parser (the same as the one used by SQLite).
 </para>
+<para>
+  The #GdaConnection object implements its own locking mechanism so it is thread-safe.
+</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-sql-statement.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-sql-statement.sgml	(original)
+++ trunk/doc/C/tmpl/gda-sql-statement.sgml	Thu Feb  5 18:21:48 2009
@@ -44,6 +44,8 @@
 @contents: the actual contents of the statement, depends on @stmt_type (can be a pointer to a
 #GdaSqlStatementSelect, #GdaSqlStatementInsert, etc)
 @validity_meta_struct: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### ENUM GdaSqlStatementType ##### -->
 <para>
@@ -248,6 +250,8 @@
 
 @any: inheritance structure
 @expressions: a #GSList of #GdaSqlExpr expressions
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_unknown_take_expressions ##### -->
 <para>
@@ -270,6 +274,8 @@
 @isolation_level: isolation level as a #GdaTransactionIsolation
 @trans_mode: transaction mode (DEFERRED, IMMEDIATE, EXCLUSIVE, READ_WRITE, READ_ONLY)
 @trans_name: transaction name
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_trans_take_mode ##### -->
 <para>
@@ -326,6 +332,8 @@
 @order_by: ordering expressions (as #GdaSqlSelectOrder pointers)
 @limit_count: size limiting expression (LIMIT clause)
 @limit_offset: when @limit_count is defined, the start offset for the limit
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_select_take_distinct ##### -->
 <para>
@@ -436,6 +444,8 @@
 @fields_list: list of #GdaSqlField fields which are valued for insertion
 @values_list: list of list of #GdaSqlExpr expressions (this is a list of list, not a simple list)
 @select: a #GdaSqlStatementSelect or #GdaSqlStatementCompound structure representing the values to insert
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_insert_take_table_name ##### -->
 <para>
@@ -501,6 +511,8 @@
 @any: inheritance structure
 @table: name of the table from which data is deleted
 @cond: WHERE clause for the DELETE
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_delete_take_table_name ##### -->
 <para>
@@ -543,6 +555,8 @@
 @fields_list: list of #GdaSqlField fields which are updated
 @expr_list: list of #GdaSqlExpr expressions containing the new values
 @cond: WHERE clause for the UPDATE
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_update_take_table_name ##### -->
 <para>
@@ -602,6 +616,8 @@
 @any: inheritance structure
 @compound_type: the type of operation to compose the selection or compound statements making this statement
 @stmt_list: a list of #GdaSqlStatement making this statement
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_statement_compound_set_type ##### -->
 <para>
@@ -644,6 +660,8 @@
 @select: not %NULL if expression is a sub select statement (#GdaSqlStatementSelect or #GdaSqlStatementCompound)
 @case_s: not %NULL if expression is a CASE WHEN ... expression
 @cast_as: not %NULL if expression must be cast to another data type
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### STRUCT GdaSqlParamSpec ##### -->
 <para>
@@ -656,6 +674,8 @@
 @nullok: 
 @g_type: 
 @validity_meta_dict: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_param_spec_new ##### -->
 <para>
@@ -792,7 +812,8 @@
 @any: inheritance structure
 @function_name: name of the function , in the form [[catalog.]schema.]function_name
 @args_list: list of #GdaSqlExpr expressions, one for each argument
- validity_meta_function: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_function_new ##### -->
 <para>
@@ -855,6 +876,8 @@
 @any: inheritance structure
 @operator_type: 
 @operands: list of #GdaSqlExpr operands
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### ENUM GdaSqlOperatorType ##### -->
 <para>
@@ -955,6 +978,8 @@
 @when_expr_list: list of #GdaSqlExpr, one for each WHEN clause
 @then_expr_list: list of #GdaSqlExpr, one for each THEN clause
 @else_expr: default expression for the CASE
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_case_new ##### -->
 <para>
@@ -1006,6 +1031,8 @@
 @as: alias
 @validity_meta_object: 
 @validity_meta_table_column: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_select_field_new ##### -->
 <para>
@@ -1082,6 +1109,8 @@
 @table_name: table name part of @expr if @expr represents a table
 @as: alias
 @validity_meta_object: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_select_target_new ##### -->
 <para>
@@ -1155,6 +1184,8 @@
 @position: represents a join between a target at (pos &lt; @position) and the one at @position
 @expr: joining expression
 @use: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_select_join_new ##### -->
 <para>
@@ -1208,6 +1239,8 @@
 @any: inheritance structure
 @targets: list of #GdaSqlSelectTarget
 @joins: list of #GdaSqlSelectJoin
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_select_from_new ##### -->
 <para>
@@ -1271,6 +1304,8 @@
 @expr: expression to order on
 @asc: TRUE is ordering is ascending
 @collation_name: name of the collation to use for ordering
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### FUNCTION gda_sql_select_order_new ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-transaction-status.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-transaction-status.sgml	(original)
+++ trunk/doc/C/tmpl/gda-transaction-status.sgml	Thu Feb  5 18:21:48 2009
@@ -55,8 +55,8 @@
 @trans: 
 @type: 
 @conn_event: 
- reserved1: 
- reserved2: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### ENUM GdaTransactionStatusEventType ##### -->
 <para>

Modified: trunk/doc/C/tmpl/gda-vconnection-data-model.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-vconnection-data-model.sgml	(original)
+++ trunk/doc/C/tmpl/gda-vconnection-data-model.sgml	Thu Feb  5 18:21:48 2009
@@ -33,6 +33,8 @@
 @data_model: 
 @create_columns_func: 
 @create_model_func: 
+ _gda_reserved1: 
+ _gda_reserved2: 
 
 <!-- ##### USER_FUNCTION GdaVconnectionDataModelCreateColumnsFunc ##### -->
 <para>

Modified: trunk/libgda-report/DocBook/gda-report-docbook-document.h
==============================================================================
--- trunk/libgda-report/DocBook/gda-report-docbook-document.h	(original)
+++ trunk/libgda-report/DocBook/gda-report-docbook-document.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA 
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -44,6 +44,12 @@
 
 struct _GdaReportDocbookDocumentClass {
 	GdaReportDocumentClass       parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType              gda_report_docbook_document_get_type        (void) G_GNUC_CONST;

Modified: trunk/libgda-report/RML/gda-report-rml-document.h
==============================================================================
--- trunk/libgda-report/RML/gda-report-rml-document.h	(original)
+++ trunk/libgda-report/RML/gda-report-rml-document.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA 
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -44,6 +44,12 @@
 
 struct _GdaReportRmlDocumentClass {
 	GdaReportDocumentClass       parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType              gda_report_rml_document_get_type        (void) G_GNUC_CONST;

Modified: trunk/libgda-report/engine/gda-report-engine.h
==============================================================================
--- trunk/libgda-report/engine/gda-report-engine.h	(original)
+++ trunk/libgda-report/engine/gda-report-engine.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA 
- * Copyright (C) 2007 - 2008 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -47,6 +47,12 @@
 
 struct _GdaReportEngineClass {
 	GObjectClass            parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType            gda_report_engine_get_type        (void) G_GNUC_CONST;

Modified: trunk/libgda-report/gda-report-document.h
==============================================================================
--- trunk/libgda-report/gda-report-document.h	(original)
+++ trunk/libgda-report/gda-report-document.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA 
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -49,6 +49,12 @@
 	/* virtual methods */
 	gboolean                (*run_as_html) (GdaReportDocument *doc, const gchar *filename, GError **error);
 	gboolean                (*run_as_pdf) (GdaReportDocument *doc, const gchar *filename, GError **error);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType                 gda_report_document_get_type        (void) G_GNUC_CONST;

Modified: trunk/libgda-xslt/libgda-xslt.h
==============================================================================
--- trunk/libgda-xslt/libgda-xslt.h	(original)
+++ trunk/libgda-xslt/libgda-xslt.h	Thu Feb  5 18:21:48 2009
@@ -35,6 +35,12 @@
 	GdaConnection *cnc;
 	GHashTable    *query_hash;
 	GError        *error;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 };
 typedef struct _GdaXsltExCont GdaXsltExCont;
 

Modified: trunk/libgda-xslt/sql_backend.h
==============================================================================
--- trunk/libgda-xslt/sql_backend.h	(original)
+++ trunk/libgda-xslt/sql_backend.h	Thu Feb  5 18:21:48 2009
@@ -43,6 +43,12 @@
 {
 	int         init;
 	GHashTable *result_sets;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 };
 
 typedef struct _GdaXsltIntCont GdaXsltIntCont;

Modified: trunk/libgda/gda-attributes-manager.c
==============================================================================
--- trunk/libgda/gda-attributes-manager.c	(original)
+++ trunk/libgda/gda-attributes-manager.c	Thu Feb  5 18:21:48 2009
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <gda-attributes-manager.h>
 #include <gda-value.h>
+#include <gda-mutex.h>
 
 /*
  * Structure for the attribute names
@@ -49,6 +50,7 @@
 
 
 struct _GdaAttributesManager {
+	GdaMutex                   *mutex;
 	gboolean                    for_objects; /* TRUE if key->data are GObjects */
 	GdaAttributesManagerSignal  signal_func;
 	gpointer                    signal_data;
@@ -105,6 +107,7 @@
 	GdaAttributesManager *mgr;
 
 	mgr = g_new0 (GdaAttributesManager, 1);
+	mgr->mutex = gda_mutex_new  ();
 	mgr->obj_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
 					       (GDestroyNotify) objattrs_unref);
 	mgr->for_objects = for_objects;
@@ -129,9 +132,14 @@
 void
 gda_attributes_manager_free (GdaAttributesManager *mgr)
 {
+	GdaMutex *mutex;
+	mutex = mgr->mutex;
+	gda_mutex_lock (mutex);
 	g_hash_table_foreach (mgr->obj_hash, (GHFunc) foreach_destroy_func, NULL);
 	g_hash_table_destroy (mgr->obj_hash);
 	g_free (mgr);
+	gda_mutex_unlock (mutex);
+	gda_mutex_free (mutex);
 }
 
 static void
@@ -158,6 +166,8 @@
 	g_return_if_fail (att_name);
 	if (mgr->for_objects) 
 		g_return_if_fail (G_IS_OBJECT (ptr));
+	
+	gda_mutex_lock (mgr->mutex);
 
 	/* pick up the correct ObjAttrs */
 	objattrs = g_hash_table_lookup (mgr->obj_hash, ptr);
@@ -220,6 +230,8 @@
 	}
 	if (mgr->signal_func && mgr->for_objects)
 		mgr->signal_func ((GObject*) ptr, att_name, value, mgr->signal_data);
+
+	gda_mutex_unlock (mgr->mutex);
 }
 
 /**
@@ -277,14 +289,19 @@
 gda_attributes_manager_get (GdaAttributesManager *mgr, gpointer ptr, const gchar *att_name)
 {
 	ObjAttrs *objattrs;
+	const GValue *cvalue = NULL;
+
+	gda_mutex_lock (mgr->mutex);
 
 	objattrs = g_hash_table_lookup (mgr->obj_hash, ptr);
 	if (objattrs) {
 		AttName attname;
 		attname.att_name = (gchar*) att_name;
-		return g_hash_table_lookup (objattrs->values_hash, &attname);
+		cvalue = g_hash_table_lookup (objattrs->values_hash, &attname);
 	}
-	return NULL;
+
+	gda_mutex_unlock (mgr->mutex);
+	return cvalue;
 }
 
 /**
@@ -302,9 +319,17 @@
 			     GdaAttributesManager *to_mgr, gpointer *to)
 {
 	ObjAttrs *from_objattrs, *to_objattrs;
+
+	gda_mutex_lock (from_mgr->mutex);
+	gda_mutex_lock (to_mgr->mutex);
+
 	from_objattrs = g_hash_table_lookup (from_mgr->obj_hash, from);
-	if (!from_objattrs)
+	if (!from_objattrs) {
+		gda_mutex_unlock (from_mgr->mutex);
+		gda_mutex_unlock (to_mgr->mutex);
 		return;
+	}
+
 	to_objattrs = g_hash_table_lookup (to_mgr->obj_hash, to);
 
 	if ((from_mgr == to_mgr) && !to_objattrs) {
@@ -313,6 +338,9 @@
 
 		if (from_mgr->for_objects) 
 			g_object_weak_ref (G_OBJECT (to), (GWeakNotify) obj_destroyed_cb, from_objattrs);
+
+		gda_mutex_unlock (from_mgr->mutex);
+		gda_mutex_unlock (to_mgr->mutex);
 		return;
 	}
 
@@ -321,6 +349,9 @@
 	cdata.to_mgr = to_mgr;
 	cdata.ptr = to;
 	g_hash_table_foreach (from_objattrs->values_hash, (GHFunc) foreach_copy_func, &cdata);
+
+	gda_mutex_unlock (from_mgr->mutex);
+	gda_mutex_unlock (to_mgr->mutex);
 }
 
 static void
@@ -343,11 +374,16 @@
 gda_attributes_manager_clear (GdaAttributesManager *mgr, gpointer ptr)
 {
 	ObjAttrs *objattrs;
+
+	gda_mutex_lock (mgr->mutex);
+
 	objattrs = g_hash_table_lookup (mgr->obj_hash, ptr);
 	if (objattrs) {
 		objattrs->objects = g_slist_remove (objattrs->objects, ptr);
 		g_hash_table_remove (mgr->obj_hash, ptr);
 	}
+
+	gda_mutex_unlock (mgr->mutex);
 }
 
 typedef struct {
@@ -374,6 +410,8 @@
 	g_return_if_fail (func);
 	g_return_if_fail (ptr);
 
+	gda_mutex_lock (mgr->mutex);
+
 	objattrs = g_hash_table_lookup (mgr->obj_hash, ptr);
 	if (objattrs) {
 		FData fdata;
@@ -382,6 +420,8 @@
 		fdata.data = data;
 		g_hash_table_foreach (objattrs->values_hash, (GHFunc) foreach_foreach_func, &fdata);
 	}
+
+	gda_mutex_unlock (mgr->mutex);
 }
 
 static void

Modified: trunk/libgda/gda-batch.h
==============================================================================
--- trunk/libgda/gda-batch.h	(original)
+++ trunk/libgda/gda-batch.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-batch.h
  *
- * Copyright (C) 2007 - 2008 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -50,6 +50,12 @@
 
 	/* signals */
 	void   (*changed) (GdaBatch *batch, GdaStatement *changed_stmt);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType              gda_batch_get_type               (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-blob-op.h
==============================================================================
--- trunk/libgda/gda-blob-op.h	(original)
+++ trunk/libgda/gda-blob-op.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA Common Library
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * Authors:
  *      Vivien Malerba <malerba gnome-db org>
@@ -38,6 +38,9 @@
 
 struct _GdaBlobOp {
 	GObject object;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
 };
 
 struct _GdaBlobOpClass {
@@ -48,6 +51,12 @@
 	glong    (* read)       (GdaBlobOp *op, GdaBlob *blob, glong offset, glong size);
 	glong    (* write)      (GdaBlobOp *op, GdaBlob *blob, glong offset);
 	gboolean (* write_all)  (GdaBlobOp *op, GdaBlob *blob);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType    gda_blob_op_get_type  (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-column.h
==============================================================================
--- trunk/libgda/gda-column.h	(original)
+++ trunk/libgda/gda-column.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 1998 - 2006 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Michael Lausch <michael lausch at>
@@ -50,6 +50,12 @@
 	/* signals */
 	void (* name_changed)   (GdaColumn *column, const gchar *old_name);
 	void (* g_type_changed) (GdaColumn *column, GType old_type, GType new_type);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType           gda_column_get_type           (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-config.h
==============================================================================
--- trunk/libgda/gda-config.h	(original)
+++ trunk/libgda/gda-config.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 2007 - 2008 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -56,6 +56,12 @@
         gchar    *cnc_string;  /* semi-colon separated <key>=<value> list where <key> and <value> are RFC 1738 encoded */
         gchar    *auth_string; /* semi-colon separated <key>=<value> list where <key> and <value> are RFC 1738 encoded */
         gboolean  is_system;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 };
 
 struct _GdaProviderInfo {
@@ -64,6 +70,12 @@
         gchar             *description;
         GdaSet            *dsn_params;  /* Specs to create a DSN */
 	GdaSet            *auth_params; /* Specs to authenticate a client */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 };
 
 struct _GdaConfig {
@@ -79,6 +91,12 @@
 	void   (*dsn_to_be_removed)         (GdaConfig *conf, GdaDsnInfo *old_dsn);
 	void   (*dsn_removed)               (GdaConfig *conf, GdaDsnInfo *old_dsn);
 	void   (*dsn_changed)               (GdaConfig *conf, GdaDsnInfo *dsn);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType              gda_config_get_type                 (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-connection-event.h
==============================================================================
--- trunk/libgda/gda-connection-event.h	(original)
+++ trunk/libgda/gda-connection-event.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA server library
- * Copyright (C) 1998 - 2007 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Michael Lausch <michael lausch at>
@@ -43,6 +43,12 @@
 
 struct _GdaConnectionEventClass {
 	GObjectClass parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 typedef enum {

Modified: trunk/libgda/gda-connection.c
==============================================================================
--- trunk/libgda/gda-connection.c	(original)
+++ trunk/libgda/gda-connection.c	Thu Feb  5 18:21:48 2009
@@ -87,7 +87,7 @@
 					 GParamSpec *pspec);
 
 /* GdaLockable interface */
-static void                 gda_connection_lockable_init (GdaLockableClass *iface);
+static void                 gda_connection_lockable_init (GdaLockableIface *iface);
 static void                 gda_connection_lock      (GdaLockable *lockable);
 static gboolean             gda_connection_trylock   (GdaLockable *lockable);
 static void                 gda_connection_unlock    (GdaLockable *lockable);
@@ -260,7 +260,7 @@
 }
 
 static void
-gda_connection_lockable_init (GdaLockableClass *iface)
+gda_connection_lockable_init (GdaLockableIface *iface)
 {
 	iface->i_lock = gda_connection_lock;
 	iface->i_trylock = gda_connection_trylock;
@@ -1530,6 +1530,11 @@
 		*last_inserted_row = NULL;
 	if (cnc->priv->auto_clear_events_list)
 		_clear_events_list (cnc);
+
+	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
+	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
+		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
+
 	obj = PROV_CLASS (cnc->priv->provider_obj)->statement_execute (cnc->priv->provider_obj, cnc, stmt, params, 
 								       model_usage, types, last_inserted_row, 
 								       NULL, NULL, NULL, error);
@@ -1780,6 +1785,11 @@
 	gda_connection_lock ((GdaLockable*) cnc);
 	if (cnc->priv->auto_clear_events_list)
 		_clear_events_list (cnc);
+
+	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
+	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
+		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
+
 	model = (GdaDataModel *) PROV_CLASS (cnc->priv->provider_obj)->statement_execute (cnc->priv->provider_obj, 
 											  cnc, stmt, params, model_usage, 
 											  types, NULL, NULL, 
@@ -1836,6 +1846,11 @@
 	gda_connection_lock ((GdaLockable*) cnc);
 	if (cnc->priv->auto_clear_events_list)
 		_clear_events_list (cnc);
+	
+	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
+	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
+		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
+
 	model = (GdaDataModel *) PROV_CLASS (cnc->priv->provider_obj)->statement_execute (cnc->priv->provider_obj, 
 											  cnc, stmt, params, 
 											  model_usage, col_types, NULL, 

Modified: trunk/libgda/gda-connection.h
==============================================================================
--- trunk/libgda/gda-connection.h	(original)
+++ trunk/libgda/gda-connection.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 1998 - 2008 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Michael Lausch <michael lausch at>
@@ -72,6 +72,12 @@
         void   (*conn_closed)               (GdaConnection *obj);
 	void   (*dsn_changed)               (GdaConnection *obj);
 	void   (*transaction_status_changed)(GdaConnection *obj);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 typedef enum {

Modified: trunk/libgda/gda-data-access-wrapper.c
==============================================================================
--- trunk/libgda/gda-data-access-wrapper.c	(original)
+++ trunk/libgda/gda-data-access-wrapper.c	Thu Feb  5 18:21:48 2009
@@ -32,6 +32,7 @@
 #include <libgda/gda-holder.h>
 
 
+#define ROWS_POOL_SIZE 50
 struct _GdaDataAccessWrapperPrivate {
 	GdaDataModel     *model;
 	GdaDataModelAccessFlags model_access_flags;
@@ -43,6 +44,10 @@
 	gint              nb_cols; /* number of columns of @model */
 	gint              last_row;/* row number of the last row which has been read */
 	gboolean          end_of_data; /* TRUE if the end of the data model has been reached by the iterator */
+
+	GArray           *rows_buffer_array; /* Array of GdaRow */
+	GArray           *rows_buffer_index; /* Array of indexes: GdaRow at index i in @rows_buffer_array
+					      * is indexed in @rows with key rows_buffer_index[i] */
 };
 
 /* properties */
@@ -68,7 +73,7 @@
 						    GParamSpec *pspec);
 
 /* GdaDataModel interface */
-static void                 gda_data_access_wrapper_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_access_wrapper_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_access_wrapper_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_access_wrapper_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_access_wrapper_describe_column (GdaDataModel *model, gint col);
@@ -145,7 +150,7 @@
 }
 
 static void
-gda_data_access_wrapper_data_model_init (GdaDataModelClass *iface)
+gda_data_access_wrapper_data_model_init (GdaDataModelIface *iface)
 {
 	iface->i_get_n_rows = gda_data_access_wrapper_get_n_rows;
 	iface->i_get_n_columns = gda_data_access_wrapper_get_n_columns;
@@ -180,6 +185,9 @@
 	model->priv->iter_row = -1; /* because model->priv->iter does not yet exist */
 	model->priv->rows = NULL;
 	model->priv->end_of_data = FALSE;
+	
+	model->priv->rows_buffer_array = NULL;
+	model->priv->rows_buffer_index = NULL;
 }
 
 static void
@@ -236,6 +244,16 @@
 			g_object_unref (model->priv->model);
 			model->priv->model = NULL;
 		}
+
+		if (model->priv->rows_buffer_array) {
+			g_array_free (model->priv->rows_buffer_array, TRUE);
+			model->priv->rows_buffer_array = NULL;
+		}
+
+		if (model->priv->rows_buffer_index) {
+			g_array_free (model->priv->rows_buffer_index, TRUE);
+			model->priv->rows_buffer_index = NULL;
+		}
 	}
 
 	/* chain to parent class */
@@ -515,7 +533,36 @@
 					return gda_row_get_value (gda_row, col);
 			}
 			else {
-				gda_row = create_new_row (imodel);
+				/* in this case iter can be moved forward and backward at will => we only
+				 * need to keep a pool of GdaRow for performances reasons */
+				gda_row = g_hash_table_lookup (imodel->priv->rows, GINT_TO_POINTER (row));
+
+				if (!gda_row) {
+					if (! imodel->priv->rows_buffer_array) {
+						imodel->priv->rows_buffer_array = g_array_sized_new (FALSE, FALSE, 
+												     sizeof (GdaRow*),
+												     ROWS_POOL_SIZE);
+						imodel->priv->rows_buffer_index = g_array_sized_new (FALSE, FALSE, 
+												     sizeof (gint), 
+												     ROWS_POOL_SIZE);
+					}
+					else if (imodel->priv->rows_buffer_array->len == ROWS_POOL_SIZE) {
+						/* get rid of the oldest row (was model's index_row row)*/
+						gint index_row;
+
+						index_row = g_array_index (imodel->priv->rows_buffer_index, gint,
+									   ROWS_POOL_SIZE - 1);
+						g_array_remove_index (imodel->priv->rows_buffer_array,
+								      ROWS_POOL_SIZE - 1);
+						g_array_remove_index (imodel->priv->rows_buffer_index,
+								      ROWS_POOL_SIZE - 1);
+						g_hash_table_remove (imodel->priv->rows, GINT_TO_POINTER (index_row));
+					}
+
+					gda_row = create_new_row (imodel);
+					g_array_prepend_val (imodel->priv->rows_buffer_array, gda_row);
+					g_array_prepend_val (imodel->priv->rows_buffer_index, imodel->priv->iter_row);
+				}
 				return gda_row_get_value (gda_row, col);
 			}
 		}
@@ -545,7 +592,6 @@
 			gda_row = g_hash_table_lookup (model->priv->rows, GINT_TO_POINTER (row));
 			if (!gda_row) {
 				create_new_row (model);
-				/*gda_object_dump (model, 10);*/
 			}
 		}
 	}

Modified: trunk/libgda/gda-data-access-wrapper.h
==============================================================================
--- trunk/libgda/gda-data-access-wrapper.h	(original)
+++ trunk/libgda/gda-data-access-wrapper.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2006 - 2008 The GNOME Foundation.
+ * Copyright (C) 2006 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -45,6 +45,12 @@
 
 struct _GdaDataAccessWrapperClass {
 	GObjectClass                   parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_data_access_wrapper_get_type    (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-comparator.h
==============================================================================
--- trunk/libgda/gda-data-comparator.h	(original)
+++ trunk/libgda/gda-data-comparator.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-data-comparator.h
  *
- * Copyright (C) 2008 Vivien Malerba
+ * Copyright (C) 2008 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -74,6 +74,12 @@
 {
 	GObjectClass              parent_class;
 	gboolean               (* diff_computed)  (GdaDataComparator *comp, GdaDiff *diff);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType             gda_data_comparator_get_type        (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-array.c
==============================================================================
--- trunk/libgda/gda-data-model-array.c	(original)
+++ trunk/libgda/gda-data-model-array.c	Thu Feb  5 18:21:48 2009
@@ -58,7 +58,7 @@
 static GObjectClass *parent_class = NULL;
 
 /* GdaDataModel interface */
-static void                 gda_data_model_array_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_model_array_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_model_array_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_array_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_array_describe_column (GdaDataModel *model, gint col);
@@ -82,7 +82,7 @@
  */
 
 static void
-gda_data_model_array_data_model_init (GdaDataModelClass *iface)
+gda_data_model_array_data_model_init (GdaDataModelIface *iface)
 {
         iface->i_get_n_rows = gda_data_model_array_get_n_rows;
         iface->i_get_n_columns = gda_data_model_array_get_n_columns;

Modified: trunk/libgda/gda-data-model-array.h
==============================================================================
--- trunk/libgda/gda-data-model-array.h	(original)
+++ trunk/libgda/gda-data-model-array.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 1998 - 2008 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *	Rodrigo Moya <rodrigo gnome-db org>
@@ -46,6 +46,12 @@
 
 struct _GdaDataModelArrayClass {
 	GObjectClass              parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType              gda_data_model_array_get_type          (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-bdb.c
==============================================================================
--- trunk/libgda/gda-data-model-bdb.c	(original)
+++ trunk/libgda/gda-data-model-bdb.c	Thu Feb  5 18:21:48 2009
@@ -76,7 +76,7 @@
                                                 GParamSpec *pspec);
 
 /* GdaDataModel interface */
-static void                 gda_data_model_bdb_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_model_bdb_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_model_bdb_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_bdb_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_bdb_describe_column (GdaDataModel *model, gint col);
@@ -100,7 +100,7 @@
  * Object init and dispose
  */
 static void
-gda_data_model_bdb_data_model_init (GdaDataModelClass *iface)
+gda_data_model_bdb_data_model_init (GdaDataModelIface *iface)
 {
         iface->i_get_n_rows = gda_data_model_bdb_get_n_rows;
         iface->i_get_n_columns = gda_data_model_bdb_get_n_columns;

Modified: trunk/libgda/gda-data-model-bdb.h
==============================================================================
--- trunk/libgda/gda-data-model-bdb.h	(original)
+++ trunk/libgda/gda-data-model-bdb.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2007 - 2008 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -58,6 +58,12 @@
 	gboolean               (*update_data_part)    (GdaDataModelBdb *model,
 						       gpointer data, gint length, gint part, 
 						       const GValue *value, GError **error);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_data_model_bdb_get_type     (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-dir.c
==============================================================================
--- trunk/libgda/gda-data-model-dir.c	(original)
+++ trunk/libgda/gda-data-model-dir.c	Thu Feb  5 18:21:48 2009
@@ -123,7 +123,7 @@
 					     GParamSpec *pspec);
 
 /* GdaDataModel interface */
-static void                 gda_data_model_dir_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_model_dir_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_model_dir_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_dir_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_dir_describe_column (GdaDataModel *model, gint col);
@@ -146,7 +146,7 @@
  * Object init and dispose
  */
 static void
-gda_data_model_dir_data_model_init (GdaDataModelClass *iface)
+gda_data_model_dir_data_model_init (GdaDataModelIface *iface)
 {
         iface->i_get_n_rows = gda_data_model_dir_get_n_rows;
         iface->i_get_n_columns = gda_data_model_dir_get_n_columns;

Modified: trunk/libgda/gda-data-model-dir.h
==============================================================================
--- trunk/libgda/gda-data-model-dir.h	(original)
+++ trunk/libgda/gda-data-model-dir.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2007 - 2008 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -44,6 +44,12 @@
 
 struct _GdaDataModelDirClass {
 	GObjectClass            parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_data_model_dir_get_type     (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-dsn-list.c
==============================================================================
--- trunk/libgda/gda-data-model-dsn-list.c	(original)
+++ trunk/libgda/gda-data-model-dsn-list.c	Thu Feb  5 18:21:48 2009
@@ -42,7 +42,7 @@
 static void gda_data_model_dsn_list_dispose    (GObject *object);
 
 /* GdaDataModel interface */
-static void                 gda_data_model_dsn_list_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_model_dsn_list_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_model_dsn_list_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_dsn_list_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_dsn_list_describe_column (GdaDataModel *model, gint col);
@@ -61,7 +61,7 @@
  * Object init and finalize
  */
 static void
-gda_data_model_dsn_list_data_model_init (GdaDataModelClass *iface)
+gda_data_model_dsn_list_data_model_init (GdaDataModelIface *iface)
 {
         iface->i_get_n_rows = gda_data_model_dsn_list_get_n_rows;
         iface->i_get_n_columns = gda_data_model_dsn_list_get_n_columns;

Modified: trunk/libgda/gda-data-model-dsn-list.h
==============================================================================
--- trunk/libgda/gda-data-model-dsn-list.h	(original)
+++ trunk/libgda/gda-data-model-dsn-list.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 2007 - 2008 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -45,6 +45,12 @@
 
 struct _GdaDataModelDsnListClass {
 	GObjectClass                object_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType gda_data_model_dsn_list_get_type (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-import.c
==============================================================================
--- trunk/libgda/gda-data-model-import.c	(original)
+++ trunk/libgda/gda-data-model-import.c	Thu Feb  5 18:21:48 2009
@@ -156,7 +156,7 @@
 						GParamSpec *pspec);
 
 /* GdaDataModel interface */
-static void                 gda_data_model_import_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_model_import_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_model_import_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_model_import_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_model_import_describe_column (GdaDataModel *model, gint col);
@@ -253,7 +253,7 @@
 }
 
 static void
-gda_data_model_import_data_model_init (GdaDataModelClass *iface)
+gda_data_model_import_data_model_init (GdaDataModelIface *iface)
 {
 	iface->i_get_n_rows = gda_data_model_import_get_n_rows;
 	iface->i_get_n_columns = gda_data_model_import_get_n_columns;

Modified: trunk/libgda/gda-data-model-import.h
==============================================================================
--- trunk/libgda/gda-data-model-import.h	(original)
+++ trunk/libgda/gda-data-model-import.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2006 - 2008 The GNOME Foundation.
+ * Copyright (C) 2006 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -46,6 +46,12 @@
 
 struct _GdaDataModelImportClass {
 	GObjectClass               parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_data_model_import_get_type     (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model-iter.h
==============================================================================
--- trunk/libgda/gda-data-model-iter.h	(original)
+++ trunk/libgda/gda-data-model-iter.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-data-model-iter.h
  *
- * Copyright (C) 2005 - 2008 Vivien Malerba
+ * Copyright (C) 2005 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -57,6 +57,12 @@
 
 	void                    (* row_changed)      (GdaDataModelIter *iter, gint row);
 	void                    (* end_of_data)      (GdaDataModelIter *iter);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType             gda_data_model_iter_get_type             (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-model.c
==============================================================================
--- trunk/libgda/gda-data-model.c	(original)
+++ trunk/libgda/gda-data-model.c	Thu Feb  5 18:21:48 2009
@@ -79,7 +79,7 @@
 
 	if (G_UNLIKELY (type == 0)) {
 		static const GTypeInfo info = {
-			sizeof (GdaDataModelClass),
+			sizeof (GdaDataModelIface),
 			(GBaseInitFunc) gda_data_model_class_init,
 			(GBaseFinalizeFunc) NULL,
 			(GClassInitFunc) NULL,
@@ -117,7 +117,7 @@
 			g_signal_new ("changed",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelClass, changed),
+				      G_STRUCT_OFFSET (GdaDataModelIface, changed),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);
@@ -132,7 +132,7 @@
 			g_signal_new ("row-inserted",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelClass, row_inserted),
+				      G_STRUCT_OFFSET (GdaDataModelIface, row_inserted),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -147,7 +147,7 @@
 			g_signal_new ("row-updated",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelClass, row_updated),
+				      G_STRUCT_OFFSET (GdaDataModelIface, row_updated),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -162,7 +162,7 @@
 			g_signal_new ("row-removed",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelClass, row_removed),
+				      G_STRUCT_OFFSET (GdaDataModelIface, row_removed),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__INT,
 				      G_TYPE_NONE, 1, G_TYPE_INT);
@@ -177,7 +177,7 @@
 			g_signal_new ("reset",
 				      GDA_TYPE_DATA_MODEL,
 				      G_SIGNAL_RUN_LAST,
-				      G_STRUCT_OFFSET (GdaDataModelClass, reset),
+				      G_STRUCT_OFFSET (GdaDataModelIface, reset),
 				      NULL, NULL,
 				      g_cclosure_marshal_VOID__VOID,
 				      G_TYPE_NONE, 0);

Modified: trunk/libgda/gda-data-model.h
==============================================================================
--- trunk/libgda/gda-data-model.h	(original)
+++ trunk/libgda/gda-data-model.h	Thu Feb  5 18:21:48 2009
@@ -37,7 +37,7 @@
 #define GDA_TYPE_DATA_MODEL            (gda_data_model_get_type())
 #define GDA_DATA_MODEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_DATA_MODEL, GdaDataModel))
 #define GDA_IS_DATA_MODEL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GDA_TYPE_DATA_MODEL))
-#define GDA_DATA_MODEL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_DATA_MODEL, GdaDataModelClass))
+#define GDA_DATA_MODEL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_DATA_MODEL, GdaDataModelIface))
 
 /* error reporting */
 extern GQuark gda_data_model_error_quark (void);
@@ -79,7 +79,7 @@
 } GdaDataModelError;
 
 /* struct for the interface */
-struct _GdaDataModelClass {
+struct _GdaDataModelIface {
 	GTypeInterface           g_iface;
 
 	/* virtual table */

Modified: trunk/libgda/gda-data-proxy.c
==============================================================================
--- trunk/libgda/gda-data-proxy.c	(original)
+++ trunk/libgda/gda-data-proxy.c	Thu Feb  5 18:21:48 2009
@@ -58,7 +58,7 @@
 					 GValue *value,
 					 GParamSpec *pspec);
 /* GdaDataModel interface */
-static void                 gda_data_proxy_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_proxy_data_model_init (GdaDataModelIface *iface);
 
 static gint                 gda_data_proxy_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_proxy_get_n_columns   (GdaDataModel *model);
@@ -681,7 +681,7 @@
 }
 
 static void
-gda_data_proxy_data_model_init (GdaDataModelClass *iface)
+gda_data_proxy_data_model_init (GdaDataModelIface *iface)
 {
 	iface->i_get_n_rows = gda_data_proxy_get_n_rows;
 	iface->i_get_n_columns = gda_data_proxy_get_n_columns;

Modified: trunk/libgda/gda-data-proxy.h
==============================================================================
--- trunk/libgda/gda-data-proxy.h	(original)
+++ trunk/libgda/gda-data-proxy.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-data-proxy.h
  *
- * Copyright (C) 2005 - 2008 Vivien Malerba
+ * Copyright (C) 2005 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -69,6 +69,12 @@
 	void                 (* row_changes_applied)  (GdaDataProxy *proxy, gint row, gint proxied_row);
 
 	void                 (* filter_changed)       (GdaDataProxy *proxy);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType             gda_data_proxy_get_type                 (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-data-select-extra.h
==============================================================================
--- trunk/libgda/gda-data-select-extra.h	(original)
+++ trunk/libgda/gda-data-select-extra.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2008 The GNOME Foundation.
+ * Copyright (C) 2008 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -52,6 +52,12 @@
 	GHashTable             *ins_stmts; /* key = a gboolean vector with TRUEs when the column is used, value = an INSERT GdaStatement  */
 	GdaStatement           *one_row_select_stmt; /* used to retreive one row after an UPDATE
 						      * or INSERT operation */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaDataSelectInternals;
 
 GdaDataSelectInternals *_gda_data_select_internals_steal (GdaDataSelect *model);

Modified: trunk/libgda/gda-data-select.c
==============================================================================
--- trunk/libgda/gda-data-select.c	(original)
+++ trunk/libgda/gda-data-select.c	Thu Feb  5 18:21:48 2009
@@ -140,7 +140,7 @@
 
 
 /* GdaDataModel interface */
-static void                 gda_data_select_data_model_init (GdaDataModelClass *iface);
+static void                 gda_data_select_data_model_init (GdaDataModelIface *iface);
 static gint                 gda_data_select_get_n_rows      (GdaDataModel *model);
 static gint                 gda_data_select_get_n_columns   (GdaDataModel *model);
 static GdaColumn           *gda_data_select_describe_column (GdaDataModel *model, gint col);
@@ -274,7 +274,7 @@
 }
 
 static void
-gda_data_select_data_model_init (GdaDataModelClass *iface)
+gda_data_select_data_model_init (GdaDataModelIface *iface)
 {
 	iface->i_get_n_rows = gda_data_select_get_n_rows;
 	iface->i_get_n_columns = gda_data_select_get_n_columns;

Modified: trunk/libgda/gda-data-select.h
==============================================================================
--- trunk/libgda/gda-data-select.h	(original)
+++ trunk/libgda/gda-data-select.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA common library
- * Copyright (C) 2008 The GNOME Foundation.
+ * Copyright (C) 2008 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -61,6 +61,12 @@
 	GdaPStmt         *prep_stmt; /* use the "prepared-stmt" property to set this */
 	gint              nb_stored_rows; /* number of GdaRow objects currently stored */
 	gint              advertized_nrows; /* set when the number of rows becomes known, -1 untill then */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 };
 
 /*
@@ -87,6 +93,12 @@
 	gboolean         (*fetch_next)    (GdaDataSelect *model, GdaRow **prow, gint rownum, GError **error);
 	gboolean         (*fetch_prev)    (GdaDataSelect *model, GdaRow **prow, gint rownum, GError **error);
 	gboolean         (*fetch_at)      (GdaDataSelect *model, GdaRow **prow, gint rownum, GError **error);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType          gda_data_select_get_type                     (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-debug-macros.h
==============================================================================
--- trunk/libgda/gda-debug-macros.h	(original)
+++ trunk/libgda/gda-debug-macros.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -30,9 +30,6 @@
 #define D_COL_H2 "\033[;36;4m"
 #define D_COL_OK "\033[;32m"
 #define D_COL_ERR "\033[;31;1m"
-#define AAA(X) (g_print (D_COL_H1 "DEBUG MARK %d\n" D_COL_NOR, X))
-#define DEBUG_HEADER (g_print (D_COL_H0 "====================== %s %s():%d ======================\n" D_COL_NOR, __FILE__, __FUNCTION__, __LINE__))
-#define DEBUG_HEADER_STR(str) (g_print (D_COL_H0 "====================== %s %s %s():%d ======================\n" D_COL_NOR, (str), __FILE__, __FUNCTION__, __LINE__))
 #endif
 
 #ifndef TO_IMPLEMENT

Modified: trunk/libgda/gda-decl.h
==============================================================================
--- trunk/libgda/gda-decl.h	(original)
+++ trunk/libgda/gda-decl.h	Thu Feb  5 18:21:48 2009
@@ -48,7 +48,7 @@
 typedef struct _GdaServerOperationClass   GdaServerOperationClass;
 typedef struct _GdaServerOperationPrivate GdaServerOperationPrivate;
 
-typedef struct _GdaDataModelClass   GdaDataModelClass;
+typedef struct _GdaDataModelIface   GdaDataModelIface;
 typedef struct _GdaDataModel        GdaDataModel;
 
 typedef struct _GdaDataProxy GdaDataProxy;

Modified: trunk/libgda/gda-holder.h
==============================================================================
--- trunk/libgda/gda-holder.h	(original)
+++ trunk/libgda/gda-holder.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-holder.h
  *
- * Copyright (C) 2003 - 2006 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -58,6 +58,12 @@
 	void                     (*source_changed)   (GdaHolder *holder);
 	GError                  *(*validate_change)  (GdaHolder *holder, const GValue *new_value);
 	void                     (*att_changed)      (GdaHolder *holder, const gchar *att_name, const GValue *att_value);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_holder_get_type                (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-lockable.c
==============================================================================
--- trunk/libgda/gda-lockable.c	(original)
+++ trunk/libgda/gda-lockable.c	Thu Feb  5 18:21:48 2009
@@ -33,7 +33,7 @@
 
 	if (G_UNLIKELY (type == 0)) {
 		static const GTypeInfo info = {
-			sizeof (GdaLockableClass),
+			sizeof (GdaLockableIface),
 			(GBaseInitFunc) gda_lockable_class_init,
 			(GBaseFinalizeFunc) NULL,
 			(GClassInitFunc) NULL,

Modified: trunk/libgda/gda-lockable.h
==============================================================================
--- trunk/libgda/gda-lockable.h	(original)
+++ trunk/libgda/gda-lockable.h	Thu Feb  5 18:21:48 2009
@@ -30,13 +30,13 @@
 #define GDA_TYPE_LOCKABLE            (gda_lockable_get_type())
 #define GDA_LOCKABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST (obj, GDA_TYPE_LOCKABLE, GdaLockable))
 #define GDA_IS_LOCKABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE (obj, GDA_TYPE_LOCKABLE))
-#define GDA_LOCKABLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_LOCKABLE, GdaLockableClass))
+#define GDA_LOCKABLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_TYPE_LOCKABLE, GdaLockableIface))
 
-typedef struct _GdaLockableClass   GdaLockableClass;
+typedef struct _GdaLockableIface   GdaLockableIface;
 typedef struct _GdaLockable        GdaLockable;
 
 /* struct for the interface */
-struct _GdaLockableClass {
+struct _GdaLockableIface {
 	GTypeInterface           g_iface;
 
 	/* virtual table */

Modified: trunk/libgda/gda-log.h
==============================================================================
--- trunk/libgda/gda-log.h	(original)
+++ trunk/libgda/gda-log.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA Common Library
- * Copyright (C) 1998-2002 The GNOME Foundation.
+ * Copyright (C) 1998 - 2002 The GNOME Foundation.
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -17,8 +17,8 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#if !defined(__gda_log_h__)
-#  define __gda_log_h__
+#ifndef __GDA_LOG_H__
+#define __GDA_LOG_H__
 
 #include <glib.h>
 #include <time.h>

Modified: trunk/libgda/gda-meta-store.h
==============================================================================
--- trunk/libgda/gda-meta-store.h	(original)
+++ trunk/libgda/gda-meta-store.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-meta-store.h
  *
- * Copyright (C) 2008 Vivien Malerba
+ * Copyright (C) 2008 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -94,6 +94,12 @@
 	void     (*meta_reset)    (GdaMetaStore *store);
 	GError  *(*suggest_update)(GdaMetaStore *store, GdaMetaContext *suggest);
 	void     (*meta_changed)  (GdaMetaStore *store, GSList *changes);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType             gda_meta_store_get_type                 (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-meta-struct.h
==============================================================================
--- trunk/libgda/gda-meta-struct.h	(original)
+++ trunk/libgda/gda-meta-struct.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-meta-struct.h
  *
- * Copyright (C) 2008 Vivien Malerba
+ * Copyright (C) 2008 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -56,6 +56,12 @@
 struct _GdaMetaStructClass
 {
 	GObjectClass              parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 /*
@@ -101,6 +107,12 @@
 	/* Foreign keys */
 	GSList       *reverse_fk_list; /* list of GdaMetaTableForeignKey where @depend_on == this GdaMetaDbObject */
 	GSList       *fk_list; /* list of GdaMetaTableForeignKey where @meta_table == this GdaMetaDbObject */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaMetaTable;
 
 /**
@@ -111,6 +123,12 @@
 	GdaMetaTable  table;
 	gchar        *view_def;
 	gboolean      is_updatable;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaMetaView;
 
 /*
@@ -135,6 +153,12 @@
 	gchar                  *obj_owner;
 
 	GSList                 *depend_list; /* list of GdaMetaDbObject pointers on which this object depends */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaMetaDbObject;
 #define GDA_META_DB_OBJECT(x) ((GdaMetaDbObject*)(x))
 #define GDA_META_TABLE(dbobj) (&((dbobj)->extra.meta_table))
@@ -147,6 +171,12 @@
 	gboolean      pkey;
 	gboolean      nullok;
 	gchar        *default_value;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaMetaTableColumn;
 #define GDA_META_TABLE_COLUMN(x) ((GdaMetaTableColumn*)(x))
 const GValue *gda_meta_table_column_get_attribute (GdaMetaTableColumn *tcol, const gchar *attribute);
@@ -173,6 +203,12 @@
 	gchar           **fk_names_array; /* FK fields names */
 	gint             *ref_pk_cols_array; /* Ref PK fields index */
 	gchar           **ref_pk_names_array; /* Ref PK fields names */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
+	gpointer _gda_reserved3;
+	gpointer _gda_reserved4;
 } GdaMetaTableForeignKey;
 #define GDA_META_TABLE_FOREIGN_KEY(x) ((GdaMetaTableForeignKey*)(x))
 

Modified: trunk/libgda/gda-row.h
==============================================================================
--- trunk/libgda/gda-row.h	(original)
+++ trunk/libgda/gda-row.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 1998 - 2008 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Michael Lausch <michael lausch at>
@@ -47,6 +47,12 @@
 
 struct _GdaRowClass {
 	GObjectClass   parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_row_get_type       (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-server-operation.h
==============================================================================
--- trunk/libgda/gda-server-operation.h	(original)
+++ trunk/libgda/gda-server-operation.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 2006 The GNOME Foundation.
+ * Copyright (C) 2006 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -99,6 +99,11 @@
 	void                     (*seq_item_added) (GdaServerOperation *op, const gchar *seq_path, gint item_index);
 	void                     (*seq_item_remove) (GdaServerOperation *op, const gchar *seq_path, gint item_index);
 
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType                      gda_server_operation_get_type                (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-server-provider.h
==============================================================================
--- trunk/libgda/gda-server-provider.h	(original)
+++ trunk/libgda/gda-server-provider.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 1998 - 2008 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *	Rodrigo Moya <rodrigo gnome-db org>
@@ -178,6 +178,24 @@
 	gboolean (*routine_par)      (GdaServerProvider *, GdaConnection *, GdaMetaStore *, GdaMetaContext *, GError **,
 				      const GValue *rout_catalog, const GValue *rout_schema, const GValue *rout_name);
 	
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
+	void (*_gda_reserved5) (void);
+	void (*_gda_reserved6) (void);
+	void (*_gda_reserved7) (void);
+	void (*_gda_reserved8) (void);
+	void (*_gda_reserved9) (void);
+	void (*_gda_reserved10) (void);
+	void (*_gda_reserved11) (void);
+	void (*_gda_reserved12) (void);
+	void (*_gda_reserved13) (void);
+	void (*_gda_reserved14) (void);
+	void (*_gda_reserved15) (void);
+	void (*_gda_reserved16) (void);
+
 } GdaServerProviderMeta;
 
 /* distributed transaction support */

Modified: trunk/libgda/gda-set.h
==============================================================================
--- trunk/libgda/gda-set.h	(original)
+++ trunk/libgda/gda-set.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-set.h
  *
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -117,6 +117,12 @@
 	void                  (*holder_attr_changed)   (GdaSet *set, GdaHolder *holder, 
 							const gchar *attr_name, const GValue *attr_value);
 	void                  (*public_data_changed)   (GdaSet *set);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_set_get_type                 (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-statement-extra.h
==============================================================================
--- trunk/libgda/gda-statement-extra.h	(original)
+++ trunk/libgda/gda-statement-extra.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-statement-extra.h
  *
- * Copyright (C) 2005 - 2007 Vivien Malerba
+ * Copyright (C) 2005 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -76,6 +76,16 @@
 	GdaSqlRenderingFunc      render_select_join;
 	GdaSqlRenderingFunc      render_select_from;
 	GdaSqlRenderingFunc      render_select_order;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
+	void (*_gda_reserved5) (void);
+	void (*_gda_reserved6) (void);
+	void (*_gda_reserved7) (void);
+	void (*_gda_reserved8) (void);
 };
 
 gchar *gda_statement_to_sql_real (GdaStatement *stmt, GdaSqlRenderingContext *context, GError **error);

Modified: trunk/libgda/gda-statement.h
==============================================================================
--- trunk/libgda/gda-statement.h	(original)
+++ trunk/libgda/gda-statement.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-statement.h
  *
- * Copyright (C) 2007 - 2008 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -80,6 +80,12 @@
 	/* signals */
 	void   (*checked)   (GdaStatement *stmt, GdaConnection *cnc, gboolean checked);
 	void   (*reset)     (GdaStatement *stmt);
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_statement_get_type               (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-transaction-status.h
==============================================================================
--- trunk/libgda/gda-transaction-status.h	(original)
+++ trunk/libgda/gda-transaction-status.h	Thu Feb  5 18:21:48 2009
@@ -62,8 +62,8 @@
 	} pl;
 	GdaConnectionEvent           *conn_event;
 
-	gpointer  reserved1;
-	gpointer  reserved2;
+	gpointer  _gda_reserved1;
+	gpointer  _gda_reserved2;
 };
 
 struct _GdaTransactionStatus {
@@ -73,11 +73,19 @@
 	GdaTransactionIsolation    isolation_level;
 	GdaTransactionStatusState  state;
 	GList                     *events;
+
+	gpointer  _gda_reserved1;
+	gpointer  _gda_reserved2;
 };
 
 struct _GdaTransactionStatusClass {
 	GObjectClass             parent_class;
-	gpointer                 reserved[10];
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType                 gda_transaction_status_get_type (void) G_GNUC_CONST;

Modified: trunk/libgda/gda-xa-transaction.h
==============================================================================
--- trunk/libgda/gda-xa-transaction.h	(original)
+++ trunk/libgda/gda-xa-transaction.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA library
- * Copyright (C) 2008 The GNOME Foundation.
+ * Copyright (C) 2008 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -57,6 +57,12 @@
 
 struct _GdaXaTransactionClass {
 	GObjectClass             parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 struct _GdaXaTransactionId {

Modified: trunk/libgda/handlers/gda-handler-bin.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-bin.h	(original)
+++ trunk/libgda/handlers/gda-handler-bin.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-bin.h
  *
- * Copyright (C) 2005 - 2008 Vivien Malerba
+ * Copyright (C) 2005 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -39,7 +39,6 @@
 struct _GdaHandlerBin
 {
 	GObject             object;
-
 	GdaHandlerBinPriv  *priv;
 };
 
@@ -47,6 +46,10 @@
 struct _GdaHandlerBinClass
 {
 	GObjectClass        parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/handlers/gda-handler-boolean.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-boolean.h	(original)
+++ trunk/libgda/handlers/gda-handler-boolean.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-boolean.h
  *
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -39,7 +39,6 @@
 struct _GdaHandlerBoolean
 {
 	GObject                 object;
-
 	GdaHandlerBooleanPriv  *priv;
 };
 
@@ -47,6 +46,10 @@
 struct _GdaHandlerBooleanClass
 {
 	GObjectClass           parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/handlers/gda-handler-numerical.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-numerical.h	(original)
+++ trunk/libgda/handlers/gda-handler-numerical.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-numerical.h
  *
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -40,7 +40,6 @@
 struct _GdaHandlerNumerical
 {
 	GObject                   object;
-
 	GdaHandlerNumericalPriv  *priv;
 };
 
@@ -48,6 +47,10 @@
 struct _GdaHandlerNumericalClass
 {
 	GObjectClass              parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/handlers/gda-handler-string.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-string.h	(original)
+++ trunk/libgda/handlers/gda-handler-string.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-string.h
  *
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -39,7 +39,6 @@
 struct _GdaHandlerString
 {
 	GObject                object;
-
 	GdaHandlerStringPriv  *priv;
 };
 
@@ -47,6 +46,10 @@
 struct _GdaHandlerStringClass
 {
 	GObjectClass           parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/handlers/gda-handler-time.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-time.h	(original)
+++ trunk/libgda/handlers/gda-handler-time.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-time.h
  *
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -39,7 +39,6 @@
 struct _GdaHandlerTime
 {
 	GObject              object;
-
 	GdaHandlerTimePriv  *priv;
 };
 
@@ -47,6 +46,10 @@
 struct _GdaHandlerTimeClass
 {
 	GObjectClass         parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/handlers/gda-handler-type.h
==============================================================================
--- trunk/libgda/handlers/gda-handler-type.h	(original)
+++ trunk/libgda/handlers/gda-handler-type.h	Thu Feb  5 18:21:48 2009
@@ -1,6 +1,6 @@
 /* gda-handler-type.h
  *
- * Copyright (C) 2005 - 2008 Vivien Malerba
+ * Copyright (C) 2005 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -39,7 +39,6 @@
 struct _GdaHandlerType
 {
 	GObject             object;
-
 	GdaHandlerTypePriv *priv;
 };
 
@@ -47,6 +46,10 @@
 struct _GdaHandlerTypeClass
 {
 	GObjectClass        parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 

Modified: trunk/libgda/providers-support/gda-pstmt.h
==============================================================================
--- trunk/libgda/providers-support/gda-pstmt.h	(original)
+++ trunk/libgda/providers-support/gda-pstmt.h	Thu Feb  5 18:21:48 2009
@@ -50,10 +50,20 @@
         GType        *types; /* array of ncols types */
 	GSList       *tmpl_columns; /* list of #GdaColumn objects which data models created from this prep. statement
 				     * can copy */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 struct _GdaPStmtClass {
 	GObjectClass  parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType         gda_pstmt_get_type          (void) G_GNUC_CONST;

Modified: trunk/libgda/sql-parser/gda-sql-parser-private.h
==============================================================================
--- trunk/libgda/sql-parser/gda-sql-parser-private.h	(original)
+++ trunk/libgda/sql-parser/gda-sql-parser-private.h	Thu Feb  5 18:21:48 2009
@@ -37,6 +37,10 @@
         gboolean  in_param_spec;
         gint      block_level;
 	gboolean  ignore_semi; /* ignore any SEMI untill the next END statement where block_level==0 */
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
 } TokenizerContext;
 
 struct _GdaSqlParserPrivate {
@@ -63,6 +67,10 @@
         /* modes */
         GdaSqlParserMode     mode;
 	GdaSqlParserFlavour flavour;
+
+	/* Padding for future expansion */
+	gpointer _gda_reserved1;
+	gpointer _gda_reserved2;
 };
 
 G_END_DECLS

Modified: trunk/libgda/sql-parser/gda-sql-parser.c
==============================================================================
--- trunk/libgda/sql-parser/gda-sql-parser.c	(original)
+++ trunk/libgda/sql-parser/gda-sql-parser.c	Thu Feb  5 18:21:48 2009
@@ -48,7 +48,7 @@
 					GParamSpec *pspec);
 
 /* GdaLockable interface */
-static void                 gda_sql_parser_lockable_init (GdaLockableClass *iface);
+static void                 gda_sql_parser_lockable_init (GdaLockableIface *iface);
 static void                 gda_sql_parser_lock      (GdaLockable *lockable);
 static gboolean             gda_sql_parser_trylock   (GdaLockable *lockable);
 static void                 gda_sql_parser_unlock    (GdaLockable *lockable);
@@ -184,7 +184,7 @@
 }
 
 static void
-gda_sql_parser_lockable_init (GdaLockableClass *iface)
+gda_sql_parser_lockable_init (GdaLockableIface *iface)
 {
 	iface->i_lock = gda_sql_parser_lock;
 	iface->i_trylock = gda_sql_parser_trylock;

Modified: trunk/libgda/sql-parser/gda-sql-parser.h
==============================================================================
--- trunk/libgda/sql-parser/gda-sql-parser.h	(original)
+++ trunk/libgda/sql-parser/gda-sql-parser.h	Thu Feb  5 18:21:48 2009
@@ -71,6 +71,10 @@
 {
 	GdaSqlParser    *parser;
 	GdaSqlStatement *parsed_statement;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 } GdaSqlParserIface;
 
 /* struct for the object's class */
@@ -90,6 +94,12 @@
 	void (*parser_trace) (void*, char *);
 	void (*parser_parse) (void*, int, GValue *, GdaSqlParserIface *);	
 	gint *parser_tokens_trans;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_sql_parser_get_type               (void) G_GNUC_CONST;

Modified: trunk/libgda/sql-parser/gda-statement-struct-compound.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-compound.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-compound.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -44,6 +44,10 @@
 	GdaSqlAnyPart                any;
 	GdaSqlStatementCompoundType  compound_type;
 	GSList                      *stmt_list; /* list of SELECT or COMPOUND statements */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-decl.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-decl.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-decl.h	Thu Feb  5 18:21:48 2009
@@ -142,6 +142,12 @@
 	/* augmenting information precision using a dictionary */
 	GdaSqlForeachFunc     check_structure_func;
 	GdaSqlForeachFunc     check_validity_func;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
+	gpointer         _gda_reserved3;
+	gpointer         _gda_reserved4;
 } GdaSqlStatementContentsInfo;
 
 /*
@@ -152,6 +158,12 @@
 	GdaConnection *cnc;
 	GdaMetaStore  *store;
 	GdaMetaStruct *mstruct;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
+	gpointer         _gda_reserved3;
+	gpointer         _gda_reserved4;
 } GdaSqlStatementCheckValidityData;
 
 #endif

Modified: trunk/libgda/sql-parser/gda-statement-struct-delete.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-delete.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-delete.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -33,6 +33,10 @@
 	GdaSqlAnyPart any;
 	GdaSqlTable  *table;
 	GdaSqlExpr   *cond;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-insert.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-insert.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-insert.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -36,6 +36,10 @@
 	GSList                 *fields_list; /* list of GdaSqlField structures */
 	GSList                 *values_list; /* list of list of GdaSqlExpr */
 	GdaSqlAnyPart          *select; /* SELECT OR COMPOUND statements: GdaSqlStatementSelect or GdaSqlStatementCompound */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-parts.c
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-parts.c	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-parts.c	Thu Feb  5 18:21:48 2009
@@ -443,7 +443,6 @@
 {
 	if (!function) return;
 
-	gda_sql_function_check_clean (function);
 	g_free (function->function_name);
 	if (function->args_list) {
 		g_slist_foreach (function->args_list, (GFunc) gda_sql_expr_free, NULL);
@@ -480,7 +479,6 @@
 		}
 		copy->args_list = g_slist_reverse (copy->args_list);
 	}
-	copy->validity_meta_function = function->validity_meta_function;
 
 	return copy;
 }

Modified: trunk/libgda/sql-parser/gda-statement-struct-parts.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-parts.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-parts.h	Thu Feb  5 18:21:48 2009
@@ -52,6 +52,10 @@
 	GdaSqlCase      *case_s;
 
 	gchar           *cast_as;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 GdaSqlExpr      *gda_sql_expr_new            (GdaSqlAnyPart *parent);
 void             gda_sql_expr_free           (GdaSqlExpr *expr);
@@ -70,6 +74,10 @@
 
 	/* validity check with a connection */
 	GdaMetaTableColumn *validity_meta_table_column;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 GdaSqlField     *gda_sql_field_new            (GdaSqlAnyPart *parent);
 void             gda_sql_field_free           (GdaSqlField *field);
@@ -89,6 +97,10 @@
 
 	/* validity check with a connection */
 	GdaMetaDbObject    *validity_meta_object;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlTable     *gda_sql_table_new            (GdaSqlAnyPart *parent);
@@ -107,8 +119,9 @@
 	gchar              *function_name;
 	GSList             *args_list;
 
-	/* validity check with a connection */
-	gpointer            validity_meta_function; /* to be replaced with a pointer to a structure representing a DBMS data type in GdaMetaStruct */
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlFunction  *gda_sql_function_new            (GdaSqlAnyPart *parent);
@@ -162,6 +175,10 @@
 	GdaSqlAnyPart       any;
 	GdaSqlOperatorType  operator_type;
 	GSList             *operands;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlOperation  *gda_sql_operation_new            (GdaSqlAnyPart *parent);
@@ -181,6 +198,10 @@
 	GSList          *when_expr_list;
 	GSList          *then_expr_list;
 	GdaSqlExpr      *else_expr;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlCase        *gda_sql_case_new            (GdaSqlAnyPart *parent);
@@ -202,6 +223,10 @@
 	/* validity check with a connection */
 	GdaMetaDbObject    *validity_meta_object;
 	GdaMetaTableColumn *validity_meta_table_column;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlSelectField *gda_sql_select_field_new            (GdaSqlAnyPart *parent);
@@ -226,6 +251,10 @@
 
 	/* validity check with a connection */
 	GdaMetaDbObject    *validity_meta_object;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlSelectTarget *gda_sql_select_target_new            (GdaSqlAnyPart *parent);
@@ -256,6 +285,10 @@
 	gint                  position; /* between a target at (pos < @position) and the one @position */
 	GdaSqlExpr           *expr;
 	GSList               *use;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlSelectJoin  *gda_sql_select_join_new            (GdaSqlAnyPart *parent);
@@ -274,6 +307,10 @@
 	GdaSqlAnyPart    any;
 	GSList          *targets; 
 	GSList          *joins; 
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlSelectFrom  *gda_sql_select_from_new            (GdaSqlAnyPart *parent);
@@ -293,6 +330,10 @@
 	GdaSqlExpr      *expr; 
 	gboolean         asc;
 	gchar           *collation_name;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlSelectOrder *gda_sql_select_order_new            (GdaSqlAnyPart *parent);

Modified: trunk/libgda/sql-parser/gda-statement-struct-pspec.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-pspec.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-pspec.h	Thu Feb  5 18:21:48 2009
@@ -37,6 +37,10 @@
 
 	GType     g_type;
 	gpointer  validity_meta_dict; /* to be replaced with a pointer to a structure representing a DBMS data type in GdaMetaStruct */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 GdaSqlParamSpec *gda_sql_param_spec_new        (GValue *simple_spec);
 GdaSqlParamSpec *gda_sql_param_spec_copy       (GdaSqlParamSpec *pspec);

Modified: trunk/libgda/sql-parser/gda-statement-struct-select.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-select.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-select.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -43,6 +43,10 @@
 
 	GdaSqlExpr       *limit_count;
 	GdaSqlExpr       *limit_offset;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-trans.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-trans.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-trans.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -34,6 +34,10 @@
 	GdaTransactionIsolation isolation_level;
 	gchar                  *trans_mode; /* DEFERRED, IMMEDIATE, EXCLUSIVE, READ_WRITE, READ_ONLY */
 	gchar                  *trans_name;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-unknown.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-unknown.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-unknown.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -31,6 +31,10 @@
 struct _GdaSqlStatementUnknown {
 	GdaSqlAnyPart  any;
 	GSList        *expressions; /* list of GdaSqlExpr pointers */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct-update.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct-update.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct-update.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 Vivien Malerba
+ * Copyright (C) 2007 - 2009  Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -36,6 +36,10 @@
 	GSList           *fields_list; /* list of GdaSqlField pointers */
 	GSList           *expr_list;   /* list of GdaSqlExpr pointers */
 	GdaSqlExpr       *cond;
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 /*

Modified: trunk/libgda/sql-parser/gda-statement-struct.c
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct.c	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct.c	Thu Feb  5 18:21:48 2009
@@ -249,7 +249,6 @@
 static gboolean gda_sql_expr_check_validity (GdaSqlExpr *expr, GdaSqlStatementCheckValidityData *data, GError **error);
 static gboolean gda_sql_field_check_validity (GdaSqlField *field, GdaSqlStatementCheckValidityData *data, GError **error);
 static gboolean gda_sql_table_check_validity (GdaSqlTable *table, GdaSqlStatementCheckValidityData *data, GError **error);
-static gboolean gda_sql_function_check_validity (GdaSqlFunction *function, GdaSqlStatementCheckValidityData *data, GError **error);
 static gboolean gda_sql_select_field_check_validity (GdaSqlSelectField *field, GdaSqlStatementCheckValidityData *data, GError **error);
 static gboolean gda_sql_select_target_check_validity (GdaSqlSelectTarget *target, GdaSqlStatementCheckValidityData *data, GError **error);
 
@@ -369,7 +368,7 @@
 				function->function_name = NULL;
 			}
 		}
-		return gda_sql_function_check_validity (function, data, error);
+		return TRUE;
 	}
 	case GDA_SQL_ANY_SQL_SELECT_FIELD: {
 		GdaSqlSelectField *field = (GdaSqlSelectField*) node;
@@ -622,22 +621,6 @@
 }
 
 static gboolean
-gda_sql_function_check_validity (GdaSqlFunction *function, GdaSqlStatementCheckValidityData *data, GError **error)
-{
-	if (!function) return TRUE;
-
-        TO_IMPLEMENT;
-        return TRUE;
-}
-
-void
-gda_sql_function_check_clean (GdaSqlFunction *function)
-{
-	if (!function) return;
-	function->validity_meta_function = NULL;
-}
-
-static gboolean
 gda_sql_select_field_check_validity (GdaSqlSelectField *field, GdaSqlStatementCheckValidityData *data, GError **error)
 {
 	GValue value;
@@ -808,9 +791,6 @@
 	case GDA_SQL_ANY_SQL_TABLE:
 		gda_sql_table_check_clean ((GdaSqlTable*) node);
 		break;
-	case GDA_SQL_ANY_SQL_FUNCTION:
-		gda_sql_function_check_clean ((GdaSqlFunction*) node);
-		break;
 	case GDA_SQL_ANY_SQL_SELECT_FIELD:
 		gda_sql_select_field_check_clean ((GdaSqlSelectField*) node);
 		break;

Modified: trunk/libgda/sql-parser/gda-statement-struct.h
==============================================================================
--- trunk/libgda/sql-parser/gda-statement-struct.h	(original)
+++ trunk/libgda/sql-parser/gda-statement-struct.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2007 - 2008 Vivien Malerba
+ * Copyright (C) 2007 - 2009 Vivien Malerba
  *
  * This Library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public License as
@@ -30,6 +30,10 @@
 	GdaSqlStatementType  stmt_type;
 	gpointer             contents; /* depends on stmt_type */
 	GdaMetaStruct       *validity_meta_struct; /* set when gda_sql_statement_check_validity() was last called */
+
+	/* Padding for future expansion */
+	gpointer         _gda_reserved1;
+	gpointer         _gda_reserved2;
 };
 
 GdaSqlStatement             *gda_sql_statement_new       (GdaSqlStatementType type);

Modified: trunk/libgda/sqlite/gda-sqlite-provider.c
==============================================================================
--- trunk/libgda/sqlite/gda-sqlite-provider.c	(original)
+++ trunk/libgda/sqlite/gda-sqlite-provider.c	Thu Feb  5 18:21:48 2009
@@ -2216,10 +2216,6 @@
                 return NULL;
 	}
 
-	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
-	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
-		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
-	
 	allow_noparam = (model_usage & GDA_STATEMENT_MODEL_ALLOW_NOPARAM) &&
 		(gda_statement_get_statement_type (stmt) == GDA_SQL_STATEMENT_SELECT);
 

Modified: trunk/libgda/sqlite/gda-sqlite-provider.h
==============================================================================
--- trunk/libgda/sqlite/gda-sqlite-provider.h	(original)
+++ trunk/libgda/sqlite/gda-sqlite-provider.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA SQLite provider
- * Copyright (C) 1998 - 2008 The GNOME Foundation.
+ * Copyright (C) 1998 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *	Rodrigo Moya <rodrigo gnome-db org>
@@ -42,6 +42,10 @@
 
 struct _GdaSqliteProviderClass {
 	GdaServerProviderClass parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 G_BEGIN_DECLS

Modified: trunk/libgda/sqlite/virtual/gda-vconnection-data-model-private.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-vconnection-data-model-private.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-vconnection-data-model-private.h	Thu Feb  5 18:21:48 2009
@@ -33,6 +33,9 @@
 	GList                       *columns;
 	gchar                       *table_name;
 	gchar                       *unique_name;
+
+	gpointer _gda_reserved_1;
+	gpointer _gda_reserved_2;
 } GdaVConnectionTableData;
 
 void                     gda_vconnection_data_model_table_data_free (GdaVConnectionTableData *td);

Modified: trunk/libgda/sqlite/virtual/gda-vconnection-data-model.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-vconnection-data-model.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-vconnection-data-model.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -45,6 +45,10 @@
 	GdaDataModel                             *data_model;
 	GdaVconnectionDataModelCreateColumnsFunc  create_columns_func;
 	GdaVconnectionDataModelCreateModelFunc    create_model_func;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 #define GDA_VCONNECTION_DATA_MODEL_SPEC(x) ((GdaVconnectionDataModelSpec*)(x))
 
@@ -57,6 +61,10 @@
 
 struct _GdaVconnectionDataModelClass {
 	GdaVirtualConnectionClass       parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 GType               gda_vconnection_data_model_get_type  (void) G_GNUC_CONST;

Modified: trunk/libgda/sqlite/virtual/gda-vconnection-hub.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-vconnection-hub.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-vconnection-hub.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -46,6 +46,12 @@
 
 struct _GdaVconnectionHubClass {
 	GdaVconnectionDataModelClass parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_vconnection_hub_get_type       (void) G_GNUC_CONST;

Modified: trunk/libgda/sqlite/virtual/gda-virtual-connection.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-virtual-connection.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-virtual-connection.h	Thu Feb  5 18:21:48 2009
@@ -45,6 +45,12 @@
 
 struct _GdaVirtualConnectionClass {
 	GdaConnectionClass           parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType          gda_virtual_connection_get_type                   (void) G_GNUC_CONST;

Modified: trunk/libgda/sqlite/virtual/gda-virtual-provider.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-virtual-provider.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-virtual-provider.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA virtual provider (based on SQLite)
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -46,6 +46,10 @@
 
 struct _GdaVirtualProviderClass {
 	GdaSqliteProviderClass      parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
 };
 
 GType          gda_virtual_provider_get_type          (void) G_GNUC_CONST;

Modified: trunk/libgda/sqlite/virtual/gda-vprovider-data-model.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-vprovider-data-model.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-vprovider-data-model.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA SQLite vprovider for GdaDataModel
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -44,6 +44,12 @@
 
 struct _GdaVproviderDataModelClass {
 	GdaVirtualProviderClass       parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_vprovider_data_model_get_type (void) G_GNUC_CONST;

Modified: trunk/libgda/sqlite/virtual/gda-vprovider-hub.h
==============================================================================
--- trunk/libgda/sqlite/virtual/gda-vprovider-hub.h	(original)
+++ trunk/libgda/sqlite/virtual/gda-vprovider-hub.h	Thu Feb  5 18:21:48 2009
@@ -1,5 +1,5 @@
 /* GDA SQLite vprovider for Hub of connections
- * Copyright (C) 2007 The GNOME Foundation.
+ * Copyright (C) 2007 - 2009 The GNOME Foundation.
  *
  * AUTHORS:
  *      Vivien Malerba <malerba gnome-db org>
@@ -44,6 +44,12 @@
 
 struct _GdaVproviderHubClass {
 	GdaVproviderDataModelClass parent_class;
+
+	/* Padding for future expansion */
+	void (*_gda_reserved1) (void);
+	void (*_gda_reserved2) (void);
+	void (*_gda_reserved3) (void);
+	void (*_gda_reserved4) (void);
 };
 
 GType               gda_vprovider_hub_get_type (void) G_GNUC_CONST;

Modified: trunk/providers/mysql/gda-mysql-provider.c
==============================================================================
--- trunk/providers/mysql/gda-mysql-provider.c	(original)
+++ trunk/providers/mysql/gda-mysql-provider.c	Thu Feb  5 18:21:48 2009
@@ -1309,10 +1309,6 @@
                 return FALSE;
 	}
 
-	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
-	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
-		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
-
 	allow_noparam = (model_usage & GDA_STATEMENT_MODEL_ALLOW_NOPARAM) &&
 		(gda_statement_get_statement_type (stmt) == GDA_SQL_STATEMENT_SELECT);
 

Modified: trunk/providers/postgres/gda-postgres-provider.c
==============================================================================
--- trunk/providers/postgres/gda-postgres-provider.c	(original)
+++ trunk/providers/postgres/gda-postgres-provider.c	Thu Feb  5 18:21:48 2009
@@ -1947,9 +1947,8 @@
                 return NULL;
 	}
 
-	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
-	    ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
-		model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
+	g_assert ((model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) ||
+		  (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD));
 
 	allow_noparam = (model_usage & GDA_STATEMENT_MODEL_ALLOW_NOPARAM) &&
 		(gda_statement_get_statement_type (stmt) == GDA_SQL_STATEMENT_SELECT);

Modified: trunk/providers/skel-implementation/capi/gda-capi-provider.c
==============================================================================
--- trunk/providers/skel-implementation/capi/gda-capi-provider.c	(original)
+++ trunk/providers/skel-implementation/capi/gda-capi-provider.c	Thu Feb  5 18:21:48 2009
@@ -1011,10 +1011,6 @@
                 return NULL;
 	}
 
-	if (! (model_usage & GDA_STATEMENT_MODEL_RANDOM_ACCESS) &&
-            ! (model_usage & GDA_STATEMENT_MODEL_CURSOR_FORWARD))
-                model_usage |= GDA_STATEMENT_MODEL_RANDOM_ACCESS;
-	
         allow_noparam = (model_usage & GDA_STATEMENT_MODEL_ALLOW_NOPARAM) &&
                 (gda_statement_get_statement_type (stmt) == GDA_SQL_STATEMENT_SELECT);
 	



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]