2008-09-16  Vivien Malerba <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <bas.driessen@xobas.com>

	* 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 <malerba@gnome-db.org>

	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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* libgda/sqlite/gda-sqlite-provider.c:
	* libgda/sql-parser/gda-sql-parser.c: memory leaks fixes, for bug #549953

2008-08-30  Vivien Malerba <malerba@gnome-db.org>

	Renamed GdaPModel to GdaDataSelect (also changed the source files to libgda/) and
	updated the documentation.

2008-08-29  Vivien Malerba <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* 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 <malerba@gnome-db.org>

	* configure.in: set to version 3.99.4