2008-09-16 Vivien Malerba * NEWS: news for version 3.99.4 * libgda/libgda.h.in: * libgda/gda-init.c: added gda_get_application_exec_path() * libgda/gda-connection.[ch]: removed gda_connection_set_dsn() * libgda/gda-data-model.[ch]: - removed gda_data_model_get_value_at_column() - removed gda_data_model_is_updatable() * libgda/gda-data-model-iter.[ch]: added gda_data_model_iter_set_value_at() * libgda/gda-data-proxy.[ch]: removed gda_data_proxy_find_row_from_values() as there is already gda_data_model_get_row_from_values() for the same feature * API changes (more consistant naming): - GdaDataSourceInfo => GdaDsnInfo - gda_connection_get_provider_obj() => gda_connection_get_provider() - gda_config_get_dsn() => gda_config_get_dsn_info() - gda_config_get_provider_object() => gda_config_get_provider() - gda_connection_get_provider_obj() => gda_connection_get_provider() * po/: ran "make update-po" 2008-09-15 Vivien Malerba * doc/C: documentation improvements regarding data validation and programmer's control * libgda/gda-holder.[ch]: renamed the "before-change" signal to "validate-change" (and changed its return value) * libgda/gda-set.[ch]: - changed the "before-holder-change" to "validate_holder_change"(and changed its return value) - added a "validate-set" signal - the gda_set_is_valid() method has been changed to emit the "validate-set" signal before it returns a value. * libgda/gda-data-model-iter.[ch]: removed the "row-to-change" signal (it now uses the GdaSet::validate-set signal), and the gda_data_model_iter_can_be_moved() method * libgda/gda-server-operation.c: * libgda/gda-data-model.c: adaptations to the API Changes * libgda/gda-data-proxy.[ch]: - adaptations to the API Changes, - renamed the "pre-changes-applied" signal to "validate-row-changes" (and changed its return value) - renamed the "post-changes-applied" signal to "row-changes-applied" - bug correction in gda_data_proxy_get_n_rows() * libgda/gda-marshal.list: new signals' signatures * libgda/gda-data-comparator.c: added assertions * libgda/gda-connection.c: don't remove items from a GHashTable while in g_hash_table_foreach(), this is probably the reason for bug #545979 * libgda/gda-value.c: corrected the gda_value_differ() function * libgda/sqlite/virtual/gda-vprovider-data-model.c: corrected the virtualNext() method which moves SQLite's internal cursor forward * libgda/gda-data-model-iter.[ch]: renamed gda_data_model_iter_set_at_row() to gda_data_model_iter_move_at_row() * libgda/Makefile.am: * libgda/gda-data-model-iter-extra.h: new file * libgda/gda-data-model-extra.h: * libgda/gda-data-model-private.h: * libgda/gda-data-model-import.c: * libgda/gda-data-model.c: * libgda/gda-data-proxy.c: * libgda/gda-data-select.c: * libgda/sqlite/virtual/virtual-test.c: - moved the code which implements the GdaDataModelIter movements (forward, backward and to a row) to the gda-data-model-iter.c file - renamed gda_data_model_move_iter_at_row_default() to gda_data_model_iter_move_at_row_default() - renamed gda_data_model_move_iter_next_default() to gda_data_model_iter_move_next_default() - renamed gda_data_model_move_iter_prev_default() to gda_data_model_iter_move_prev_default() * libgda/sqlite/sqlite-src/: up to version 3.6.2 * tests/value-holders/: adaptations to the API Changes 2008-09-09 Vivien Malerba * libgda/sqlite/virtual/gda-virtual-connection.c: * libgda/sqlite/gda-sqlite-recordset.c: * libgda/gda-column.[ch]: * libgda/gda-data-model.c: * libgda/gda-data-model-import.c: * libgda/gda-data-model-array.c: removed gda_column_[gs]et_table(), gda_column_[gs]et_caption(), gda_column_[gs]et_scale(), gda_column_[gs]et_primary_key(), gda_column_[gs]et_unique_key(), gda_column_[gs]et_references() and gda_column_[gs]et_defined_size() as they were useless * libgda-report/engine/gda-report-engine.c: forgot to rename "spec-file" to "spec-filename" property * libgda/gda-data-select.c: added a "select-stmt" property to retreive (if available), the GdaStatement object which was executed in order to created the GdaDataSelect data model. * libgda/gda-data-model-iter.c: when the data model the iterator will be for is a GdaDataSelect, then use the SELECT statement to set some holder's properties (such as NOT NULL and default value), contributes to fixing bug #551058 * libgda/sqlite/gda-sqlite-recordset.c: don't set GdaColumn's properties as we can't determine them correctly at this point, contributes to fixing bug #551058 * libgda/sqlite/virtual/gda-virtual-connection.c: added missing header file * libgda/gda-data-select.c: * libgda/gda-data-model-dsn-list.c: correctly implement the get_value_at() virtual method * libgda/gda-util.c: bug fixed in gda_compute_unique_table_row_condition() * tests/: tests update * doc/C: doc. update * libgda/gda-data-model.h: * all GdaDataModel's implementations: added a new virtual method "i_iter_set_value" to allow data modifications from a GdaDataModelIter * libgda/gda-holder.[ch]: * libgda/gda-set.[ch]: added GdaHoler "before-change" and GdaSet "before-holder-change" signals to enable control over the values a GdaHolder can have * libgda/gda-data-model-iter.c: use the new GdaDataModel's "i_iter_set_value" virtual method and GdaSet's new signal * Altered all the signal's names to use the '-' instead of '_' * tools/gda-list-server-op.c: compilation warnings fixes 2008-09-08 Vivien Malerba * libgda/gda-data-model-query.c: re-run the SELECT statement when any parameter required to execute it changes * libgda/gda-data-select.c: iterator related fixes, and don't change the GdaHolder's not NULL attribute when moving an iterator (it's not needed as this is set when the iterator was first created) * libgda/gda-data-select.h: * libgda/gda-set.h: removed unused error codes * tests/data-models: more testing * providers/postgres/gda-postgres-recordset.c: * tests/data-models/check_data_proxy.c: * samples/SqlParserConsole/graph.c: * libgda-report/engine/gda-report-engine.c: * libgda-report/DocBook/gda-report-docbook-document.c: * libgda/sqlite/virtual/gda-virtual-connection.c: * libgda/sqlite/virtual/gda-vprovider-data-model.c: * libgda/sqlite/virtual/gda-vconnection-data-model.c: * libgda/gda-data-model-import.c: * libgda/gda-data-model.c: * libgda/gda-data-proxy.c: * libgda/gda-data-model-array.c: * libgda/gda-data-select.c: * libgda/gda-set.c: * libgda/gda-config.c: * libgda/gda-connection.c: * libgda/gda-data-model-bdb.c: * libgda/gda-meta-store.c: * libgda/gda-holder.c: * libgda/gda-row.c: * libgda/gda-server-operation.c: * libgda/gda-data-model-iter.c: all signal names now only use the '-' and not '_', and renamed the "provider_obj" to "provider", "user-file" to "user-filename", "system-file" to "system-filename" and "spec-file" to "spec-filename" * libgda/gda-data-model-iter.c: * doc/C: documentation updates 2008-09-07 Vivien Malerba * libgda/gda-data-select.[ch]: * tests/data-models/check_pmodel.c: correctly handle the situation where the value of the primary key (or the column which composes the unique row condition) is modified, and added a "safety lock" feature which prevents further modification to the data model if the unique row condition is incorrect * doc/C: documentation improvements, and now the generated file when running "make PDF" is libgda-4.0-doc.pdf (for the V4 ABI). * libgda/sqlite/virtual/gda-vconnection-hub.c: no need anymore to use a GdaDataModelQuery object * libgda/Makefile.am: * libgda/gda-data-select-extra.h: * libgda/gda-data-select.[ch]: enable "exporting" all the statements and other information computed while the object was being used to be used by the new GdaDataModelQuery implementation * libgda/gda-data-model-query.[ch]: re-wrote the object to use the GdaDataSelect's features instead or re-implementing them in the object * libgda/tests/data-models/Makefile.am: * libgda/tests/data-models/check_model_query.c: new GdaDataModelQuery test * libgda/tests/data-models/check_pmodel.c: new tests 2008-09-05 Bas Driessen * providers/skel-implementation/capi/parser.y: * providers/firebird/parser.y: * providers/mysql/parser.y: * providers/postgres/parser.y: * providers/postgres/gda-postgres-provider.c: * libgda/gda-meta-store.c: * libgda/sqlite/gda-sqlite-provider.c: * libgda/sql-parser/gda-statement-struct.c: * libgda/sql-parser/parser.y: * libgda/sql-parser/gda-statement-struct-parts.c: * libgda/sql-parser/gda-statement-struct-parts.h: * libgda/gda-data-select.c: * libgda/gda-util.c: * libgda/gda-statement.c: Do not use the C++ reserved words 'using' and 'operator' as object names. 2008-09-04 Vivien Malerba API improvements and cleanups: * Utility functions changes: removed gda_value_compare_ext() as it has no real use and is confusing renamed gda_value_bcompare() gda_value_differ() * GdaDataModel interface changes: added a "GError **error" as last argument of gda_data_model_get_value_at () because it's the only way of reporting and correctly handling data access errors, and added gda_data_model_get_typed_value_at() which gives more control of the returned value renamed gda_data_model_get_column_index_by_name() to gda_data_model_get_column_index() renamed gda_data_model_get_value_at_col_name() to gda_data_model_get_value_at_column() * GdaHolder object changes: added a GError argument to: gda_holder_set_value() gda_holder_take_value() gda_holder_set_value_str() gda_holder_set_bind() * GdaSet object changes: added a GError argument to gda_set_set_holder_value() * GdaDataAccessWrapper changes: removed gda_data_access_wrapper_row_exists() as it was useless Misc doc improvements. 2008-09-01 Vivien Malerba * providers/skel-implementation/capi/gda-capi-recordset.c: * providers/firebird/gda-firebird-recordset.c: * providers/mysql/gda-mysql-recordset.c: * providers/postgres/gda-postgres-recordset.c: * libgda/sqlite/gda-sqlite-recordset.c: * libgda/gda-data-model-dir.c: * libgda/gda-data-model-bdb.c: * libgda/gda-data-model-array.c: harmonized error messages 2008-09-01 Vivien Malerba * libgda/gda-data-select.h: fixes compilation of programs using Libgda * libgda/gda-connection.c: lock the connection before executing a statement 2008-08-31 Vivien Malerba * libgda/sqlite/gda-sqlite-provider.c: * libgda/sql-parser/gda-sql-parser.c: memory leaks fixes, for bug #549953 2008-08-30 Vivien Malerba Renamed GdaPModel to GdaDataSelect (also changed the source files to libgda/) and updated the documentation. 2008-08-29 Vivien Malerba * doc/C/tmpl/gda-pmodel-user.sgml: adding mising file * tests/data-models/Makefile.am: * tests/data-models/check_pmodel.c: corrections to have "make distcheck" run 2008-08-28 Vivien Malerba * libgda/handlers/gda-handler-numerical.c: * libgda/gda-data-model.c: * libgda/gda-data-model-import.c: * libgda/gda-server-operation.c: * libgda/gda-set.c: * libgda/gda-util.c: * libgda/gda-init.c: set the global variables gda_numeric_locale and gda_lang_locale when calling gda_init() and use those variables whenever setlocale() was called to fetch those locale values * providers/mysql/gda-mysql-recordset.c: * providers/postgres/gda-postgres-recordset.c: correctly restore the user LC_NUMERIC locale after having altered it (thanks to Tim Lapawa) * libgda/gda-util.c: understand the "time" and "timestamp" datatypes as synonyms for "GdaTime" and and "GdaTimestamp" * libgda/gda-value.c: reset a value before copying the other value's contents * libgda/providers-support/gda-pmodel.[ch]: improvements to modifiable data models (working now are gda_data_model_set_value_at(), gda_data_model_remove_row() and gda_data_model_append_values()) * tests/data-models: updates to the check_pmodel test * libgda/gda-holder.c: speed improvement in gda_holder_set_value_str(), and avoid mem leak in some circumnstances * libgda/sql-parser/gda-sql-parser.c: fix to remove a warning * libgda/gda-connection.[ch]: removed gda_connection_add_events_list() as it was not used and did not behave in an usual way regarding its input arguments, moved gda_connection_add_event(), gda_connection_add_event_string() and gda_connection_clear_events_list() to the providers' API * libgda/gda-connection.c: automatically clear the events list before executing any new statement (see bug #545977) * libgda/gda-connection.c: fix for bug #545979 * libgda/gda-data-model-query.c: applied patch for bug #546230 (thanks to Carl-Anton Ingmarsson) * libgda/gda-data-model-array.c: fixed the set_values() method (ignore NULL values) * providers/mysql/gda-mysql-provider.c: modified string to translate to make it easier to understand (for bug #549498) * libgda/gda-meta-struct.[ch]: added an "extra" attribute to the GdaMetaTableColumn structure to hold extra column's info such as AUTO_INCREMENT * libgda/gda-meta-struct-io.c: fill in the new GdaMetaTableColumn's "extra" attribute * tools/command-exec.c: added an "Extra" column when listing the columns of a table * libgda/gda-enums.h: #define possible values for extra attributes: EXTRA_AUTO_INCREMENT for now * tests/gda-ddl-creator.c: * tools/command-exec.c: * providers/postgres/gda-postgres-meta.c: * libgda/gda-meta-struct-io.c: * libgda/sqlite/gda-sqlite-meta.c: use EXTRA_AUTO_INCREMENT * libgda/gda-set.c: bug fixed in gda_set_get_spec() * libgda/sqlite/gda-sqlite-provider.c: * providers/postgres/gda-postgres-provider.c: set the "name" property of the individual GdaHolder objects in the last_inserted_row set returned when an INSERT statement is executed * providers/mysql/gda-mysql-provider.c: set last_inserted_row to NULL when a statement is executed (the feature is not yet implemented) * libgda/sqlite/sqlite-src: up to version 3.6.1 * po/: ran "make update-po" * other files: documentation updates 2008-08-15 Vivien Malerba * providers/mysql: updates to the MySQL provider (Carlos Savoretti) * libgda/gda-set.c: * libgda/gda-connection.c: * libgda/sql-parser/gda-statement-struct.c: fixes memory leaks for bug #545977 * libgda/gda-statement.c: * libgda/gda-util.c: * libgda/sql-parser/gda-statement-struct-pspec.[ch]: removed the "type" attribute from the GdaSqlParamSpec structure as it was redundant with the "g_type" one * providers/postgres/gda-postgres-provider.c: * providers/mysql/gda-mysql-provider.c: * providers/skel-implementation/capi/gda-capi-provider.c: * libgda/sqlite/gda-sqlite-provider.c: check that parameters are valid when executing a statement * libgda/gda-data-model.h: added GdaDataModel error code * libgda/gda-connection-private.h: * libgda/gda-connection.c: * libgda/sqlite/gda-sqlite-provider.c: * providers/mysql/gda-mysql-provider.c: * providers/postgres/gda-postgres-provider.c: * providers/skel-implementation/capi/gda-capi-provider.c: explicitely declare prepared statements as GdaPStmt objects instead of generic gpointer * tests/test-cnc-utils.[ch]: added a function to load data from a file into a table * tests/meta-store.c: test corrections due to meta store internal's schema changes * libgda/providers-support/gda-pmodel.[ch]: * libgda/sqlite/gda-sqlite-recordset.[ch]: * providers/mysql/gda-mysql-recordset.[ch]: * providers/postgres/gda-postgres-recordset.[ch]: * providers/skel-implementation/capi/gda-capi-recordset.[ch]: * tests/data-models/Makefile.am: * tests/data-models/check_pmodel.c: new test for the GdaPModel data model (the base class for all the data models returned by providers after a SELECT) for the updatable property * doc/C: * misc files: doc updates 2008-07-28 Vivien Malerba * libgda/sqlite/gda-sqlite-recordset.c: * providers/firebird/gda-firebird-recordset.c: * providers/mysql/gda-mysql-recordset.c: * providers/postgres/gda-postgres-recordset.c: * providers/skel-implementation/capi/gda-capi-recordset.c: * libgda/providers-support/gda-pmodel.[ch]: * libgda/providers-support/gda-prow.[ch]: * libgda/gda-data-model-row.[ch]: overwrote the current GdaRow implementation with the GdaPRow one, and removed GdaPRow * libgda/gda-data-access-wrapper.c: * libgda/gda-data-model-row.[ch]: * libgda/gda-data-model-array.[ch]: reimplemented GdaDataModelArray without using the GdaDataModelRow object (which has been removed) * libgda/gda-data-model.h: new error code * libgda/gda-config.c: added missing header * tests/data-models/check_data_proxy.c: corrected test * po/POTFILES.in: removed non existent files, and ran "make update-po" * doc/C: doc updates 2008-07-27 Vivien Malerba * WixInstaller/make-zip-exe.sh: new script to create a .ZIP file containing the minimum files required to execute gda-sql * libgda/gda-data-model-import.c: fixed a crasher bug when the XML file being imported has the wrong XML structure * libgda/sqlite/sqlite-src/: up to version 3.6.0 * tests/: multiple improvements and corrections * libgda/sqlite/gda-sqlite-recordset.c: correctly handle time and data values, and corrected a bug related to NULL values * libgda/gda-util.[ch]: new functions: gda_parse_iso8601_date(), gda_parse_iso8601_time() and gda_parse_iso8601_timestamp(), implementation is very simple at the moment * libgda/gda-value.c: use the new gda_parse_iso8601*() functions in gda_value_set_from_string() and the static set_from_string() function, and better explicit documentation * libgda/sqlite/virtual/gda-vconnection-data-model.c: fixed the gda_vconnection_data_model_foreach() function where it would not call the provided function if no data model had been associated to the table * libgda/sqlite/virtual/gda-vprovider-data-model.c: better data type mapping * tools/gda-sql.c: query buffer (the one which stores the last executed query) is now per connection and not global anymore, and initial meta data retreival is done in background (sub thread) if possible * libgda/sqlite/utils.c: * libgda/sqlite/gda-sqlite.h: new utility function * libgda/sqlite/gda-sql-meta.c: * providers/postgres/gda-postgres-meta.c: finished implementing meta data extraction * libgda/sqlite/gda-sql-provider.c: minor bug fixes, explicitely enable multi threading support and better support for date, time and timestamp data types * libgda/gda-server-provider.h: new error code * libgda/information_schema.xml: documented some fields, and added an "nb_args" attributes to the "_routines" table * providers/mdb/gda-mdb-provider.c: better date handling, assume "." for DIR_NAME in a connection string if not provided * doc/C: new gda-sql command manual, and minor other improvements * other files: bug fixes, or debug code desacivated 2008-07-17 Vivien Malerba * libgda-xslt/Makefile.am: * configure.in: * libgda/gda-config.c: applied patches for bug #541991 (thanks to Cygwin Ports maintainer) * providers/mysql/libmain.c: * providers/mysql/gda-mysql-meta.c: * providers/mysql/gda-mysql-provider.c: * providers/mysql/gda-mysql-meta.h: * providers/mysql/gda-mysql-parser.c: another set of improvements to the MySQL provider (thanks to Carlos Savoretti) * tests/Makefile.am: * tests/multi-threading/*: * configure.in: * libgda/gda-mutex.[ch]: * libgda/Makefile.am: * libgda/libgda.h.in: created the GdaMutex mutex which is dynamically allocated and recursive * libgda/Makefile.am: * libgda/libgda.h.in: * libgda/gda-lockable.[ch]: new GdaLockable interface to be used to lock objects * sql-parser/gda-sql-parser-private.h: * libgda/sql-parser/gda-sql-parser.c: * libgda/gda-connection.c: implement the GdaLockable interface (GdaSqlParser no uses a GdaMutex per GdaSqlParser instance instead of a global recursive mutex) * tests/Makefile.am * tests/multi-threading/: new multi threaded environment tests * tests/data-models/check_data_proxy.c: correctly specify the GType type in functions using an ellipse for 64 bits OS * tests/data-models/Makefile.am: * tests/data-models/data1.xml: * tests/data-models/check_model_copy.c: test data model copy * tests/data-models/check_model_import.c: also test data models in current directory * libgda/gda-set.c: make gda_set_real_add_holder() show a warning if the data holder to add does not have any ID instead of crash * libgda/gda-data-model-iter.c: use ID attribute of data model column * libgda/gda-data-comparator.c: corrected the "diff_computed" signal accumulator * libgda/gda-data-model.c: better determmine column and data model names when exporting to XML, and corrected a bug in the data model import function * doc/C: doc. updates * tools/gda-sql.ico: * tools/gda-sql-res.rc: * tools/Makefile.am: added an icon in the gda-sql executable when compiling for a Windows platform 2008-07-06 Vivien Malerba * configure.in: set to version 3.99.4