<root>
<function name="gda_set_get_nth_holder">
<description>
Finds a #GdaHolder using its position

Since: 4.2

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> the position of the requested #GdaHolder, starting at %0
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaHolder or %NULL

</return>
</function>

<function name="gda_sql_select_field_new">
<description>
Creates a new #GdaSqlSelectField structure and sets its parent to @parent. A
#GdaSqlSelectField is any expression in SELECT statements before the FROM clause.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementSelect structure
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectField structure.
</return>
</function>

<function name="gda_sql_select_order_serialize">
<description>
Creates a new string description of the ORDER BY clause used in a SELECT statement.


</description>
<parameters>
<parameter name="order">
<parameter_description> a #GdaSqlSelectOrder structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the ORDER BY or &quot;null&quot; in case @order is invalid.
</return>
</function>

<function name="gda_quark_list_new_from_string">
<description>
Creates a new #GdaQuarkList given a string.

@string must be a semi-colon separated list of &quot;&lt;key&gt;=&lt;value&gt;&quot; strings (for example
&quot;DB_NAME=notes;USERNAME=alfred&quot;). Each key and value must respect the RFC 1738 recommendations: the
&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
&quot;DB_NAME=notes;USERNAME=al%%20fred&quot; string will specify a username as &quot;al fred&quot;). If this formalism
is not respected, then some unexpected results may occur.


</description>
<parameters>
<parameter name="string">
<parameter_description> a string.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GdaQuarkList.

Free-function: gda_quark_list_free
</return>
</function>

<function name="gda_connection_get_prepared_statement">
<description>
Retrieves a pointer to an object representing a prepared statement for @gda_stmt within @cnc. The
association must have been done using gda_connection_add_prepared_statement().


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="gda_stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return> the prepared statement, or %NULL if no association exists
</return>
</function>

<function name="gda_server_operation_add_item_to_sequence">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="seq_path">
<parameter_description> the path to the sequence to which an item must be added (like &quot;/SEQ_NAME&quot; for instance)
</parameter_description>
</parameter>
</parameters>
<return> the index of the new entry in the sequence (like 5 for example if a 6th item has
been added to the sequence.
</return>
</function>

<function name="gda_connection_rollback_savepoint">
<description>
Rollback all the modifications made after the SAVEPOINT named @name.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the savepoint to rollback to
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_server_provider_internal_get_parser">
<description>
This is a factory method to get a unique instance of a #GdaSqlParser object
for each #GdaServerProvider object
Don't unref it.


</description>
<parameters>
<parameter name="prov">
<parameter_description> a #GdaServerProvider
</parameter_description>
</parameter>
</parameters>
<return> a #GdaSqlParser
</return>
</function>

<function name="gda_tree_update_all">
<description>
Requests that @tree be populated with nodes. If an error occurs, then @tree's contents is left
unchanged, and otherwise @tree's previous contents is completely replaced by the new one.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.

</return>
</function>

<function name="gda_sql_table_take_name">
<description>
Sets the table's name using the string held by @value. When call, @value is freed using
gda_value_free().


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlTable structure
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue holding a string to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_repetitive_statement_get_template_set">
<description>
Gets a new #GdaSet object with the parameters used by the template statement in the
@rstmt object. 

Use this object with gda_repetitive_statement_append_set().

Since: 4.2

</description>
<parameters>
<parameter name="rstmt">
<parameter_description> a #GdaRepetitiveStatement object
</parameter_description>
</parameter>
<parameter name="set">
<parameter_description> a place to store the returned template set
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE on success, %FALSE on error

</return>
</function>

<function name="gda_config_dsn_needs_authentication">
<description>
Tells if the data source identified as @dsn_name needs any authentication. If a &lt;username&gt;
and optionally a &lt;password&gt; are specified, they are ignored.


</description>
<parameters>
<parameter name="dsn_name">
<parameter_description> the name of a DSN, in the &quot;[&lt;username&gt;[:&lt;password&gt;]@]&lt;DSN&gt;&quot; format
</parameter_description>
</parameter>
</parameters>
<return> TRUE if an authentication is needed
</return>
</function>

<function name="gda_sql_statement_delete_take_table_name">
<description>
Sets the name of the table to delete from in @stmt. @value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a table name as a G_TYPE_STRING #GValue 
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_escape_string">
<description>
Escapes @str for use within an SQL command (to avoid SQL injection attacks). Note that the returned value still needs
to be enclosed in single quotes before being used in an SQL statement.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a string to escape
</parameter_description>
</parameter>
</parameters>
<return> a new string suitable to use in SQL statements
</return>
</function>

<function name="gda_connection_add_savepoint">
<description>
Adds a SAVEPOINT named @name.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the savepoint to add
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_meta_wrapper_new">
<description>
Creates a new #GdaDataModel object which buffers the rows of @model. This object is useful
only if @model can only be metaed using cursor based method.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_attributes_manager_clear">
<description>
Remove all the attributes managed by @mgr for the @ptr resource.

</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="ptr">
<parameter_description> a pointer to the resources for which all the attributes will be removed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_param_spec_take_name">
<description>
Sets @pspec's name. @value's ownership is transferred to
@pspec (which means @pspec is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="pspec">
<parameter_description> a #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_add_field_value_as_gvalue">
<description>
Valid only for: INSERT, UPDATE statements.

Specifies that the field represented by @field_name will be set to the value identified
by @value

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to set the field to, or %NULL or a GDA_TYPE_NULL value to represent an SQL NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_set_auto_increment">
<description>
Sets the auto increment flag for the given column.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="is_auto">
<parameter_description> auto increment status.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_expr_copy">
<description>
Creates a new #GdaSqlExpr structure initiated with the values stored in @expr.


</description>
<parameters>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlExpr structure.
</return>
</function>

<function name="gda_data_model_array_new">
<description>
Creates a new #GdaDataModel object without initializing the column
types. Using gda_data_model_array_new_with_g_types() is usually better.


</description>
<parameters>
<parameter name="cols">
<parameter_description> number of columns for rows in this data model.
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_holder_get_attribute">
<description>
Get the value associated to a named attribute.

Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a string
</parameter_description>
</parameter>
</parameters>
<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @holder
</return>
</function>

<function name="gda_identifier_equal">
<description>
Does the same as strcmp(@id1, @id2), but handles the case where id1 and/or id2 are enclosed in double quotes.
can also be used in hash tables as a #GEqualFunc.


</description>
<parameters>
<parameter name="id1">
<parameter_description> an identifier string
</parameter_description>
</parameter>
<parameter name="id2">
<parameter_description> an identifier string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @id1 and @id2 are equal.
</return>
</function>

<function name="gda_sql_builder_import_expression">
<description>
Imports the @expr into @builder.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr obtained using gda_sql_builder_export_expression()
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_sql_param_spec_copy">
<description>
Creates a copy of @pspec.


</description>
<parameters>
<parameter name="pspec">
<parameter_description> #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlParamSpec
</return>
</function>

<function name="gda_data_proxy_get_value_attributes">
<description>
Get the attributes of the value stored at (proxy_row, col) in @proxy, which
is an ORed value of #GdaValueAttribute flags


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> a proxy row
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a valid proxy column
</parameter_description>
</parameter>
</parameters>
<return> the attribute
</return>
</function>

<function name="gda_connection_event_get_source">
<description>

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
</parameters>
<return> @event's source. 
</return>
</function>

<function name="gda_data_model_get_row_from_values">
<description>
Returns the first row where all the values in @values at the columns identified at
@cols_index match. If the row can't be identified, then returns -1;

NOTE: the @cols_index array MUST contain a column index for each value in @values


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> a list of #GValue values (no %NULL is allowed)
</parameter_description>
</parameter>
<parameter name="cols_index">
<parameter_description> an array of #gint containing the column number to match each value of @values
</parameter_description>
</parameter>
</parameters>
<return> the requested row number, of -1 if not found
</return>
</function>

<function name="gda_xa_transaction_begin">
<description>
Begins a distributed transaction (managed by @xa_trans). Please note that this phase may fail
for some connections if a (normal) transaction is already started (this depends on the database
provider being used), so it's better to avoid starting any (normal) transaction on any of the
connections registered with @xa_trans.


</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_statement_compound_set_type">
<description>
Specifies @stmt's type of compound

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GdaSqlStatementCompoundType value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_iter_move_next_default">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_tree_mgr_select_new">
<description>
Creates a new #GdaTreeMgrSelect object which will add one tree node for each row in
the #GdaDataModel resulting from the execution of @stmt.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object representing a SELECT statement
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object representing fixed parameters which are to be used when executing @stmt
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager object

</return>
</function>

<function name="gda_sql_operation_new">
<description>
Creates a new #GdaSqlOperation structure and sets its parent to @parent.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlAnyPart structure
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlOperation structure.
</return>
</function>

<function name="gda_meta_store_get_attribute_value">
<description>
The #GdaMetaStore object maintains a list of (name,value) attributes (attributes names starting with a '_'
character are for internal use only and cannot be altered). This method and the gda_meta_store_set_attribute_value()
method allows the user to add, set or remove attributes specific to their usage.

This method allows to get the value of a attribute stored in @store. The returned attribute value is 
placed at @att_value, the caller is responsible for free that string. 

If there is no attribute named @att_name then @att_value is set to %NULL
and @error will contain the GDA_META_STORE_ATTRIBUTE_NOT_FOUND_ERROR error code, and FALSE is returned.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="att_name">
<parameter_description> name of the attribute to get
</parameter_description>
</parameter>
<parameter name="att_value">
<parameter_description> the place to store the attribute value
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_select_target_take_table_name">
<description>
Sets the target to be a SELECT subquery setting target's expression to use
@stmt; after call this function the target owns @stmt, then you must not free it.

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget structure
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GValue to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_any_part_check_structure">
<description>
Checks for any error in @node's structure to make sure it is valid. This
is the same as gda_sql_statement_check_structure() but for individual #GdaSqlAnyPart
parts. This function is mainly for database provider's implementations


</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaSqlAnyPart pointer
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_handler_accepts_g_type">
<description>
Checks wether the GdaDataHandler is able to handle the gda type given as argument.


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GType
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the gda type can be handled
</return>
</function>

<function name="gda_sql_parser_parse_string">
<description>
Parses @sql and creates a #GdaStatement statement from the first SQL statement contained in @sql: if @sql
contains more than one statement, then the remaining part of the string is not parsed at all, and @remain (if
not %NULL) will point at the first non parsed character.

To include variables in the @sql string, see the
&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser's object description&lt;/link&gt;.


</description>
<parameters>
<parameter name="parser">
<parameter_description> a #GdaSqlParser object
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> the SQL string to parse
</parameter_description>
</parameter>
<parameter name="remain">
<parameter_description> location to store a pointer to remaining part of @sql in case @sql has multiple statement, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaStatement object, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_case_new">
<description>
Creates a new #GdaSqlCase structure and sets its parent to @parent.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlAnyPart structure
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlCase structure.
</return>
</function>

<function name="gda_data_model_send_hint">
<description>
Sends a hint to the data model. The hint may or may not be handled by the data
model, depending on its implementation

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="hint">
<parameter_description> a hint to send to the model
</parameter_description>
</parameter>
<parameter name="hint_value">
<parameter_description> an optional value to specify the hint, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_identifier_split">
<description>
Splits @id into an array of it sub parts. @id's format has to be &quot;&lt;part&gt;[.&lt;part&gt;[...]]&quot; where
each part is either a text surrounded by double quotes which can contain upper and lower cases or
an SQL identifier in lower case.

For example the &lt;![CDATA[&quot;test.\&quot;ATable\&quot;&quot;]]&gt; string will result in the array: &lt;![CDATA[{&quot;test&quot;, &quot;\&quot;ATable\&quot;&quot;, NULL}]]&gt;


</description>
<parameters>
<parameter name="id">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
</parameters>
<return> a new %NULL-terminated array of strings, or NULL (use g_strfreev() to free the returned array)
</return>
</function>

<function name="gda_sql_param_spec_take_type">
<description>
Sets @pspec's data type. @value's ownership is transferred to
@pspec (which means @pspec is then responsible for freeing it when no longer needed).

@value must represent a data type, as understood by gda_g_type_from_string().

</description>
<parameters>
<parameter name="pspec">
<parameter_description> a #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_handler_get_sane_init_value">
<description>
Creates a new GValue which holds a sane initial value to be used if no value is specifically
provided. For example for a simple string, this would return a new value containing the &quot;&quot; string.


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a GTYpe
</parameter_description>
</parameter>
</parameters>
<return> the new GValue, or %NULL if no such value can be created.
</return>
</function>

<function name="gda_connection_point_available_event">
<description>
Use this method to get a pointer to the next available connection event which can then be customized
and taken into account using gda_connection_add_event(). This method is a drop-in replacament
for gda_connection_event_new() which improves performances by reusing as much as possible
#GdaConnectionEvent objects. Newly written database providers should use this method.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GdaConnectionEventType
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the next available connection event, or %NULL if event should
be ignored

</return>
</function>

<function name="gda_tree_get_node_manager">
<description>
Get the #GdaTreeManager which created @node in @tree

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a #GdaTreeNode present in @tree
</parameter_description>
</parameter>
</parameters>
<return> the #GdaTreeManager, or %NULL if @node is not present in @tree

</return>
</function>

<function name="gda_data_model_append_values">
<description>
Appends a row to the given data model. If any value in @values is actually %NULL, then 
it is considered as a default value.

Upon errors -1 will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> #GList of #GValue* representing the row to add.  The
length must match model's column count.  These #GValue
are value-copied (the user is still responsible for freeing them).
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the number of the added row, or -1 if an error occurred
</return>
</function>

<function name="gda_blob_op_write_all">
<description>
Writes the whole contents of @blob into the blob manipulated by @op. If necessary the resulting
blob is truncated from its previous length.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaBlobOp
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob which contains the data to write
</parameter_description>
</parameter>
</parameters>
<return> TRUE on success
</return>
</function>

<function name="gda_tree_manager_set_node_create_func">
<description>
Sets the function to be called when a new node is being created by @manager. If @func is %NULL
then each created node will be a #GdaTreeNode object.

Specifying a custom #GdaTreeManagerNodeFunc function for example allows one to use
specialized sub-classed #GdaTreeNode objects.

Since: 4.2

</description>
<parameters>
<parameter name="manager">
<parameter_description> a #GdaTreeManager tree manager object
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaTreeManagerNodeFunc function pointer, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_time_get_format">
<description>
Get a string representing the locale-dependent way to enter a date/time/datetime, using
a syntax suitable for the #GnomeDbFormatEntry widget


</description>
<parameters>
<parameter name="dh">
<parameter_description> a #GdaHandlerTime object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of data being handled
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_meta_struct_get_all_db_objects">
<description>
Get a list of all the #GdaMetaDbObject structures representing database objects in @mstruct. Note that
no #GdaMetaDbObject structure must not be modified.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
</parameters>
<return> a new #GSList list of pointers to #GdaMetaDbObject structures which must be destroyed after usage using g_slist_free(). The individual #GdaMetaDbObject must not be modified.
</return>
</function>

<function name="gda_quark_list_foreach">
<description>
Calls the given function for each of the key/value pairs in @qlist. The function is passed the key and value 
of each pair, and the given user_data parameter. @qlist may not be modified while iterating over it.

</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList structure.
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to call for each key/value pair
</parameter_description>
</parameter>
<parameter name="user_data">
<parameter_description> user data to pass to the function
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_node_get_parent">
<description>
Get the #GdaTreeNode parent of @node in the #GdaTree node belongs to. If @node is at the top level,
then this method return %NULL.

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode object
</parameter_description>
</parameter>
</parameters>
<return> the parent #GdaTreeNode

</return>
</function>

<function name="gda_sql_select_target_take_table_alias">
<description>
Sets the target alias (AS) to the string held by @alias; after call
this function @alias is freed.

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget structure
</parameter_description>
</parameter>
<parameter name="alias">
<parameter_description> a #GValue holding the alias string to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_select_group_by">
<description>
Valid only for: SELECT statements

Adds the @expr_id expression to the GROUP BY clause's expressions list

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="expr_id">
<parameter_description> the ID of the expression to set use in the GROUP BY clause, or 0 to unset any previous GROUP BY clause
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_iter_get_holder_for_field">
<description>
Fetch a pointer to the #GdaHolder object which is synchronized with data at 
column @col


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the requested column
</parameter_description>
</parameter>
</parameters>
<return> the #GdaHolder, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_select_from_take_new_join">
<description>
Append @join to the joins in the FROM clause and set @join's parent to
@from; after call this function @from owns @join then you must not free it.

</description>
<parameters>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom structure
</parameter_description>
</parameter>
<parameter name="join">
<parameter_description> a #GdaSqlSelectJoin to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_update_take_on_conflict">
<description>
Sets the name of the resolution conflict algorithm used by @stmt. @value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> name of the resolution conflict algorithm, as a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_insert_row_into_table_v">
<description>
@col_names and @values must have length (&gt;= 1).

This is a convenience function, which creates an INSERT statement and executes it using the values
provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: INSERT INTO &lt;table&gt; (&lt;column_name&gt; [,...]) VALUES (&lt;column_name&gt; = &lt;new_value&gt; [,...]).


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table">
<parameter_description> table's name to insert into
</parameter_description>
</parameter>
<parameter name="col_names">
<parameter_description> a list of column names (as const gchar *)
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> a list of values (as #GValue)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_value_take_blob">
<description>
Stores @val into @value, but on the contrary to gda_value_set_blob(), the @blob
argument is not copied, but used as-is and it should be considered owned by @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob structure with the data and its size to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_vconnection_data_model_remove">
<description>
Remove the table named @table_name in the @cnc connection (as if a &quot;DROP TABLE...&quot;
statement was executed, except that no data gets destroyed as the associated data model remains the same).


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table to remove from @cnc
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_dump">
<description>
Dumps a textual representation of the @model to the @to_stream stream

The following environment variables can affect the resulting output:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first column of the output will contain row numbers&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ATTRIBUTES: if set, also dump the data model's columns' types and value's attributes&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model's title&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty string for NULL values &lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel.
</parameter_description>
</parameter>
<parameter name="to_stream">
<parameter_description> where to dump the data model
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_select_set_distinct">
<description>
Defines (if @distinct is %TRUE) or removes (if @distinct is %FALSE) a DISTINCT clause
for a SELECT statement.

If @distinct is %TRUE, then the ID of an expression can be specified as the @expr_id argument:
if not %0, this is the expression used to apply the DISTINCT clause on (the resuting SQL
will then usually be &quot;... DISTINCT ON &lt;expression&gt;...&quot;).

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="distinct">
<parameter_description> set to %TRUE to have the DISTINCT requirement
</parameter_description>
</parameter>
<parameter name="expr_id">
<parameter_description> the ID of the DISTINCT ON expression, or %0 if no expression is to be used. It is ignored
if @distinct is %FALSE.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_node_get_node_attribute">
<description>
Get the value associated to the attribute named @attribute for @node. The difference with gda_tree_node_fetch_attribute()
is that gda_tree_node_fetch_attribute() will also query @node's parents (recursively up to the top level node) if
the attribute is not set for @node.

Attributes can have any name, but Libgda proposes some default names, 
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a string
</parameter_description>
</parameter>
</parameters>
<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @node

</return>
</function>

<function name="gda_holder_force_invalid">
<description>
Forces a holder to be invalid; to set it valid again, a new value must be assigned
to it using gda_holder_set_value() or gda_holder_take_value().

@holder's value is set to %NULL.

</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_add_cond_v">
<description>
Builds a new expression which represents a condition (or operation).

As a side case, if @ops_ids_size is 1,
then @op is ignored, and the returned ID represents @op_ids[0] (this avoids any problem for example
when @op is GDA_SQL_OPERATOR_TYPE_AND and there is in fact only one operand).

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> type of condition
</parameter_description>
</parameter>
<parameter name="op_ids">
<parameter_description> an array of ID for the arguments (not %0)
</parameter_description>
</parameter>
<parameter name="op_ids_size">
<parameter_description> size of @ops_ids
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_connection_statement_execute_select_fullv">
<description>
Executes a selection command on the given connection.

This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute()
function.

See the documentation of the gda_connection_statement_execute() for information
about the @params list of parameters.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object.
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a (-1 terminated) list of (column number, GType) specifying for each column mentioned the GType
of the column in the returned #GdaDataModel.
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModel containing the data returned by the
data source, or %NULL if an error occurred
</return>
</function>

<function name="gda_batch_add_statement">
<description>
Add @stmt to the list of statements managed by @batch. A #GdaStatement object can be
added multiple times to a #GdaBatch object.

</description>
<parameters>
<parameter name="batch">
<parameter_description> a #GdaBatch object
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a statement to add to @batch's statements list
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_any_part_foreach">
<description>
Calls a function for each element of a #GdaSqlAnyPart node


</description>
<parameters>
<parameter name="node">
<parameter_description> the stat node
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> function to call for each sub node
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to pass to @func each time it is called
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL (is also passed to @func)
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @func has been called for any sub node of @node and always returned TRUE, or FALSE
otherwise.
</return>
</function>

<function name="gda_meta_store_new">
<description>
Create a new #GdaMetaStore object.


</description>
<parameters>
<parameter name="cnc_string">
<parameter_description> a connection string, or %NULL for an in-memory internal database
</parameter_description>
</parameter>
</parameters>
<return> the newly created object, or %NULL if an error occurred
</return>
</function>

<function name="gda_batch_get_parameters">
<description>
Get a new #GdaSet object which groups all the execution parameters
which @batch needs for all the statements it includes.
This new object is returned though @out_params.

Note that if @batch does not need any parameter, then @out_params is set to %NULL.


</description>
<parameters>
<parameter name="batch">
<parameter_description> a #GdaBatch object
</parameter_description>
</parameter>
<parameter name="out_params">
<parameter_description> a place to store a new #GdaSet object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_sql_builder_add_param">
<description>
Defines a parameter in @builder which may be reused to build other parts of a statement.

The new expression will contain the @string literal.
For example:
&lt;programlisting&gt;
gda_sql_builder_add_param (b, &quot;age&quot;, G_TYPE_INT, FALSE)
&lt;/programlisting&gt;

will be rendered as SQL as:
&lt;programlisting&gt;&lt;![CDATA[
##age::int
]]&gt;
&lt;/programlisting&gt;

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="param_name">
<parameter_description> parameter's name
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> parameter's type
</parameter_description>
</parameter>
<parameter name="nullok">
<parameter_description> TRUE if the parameter can be set to %NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_value_get_ushort">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_server_operation_load_data_from_xml">
<description>
Loads the contents of @node into @op. The XML tree passed through the @node
argument must correspond to an XML tree saved using gda_server_operation_save_data_to_xml().


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a #xmlNodePtr
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_sql_builder_select_add_field">
<description>
Valid only for: SELECT statements.

Add a selected selected item to the SELECT statement.

For non-SELECT statements, see gda_sql_builder_add_field_id().

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field name
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> a table name, or %NULL
</parameter_description>
</parameter>
<parameter name="alias">
<parameter_description> an alias (eg. for the &quot;AS&quot; clause), or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the added field, or %0 if there was an error

</return>
</function>

<function name="gda_handler_string_new">
<description>
Creates a data handler for strings


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_connection_get_provider_name">
<description>
Gets the name (identifier) of the database provider used by @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a non modifiable string
</return>
</function>

<function name="gda_set_new">
<description>
Creates a new #GdaSet object, and populates it with the list given as argument.
The list can then be freed as it is copied. All the value holders in @holders are referenced counted
and modified, so they should not be used anymore afterwards.


</description>
<parameters>
<parameter name="holders">
<parameter_description> a list of #GdaHolder objects
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSet object
</return>
</function>

<function name="gda_connection_statement_prepare">
<description>
Ask the database accessed through the @cnc connection to prepare the usage of @stmt. This is only useful
if @stmt will be used more than once (however some database providers may always prepare statements 
before executing them).

This function is also useful to make sure @stmt is fully understood by the database before actually executing it.

Note however that it is also possible that gda_connection_statement_prepare() fails when
gda_connection_statement_execute() does not fail (this will usually be the case with statements such as
&lt;![CDATA[&quot;SELECT * FROM ##tablename::string&quot;]]&gt; because database usually don't allow variables to be used in place of a 
table name).


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_sql_expr_new">
<description>
Creates a new #GdaSqlField structure, using @parent as its parent part.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementInsert, #GdaSqlStatementUpdate, #GdaSqlSelectField, #GdaSqlSelectTarget, #GdaSqlOperation
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlField structure.
</return>
</function>

<function name="gda_timestamp_copy">
<description>

</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gda_sql_statement_insert_take_fields_list">
<description>
Sets the list of fields for which values will be specified in @stmt. @list's 
ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> a list of #GdaSqlField pointers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_function_free">
<description>
Frees a #GdaSqlFunction structure and its members.

</description>
<parameters>
<parameter name="function">
<parameter_description> a #GdaSqlFunction structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_get_numeric">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_virtual_connection_open_extended">
<description>
Creates and opens a new virtual connection using the @virtual_provider provider. If @options
contains the %GDA_CONNECTION_OPTIONS_THREAD_ISOLATED flag, then the returned connection will be
a thread wrapped connection, and the actual (wrapped) virtual connection can be obtained through
the &quot;gda-virtual-connection&quot; user property (use g_object_get_data() to get it).


</description>
<parameters>
<parameter name="virtual_provider">
<parameter_description> a #GdaVirtualProvider object
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> a set of options to specify the new connection
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnection object, or %NULL if an error occurred
</return>
</function>

<function name="gda_value_set_short">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_statement_check_structure">
<description>
Checks that @stmt's structure is correct.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @stmt's structure is correct
</return>
</function>

<function name="gda_set_get_node">
<description>
Finds a #GdaSetNode holding information for @holder, don't modify the returned structure


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaSetNode or %NULL
</return>
</function>

<function name="gda_statement_get_statement_type">
<description>
Get the type of statement held by @stmt. It returns GDA_SQL_STATEMENT_NONE if
@stmt does not hold any statement


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return> the statement type
</return>
</function>

<function name="gda_holder_is_valid">
<description>
Get the validity of @holder (that is, of the value held by @holder)


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @holder's value can safely be used
</return>
</function>

<function name="gda_sql_builder_add_function_v">
<description>
Builds a new expression which represents a function applied to some arguments

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="func_name">
<parameter_description> the functions's name
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> an array of IDs representing the function's arguments
</parameter_description>
</parameter>
<parameter name="args_size">
<parameter_description> @args's size
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_sql_builder_get_statement">
<description>
Creates a new #GdaStatement statement from @builder's contents.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaStatement object, or %NULL if an error occurred

</return>
</function>

<function name="gda_holder_get_g_type">
<description>
Get @holder's type


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the data type
</return>
</function>

<function name="gda_prepare_drop_database">
<description>
Creates a new #GdaServerOperation object which contains the specifications required
to drop a database. Once these specifications provided, use 
gda_perform_drop_database() to perform the database creation.

If @db_name is left %NULL, then the name of the database to drop will have to be set in the
returned #GdaServerOperation using gda_server_operation_set_value_at().


</description>
<parameters>
<parameter name="provider">
<parameter_description> the database provider to use
</parameter_description>
</parameter>
<parameter name="db_name">
<parameter_description> the name of the database to drop, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> new #GdaServerOperation object, or %NULL if the provider does not support database
destruction
</return>
</function>

<function name="gda_data_select_compute_row_selection_condition">
<description>
Offers the same features as gda_data_select_set_row_selection_condition() but the expression
is computed from the meta data associated to the connection being used when @model was created.

NOTE1: make sure the meta data associated to the connection is up to date before using this
method, see gda_connection_update_meta_store().

NOTE2: if the SELECT statement from which @model has been created uses more than one table, or
if the table used does not have any primary key, then this method will fail


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_thread_wrapper_get_waiting_size">
<description>
Use this method to query the number of functions which have been queued to be executed
but which have not yet been executed.

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
</parameters>
<return> the number of jobs not yet executed

</return>
</function>

<function name="gda_blob_op_write">
<description>
Writes a chunk of bytes from a @blob to the BLOB accessible through @op, @blob is unchanged after
this call.

If @blob has an associated #GdaBlobOp (ie. if @blob-&gt;op is not %NULL) then the data to be written
using @op is the data fetched using @blob-&gt;op.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaBlobOp
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob which contains the data to write
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset to write from the start of the blob (starts at 0)
</parameter_description>
</parameter>
</parameters>
<return> the number of bytes written. In case of error, -1 is returned and the
provider should have added an error to the connection.
</return>
</function>

<function name="gda_blob_copy">
<description>
Creates a new #GdaBlob structure from an existing one.


</description>
<parameters>
<parameter name="boxed">
<parameter_description> source to get a copy from.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaBlob which contains a copy of information in @boxed.

Free-function: gda_blob_free
</return>
</function>

<function name="gda_server_provider_get_data_handler_dbms">
<description>
Find a #GdaDataHandler object to manipulate data of type @for_type.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="for_type">
<parameter_description> a DBMS type definition
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataHandler, or %NULL if the provider does not know about the @for_type type
</return>
</function>

<function name="gda_connection_statement_execute_select_full">
<description>
Executes a selection command on the given connection.

This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute()
function.

See the documentation of the gda_connection_statement_execute() for information
about the @params list of parameters.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object.
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
</parameter_description>
</parameter>
<parameter name="col_types">
<parameter_description> an array of GType to request each returned #GdaDataModel's column's GType, terminated with the G_TYPE_NONE
value. Any value left to 0 will make the database provider determine the real GType. @col_types can also be %NULL if no
column type is specified.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModel containing the data returned by the
data source, or %NULL if an error occurred
</return>
</function>

<function name="gda_data_model_set_values">
<description>
In a similar way to gda_data_model_set_value_at(), this method modifies a data model's contents
by setting several values at once.

If any value in @values is actually %NULL, then the value in the corresponding column is left
unchanged.
 
Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number.
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> a list of #GValue, one for at most the number of columns of @model
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value in the data model has been updated and no error occurred
</return>
</function>

<function name="gda_vconnection_data_model_foreach">
<description>
Call @func for each table in @cnc. 

Warning: @func will be called for any table present in @cnc even if no data
model represents the contents of the table (which means the 1st argument of @func
may be %NULL)

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaVconnectionDataModelFunc function pointer
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to pass to @func calls
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_vconnection_data_model_get_model">
<description>
Find the #GdaDataModel object representing the @table_name table in @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> a table name within @cnc
</parameter_description>
</parameter>
</parameters>
<return> the #GdaDataModel, or %NULL if no table named @table_name exists
</return>
</function>

<function name="gda_transaction_status_find">
<description>

</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gda_meta_store_set_identifiers_style">
<description>
Specifies how @store must handle SQL identifiers it has to store. This method is mainly used by
database providers.

Since: 4.2

</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="style">
<parameter_description> a style
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_holder_take_value">
<description>
Sets the value within the holder. If @holder is an alias for another
holder, then the value is also set for that other holder.

On success, the action of any call to gda_holder_force_invalid() is cancelled
as soon as this method is called (even if @holder's value does not actually change).

If the value is not different from the one already contained within @holder,
then @holder is not changed and no signal is emitted.

Note1: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
in an invalid state.

Note2: before the change is accepted by @holder, the &quot;validate-change&quot; signal will be emitted (the value
of which can prevent the change from happening) which can be connected to to have a greater control
of which values @holder can have, or implement some business rules.

Note3: if user previously set this holder with gda_holder_take_static_value () the GValue
stored internally will be forgiven and replaced by the @value. User should then
take care of the 'old' static GValue.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value to set the holder to
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if value has been set
</return>
</function>

<function name="gda_sql_statement_select_take_limits">
<description>
Sets the LIMIT clause of @stmt

@count and @offset's responsibility are transferred to
@stmt (which means @stmt is then responsible for freeing them when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="count">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_is_number">
<description>
Gets whether the value stored in the given #GValue is of numeric type or not.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if a number, %FALSE otherwise.
</return>
</function>

<function name="gda_data_model_iter_move_prev">
<description>
Moves @iter one row before where it already is (synchronizes the values of the parameters in @iter 
with the values at the new row).

If the iterator was on the data model's first row, then it can't be moved backwards
anymore, and the returned value is FALSE; note also that the &quot;current-row&quot; property
is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE).

If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
property is set to the new current row (one row less than it was before the call).  In this case
each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the iterator is now at the previous row
</return>
</function>

<function name="gda_connection_internal_get_provider_data">
<description>
Get the opaque pointer previously set using gda_connection_internal_set_provider_data().
If it's not set, then add a connection event and returns %NULL


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> the pointer to the opaque structure set using gda_connection_internal_set_provider_data()
</return>
</function>

<function name="gda_sql_statement_serialize">
<description>
Creates a string representation of @stmt.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_sql_function_serialize">
<description>
Creates a new string representing a function. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="function">
<parameter_description> a #GdaSqlFunction structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the function or &quot;null&quot; in case @function is invalid.
</return>
</function>

<function name="gda_value_new_binary">
<description>
Makes a new #GValue of type #GDA_TYPE_BINARY with value @val.


</description>
<parameters>
<parameter name="val">
<parameter_description> value to set for the new #GValue.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the memory pool pointer to by @val.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_pstmt_set_gda_statement">
<description>
Informs @pstmt that it corresponds to the preparation of the @stmt statement

</description>
<parameters>
<parameter name="pstmt">
<parameter_description> a #GdaPStmt object
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_store_schema_get_depend_tables">
<description>
Get an ordered list of the tables @store knows about on which the @table_name table depends (recursively). 
The tables are ordered in a way that tables dependencies
are respected: if table B has a foreign key on table A, then table A will be listed before table B in the returned
list.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table for which all the dependencies must be listed
</parameter_description>
</parameter>
</parameters>
<return> a new list of tables names (as gchar*), the list must be freed when no longer needed, but the strings present in the list must not be modified.
</return>
</function>

<function name="gda_server_operation_get_sequence_min_size">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> the minimum number of items in the sequence at @path, or 0 if @path is not a sequence node
</return>
</function>

<function name="gda_meta_struct_complement_all">
<description>
This method is similar to gda_meta_struct_complement() and gda_meta_struct_complement_default()
but creates #GdaMetaDbObject for all the database object.

Please refer to gda_meta_struct_complement() form more information.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_parse_sql_string">
<description>
This function helps to parse a SQL witch use paramenters and store them at @params.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> an SQL command to parse, not %NULL
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a place to store a new #GdaSet, for parameters used in SQL command, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GdaStatement representing the SQL command, or %NULL if an error occurred

</return>
</function>

<function name="gda_mutex_unlock">
<description>
Unlocks @mutex. If another thread is blocked in a gda_mutex_lock() call for @mutex, it wil
be woken and can lock @mutex itself.
This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing. 

</description>
<parameters>
<parameter name="mutex">
<parameter_description> a #GdaMutex
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_from_free">
<description>
Frees a #GdaSqlSelectFrom structure and its members.

</description>
<parameters>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_operation_get_sequence_item_names">
<description>
Fetch the contents of a sequence. @path can describe either a sequence (for example &quot;/SEQNAME&quot;) or an item in a sequence
(for example &quot;/SEQNAME/3&quot;)


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> a array of strings containing the complete paths of the nodes contained at @path (free with g_strfreev())
</return>
</function>

<function name="gda_time_valid">
<description>
Since: 4.2

</description>
<parameters>
<parameter name="time">
<parameter_description> a #GdaTime value to check if it is valid
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if #GdaTime is valid; %FALSE otherwise.

</return>
</function>

<function name="gda_connection_batch_execute">
<description>
Executes all the statements contained in @batch (in the order in which they were added to @batch), and
returns a list of #GObject objects, at most one #GObject for each statement; see gda_connection_statement_execute()
for details about the returned objects.

If one of the statement fails, then none of the subsequent statement will be executed, and the method returns
the list of #GObject created by the correct execution of the previous statements. If a transaction is required,
then it should be started before calling this method.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="batch">
<parameter_description> a #GdaBatch object which contains all the statements to execute
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_batch_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description>  specifies how the returned data model(s) will be used, as a #GdaStatementModelUsage enum
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new list of #GObject objects
</return>
</function>

<function name="gda_sql_statement_select_take_from">
<description>
Sets the FROM clause of @stmt

@from's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_value_to_sql_string">
<description>
Produces a fully quoted and escaped string from a GValue


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> #GValue to convert from
</parameter_description>
</parameter>
</parameters>
<return> escaped and quoted value or NULL if not supported.
</return>
</function>

<function name="gda_meta_struct_new">
<description>
Creates a new #GdaMetaStruct object. The @features specifies the extra features which will also be computed:
the more features, the more time it takes to run. Features such as table's columns, each column's attributes, etc
are not optional and will always be computed.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore from which the new #GdaMetaStruct object will fetch information
</parameter_description>
</parameter>
<parameter name="features">
<parameter_description> the kind of extra information the new #GdaMetaStruct object will compute
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GdaMetaStruct object
</return>
</function>

<function name="gda_utility_holder_load_attributes">
<description>
Note: this method may set the &quot;source&quot; custom string property


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> an xmlNodePtr with a &lt;parameter&gt; tag
</parameter_description>
</parameter>
<parameter name="sources">
<parameter_description> a list of #GdaDataModel
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_config_get_dsn_info_at_index">
<description>
Get a pointer to a read-only #GdaDsnInfo at the @index position


</description>
<parameters>
<parameter name="index">
<parameter_description> an index
</parameter_description>
</parameter>
</parameters>
<return>the pointer or %NULL if no DSN exists at position @index
</return>
</function>

<function name="gda_prepare_drop_table">
<description>
This is just a convenient function to create a #GdaServerOperation to drop a 
table in an opened connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> name of the table to drop
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaServerOperation or NULL if couldn't create the opereration.
</return>
</function>

<function name="gda_tree_mgr_label_get_type">
<description>
Since: 4.2

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_get_schema_nb_columns">
<description>
Deprecated: 4.2: This was a leftover from the pre 4.0 area

</description>
<parameters>
<parameter name="schema">
<parameter_description> a #GdaConnectionSchema
</parameter_description>
</parameter>
</parameters>
<return> the number of columns the #GdaDataModel for the requested schema
must have

</return>
</function>

<function name="gda_server_provider_load_file_contents">
<description>
Loads and returns the contents of @filename, which is searched in several places
This function should only be used by database provider's
implementations


</description>
<parameters>
<parameter name="inst_dir">
<parameter_description> directory where the database provider has been installed
</parameter_description>
</parameter>
<parameter name="data_dir">
<parameter_description> DATA directory to look for ($prefix/share)
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> name of the file to load
</parameter_description>
</parameter>
</parameters>
<return> a new string containing @filename's contents, or %NULL if not found or if an error occurred
</return>
</function>

<function name="gda_data_model_dir_new">
<description>
Creates a new #GdaDataModel object to list all the files starting from @basedir


</description>
<parameters>
<parameter name="basedir">
<parameter_description> a directory
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataModel
</return>
</function>

<function name="gda_data_proxy_get_proxied_model_n_cols">
<description>
Get the number of columns in the proxied data model


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of columns, or -1 if an error occurred
</return>
</function>

<function name="gda_connection_internal_savepoint_added">
<description>
Internal functions to be called by database providers when a savepoint has been added
to keep track of the transaction status of the connection

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="parent_trans">
<parameter_description> name of the parent transaction, or %NULL
</parameter_description>
</parameter>
<parameter name="svp_name">
<parameter_description> savepoint's name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_batch_remove_statement">
<description>
Removes @stmt from the list of statements managed by @batch. If @stmt is present several
times in @batch's statements' list, then only the first one is removed.

</description>
<parameters>
<parameter name="batch">
<parameter_description> a #GdaBatch object
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a statement to remove from @batch's statements list
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_get_group">
<description>
Finds a #GdaSetGroup which lists a  #GdaSetNode containing @holder,
don't modify the returned structure.


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaSetGroup or %NULL
</return>
</function>

<function name="gda_vconnection_data_model_add">
<description>
Create a new virtual table named @table_name in @cnc. The contents of that new table
is dictated by what's in @spec.

If there is just one #GdaDataModel to make appear as a table
then the gda_vconnection_data_model_add_model() method is easier to use.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="spec">
<parameter_description> a #GdaVconnectionDataModelSpec structure
</parameter_description>
</parameter>
<parameter name="spec_free_func">
<parameter_description> function to call when freeing @spec, or %NULL
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_connection_async_statement_execute">
<description>
This method is similar to gda_connection_statement_execute() but is asynchronous as it method returns
immediately with a task ID. It's up to the caller to use gda_connection_async_fetch_result() regularly to check
if the statement's execution is finished.

It is possible to call the method several times to request several statements to be executed asynchronously, the
statements will be executed in the order in which they were requested.

The parameters, if present, are copied and can be discarded or modified before the statement is actually executed.
The @stmt object is not copied but simply referenced (for performance reasons), and if it is modified before
it is actually executed, then its execution will not occur. It is however safe to call g_object_unref() on it if
it's not needed anymore.

The execution failure of any statement has no impact on the execution of other statements except for example if
the connection has a transaction started and the failure invalidates the transaction (as decided by the database
server).

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description> in the case where @stmt is a SELECT statement, specifies how the returned data model will be used
</parameter_description>
</parameter>
<parameter name="col_types">
<parameter_description> an array of GType to request each returned #GdaDataModel's column's GType, terminated with the G_TYPE_NONE
</parameter_description>
</parameter>
<parameter name="need_last_insert_row">
<parameter_description> TRUE if the values of the last interted row must be computed
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a task ID, or 0 if an error occurred (not an error regarding @stmt itself as its execution has not yet started
but any other error)

</return>
</function>

<function name="gda_sql_table_serialize">
<description>
Creates a new string representing a table. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlTable structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the name of the field or &quot;null&quot; in case @table is invalid.
</return>
</function>

<function name="gda_config_list_providers">
<description>
Get a #GdaDataModel representing all the installed database providers.

The returned data model is composed of the following columns:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;Provider name&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Description&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;DSN parameters&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Authentication parameters&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;File name of the plugin&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
</parameters>
<return> a new #GdaDataModel
</return>
</function>

<function name="gda_default_escape_string">
<description>
Escapes @string to make it understandable by a DBMS. The escape method is very common and replaces any
occurrence of &quot;'&quot; with &quot;''&quot; and &quot;\&quot; with &quot;\\&quot;


</description>
<parameters>
<parameter name="string">
<parameter_description> string to escape
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_data_model_import_new_xml_node">
<description>
Creates a new #GdaDataModel and loads the data in @node. The resulting data model
can be accessed in a random way.


</description>
<parameters>
<parameter name="node">
<parameter_description> an XML node corresponding to a &lt;data-array&gt; tag
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_batch_new">
<description>
Creates a new #GdaBatch object


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_connection_async_fetch_result">
<description>
Use this method to obtain the result of the execution of a statement which has been executed asynchronously by
calling gda_connection_async_statement_execute(). This function is non locking and will return %NULL (and no
error will be set) if the statement has not been executed yet.

If the statement has been executed, this method returns the same value as gda_connection_statement_execute()
would have if the statement had been
executed synchronously.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="task_id">
<parameter_description> a task ID returned by gda_connection_async_statement_execute()
</parameter_description>
</parameter>
<parameter name="last_insert_row">
<parameter_description> a place to store a new #GdaSet object which contains the values of the last inserted row, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GObject, or %NULL if an error occurred

</return>
</function>

<function name="gda_holder_get_value_str">
<description>
Same functionality as gda_holder_get_value() except that it returns the value as a string
(the conversion is done using @dh if not %NULL, or the default data handler otherwise).


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="dh">
<parameter_description> a #GdaDataHandler to use, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the value, or %NULL
</return>
</function>

<function name="gda_holder_get_id">
<description>
Get the ID of @holder. The ID can be set using @holder's &quot;id&quot; property


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the ID (don't modify the string).
</return>
</function>

<function name="gda_sql_builder_add_sub_select">
<description>
Adds an expression which is a subselect.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="sqlst">
<parameter_description> a pointer to a #GdaSqlStatement, which has to be a SELECT or compound SELECT. This will be copied.
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_numeric_copy">
<description>
Creates a new #GdaNumeric structure from an existing one.


</description>
<parameters>
<parameter name="boxed">
<parameter_description> source to get a copy from.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaNumeric which contains a copy of information in @boxed.

Free-function: gda_numeric_free
</return>
</function>

<function name="gda_tree_dump">
<description>
Dumps the contents of @tree to @stream, using a hierarchical view.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a #GdaTreeNode to start the dump from, or %NULL for a full dump
</parameter_description>
</parameter>
<parameter name="stream">
<parameter_description> a stream to send the dump to, or %NULL for STDOUT
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_numeric_free">
<description>
Deallocates all memory associated to the given @boxed

</description>
<parameters>
<parameter name="boxed">
<parameter_description> a #GdaNumeric pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_get_dbms_type">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> the database type of @column.
</return>
</function>

<function name="gda_sql_statement_trans_take_mode">
<description>
Sets the model of the transaction

@value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_get_source">
<description>
Finds a #GdaSetSource which contains the #GdaDataModel restricting the possible values of
@holder, don't modify the returned structure.


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaSetSource or %NULL
</return>
</function>

<function name="gda_sql_builder_select_add_target_id">
<description>
Adds a new target to a SELECT statement. If there already exists a target representing
the same table and the same alias (or with the same absence of alias) then the same target
ID is returned instead of the ID of a new target.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="table_id">
<parameter_description> the ID of the expression holding a table reference (not %0)
</parameter_description>
</parameter>
<parameter name="alias">
<parameter_description> the alias to give to the target, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new (or existing) target, or %0 if there was an error

</return>
</function>

<function name="gda_data_proxy_get_filtered_n_rows">
<description>
Get the total number of filtered rows in @proxy if a filter has been applied. As new rows
(rows added to the proxy and not yet added to the proxied data model) and rows to remove
(rows marked for removal but not yet removed from the proxied data model) are also filtered,
the returned number also contains references to new rows and rows to be removed.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of filtered rows in @proxy, or -1 if no filter has been applied
</return>
</function>

<function name="gda_data_proxy_is_read_only">
<description>

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the proxied data model is itself read-only
</return>
</function>

<function name="gda_sql_statement_string_to_type">
<description>
Converts a string to a #GdaSqlStatementType value, see also gda_sql_statement_type_to_string()


</description>
<parameters>
<parameter name="type">
<parameter_description> a string representing a #GdaSqlStatementType type
</parameter_description>
</parameter>
</parameters>
<return> a #GdaSqlStatementType value
</return>
</function>

<function name="gda_handler_type_new">
<description>
Creates a data handler for Gda types


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_sql_select_join_free">
<description>
Frees a #GdaSqlSelectJoin structure and its members.

</description>
<parameters>
<parameter name="join">
<parameter_description> a #GdaSqlSelectJoin structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_from_copy">
<description>
Creates a new #GdaSqlSelectFrom structure initiated with the values stored in @from.


</description>
<parameters>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectFrom structure.
</return>
</function>

<function name="gda_data_select_compute_columns_attributes">
<description>
Computes correct attributes for each of @model's columns, which includes the &quot;NOT NULL&quot; attribute, the
default value, the precision and scale for numeric values.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_column_new">
<description>

</description>
<parameters>
</parameters>
<return> a newly allocated #GdaColumn object.
</return>
</function>

<function name="gda_sql_select_target_copy">
<description>
Creates a new #GdaSqlSelectTarget structure initiated with the values stored in @target.


</description>
<parameters>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectTarget structure.
</return>
</function>

<function name="gda_sql_statement_check_validity">
<description>
If @cnc is not %NULL, then checks that all the database objects referenced in the statement actually
exist in the connection's database (for example the table being updated in a UPDATE statement must exist in the
connection's database for the check to succeed). This method fills the @stmt-&gt;validity_meta_struct attribute.

If @cnc is %NULL, then remove any information from a previous call to this method stored in @stmt. In this case,
the @stmt-&gt;validity_meta_struct attribute is cleared.

Also note that some parts of @stmt may be modified: for example leading and trailing spaces in aliases or
objects names will be removed.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_dump_as_string">
<description>
Dumps a textual representation of the @model into a new string

The following environment variables can affect the resulting output:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_ROW_NUMBERS: if set, the first column of the output will contain row numbers&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_TITLE: if set, also dump the data model's title&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_DATA_MODEL_DUMP_NULL_AS_EMPTY: if set, replace the 'NULL' string with an empty string for NULL values &lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel.
</parameter_description>
</parameter>
</parameters>
<return> a new string.
</return>
</function>

<function name="gda_sql_select_join_new">
<description>
Creates a new #GdaSqlSelectJoin structure and sets its parent to @parent.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlSelectFrom
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectJoin structure
</return>
</function>

<function name="gda_tree_node_get_children">
<description>
Get a list of all @node's children, free it with g_slist_free() after usage

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode object
</parameter_description>
</parameter>
</parameters>
<return> a new #GSList of #GdaTreeNode objects, or %NULL if @node does not have any child

</return>
</function>

<function name="gda_holder_set_attribute">
<description>
Set the value associated to a named attribute. The @attribute string is 'stolen' by this method, and
the memory it uses will be freed using the @destroy function when no longer needed (if @destroy is %NULL,
then the string will not be freed at all).

Attributes can have any name, but Libgda proposes some default names, 
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

For example one would use it as:

&lt;code&gt;
gda_holder_set_attribute (holder, g_strdup (my_attribute), g_free, my_value);
gda_holder_set_attribute (holder, GDA_ATTRIBUTE_NAME, NULL, my_value);
&lt;/code&gt;

If there is already an attribute named @attribute set, then its value is replaced with the new value (@value is
copied), except if @value is %NULL, in which case the attribute is removed.

</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_attributes_manager_free">
<description>
Frees all the resssources managed by @mgr

</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_store_extract">
<description>
Extracts some data stored in @store using a custom SELECT query. If the @select_sql filter involves
SQL identifiers (such as table or column names), then the values should have been adapted using
gda_meta_store_sql_identifier_quote().

For more information about
SQL identifiers are represented in @store, see the
&lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;meta data section about SQL identifiers&lt;/link&gt;.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="select_sql">
<parameter_description> a SELECT statement
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of (variable name (gchar *), GValue *value) terminated with NULL, representing values for all the
variables mentioned in @select_sql. If there is no variable then this part can be omitted.
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataModel, or %NULL if an error occurred
</return>
</function>

<function name="gda_vconnection_data_model_get_table_name">
<description>
Find the name of the table associated to @model in @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GdaDataModel representing a table within @cnc
</parameter_description>
</parameter>
</parameters>
<return> the table name, or %NULL if not found
</return>
</function>

<function name="gda_data_proxy_row_has_changed">
<description>
Tells if the row number @proxy_row has changed


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the row has changed
</return>
</function>

<function name="gda_data_model_array_copy_model">
<description>
Makes a copy of @src into a new #GdaDataModelArray object


</description>
<parameters>
<parameter name="src">
<parameter_description> a #GdaDataModel to copy data from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new data model, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_builder_compound_add_sub_select">
<description>
Add a sub select to a COMPOUND statement

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="sqlst">
<parameter_description> a pointer to a #GdaSqlStatement, which has to be a SELECT or compound SELECT. This will be copied.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_string_new_with_provider">
<description>
Creates a data handler for strings, which will use some specific methods implemented
by the @prov object (possibly also @cnc).


</description>
<parameters>
<parameter name="prov">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_column_set_position">
<description>
Sets the position of the column refer to in the containing
data model.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="position">
<parameter_description> the wanted position of the column in the containing data model.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_blob_set_op">
<description>
correctly assigns @op to @blob

</description>
<parameters>
<parameter name="blob">
<parameter_description> a #GdaBlob value
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaBlobOp object, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_new_from_spec_node">
<description>
Creates a new #GdaSet object from the @xml_spec
specifications


</description>
<parameters>
<parameter name="xml_spec">
<parameter_description> a #xmlNodePtr for a &lt;holders&gt; tag
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store the error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new object, or %NULL if an error occurred
</return>
</function>

<function name="gda_tree_node_new">
<description>
Creates a new #GdaTreeNode object

Since: 4.2

</description>
<parameters>
<parameter name="name">
<parameter_description> a name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeNode

</return>
</function>

<function name="gda_xa_transaction_new">
<description>
Creates a new #GdaXaTransaction object, which will control the process of
performing a distributed transaction across several connections.


</description>
<parameters>
<parameter name="format">
<parameter_description> a format ID
</parameter_description>
</parameter>
<parameter name="global_transaction_id">
<parameter_description> the global transaction ID
</parameter_description>
</parameter>
</parameters>
<return> the newly created object.
</return>
</function>

<function name="gda_data_model_array_new_with_g_types">
<description>
Creates a new #GdaDataModel object with the column types as
specified.


</description>
<parameters>
<parameter name="cols">
<parameter_description> number of columns for rows in this data model.
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> types of the columns of the model to create as #GType, as many as indicated by @cols
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_thread_wrapper_execute">
<description>
Make @wrapper execute the @func function with the @arg argument (along with a #GError which is not @error)
in the sub thread managed by @wrapper. To execute a function which does not return anything,
use gda_thread_wrapper_execute_void().

This method returns immediately, and the caller then needs to use gda_thread_wrapper_fetch_result() to
check if the execution has finished and get the result.

Once @func's execution is finished, if it is not %NULL, the @arg_destroy_func destruction function is called
on @arg. This occurs in the thread calling gda_thread_wrapper_fetch_result().

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to execute
</parameter_description>
</parameter>
<parameter name="arg">
<parameter_description> argument to pass to @func
</parameter_description>
</parameter>
<parameter name="arg_destroy_func">
<parameter_description> function to be called when the execution has finished, to destroy @arg
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, for errors occurring in this method, not errors occurring while @func
is executed, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the job ID, or 0 if an error occurred

</return>
</function>

<function name="gda_data_proxy_set_filter_expr">
<description>
Sets a filter among the rows presented by @proxy. The filter is defined by a filter expression
which can be any SQL valid expression using @proxy's columns. For instance if @proxy has the &quot;id&quot; and
&quot;name&quot; columns, then a filter can be &quot;length(name) &lt; 5&quot; to filter only the rows where the length of the
name is strictly inferior to 5, or &quot;id &gt;= 1000 and id &lt; 2000 order by name limit 50&quot; to filter only the rows where the id
is between 1000 and 2000, ordered by name and limited to 50 rows.

Note about column names: real column names can be used (double quoted if necessary), but columns can also be named
&quot;_&lt;column number&gt;&quot; with column numbers starting at 1.

Note that any previous filter expression is replaced with the new @filter_expr if no error occurs
(if an error occurs, then any previous filter is left unchanged).


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="filter_expr">
<parameter_description> an SQL based expression which will filter the contents of @proxy, or %NULL to remove any previous filter
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_statement_to_sql_extended">
<description>
Renders @stmt as an SQL statement, with some control on how it is rendered.

If @cnc is not %NULL, then the rendered SQL will better be suited to be used by @cnc (in particular
it may include some SQL tweaks and/or proprietary extensions specific to the database engine used by @cnc):
in this case the result is similar to calling gda_connection_statement_to_sql().


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> parameters contained in a single #GdaSet object
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> a set of flags to control the rendering
</parameter_description>
</parameter>
<parameter name="params_used">
<parameter_description>a place to store the list of actual #GdaHolder objects in @params used to do the rendering, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new string if no error occurred
</return>
</function>

<function name="gda_data_model_import_from_model">
<description>
Copy the contents of the @from data model to the @to data model. The copy stops as soon as an error
orrurs.

The @cols_trans is a hash table for which keys are @to columns numbers and the values are
the corresponding column numbers in the @from data model. To set the values of a column in @to to NULL,
create an entry in the hash table with a negative value.

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="to">
<parameter_description> the destination #GdaDataModel
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> the source #GdaDataModel
</parameter_description>
</parameter>
<parameter name="overwrite">
<parameter_description> TRUE if @to is completely overwritten by @from's data, and FALSE if @from's data is appended to @to
</parameter_description>
</parameter>
<parameter name="cols_trans">
<parameter_description> a #GHashTable for columns translating, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_repetitive_statement_get_all_sets">
<description>
Get all the values sets which will have been added using gda_repetitive_statement_append_set().

Since: 4.2

</description>
<parameters>
<parameter name="rstmt">
<parameter_description> a #GdaRepetitiveStatement object
</parameter_description>
</parameter>
</parameters>
<return> a new #GSList of #GdaSet objects (free with g_slist_free()).

</return>
</function>

<function name="gda_holder_set_source_model">
<description>
Sets an hint that @holder's values should be restricted among the values
contained in the @col column of the @model data model. Note that this is just a hint,
meaning this policy is not enforced by @holder's implementation.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GdaDataModel object or NULL
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the reference column in @model
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_statement_unknown_take_expressions">
<description>
Sets @stmt's list of expressions

@expressions's 
ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="expressions">
<parameter_description> a list of #GdaSqlExpr pointers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_clear_events_list">
<description>
This function lets you clear the list of #GdaConnectionEvent's of the
given connection. 

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_param_spec_take_nullok">
<description>
Sets @pspec's ability of being NULL. @value's ownership is transferred to
@pspec (which means @pspec is then responsible for freeing it when no longer needed).

If @value's string starts by 't' or 'T' then @pspec will be allowed to be %NULL

</description>
<parameters>
<parameter name="pspec">
<parameter_description> a #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING #GValue. 
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_check_structure">
<description>
Checks for any error in @stmt's structure to make sure the statement is valid
(for example a SELECT statement must at least return a column, a DELETE statement must specify which table
is targeted).


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_value_stringify">
<description>
Simplified version of gda_value_stringify().


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue pointer
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_meta_struct_dump_as_graph">
<description>
Creates a new graph (in the GraphViz syntax) representation of @mstruct.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="info">
<parameter_description> informs what kind of information to show in the resulting graph
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if an error occurred.
</return>
</function>

<function name="gda_data_proxy_alter_value_attributes">
<description>
Alters the attributes of the value stored at (proxy_row, col) in @proxy. the @alter_flags
can only contain the GDA_VALUE_ATTR_IS_NULL, GDA_VALUE_ATTR_IS_DEFAULT and GDA_VALUE_ATTR_IS_UNCHANGED
flags (other flags are ignored).

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a valid column number
</parameter_description>
</parameter>
<parameter name="alter_flags">
<parameter_description> flags to alter the attributes
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_field_free">
<description>
Frees a #GdaSqlSelectField structure and its members.

</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_row_invalidate_value">
<description>
Marks @value as being invalid. This method is mainly used by database
providers' implementations to report any error while reading a value from the database.

</description>
<parameters>
<parameter name="row">
<parameter_description> a #GdaRow
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue belonging to @row (obtained with gda_row_get_value()).
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_order_copy">
<description>
Creates a new #GdaSqlSelectOrder structure initiated with the values stored in @order.


</description>
<parameters>
<parameter name="order">
<parameter_description> a #GdaSqlSelectOrder structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectOrder structure.
</return>
</function>

<function name="gda_set_set_holder_value">
<description>
Set the value of the #GdaHolder which ID is @holder_id to a specified value


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="holder_id">
<parameter_description> the ID of the holder to set the value
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value, of the correct type, depending on the requested holder's type (not NULL)
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred and the value was set correctly
</return>
</function>

<function name="gda_meta_struct_get_db_object">
<description>
Tries to locate the #GdaMetaDbObject structure representing the database object named after
@catalog, @schema and @name.

If one or both of @catalog and @schema are %NULL, and more than one database object matches the name, then
the return value is also %NULL.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="catalog">
<parameter_description> the catalog the object belongs to (as a G_TYPE_STRING GValue), or %NULL
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema the object belongs to (as a G_TYPE_STRING GValue), or %NULL
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the object's name (as a G_TYPE_STRING GValue), not %NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GdaMetaDbObject or %NULL if not found
</return>
</function>

<function name="gda_sql_select_join_serialize">
<description>
Creates a new string description of the join used in a SELECT statement.


</description>
<parameters>
<parameter name="join">
<parameter_description> a #GdaSqlSelectJoin structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the join or &quot;null&quot; in case @join is invalid.
</return>
</function>

<function name="gda_log_is_enabled">
<description>

</description>
<parameters>
</parameters>
<return> whether GDA logs are enabled (%TRUE or %FALSE).
</return>
</function>

<function name="gda_attributes_manager_set">
<description>
Associates an attribute named @att_name to @ptr, with the value @value. Any previous association is replaced by
this one, and if @value is %NULL then the association is removed.

Note: @att_name is *not* copied, so it should be a string which exists as long as @mgr exists.
Libgda provides several predefined names for common attributes,
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

If @att_name needs to be freed when not used anymore, then use gda_attributes_manager_set_full().

</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="ptr">
<parameter_description> a pointer to the resources to which the attribute will apply
</parameter_description>
</parameter>
<parameter name="att_name">
<parameter_description> an attribute's name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_time_copy">
<description>

</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gda_sql_case_copy">
<description>
Creates a new #GdaSqlCase structure initiated with the values stored in @sc.


</description>
<parameters>
<parameter name="sc">
<parameter_description> a #GdaSqlCase structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlCase structure.
</return>
</function>

<function name="gda_data_comparator_set_key_columns">
<description>
Defines the columns which will be used as a key when searching data. This is not mandatory but
will speed things up as less data will be processed.

</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GdaDataComparator object
</parameter_description>
</parameter>
<parameter name="nb_cols">
<parameter_description> the size of the @col_numbers array
</parameter_description>
</parameter>
<parameter name="col_numbers">
<parameter_description> an array of @nb_cols values
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_time_get_no_locale_str_from_value">
<description>
Retunrs: a new string representing @value without taking the current
locele into account

</description>
<parameters>
<parameter name="hdl">
<parameter_description> a #GdaHandlerTime object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a GValue value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_select_take_distinct">
<description>
Sets the DISTINCT clause of @stmt. 

@distinct_expr's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="distinct">
<parameter_description> a TRUE/FALSE value
</parameter_description>
</parameter>
<parameter name="distinct_expr">
<parameter_description> a #GdaSqlExpr pointer representing what the DISTINCT is on, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_event_set_source">
<description>
Sets @event's @source; this function should not be called directly

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> a source.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_virtual_connection_internal_get_provider_data">
<description>
Get the opaque pointer previously set using gda_virtual_connection_internal_set_provider_data().
If it's not set, then add a connection event and returns %NULL


</description>
<parameters>
<parameter name="vcnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> the pointer to the opaque structure set using gda_virtual_connection_internal_set_provider_data()
</return>
</function>

<function name="gda_prepare_create_database">
<description>
Creates a new #GdaServerOperation object which contains the specifications required
to create a database. Once these specifications provided, use 
gda_perform_create_database() to perform the database creation.

If @db_name is left %NULL, then the name of the database to create will have to be set in the
returned #GdaServerOperation using gda_server_operation_set_value_at().


</description>
<parameters>
<parameter name="provider">
<parameter_description> the database provider to use
</parameter_description>
</parameter>
<parameter name="db_name">
<parameter_description> the name of the database to create, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> new #GdaServerOperation object, or %NULL if the provider does not support database
creation
</return>
</function>

<function name="gda_server_provider_create_operation">
<description>
Creates a new #GdaServerOperation object which can be modified in order to perform the @type type of
action. The @options can contain:
&lt;itemizedlist&gt;
&lt;listitem&gt;named values which ID is a path in the resulting GdaServerOperation object, to initialize some value&lt;/listitem&gt;
&lt;listitem&gt;named values which may change the contents of the GdaServerOperation, see &lt;link linkend=&quot;gda-server-op-information-std&quot;&gt;this section&lt;/link&gt; for more information&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object which will be used to perform an action, or %NULL
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of operation requested
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> an optional list of parameters
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaServerOperation object, or %NULL in the provider does not support the @type type of operation or if an error occurred
</return>
</function>

<function name="gda_data_handler_get_str_from_value">
<description>
Creates a new string which is a &quot;user friendly&quot; representation of the given value
(in the user's locale, specially for the dates). If the value is 
NULL or is of type GDA_TYPE_NULL, the returned string is a copy of &quot;&quot; (empty string).


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to be converted to a string
</parameter_description>
</parameter>
</parameters>
<return> the new string, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_statement_insert_take_on_conflict">
<description>
Sets the name of the resolution conflict algorithm used by @stmt. @value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> name of the resolution conflict algorithm, as a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_xa_transaction_register_connection">
<description>
Registers @cnc to be used by @xa_trans to create a distributed transaction.

Note: any #GdaConnection object can only be registered with at most one #GdaXaTransaction object; also
some connections may not be registered at all with a #GdaXaTransaction object because the database
provider being used does not support it.


</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> the connection to add to @xa_trans
</parameter_description>
</parameter>
<parameter name="branch">
<parameter_description> the branch qualifier
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_dir_blob_op_new">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_sql_field_take_name">
<description>
Sets the field's name using the string held by @value. When call, @value is freed using
#gda_value_free().


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlField structure
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue holding a string to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_field_copy">
<description>
Creates a new GdaSqlField structure initiated with the values stored in @field.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlAnyPart
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlField structure.
</return>
</function>

<function name="gda_value_get_geometric_point">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_rfc1738_encode">
<description>
Encodes @string using the RFC 1738 recommendations: the
&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character.


</description>
<parameters>
<parameter name="string">
<parameter_description> a string to encode 
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_config_get_dsn_info">
<description>
Get information about the DSN named @dsn_name. 

@dsn_name's format is &quot;[&lt;username&gt;[:&lt;password&gt;]@]&lt;DSN&gt;&quot; (if &lt;username&gt;
and optionally &lt;password&gt; are provided, they are ignored). Also see the gda_dsn_split() utility
function.


</description>
<parameters>
<parameter name="dsn_name">
<parameter_description> the name of the DSN to look for
</parameter_description>
</parameter>
</parameters>
<return> a pointer to read-only #GdaDsnInfo structure, or %NULL if not found
</return>
</function>

<function name="gda_data_model_import_new_mem">
<description>
Creates a new #GdaDataModel object which contains the data stored in the @data string. 

Important note: the @data string is not copied for memory efficiency reasons and should not
therefore be altered in any way as long as the returned data model exists.


</description>
<parameters>
<parameter name="data">
<parameter_description> a string containing the data to import
</parameter_description>
</parameter>
<parameter name="random_access">
<parameter_description> TRUE if random access will be required
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> importing options, see gda_data_model_import_new_file() for more information
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_dir_blob_get_filename">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_holder_get_source_model">
<description>
If gda_holder_set_source_model() has been used to provide a hint that @holder's value
should be among the values contained in a column of a data model, then this method
returns which data model, and if @col is not %NULL, then it is set to the restricting column
as well.

Otherwise, this method returns %NULL, and if @col is not %NULL, then it is set to 0.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a place to store the column in the model sourcing the holder, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a pointer to a #GdaDataModel, or %NULL
</return>
</function>

<function name="gda_compute_unique_table_row_condition">
<description>
Computes a #GdaSqlExpr expression which can be used in the WHERE clause of an UPDATE
or DELETE statement when a row from the result of the @stsel statement has to be modified.


</description>
<parameters>
<parameter name="stsel">
<parameter_description> a #GdaSqlSelectStatement
</parameter_description>
</parameter>
<parameter name="mtable">
<parameter_description> a #GdaMetaTable
</parameter_description>
</parameter>
<parameter name="require_pk">
<parameter_description> set to TRUE if a primary key ir required
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlExpr, or %NULL if an error occurred.
</return>
</function>

<function name="gda_data_model_thaw">
<description>
Re-enables notifications of changes on the given data model.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_iter_invalidate_contents">
<description>
Declare all the parameters in @iter invalid, without modifying the
#GdaDataModel @iter is for or changing the row it represents. This method
is for internal usage. Note that for gda_data_model_iter_is_valid() to return %FALSE,
it is also necessary to set the &quot;current-row&quot; property to -1.

</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_attributes_manager_foreach">
<description>
Calls @func for every attribute set to @ptr.

</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="ptr">
<parameter_description> a pointer to the resources for which all the attributes used
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaAttributesManagerFunc function
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to be passed as last argument of @func each time it is called
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_parser_parse_file_as_batch">
<description>
Parse @filename's contents and creates a #GdaBatch object which contains all the
#GdaStatement objects created while parsing (one object per SQL statement).

@filename's contents are parsed and #GdaStatement objects are created as long as no error is found. If an error is found
at some point, then the parsing stops, @error may be set and %NULL is returned

if @sql is %NULL, then the returned #GdaBatch object will contain no statement.


</description>
<parameters>
<parameter name="parser">
<parameter_description> a #GdaSqlParser object
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> name of the file to parse
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaBatch object, or %NULL if an error occurred
</return>
</function>

<function name="gda_meta_store_modify_with_context">
<description>
Propagates an update to @store, the update's contents is represented by @new_data, this function is
primarily reserved to database providers.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a #GdaMetaContext context describing what to modify in @store
</parameter_description>
</parameter>
<parameter name="new_data">
<parameter_description> a #GdaDataModel containing the new data to set in @table_name, or %NULL (treated as a data model
with no row at all)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_operation_free">
<description>
Frees a #GdaSqlOperation structure and its members.

</description>
<parameters>
<parameter name="operation">
<parameter_description> a #GdaSqlOperation structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_vprovider_data_model_new">
<description>
Creates a new GdaVirtualProvider object which allows one to 
add and remove GdaDataModel objects as tables within a connection


</description>
<parameters>
</parameters>
<return> a new #GdaVirtualProvider object.
</return>
</function>

<function name="gda_meta_table_column_foreach_attribute">
<description>
Calls @func for each attribute set to tcol

</description>
<parameters>
<parameter name="tcol">
<parameter_description> a #GdaMetaTableColumn
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaAttributesManagerFunc function
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> user data to be passed as last argument of @func each time it is called
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_proxy_get_n_modified_rows">
<description>
Get the number of rows which have been modified in the proxy (the sum of rows existing in
the proxied data model which have been modified, and new rows).


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of modified rows
</return>
</function>

<function name="gda_data_proxy_set_sample_size">
<description>
Sets the size of each chunk of data to display: the maximum number of rows which
can be &quot;displayed&quot; at a time (the maximum number of rows which @proxy pretends to have).
The default value is arbitrary 300 as it is big enough to
be able to display quite a lot of data, but small enough to avoid too much data
displayed at the same time.

Note: the rows which have been added but not yet committed will always be displayed
regardless of the current chunk of data, and the modified rows which are not visible
when the displayed chunk of data changes are still held as modified rows.

To remove the chunking of the data to display, simply pass @sample_size the %0 value.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="sample_size">
<parameter_description> the requested size of a chunk, or 0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_function_take_name">
<description>
Sets the function's name using the string held by @value. When call, @value is freed using
#gda_value_free().

</description>
<parameters>
<parameter name="function">
<parameter_description> a #GdaSqlFunction structure
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue holding a string to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_time_new">
<description>
Creates a data handler for time values


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_sql_select_field_take_expr">
<description>
Sets the expression field in the #GdaSqlSelectField structure to point to @expr
and modify it to sets its parent to @field.

</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_row_get_length">
<description>

</description>
<parameters>
<parameter name="row">
<parameter_description> a #GdaRow.
</parameter_description>
</parameter>
</parameters>
<return> the number of columns that the @row has.
</return>
</function>

<function name="gda_update_row_in_table">
<description>
This is a convenience function, which creates an UPDATE statement and executes it using the values
provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: UPDATE &lt;table&gt; SET &lt;column_name&gt; = &lt;new_value&gt; [,...] WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table">
<parameter_description> the table's name with the row's values to be updated
</parameter_description>
</parameter>
<parameter name="condition_column_name">
<parameter_description> the name of the column to used in the WHERE condition clause
</parameter_description>
</parameter>
<parameter name="condition_value">
<parameter_description> the @condition_column_type's GType
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of string/GValue pairs with the name of the column to use and the
GValue pointer containing the value to update the column to (value can be %NULL), finished by a %NULL. There must be
at least one column name and value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_log_disable">
<description>
Disables GDA logs.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_value_set_null">
<description>
Sets the type of @value to #GDA_TYPE_NULL.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store a value of type #GDA_TYPE_NULL.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_dir_blob_set_filename">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_delete_take_condition">
<description>
Sets the WHERE condition of @stmt. @cond's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="cond">
<parameter_description> the WHERE condition of the DELETE statement, as a #GdaSqlExpr 
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_struct_load_from_xml_file">
<description>
Loads an XML description into @mstruct


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="catalog">
<parameter_description> the catalog name, or %NULL
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema name, or %NULL
</parameter_description>
</parameter>
<parameter name="xml_spec_file">
<parameter_description> the specifications as the name of an XML file
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error has occurred
</return>
</function>

<function name="gda_value_new_from_xml">
<description>
Creates a GValue from an XML representation of it. That XML
node corresponds to the following string representation:
&lt;value type=&quot;gdatype&quot;&gt;value&lt;/value&gt;

For more information
about the string format, see the gda_value_set_from_string() function.
This function is typically used when reading configuration files or other non-user input that should be locale 
independent.


</description>
<parameters>
<parameter name="node">
<parameter_description> an XML node representing the value.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_config_list_dsn">
<description>
Get a #GdaDataModel representing all the configured DSN, and keeping itself up to date with
the changes in the declared DSN.

The returned data model is composed of the following columns:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;DSN name&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Provider name&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Description&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Connection string&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Username if it exists&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
</parameters>
<return> a new #GdaDataModel
</return>
</function>

<function name="gda_holder_set_value">
<description>
Sets the value within the holder. If @holder is an alias for another
holder, then the value is also set for that other holder.

On success, the action of any call to gda_holder_force_invalid() is cancelled
as soon as this method is called (even if @holder's value does not actually change)

If the value is not different from the one already contained within @holder,
then @holder is not changed and no signal is emitted.

Note1: the @value argument is treated the same way if it is %NULL or if it is a #GDA_TYPE_NULL value

Note2: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
in an invalid state.

Note3: before the change is accepted by @holder, the &quot;validate-change&quot; signal will be emitted (the value
of which can prevent the change from happening) which can be connected to to have a greater control
of which values @holder can have, or implement some business rules.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value to set the holder to, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if value has been set
</return>
</function>

<function name="gda_sql_statement_select_take_group_by">
<description>
Sets the GROUP BY clause of @stmt

@group_by's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="group_by">
<parameter_description> a list of #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_bdb_get_errors">
<description>
Get the list of errors which have occurred while using @model


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelBdb object
</parameter_description>
</parameter>
</parameters>
<return> a read-only list of #GError pointers, or %NULL if no error has occurred
</return>
</function>

<function name="gda_value_set_ushort">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_holder_copy">
<description>
Copy constructor.

Note1: if @orig is set with a static value (see gda_holder_take_static_value()) 
its copy will have a fresh new allocated GValue, so that user should free it when done.


</description>
<parameters>
<parameter name="orig">
<parameter_description> a #GdaHolder object to copy
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaHolder object
</return>
</function>

<function name="gda_tree_mgr_label_new">
<description>
Creates a new #GdaTreeManager object which will add one tree node labelled @label

Since: 4.2

</description>
<parameters>
<parameter name="label">
<parameter_description> a label string
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager object

</return>
</function>

<function name="gda_sql_statement_update_take_condition">
<description>
Sets the WHERE clause of @stmt

@expr's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="cond">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_function_take_args_list">
<description>
Sets the function's arguments to point to @args, then sets the
list's data elements' parent to @function.


</description>
<parameters>
<parameter name="function">
<parameter_description> a #GdaSqlFunction structure
</parameter_description>
</parameter>
<parameter name="args">
<parameter_description> a #GSList to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_set_from_string">
<description>
Stores the value data from its string representation as @type.

The accepted formats are:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;G_TYPE_BOOLEAN: a caseless comparison is made with &quot;true&quot; or &quot;false&quot;&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;numerical types: C locale format (dot as a fraction separator)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;G_TYPE_DATE: see &lt;link linkend=&quot;gda-parse-iso8601-date&quot;&gt;gda_parse_iso8601_date()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_TYPE_TIME: see &lt;link linkend=&quot;gda-parse-iso8601-time&quot;&gt;gda_parse_iso8601_time()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;GDA_TYPE_TIMESTAMP: see &lt;link linkend=&quot;gda-parse-iso8601-timestamp&quot;&gt;gda_parse_iso8601_timestamp()&lt;/link&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

This function is typically used when reading configuration files or other non-user input that should be locale 
independent.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="as_string">
<parameter_description> the stringified representation of the value.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of the value
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the value has been converted to @type from
its string representation; it not means that the value is converted 
successfully, just that the transformation is available. %FALSE otherwise.
</return>
</function>

<function name="gda_holder_take_static_value">
<description>
Sets the const value within the holder. If @holder is an alias for another
holder, then the value is also set for that other holder.

The value will not be freed, and user should take care of it, either for its
freeing or for its correct value at the moment of query.

If the value is not different from the one already contained within @holder,
then @holder is not changed and no signal is emitted.

Note1: if @holder can't accept the @value value, then this method returns NULL, and @holder will be left
in an invalid state.

Note2: before the change is accepted by @holder, the &quot;validate-change&quot; signal will be emitted (the value
of which can prevent the change from happening) which can be connected to to have a greater control
of which values @holder can have, or implement some business rules.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a const value to set the holder to
</parameter_description>
</parameter>
<parameter name="value_changed">
<parameter_description> a boolean set with TRUE if the value changes, FALSE elsewhere.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> NULL if an error occurred or if the previous GValue was NULL itself. It returns
the static GValue user set previously, so that he can free it.
</return>
</function>

<function name="gda_data_model_iter_get_column_for_param">
<description>
Get the column number in the #GdaDataModel for which @iter is an iterator as
represented by the @param parameter


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="param">
<parameter_description> a #GdaHolder object, listed in @iter
</parameter_description>
</parameter>
</parameters>
<return> the column number, or @param is not valid
</return>
</function>

<function name="gda_sql_builder_join_add_field">
<description>
Alter a join in a SELECT statement to make its condition use equal field 
values in the fields named @field_name in both tables, via the USING keyword.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="join_id">
<parameter_description> the ID of the join to modify (not %0)
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> the name of the field to use in the join condition (not %NULL)
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new join, or %0 if there was an error

</return>
</function>

<function name="gda_connection_value_to_sql_string">
<description>
Produces a fully quoted and escaped string from a GValue


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> #GValue to convert from
</parameter_description>
</parameter>
</parameters>
<return> escaped and quoted value or NULL if not supported.
</return>
</function>

<function name="gda_meta_struct_complement">
<description>
Creates a new #GdaMetaDbObject structure in @mstruct to represent the database object (of type @type)
which can be uniquely identified as @catalog.@schema.@name.

If @catalog is not %NULL, then @schema should not be %NULL.

If both @catalog and @schema are %NULL, then the database object will be the one which is
&quot;visible&quot; by default (that is which can be accessed only by its short @name name).

If @catalog is %NULL and @schema is not %NULL, then the database object will be the one which 
can be accessed by its @schema.@name name.

Important note: @catalog, @schema and @name will be used using the following convention:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;be surrounded by double quotes for a case sensitive search&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;otherwise for case insensitive search&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

For more information, see the &lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;
meta data section about SQL identifiers&lt;/link&gt;.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of object to add (which can be GDA_META_DB_UNKNOWN)
</parameter_description>
</parameter>
<parameter name="catalog">
<parameter_description> the catalog the object belongs to (as a G_TYPE_STRING GValue), or %NULL
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> the schema the object belongs to (as a G_TYPE_STRING GValue), or %NULL
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the object's name (as a G_TYPE_STRING GValue), not %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GdaMetaDbObject corresponding to the database object if no error occurred, or %NULL
</return>
</function>

<function name="gda_sql_select_field_take_star_value">
<description>
Sets the expression field's value in the #GdaSqlSelectField structure to point to @value;
after this @field is the owner of @value.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_expr_serialize">
<description>
Creates a new string representing a field. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the name of the field or &quot;null&quot; in case @expr is invalid.
</return>
</function>

<function name="gda_data_proxy_row_is_deleted">
<description>
Tells if the row number @proxy_row is marked to be deleted.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the row is marked to be deleted
</return>
</function>

<function name="gda_connection_supports_feature">
<description>
Asks the underlying provider for if a specific feature is supported.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> feature to ask for.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the provider supports it, %FALSE if not.
</return>
</function>

<function name="gda_utility_check_data_model">
<description>
Check the column types of a GdaDataModel.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object
</parameter_description>
</parameter>
<parameter name="nbcols">
<parameter_description> the minimum requested number of columns
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> @nbcols arguments of type GType or -1 (if any data type is accepted)
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the data model's columns match the provided data types and number
</return>
</function>

<function name="gda_insert_row_into_table">
<description>
This is a convenience function, which creates an INSERT statement and executes it using the values
provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: INSERT INTO &lt;table&gt; (&lt;column_name&gt; [,...]) VALUES (&lt;column_name&gt; = &lt;new_value&gt; [,...]).


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table">
<parameter_description> table's name to insert into
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of string/GValue pairs with the name of the column to use and the
GValue pointer containing the value to insert for the column (value can be %NULL), finished by a %NULL. There must be
at least one column name and value
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_config_get_provider_info">
<description>
Get some information about the a database provider (adapter) named 


</description>
<parameters>
<parameter name="provider_name">
<parameter_description> a database provider
</parameter_description>
</parameter>
</parameters>
<return> a pointer to read-only #GdaProviderInfo structure, or %NULL if not found
</return>
</function>

<function name="gda_thread_wrapper_disconnect">
<description>
Disconnects the emission of a signal, does the opposite of gda_thread_wrapper_connect_raw().

As soon as this method returns, the callback function set when gda_thread_wrapper_connect_raw()
was called will not be called anymore (even if the object has emitted the signal in the worker
thread and this signal has not been handled in the user thread).

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a handler ID, as returned by gda_thread_wrapper_connect_raw()
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_row_value_is_valid">
<description>
Tells if @value has been marked as being invalid by gda_row_invalidate_value().
This method is mainly used by database
providers' implementations to report any error while reading a value from the database.


</description>
<parameters>
<parameter name="row">
<parameter_description> a #GdaRow.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue belonging to @row (obtained with gda_row_get_value()).
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @value is valid
</return>
</function>

<function name="gda_sql_builder_add_expr_value">
<description>
Defines an expression in @builder which may be reused to build other parts of a statement.

The new expression will contain the value passed as the @value argument. It is possible to
customize how the value has to be interpreted by passing a specific #GdaDataHandler object as @dh.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="dh">
<parameter_description> a #GdaDataHandler to use, or %NULL
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> value to set the expression to, or %NULL or a GDA_TYPE_NULL value to represent an SQL NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_gbr_init">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_handler_boolean_new">
<description>
Creates a data handler for booleans


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_connection_get_meta_store">
<description>
Get or initializes the #GdaMetaStore associated to @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a #GdaMetaStore object
</return>
</function>

<function name="gda_sql_param_spec_new">
<description>
@value must contain a string representing a variable, see the documentation associated to the
#GdaSqlParser object.

@value is destroyed by this function.


</description>
<parameters>
<parameter name="value">
<parameter_description> a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlParamSpec
</return>
</function>

<function name="gda_data_model_create_iter">
<description>
Creates a new iterator object #GdaDataModelIter object which can be used to iterate through
rows in @model.

Depending on the data model's implementation, a new #GdaDataModelIter object may be created,
or a reference to an already existing #GdaDataModelIter may be returned.

If a new #GdaDataModelIter is created, then the row it represents is undefined.

For models which can be accessed 
randomly, any row can be set using gda_data_model_iter_move_to_row(), 
and for models which are accessible sequentially only then use
gda_data_model_iter_move_next() (and gda_data_model_iter_move_prev() if
supported).


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModelIter object, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_builder_add_cond">
<description>
Builds a new expression which represents a condition (or operation).

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> type of condition
</parameter_description>
</parameter>
<parameter name="op1">
<parameter_description> the ID of the 1st argument (not 0)
</parameter_description>
</parameter>
<parameter name="op2">
<parameter_description> the ID of the 2nd argument (may be %0 if @op needs only one operand)
</parameter_description>
</parameter>
<parameter name="op3">
<parameter_description> the ID of the 3rd argument (may be %0 if @op needs only one or two operand)
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_value_get_short">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_connection_update_meta_store">
<description>
Updates @cnc's associated #GdaMetaStore. If @context is not %NULL, then only the parts described by
@context will be updated, and if it is %NULL, then the complete meta store will be updated. Detailed
explanations follow:

In order to keep the meta store's contents in a consistent state, the update process involves updating
the contents of all the tables related to one where the contents change. For example the &quot;_columns&quot;
table (which lists all the columns of a table) depends on the &quot;_tables&quot; table (which lists all the tables
in a schema), so if a row is added, removed or modified in the &quot;_tables&quot;, then the &quot;_columns&quot; table's contents
needs to be updated as well regarding that row.

If @context is %NULL, then the update process will simply overwrite any data that was present in all the
meta store's tables with new (up to date) data even if nothing has changed, without having to build the
tables' dependency tree. This is the recommended way of proceeding when dealing with a meta store which
might be outdated.

On the other hand, if @context is not %NULL, then a tree of the dependencies has to be built (depending on
@context) and only some parts of the meta store are updated following that dependencies tree. Specifying a
context may be useful for example in the following situations:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;One knows that a database object has changed (for example a table created), and
may use the @context to request that only the information about that table be updated
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;One is only interrested in the list of views, and may request that only the information
about views may be updated&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

When @context is not %NULL, and contains specified SQL identifiers (for example the &quot;table_name&quot; of the &quot;_tables&quot;
table), then each SQL identifier has to match the convention the #GdaMetaStore has adopted regarding
case sensitivity, using gda_connection_quote_sql_identifier() or gda_meta_store_sql_identifier_quote().

see the &lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;
meta data section about SQL identifiers&lt;/link&gt; for more information, and the documentation about the
gda_sql_identifier_quote() function which will be most useful.

Note however that usually &lt;emphasis&gt;more&lt;/emphasis&gt; information will be updated than strictly requested by
the @context argument.

For more information, see the &lt;link linkend=&quot;information_schema&quot;&gt;Database structure&lt;/link&gt; section, and
the &lt;link linkend=&quot;howto-meta2&quot;&gt;Update the meta data about a table&lt;/link&gt; howto.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> description of which part of @cnc's associated #GdaMetaStore should be updated, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_holder_get_value">
<description>
Get the value held into the holder. If @holder is set to use its default value
and that default value is not of the same type as @holder, then %NULL is returned.

If @holder is set to NULL, then the returned value is a #GDA_TYPE_NULL GValue.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the value, or %NULL
</return>
</function>

<function name="gda_vconnection_data_model_add_model">
<description>
Make @model appear as a table named @table_name in the @cnc connection (as if a
&quot;CREATE TABLE...&quot; statement was executed, except that the data contained within @model
is actually used when @table_name's contents is read or written).

For a more general approach, see the gda_vconnection_data_model_add() method.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaVconnectionDataModel connection
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_tree_get_node">
<description>
Locates a #GdaTreeNode using the @tree_path path.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="tree_path">
<parameter_description> full path to the required nodes (if @use_names is %TRUE, then it must start with '/')
</parameter_description>
</parameter>
<parameter name="use_names">
<parameter_description> if %TRUE, then @tree_path will be interpreted as a unix style path, and if %FALSE,
then @tree_path will be interpreted similarly to the #GtkTreePath's string representation.
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaTreeNode pointer, or %NULL if not found

</return>
</function>

<function name="gda_meta_struct_add_db_object">
<description>
Adds @dbo to the database objects known to @mstruct. In any case (whether an error occured or not)
@dbo's ownership is then transferred to @smtruct and should
not be used after calling this function (it may have been destroyed). If you need a pointer to the #GdaMetaDbObject
for a database object, use gda_meta_struct_get_db_object().


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="dbo">
<parameter_description> a #GdaMetaDbObject structure
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GdaMetaDbObject used in @mstruct to represent the added database object (may be @dbo or not)
</return>
</function>

<function name="gda_dsn_split">
<description>
Extract the DSN, username and password from @string. in @string, the various parts are strings
which are expected to be encoded using an RFC 1738 compliant encoding. If they are specified, 
the returned username and password strings are correctly decoded.

@out_username and @out_password may be set to %NULL depending on @string's format.

</description>
<parameters>
<parameter name="string">
<parameter_description> a string in the &quot;[&lt;username&gt;[:&lt;password&gt;]@]&lt;DSN&gt;&quot; form
</parameter_description>
</parameter>
<parameter name="out_dsn">
<parameter_description> a place to store the new string containing the &lt;DSN&gt; part
</parameter_description>
</parameter>
<parameter name="out_username">
<parameter_description> a place to store the new string containing the &lt;username&gt; part
</parameter_description>
</parameter>
<parameter name="out_password">
<parameter_description> a place to store the new string containing the &lt;password&gt; part
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_holder_value_is_default">
<description>
Tells if @holder's current value is the default one.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @holder @holder's current value is the default one
</return>
</function>

<function name="gda_sql_statement_select_take_order_by">
<description>
Sets the ORDER BY clause of @stmt

@order_by's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="order_by">
<parameter_description> a list of #GdaSqlSelectOrder pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_quote_sql_identifier">
<description>
Use this method to get a correctly quoted (if necessary) SQL identifier which can be used
in SQL statements, from @id. If @id is already correctly quoted for @cnc, then a copy of @id
may be returned.

This method may add double quotes (or other characters) around @id:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if @id is a reserved SQL keyword (such as SELECT, INSERT, ...)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @id contains non allowed characters such as spaces, or if it starts with a digit&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;in any other event as necessary for @cnc, depending on the the options passed when opening the @cnc
connection, and specifically the &lt;link linkend=&quot;GDA-CONNECTION-OPTIONS-SQL-IDENTIFIERS-CASE-SENSITIVE:CAPS&quot;&gt;
GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE&lt;/link&gt; option.&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

One can safely pass an already quoted @id to this method, either with quoting characters allowed by @cnc or using the
double quote (&quot;) character.

Since: 4.0.3

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
</parameters>
<return> a new string, to free with g_free() once not needed anymore

</return>
</function>

<function name="gda_sql_param_spec_free">
<description>
Destroys @pspec.

</description>
<parameters>
<parameter name="pspec">
<parameter_description> #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_config_remove_dsn">
<description>
Remove the DSN named @dsn_name.

This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).


</description>
<parameters>
<parameter name="dsn_name">
<parameter_description> the name of the DSN to remove
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_get_column_name">
<description>
Since: 3.2


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number.
</parameter_description>
</parameter>
</parameters>
<return> the name for the given column in a data model object.
</return>
</function>

<function name="gda_config_get_nb_dsn">
<description>
Get the number of defined DSN


</description>
<parameters>
</parameters>
<return> the number of defined DSN
</return>
</function>

<function name="gda_row_new">
<description>
Creates a #GdaRow which can hold @count #GValue values.


</description>
<parameters>
<parameter name="count">
<parameter_description> number of #GValue in the new #GdaRow.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaRow object.
</return>
</function>

<function name="gda_sql_statement_normalize">
<description>
&quot;Normalizes&quot; (in place) some parts of @stmt, which means @stmt may be modified.
At the moment any &quot;*&quot; field in a SELECT statement will be replaced by one
#GdaSqlSelectField structure for each field in the referenced table.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a pointer to a #GdaSqlStatement structure
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_statement_insert_take_table_name">
<description>
Sets the name of the table to insert into in @stmt. @value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> name of the table to insert into, as a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_holder_get_alphanum_id">
<description>
Get an &quot;encoded&quot; version of @holder's name. The &quot;encoding&quot; consists in replacing non
alphanumeric character with the string &quot;__gdaXX&quot; where XX is the hex. representation
of the non alphanumeric char.

This method is just a wrapper around the gda_text_to_alphanum() function.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_sql_select_target_serialize">
<description>
Creates a new string representing a target used in a SELECT statement
after the FROM clause.


</description>
<parameters>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the expression or &quot;null&quot; in case @field is invalid.
</return>
</function>

<function name="gda_server_provider_supports_operation">
<description>
Tells if @provider supports the @type of operation on the @cnc connection, using the
(optional) @options parameters.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object which would be used to perform an action, or %NULL
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of operation requested
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> a list of named parameters, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the operation is supported
</return>
</function>

<function name="gda_tree_get_type">
<description>
Registers the #GdaTree class on the GLib type system.

Since: 4.2

</description>
<parameters>
</parameters>
<return> the GType identifying the class.

</return>
</function>

<function name="gda_server_operation_is_valid">
<description>
Tells if all the required values in @op have been defined.

if @xml_file is not %NULL, the validity of @op is tested against that specification, 
and not against the current @op's specification.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation widget
</parameter_description>
</parameter>
<parameter name="xml_file">
<parameter_description> an XML specification file (see gda_server_operation_new())
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @op is valid
</return>
</function>

<function name="gda_data_comparator_new">
<description>
Creates a new comparator to compute the differences from @old_model to @new_model: if one applies
all the computed differences (as #GdaDiff structures) to @old_model, the resulting data model
should have the same contents as @new_model.


</description>
<parameters>
<parameter name="old_model">
<parameter_description> Data model to which the modifications should be applied
</parameter_description>
</parameter>
<parameter name="new_model">
<parameter_description> Target data model.
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataComparator object
</return>
</function>

<function name="gda_data_model_import_from_file">
<description>
Imports data contained in the @file file into @model; the format is detected.

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the filename to import from
</parameter_description>
</parameter>
<parameter name="cols_trans">
<parameter_description> a #GHashTable for columns translating, or %NULL, see gda_data_model_import_from_model()
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> list of options for the export
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_dir_clean_errors">
<description>
Reset the list of errors which have occurred while using @model

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelDir object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_get_attribute">
<description>
Get the value associated to a named attribute.

Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.


</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a string
</parameter_description>
</parameter>
</parameters>
<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @column
</return>
</function>

<function name="gda_xa_transaction_commit_recovered">
<description>
Tries to commit the data prepared but which failed to commit (see gda_xa_transaction_commit()). This
method allows one to terminate a distributed transaction which succeeded but for which some
connections needed to be recovered.


</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="cnc_to_recover">
<parameter_description> a place to store the list of connections for which the there were data to recover and which failed to be actually committed, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if all the data which was still uncommitted has been committed
</return>
</function>

<function name="gda_data_model_set_column_title">
<description>
Sets the @title of the given @col in @model.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> title for the given column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_store_modify">
<description>
Propagates an update to @store, the update's contents is represented by @new_data, this function is
primarily reserved to database providers.

For example tell @store to update its list of tables, @new_data should contain the same columns as the &quot;_tables&quot;
table of @store, and contain one row per table in the store; there should not be any more argument after the @error
argument.

Now, to update only one table, the @new_data data model should have one row for the table to update (or no row
at all if the table does not exist anymore), and have values for the primary key of the &quot;_tables&quot; table of
@store, namely &quot;table_catalog&quot;, &quot;table_schema&quot; and &quot;table_name&quot;.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table to modify within @store
</parameter_description>
</parameter>
<parameter name="new_data">
<parameter_description> a #GdaDataModel containing the new data to set in @table_name, or %NULL (treated as a data model
with no row at all)
</parameter_description>
</parameter>
<parameter name="condition">
<parameter_description> SQL expression (which may contain variables) defining the rows which are being obsoleted by @new_data, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of (variable name (gchar *), GValue *value) terminated with NULL, representing values for all the
variables mentioned in @condition.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_builder_new">
<description>
Create a new #GdaSqlBuilder object to build #GdaStatement or #GdaSqlStatement
objects of type @stmt_type

Since: 4.2

</description>
<parameters>
<parameter name="stmt_type">
<parameter_description> the type of statement to build
</parameter_description>
</parameter>
</parameters>
<return> the newly created object, or %NULL if an error occurred (such as unsupported
statement type)

</return>
</function>

<function name="gda_tree_mgr_select_get_type">
<description>
Since: 4.2

</description>
<parameters>
</parameters>
<return> the GType

</return>
</function>

<function name="gda_server_operation_new">
<description>
IMPORTANT NOTE: Using this funtion is not the recommended way of creating a #GdaServerOperation object, the
correct way is to use gda_server_provider_create_operation(); this method is reserved for the database provider's
implementation.

Creates a new #GdaServerOperation object from the @xml_file specifications

The @xml_file must respect the DTD described in the &quot;libgda-server-operation.dtd&quot; file: its top
node must be a &lt;serv_op&gt; tag.


</description>
<parameters>
<parameter name="op_type">
<parameter_description> type of operation
</parameter_description>
</parameter>
<parameter name="xml_file">
<parameter_description> a file which has the specifications for the GdaServerOperation object to create
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaServerOperation object
</return>
</function>

<function name="gda_connection_get_dsn">
<description>

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> the data source name the connection object is connected
to.
</return>
</function>

<function name="gda_server_operation_op_type_to_string">
<description>
Get a string version of @type


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GdaServerOperationType value
</parameter_description>
</parameter>
</parameters>
<return> a non %NULL string (do not free or modify)
</return>
</function>

<function name="gda_tree_get_nodes_in_path">
<description>
The returned list is a list of all the #GdaTreeNode nodes &lt;emphasis&gt;below&lt;/emphasis&gt; the node
at the specified path.

As a corner case if @tree_path is %NULL, then the returned list contains all the top level nodes.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="tree_path">
<parameter_description> full path to the required nodes (if @use_names is %TRUE, then it must start with '/')
</parameter_description>
</parameter>
<parameter name="use_names">
<parameter_description> if %TRUE, then @tree_path will be interpreted as a unix style path, and if %FALSE,
then @tree_path will be interpreted similarly to the #GtkTreePath's string representation.
</parameter_description>
</parameter>
</parameters>
<return> a new list of #GdaTreeNode pointers, free it with g_slist_free()

</return>
</function>

<function name="gda_value_get_list">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_tree_clean">
<description>
Removes any node in @tree

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_copy">
<description>
Creates a copy of @stmt.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlStatement
</return>
</function>

<function name="gda_init">
<description>
Initializes the GDA library, must be called prior to any Libgda usage. Note that unless the
LIBGDA_NO_THREADS environment variable is set (to any value), the GLib thread system will
be initialized as well if not yet initialized.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_data_model_add_data_from_xml_node">
<description>
Adds the data from an XML node to the given data model (see the DTD for that node
in the $prefix/share/libgda/dtd/libgda-array.dtd file).

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel.
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> an XML node representing a &lt;gda_array_data&gt; XML node.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gda_data_select_compute_modification_statements">
<description>
Makes @model try to compute INSERT, UPDATE and DELETE statements to be used when modifying @model's contents.
Note: any modification statement set using gda_data_select_set_modification_statement() will first be unset


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred. If FALSE is returned, then some modification statement may still have been
computed
</return>
</function>

<function name="gda_connection_event_set_description">
<description>
Sets @event's @description. This function should not be called directly.

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
<parameter name="description">
<parameter_description> a description.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_get_name">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> the name of @column.
</return>
</function>

<function name="gda_connection_close_no_warning">
<description>
Closes the connection to the underlying data source, without emiting any warning signal.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_vconnection_hub_add">
<description>
Make all the tables of @cnc appear as tables (of the same name) in the @hub connection.
If the @ns is not %NULL, then within @hub, the tables will be accessible using the '@ns.@table_name'
notation.

Within any instance of @hub, there can be only one added connection where @ns is %NULL.


</description>
<parameters>
<parameter name="hub">
<parameter_description> a #GdaVconnectionHub connection
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="ns">
<parameter_description> a namespace, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_expr_free">
<description>
Frees a #GdaSqlExpr structure and its members.


</description>
<parameters>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr to be freed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_update_take_table_name">
<description>
Sets the name of the table to delete from in @stmt.

@value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a table name, as a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_set_timestamp">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_node_get_type">
<description>
Registers the #GdaTreeNode class on the GLib type system.


</description>
<parameters>
</parameters>
<return> the GType identifying the class.
</return>
</function>

<function name="gda_get_default_handler">
<description>
Obtain a pointer to a #GdaDataHandler which can manage #GValue values of type @for_type. The returned
data handler will be adapted to use the current locale information (for example dates will be formatted
taking into account the locale).

The returned pointer is %NULL if there is no default data handler available for the @for_type data type


</description>
<parameters>
<parameter name="for_type">
<parameter_description> a #GType type
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataHandler which must not be modified or destroyed.
</return>
</function>

<function name="gda_sql_select_target_new">
<description>
Creates a new #GdaSqlSelectTarget structure and sets its parent to @parent. A
#GdaSqlSelectTarget is the table in a SELECT statement.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlSelectFrom
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectTarget structure.
</return>
</function>

<function name="gda_xa_transaction_commit">
<description>
Commits a distributed transaction (managed by @xa_trans). The commit is composed of two phases:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;a PREPARE phase where all the connections are required to store their transaction data to a 
permanent place (to be able to complete the commit should a problem occur afterwards)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a COMMIT phase where the transaction data is actually written to the database&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

If the PREPARE phase fails for any of the connection registered with @xa_trans, then the distributed commit
fails and FALSE is returned. During the COMMIT phase, some commit may actually fail but the transaction can
still be completed because the PREPARE phase succeeded (through the recover method).


</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="cnc_to_recover">
<parameter_description> a place to store the list of connections for which the commit phase failed, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred (there may be some connections to recover, though)
</return>
</function>

<function name="gda_data_select_get_type">
<description>

</description>
<parameters>
</parameters>
<return> the #GType of GdaDataSelect.
</return>
</function>

<function name="gda_vconnection_hub_get_connection">
<description>
Find the #GdaConnection object in @hub associated to the @ns name space


</description>
<parameters>
<parameter name="hub">
<parameter_description> a #GdaVconnectionHub connection
</parameter_description>
</parameter>
<parameter name="ns">
<parameter_description> a name space, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GdaConnection, or %NULL if no connection is associated to @ns
</return>
</function>

<function name="gda_string_to_blob">
<description>
Performs the reverse of gda_blob_to_string().


</description>
<parameters>
<parameter name="str">
<parameter_description> a string to convert
</parameter_description>
</parameter>
</parameters>
<return> a new #gdaBlob if no error were found in @str, or NULL otherwise
</return>
</function>

<function name="gda_value_new_blob">
<description>
Makes a new #GValue of type #GDA_TYPE_BLOB with the data contained by @val.


</description>
<parameters>
<parameter name="val">
<parameter_description> value to set for the new #GValue.
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> the size of the memory pool pointer to by @val.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_holder_get_not_null">
<description>
Get wether the holder can be NULL or not


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the holder cannot be NULL
</return>
</function>

<function name="gda_blob_op_read">
<description>
Reads a chunk of bytes from the BLOB accessible through @op into @blob.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaBlobOp
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob to read data to
</parameter_description>
</parameter>
<parameter name="offset">
<parameter_description> offset to read from the start of the blob (starts at 0)
</parameter_description>
</parameter>
<parameter name="size">
<parameter_description> maximum number of bytes to read.
</parameter_description>
</parameter>
</parameters>
<return> the number of bytes actually read. In case of error, -1 is returned and the
provider should have added an error to the connection.
</return>
</function>

<function name="gda_value_differ">
<description>
Tells if two values are equal or not, by comparing memory representations. Unlike gda_value_compare(),
the returned value is boolean, and gives no idea about ordering.

The two values must be of the same type, with the exception that a value of any type can be
compared to a GDA_TYPE_NULL value, specifically:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="value1">
<parameter_description> a #GValue to compare.
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> the other #GValue to be compared to @value1.
</parameter_description>
</parameter>
</parameters>
<return> a non 0 value if @value1 and @value2 differ, and 0 if they are equal
</return>
</function>

<function name="gda_sql_table_copy">
<description>
Creates a new #GdaSqlTable structure initiated with the values stored in @table.


</description>
<parameters>
<parameter name="table">
<parameter_description> a #GdaSqlTable structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlTable structure.
</return>
</function>

<function name="gda_server_operation_del_item_from_sequence">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="item_path">
<parameter_description> the path to the sequence's item to remove (like &quot;/SEQ_NAME/5&quot; for instance)
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the specified node has been removed from the sequence
</return>
</function>

<function name="gda_connection_is_opened">
<description>
Checks whether a connection is open or not.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the connection is open, %FALSE if it's not.
</return>
</function>

<function name="gda_thread_wrapper_iterate">
<description>
This method gives @wrapper a chance to check if some functions to be executed have finished
&lt;emphasis&gt;for the calling thread&lt;/emphasis&gt;. It handles one function's execution result, and
if @may_block is %TRUE, then it will block untill there is one (functions returning void are
ignored).

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="may_block">
<parameter_description> whether the call may block
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_remove_holder">
<description>
Removes a #GdaHolder from the list of holders managed by @set

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder">
<parameter_description> the #GdaHolder to remove from @set
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_from_take_new_target">
<description>
Append @target to the targets in the FROM clause and set @target's parent to
@from; after call this function @from owns @target then you must not free it.

</description>
<parameters>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom structure
</parameter_description>
</parameter>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_repetitive_statement_new">
<description>
Creates a new #GdaRepetitiveStatement object which, when executed, will execute @stmt once for all
the values set which will have been defined using gda_repetitive_statement_append_set().
Use gda_connection_repetitive_statement_execute() to actually execute it.

Since: 4.2

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaRepetitiveStatement object

</return>
</function>

<function name="gda_g_type_to_string">
<description>
Converts a GType to its string representation (use gda_g_type_from_string() for the
operation in the other direction).

This function wraps g_type_name() but for common types it provides an easier to
understand and remember name. For Example the G_TYPE_STRING is converted to &quot;string&quot;
whereas g_type_name() converts it to &quot;gchararray&quot;.


</description>
<parameters>
<parameter name="type">
<parameter_description> Type to convert from.
</parameter_description>
</parameter>
</parameters>
<return> the GDA's string representing the given #GType or the name
returned by #g_type_name.
</return>
</function>

<function name="gda_meta_struct_sort_db_objects">
<description>
Reorders the list of database objects within @mstruct in a way specified by @sort_type.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="sort_type">
<parameter_description> the kind of sorting requested
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_connection_statement_to_sql">
<description>
Renders @stmt as an SQL statement, adapted to the SQL dialect used by @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="flags">
<parameter_description> SQL rendering flags, as #GdaStatementSqlFlag OR'ed values
</parameter_description>
</parameter>
<parameter name="params_used">
<parameter_description> a place to store the list of individual #GdaHolder objects within @params which have been used
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if an error occurred
</return>
</function>

<function name="gda_binary_free">
<description>
Deallocates all memory associated to the given #GdaBinary.

</description>
<parameters>
<parameter name="boxed">
<parameter_description> #GdaBinary to free.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_freeze">
<description>
Disables notifications of changes on the given data model. To
re-enable notifications again, you should call the
#gda_data_model_thaw function.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_add_case">
<description>
Creates a new CASE ... WHEN ... THEN ... ELSE ... END expression.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="test_expr">
<parameter_description> the expression ID representing the test of the CASE, or %0
</parameter_description>
</parameter>
<parameter name="else_expr">
<parameter_description> the expression ID representing the ELSE expression, or %0
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list, terminated by a %0, of (WHEN expression ID, THEN expression ID) representing
all the test cases
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_data_access_wrapper_get_type">
<description>

</description>
<parameters>
</parameters>
<return> the #GType of GdaDataAccessWrapper.
</return>
</function>

<function name="gda_connection_open_sqlite">
<description>
Opens an SQLite connection even if the SQLite provider is not installed,
to be used by database providers which need a temporary database to store
some information.


</description>
<parameters>
<parameter name="directory">
<parameter_description> the directory the database file will be in, or %NULL for the default TMP directory
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> the database file name
</parameter_description>
</parameter>
<parameter name="auto_unlink">
<parameter_description> if %TRUE, then the database file will be removed afterwards
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnection, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_case_serialize">
<description>
Creates a new string representing a CASE clause. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="sc">
<parameter_description> a #GdaSqlCase structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the CASE clause or &quot;null&quot; in case @sc is invalid.
</return>
</function>

<function name="gda_column_set_attribute">
<description>
Set the value associated to a named attribute. The @attribute string is 'stolen' by this method, and
the memory it uses will be freed using the @destroy function when no longer needed (if @destroy is %NULL,
then the string will not be freed at all).

Attributes can have any name, but Libgda proposes some default names, 
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

If there is already an attribute named @attribute set, then its value is replaced with the new value (@value is
copied), except if @value is %NULL, in which case the attribute is removed.

For example one would use it as:

&lt;code&gt;
gda_column_set_attribute (holder, g_strdup (my_attribute), g_free, my_value);
gda_column_set_attribute (holder, GDA_ATTRIBUTE_NAME, NULL, my_value);
&lt;/code&gt;

Note: this method does not modify in any way the contents of the data model for which @column is a column (nor
does it modify the table definition of the tables used by a SELECT statement is the model was created from a
SELECT statement).

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a static string
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_event_get_gda_code">
<description>
Retrieve the code associated to @event.


</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent
</parameter_description>
</parameter>
</parameters>
<return> the #GdaConnectionEventCode event's code
</return>
</function>

<function name="gda_log_enable">
<description>
Enables GDA logs.

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_create_parser">
<description>
Creates a new #GdaSqlParser object which is adapted to @provider (and possibly depending on
@cnc for the actual database version).

If @prov does not have its own parser, then %NULL is returned, and a general SQL parser can be obtained
using gda_sql_parser_new().


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider provider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlParser object, or %NULL.
</return>
</function>

<function name="gda_rfc1738_decode">
<description>
Decodes @string using the RFC 1738 recommendations: the
&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;`;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character.

@string should respect the RFC 1738 encoding. If this is not the case (for example if there
is a &quot;%2z&quot; because 2z is not an hexadecimal value), then the part with the problem
is not decoded, and the function returns FALSE.

@string is decoded in place, no new string gets created.


</description>
<parameters>
<parameter name="string">
<parameter_description> a string to encode 
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_data_select_get_connection">
<description>
Get a pointer to the #GdaConnection object which was used when @model was created
(and which may be used internally by @model).


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GdaConnection, or %NULL
</return>
</function>

<function name="gda_statement_normalize">
<description>
&quot;Normalizes&quot; some parts of @stmt, see gda_sql_statement_normalize() for more
information.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_tree_mgr_schemas_new">
<description>
Creates a new #GdaTreeManager object which will add one tree node for each database schema found
in @cnc.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager object

</return>
</function>

<function name="gda_value_set_time">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_vprovider_hub_new">
<description>
Creates a new GdaVirtualProvider object which allows one to 
add and remove GdaDataModel objects as tables within a connection


</description>
<parameters>
</parameters>
<return> a new #GdaVirtualProvider object.
</return>
</function>

<function name="gda_quark_list_new">
<description>
Creates a new #GdaQuarkList, which is a set of key-&gt;value pairs,
very similar to GLib's GHashTable, but with the only purpose to
make easier the parsing and creation of data source connection
strings.


</description>
<parameters>
</parameters>
<return> the newly created #GdaQuarkList.

Free-function: gda_quark_list_free
</return>
</function>

<function name="gda_connection_get_events">
<description>
Retrieves a list of the last errors occurred during the connection. The returned list is
chronologically ordered such as that the most recent event is the #GdaConnectionEvent of the first node.

Warning: the @cnc object may change the list if connection events occur


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection.
</parameter_description>
</parameter>
</parameters>
<return> a #GList of #GdaConnectionEvent objects (the list should not be modified)
</return>
</function>

<function name="gda_sql_identifier_remove_quotes">
<description>
Prepares @str to be compared:
- if surrounded by double quotes or single quotes, then just remove the quotes
- otherwise convert to lower case

The quoted string:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;must start and finish with the same single or double quotes character&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;can contain the delimiter character (the single or double quotes) in the string if every instance
of it is preceeded with a backslash character or with the delimiter character itself&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

WARNING: @str must NOT be a composed identifier (&lt;part1&gt;.&quot;&lt;part2&gt;&quot; for example)

Deprecated: 4.0.3: Not needed anymore because of the gda_sql_identifier_quote() function.

</description>
<parameters>
<parameter name="str">
<parameter_description> a quoted string
</parameter_description>
</parameter>
</parameters>
<return> @str

</return>
</function>

<function name="gda_batch_serialize">
<description>
Creates a string representing the contents of @batch.


</description>
<parameters>
<parameter name="batch">
<parameter_description> a #GdaBatch object
</parameter_description>
</parameter>
</parameters>
<return> a string containing the serialized version of @batch
</return>
</function>

<function name="gda_data_model_get_value_at">
<description>
Retrieves the data stored in the given position (identified by
the @col and @row parameters) on a data model.

Upon errors %NULL will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.

This is the main function for accessing data in a model which allows random access to its data.
To access data in a data model using a cursor, use a #GdaDataModelIter object, obtained using
gda_data_model_create_iter().

Note1: the returned #GValue must not be modified directly (unexpected behaviours may
occur if you do so).

Note2: the returned value may become invalid as soon as any Libgda part is executed again,
which means if you want to keep the value, a copy must be made, however it will remain valid
as long as the only Libgda usage is calling gda_data_model_get_value_at() for different values
of the same row.

If you want to modify a value stored in a #GdaDataModel, use the gda_data_model_set_value_at() or 
gda_data_model_set_values() methods.

Upon errors %NULL will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a valid column number.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a valid row number.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL.
</parameter_description>
</parameter>
</parameters>
<return> a #GValue containing the value stored in the given
position, or %NULL on error (out-of-bound position, etc).
</return>
</function>

<function name="gda_data_model_describe_column">
<description>
Queries the underlying data model implementation for a description
of a given column. That description is returned in the form of
a #GdaColumn structure, which contains all the information
about the given column in the data model.

WARNING: the returned #GdaColumn object belongs to the @model model and
and should not be destroyed; any modification will affect the whole data model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number.
</parameter_description>
</parameter>
</parameters>
<return> the description of the column.
</return>
</function>

<function name="gda_connection_event_get_event_type">
<description>
Get @event's severity (from a simple notice to a fatal event)


</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent object
</parameter_description>
</parameter>
</parameters>
<return> the event type
</return>
</function>

<function name="gda_sql_statement_trans_take_name">
<description>
Sets the name of the transaction

@value's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING value
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_thread_wrapper_connect_raw">
<description>
Connects a callback function to a signal for a particular object. The difference with g_signal_connect() and
similar functions are:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;the @callback argument is not a #GCallback function, so the callback signature is not
dependent on the signal itself&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;the signal handler must not have to return any value&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;the @callback function will be called asynchronously, the caller may need to use 
gda_thread_wrapper_iterate() to get the notification&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @private is set to %TRUE, then the @callback function will be called only
if the signal has been emitted by @instance while doing a job on behalf of the current
calling thread. If @private is set to %FALSE, then @callback will be called whenever @instance
emits the @sig_name signal.&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

Also note that signal handling is done asynchronously: when emitted in the worker thread, it
will be &quot;queued&quot; to be processed in the user thread when it has the chance (when gda_thread_wrapper()
is called directly or indirectly). The side effect is that the callback function is usually
called long after the object emitting the signal has finished emitting it.

To disconnect a signal handler, don't use any of the g_signal_handler_*() functions but the
gda_thread_wrapper_disconnect() method.

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="instance">
<parameter_description> the instance to connect to
</parameter_description>
</parameter>
<parameter name="sig_name">
<parameter_description> a string of the form &quot;signal-name::detail&quot;
</parameter_description>
</parameter>
<parameter name="private_thread">
<parameter_description>  set to %TRUE if @callback is to be invoked only if the signal has
been emitted while in @wrapper's private sub thread (ie. used when @wrapper is executing some functions
specified by gda_thread_wrapper_execute() or gda_thread_wrapper_execute_void()), and to %FALSE if the
callback is to be invoked whenever the signal is emitted, independently of th thread in which the
signal is emitted.
</parameter_description>
</parameter>
<parameter name="private_job">
<parameter_description> set to %TRUE if @callback is to be invoked only if the signal has
been emitted when a job created for the calling thread is being executed, and to %FALSE
if @callback has to be called whenever the @sig_name signal is emitted by @instance. Note that
this argument is not taken into account if @private_thread is set to %FALSE.
</parameter_description>
</parameter>
<parameter name="callback">
<parameter_description> a #GdaThreadWrapperCallback function
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to pass to @callback's calls
</parameter_description>
</parameter>
</parameters>
<return> the handler ID

</return>
</function>

<function name="gda_connection_get_cnc_string">
<description>
Gets the connection string used to open this connection.

The connection string is the string sent over to the underlying
database provider, which describes the parameters to be used
to open a connection on the underlying data source.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return> the connection string used when opening the connection.
</return>
</function>

<function name="gda_sql_builder_get_sql_statement">
<description>
Creates a new #GdaSqlStatement structure from @builder's contents.

The returned pointer belongs to @builder's internal representation.
Use gda_sql_statement_copy() if you need to keep it.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
</parameters>
<return> a #GdaSqlStatement pointer

</return>
</function>

<function name="gda_server_operation_set_value_at">
<description>
Set the value for the node at the path formed using @path_format and the ... ellipse (the rules are the same as
for g_strdup_printf()). 

Note that trying to set a value for a path which is not used by the current
provider, such as &quot;/TABLE_OPTIONS_P/TABLE_ENGINE&quot; for a PostgreSQL connection (this option is only supported for MySQL), 
will &lt;emphasis&gt;not&lt;/emphasis&gt; generate
any error; this allows one to give values to a superset of the parameters and thus use the same code for several providers.

Here are the possible formats of @path_format:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaHolder, then the parameter is set to &lt;![CDATA[&quot;@value&quot;]]&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;If the path corresponds to a sequence item like for example &quot;/SEQUENCE_NAME/5/NAME&quot; for
the &quot;NAME&quot; value of the 6th item of the &quot;SEQUENCE_NAME&quot; sequence then:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if the sequence already has 6 or more items, then the value is just set to the corresponding 
value in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if the sequence has less then 6 items, then items are added up to the 6th one before setting
the value to the corresponding in the 6th item of the sequence&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;If the path corresponds to a #GdaDataModel, like for example &quot;/ARRAY/@@COLUMN/5&quot; for the value at the
6th row of the &quot;COLUMN&quot; column of the &quot;ARRAY&quot; data model, then:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if the data model already contains 6 or more rows, then the value is just set&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if the data model has less than 6 rows, then rows are added up to the 6th one before setting
the value&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a string
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors or %NULL
</parameter_description>
</parameter>
<parameter name="path_format">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to use with @path_format to make a complete path
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_sql_statement_insert_take_select">
<description>
Specifies a SELECT statement, the values inserted will be the result set of @select. @select's 
ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="select">
<parameter_description> a SELECT #GdaSqlStatement pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_struct_complement_depend">
<description>
This method is similar to gda_meta_struct_complement() but creates #GdaMetaDbObject for all the dependencies
of @dbo.

Please refer to gda_meta_struct_complement() form more information.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="dbo">
<parameter_description> a #GdaMetaDbObject part of @mstruct
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_prepare_create_table">
<description>
Add more arguments if the flag needs then: 

GDA_EASY_CREATE_TABLE_FKEY_FLAG:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;string with the table's name referenced&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;an integer with the number pairs &quot;local_field&quot;, &quot;referenced_field&quot; 
used in the reference&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Pairs of &quot;local_field&quot;, &quot;referenced_field&quot; to use, must match
the number specified above.&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a string with the action for ON DELETE; can be: &quot;RESTRICT&quot;, &quot;CASCADE&quot;, 
&quot;NO ACTION&quot;, &quot;SET NULL&quot; and &quot;SET DEFAULT&quot;. Example: &quot;ON UPDATE CASCADE&quot;.&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a string with the action for ON UPDATE (see above).&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt; 

Create a #GdaServerOperation object using an opened connection, taking three 
arguments, a colum's name the column's GType and #GdaEasyCreateTableFlag 
flag, you need to finish the list using NULL.

You'll be able to modify the #GdaServerOperation object to add custom options
to the operation. When finish call #gda_perform_create_table 
or #gda_server_operation_perform_operation
in order to execute the operation.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> name of the table to create
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> group of three arguments for column's name, column's #GType 
and a #GdaEasyCreateTableFlag flag, finished with NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GdaServerOperation if no errors; NULL and set @error otherwise
</return>
</function>

<function name="gda_data_proxy_get_proxied_model_n_rows">
<description>
Get the number of rows in the proxied data model


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of rows, or -1 if the number of rows is not known
</return>
</function>

<function name="gda_sql_builder_add_function">
<description>
Builds a new expression which represents a function applied to some arguments

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="func_name">
<parameter_description> the functions's name
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list, terminated with %0, of each function's argument's ID
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_data_proxy_get_values">
<description>
Retrieve a whole list of values from the @proxy data model. This function 
calls gda_data_proxy_get_value()
for each column index specified in @cols_index, and generates a #GSList on the way.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> a proxy row
</parameter_description>
</parameter>
<parameter name="cols_index">
<parameter_description> array containing the columns for which the values are requested
</parameter_description>
</parameter>
<parameter name="n_cols">
<parameter_description> size of @cols_index
</parameter_description>
</parameter>
</parameters>
<return> a new list of values (the list must be freed, not the values), 
or %NULL if an error occurred
</return>
</function>

<function name="gda_data_proxy_get_sample_start">
<description>
Get the number of the first row to be available in @proxy (in reference to the proxied data model)


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of the first proxied model's row.
</return>
</function>

<function name="gda_perform_create_table">
<description>
Performs a prepared #GdaServerOperation to create a table. This could perform
an operation created by #gda_prepare_create_table or any other using the
the #GdaServerOperation API.


</description>
<parameters>
<parameter name="op">
<parameter_description> a valid #GdaServerOperation
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the table was created; FALSE and set @error otherwise
</return>
</function>

<function name="gda_perform_drop_table">
<description>
This is just a convenient function to perform a drop a table operation.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the table was dropped
</return>
</function>

<function name="gda_data_model_dir_get_errors">
<description>
Get the list of errors which have occurred while using @model


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelDir object
</parameter_description>
</parameter>
</parameters>
<return> a read-only list of #GError pointers, or %NULL if no error has occurred
</return>
</function>

<function name="gda_value_set_binary">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="binary">
<parameter_description> a #GdaBinary structure with the data and its size to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_execute_sql_command">
<description>
This is a convenience function to execute a SQL command over the opened connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> a query statement must begin with &quot;SELECT&quot;
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the number of rows affected or -1.
</return>
</function>

<function name="gda_column_get_default_value">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> @column's default value, as a #GValue object.
</return>
</function>

<function name="gda_connection_get_type">
<description>
Registers the #GdaConnection class on the GLib type system.


</description>
<parameters>
</parameters>
<return> the GType identifying the class.
</return>
</function>

<function name="gda_sql_statement_set_isol_level">
<description>
Sets the transaction level of the transaction

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the transacion level
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_mutex_lock">
<description>
Locks @mutex. If @mutex is already locked by another thread, the current thread will block until @mutex is unlocked by the other thread.

This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing.

Note: unlike g_mutex_lock(), the #GdaMutex is recursive, which means a thread can lock it several times (and has
to unlock it as many times to actually unlock it).

</description>
<parameters>
<parameter name="mutex">
<parameter_description> a #GdaMutex
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_meta_wrapper_get_type">
<description>

</description>
<parameters>
</parameters>
<return> the #GType of GdaDataMetaWrapper.
</return>
</function>

<function name="gda_sql_param_spec_serialize">
<description>
Creates a new string representing @pspec.


</description>
<parameters>
<parameter name="pspec">
<parameter_description> a #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
</parameters>
<return> a new string.
</return>
</function>

<function name="gda_server_provider_get_version">
<description>
Get the version of the provider.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object.
</parameter_description>
</parameter>
</parameters>
<return> a string containing the version identification.
</return>
</function>

<function name="gda_quark_list_clear">
<description>
Removes all strings in the given #GdaQuarkList.

</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_is_valid">
<description>
This method tells if all @set's #GdaHolder objects are valid, and if
they represent a valid combination of values, as defined by rules
external to Libgda: the &quot;validate-set&quot; signal is emitted and if none of the signal handlers return an
error, then the returned value is TRUE, otherwise the return value is FALSE as soon as a signal handler
returns an error.


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store validation errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the set is valid
</return>
</function>

<function name="gda_data_proxy_get_n_new_rows">
<description>
Get the number of rows which have been added to @proxy and which are not part of
the proxied data model.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of new rows
</return>
</function>

<function name="gda_data_model_row_inserted">
<description>
Emits the 'row_inserted' and 'changed' signals on @model. 

This method should only be used by #GdaDataModel implementations to 
signal that a row has been inserted.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_time_new_no_locale">
<description>
Creates a data handler for time values, but using the default C locale
instead of the current user locale.


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_connection_internal_transaction_rolledback">
<description>
Internal functions to be called by database providers when a transaction has been rolled
back to keep track of the transaction status of the connection

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="trans_name">
<parameter_description> transaction's name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_string_to_value">
<description>
Use @provider to create a new #GValue from a single string representation. 

The @preferred_type can optionally ask @provider to return a #GValue of the requested type 
(but if such a value can't be created from @string, then %NULL is returned); 
pass G_TYPE_INVALID if any returned type is acceptable.

The returned value is either a new #GValue or %NULL in the following cases:
- @string cannot be converted to @preferred_type type
- the provider does not handle @preferred_type
- the provider could not make a #GValue from @string

If @dbms_type is not %NULL, then if will contain a constant string representing
the database type used for the conversion if the conversion was successfull, or %NULL
otherwise.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the SQL string to convert to a value
</parameter_description>
</parameter>
<parameter name="preferred_type">
<parameter_description> a #GType, or G_TYPE_INVALID
</parameter_description>
</parameter>
<parameter name="dbms_type">
<parameter_description> place to get the actual database type used if the conversion succeeded, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GValue, or %NULL
</return>
</function>

<function name="gda_data_proxy_cancel_all_changes">
<description>
Cancel all the changes stored in the proxy (the @proxy will be reset to its state
as it was just after creation).


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_select_field_serialize">
<description>
Creates a new string representing an expression used as field in a SELECT statement
before the FROM clause.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the expression or &quot;null&quot; in case @field is invalid.
</return>
</function>

<function name="gda_sql_statement_type_to_string">
<description>
Converts a #GdaSqlStatementType to a string, see also gda_sql_statement_string_to_type()


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GdaSqlStatementType value
</parameter_description>
</parameter>
</parameters>
<return> a constant string
</return>
</function>

<function name="gda_tree_get_node_path">
<description>
Get the path associated to @node in @tree.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a #GdaTreeNode node in @tree
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if @node is not in @tree

</return>
</function>

<function name="gda_connection_add_event_string">
<description>
Adds a new error to the given connection object. This is just a convenience
function that simply creates a #GdaConnectionEvent and then calls
#gda_server_connection_add_error.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a format string (see the printf(3) documentation).
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> the arguments to insert in the error message.
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnectionEvent object, however the caller does not hold a reference to the returned object, and if need be the caller must call g_object_ref() on it.
</return>
</function>

<function name="gda_column_set_allow_null">
<description>
Sets the 'allow null' flag of the given column.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="allow">
<parameter_description> whether the given column should allows null values or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_batch_get_statements">
<description>
Get a list of the #GdaStatement objects contained in @batch


</description>
<parameters>
<parameter name="batch">
<parameter_description> a #GdaBatch object
</parameter_description>
</parameter>
</parameters>
<return> a list of #GdaStatement which should not be modified.
</return>
</function>

<function name="gda_sql_operation_serialize">
<description>
Creates a new string representing an operator. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="operation">
<parameter_description> a #GdaSqlOperation structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the operator or &quot;null&quot; in case @operation is invalid.
</return>
</function>

<function name="gda_tree_manager_add_new_node_attribute">
<description>
Requests that for any new node managed (eg. created) by @manager, a new attribute will be set. This allows
one to customize the attributes of new nodes created by an existing #GdaTreeManager.

As a side effect, if @value is %NULL, then the corresponding attribute, if it was set, is unset.

Since: 4.2

</description>
<parameters>
<parameter name="manager">
<parameter_description> a #GdaTreeManager
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> an attribute name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the attribute's value, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_statement_check_validity">
<description>
If @cnc is not %NULL then checks that every object (table, field, function) used in @stmt 
actually exists in @cnc's database

If @cnc is %NULL, then cleans anything related to @cnc in @stmt.

See gda_sql_statement_check_validity() for more information.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if every object actually exists in @cnc's database
</return>
</function>

<function name="gda_sql_select_field_take_alias">
<description>
Sets the 'as' field's string in the #GdaSqlSelectField structure. @alias is freed
after call this function.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure
</parameter_description>
</parameter>
<parameter name="alias">
<parameter_description> a #GValue to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_virtual_connection_internal_set_provider_data">
<description>
Note: calling this function more than once will not make it call @destroy_func on any previously
set opaque @data, you'll have to do it yourself.

</description>
<parameters>
<parameter name="vcnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> an opaque structure, known only to the provider for which @vcnc is opened
</parameter_description>
</parameter>
<parameter name="destroy_func">
<parameter_description> function to call when the connection closes and @data needs to be destroyed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_manager_create_node">
<description>
Requests that @manager creates a new #GdaTreeNode. The new node is not in any
way linked to @manager yet, consider this method as a #GdaTreeNode factory.

This method is usually used when implementing a #GdaTreeManagerNodesFunc function (to create nodes),
or when subclassing the #GdaTreeManager.

Since: 4.2

</description>
<parameters>
<parameter name="manager">
<parameter_description> a #GdaTreeManager
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent the new node may have, or %NULL
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name given to the new node, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeNode

</return>
</function>

<function name="gda_data_proxy_apply_all_changes">
<description>
Apply all the changes stored in the proxy to the proxied data model. The changes are done row
after row, and if an error
occurs, then it is possible that not all the changes to all the rows have been applied.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_table_new">
<description>
Creates a new #GdaSqlTable structure, using @parent as its parent part.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementSelect, #GdaSqlStatementInsert, #GdaSqlStatementDelete, #GdaSqlStatementUpdate
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlTable structure.
</return>
</function>

<function name="gda_xa_transaction_unregister_connection">
<description>
Unregisters @cnc to be used by @xa_trans to create a distributed transaction. This is
the opposite of gda_xa_transaction_register_connection().

</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> the connection to add to @xa_trans
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_statement_execute_select">
<description>
Executes a selection command on the given connection. The gda_execute_select_command() method can be easier
to use if one prefers to use some SQL directly.

This function returns a #GdaDataModel resulting from the SELECT statement, or %NULL
if an error occurred.

This function is just a convenience function around the gda_connection_statement_execute()
function.

See the documentation of the gda_connection_statement_execute() for information
about the @params list of parameters.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object.
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModel containing the data returned by the
data source, or %NULL if an error occurred
</return>
</function>

<function name="gda_thread_wrapper_get_type">
<description>
Registers the #GdaThreadWrapper class on the GLib type system.


</description>
<parameters>
</parameters>
<return> the GType identifying the class.
</return>
</function>

<function name="gda_text_to_alphanum">
<description>
The &quot;encoding&quot; consists in replacing non
alphanumeric character with the string &quot;__gdaXX&quot; where XX is the hex. representation
of the non alphanumeric char.


</description>
<parameters>
<parameter name="text">
<parameter_description> the text to convert
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_server_operation_get_sequence_name">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> the name of the sequence at @path
</return>
</function>

<function name="gda_timestamp_valid">
<description>
Since: 4.2

</description>
<parameters>
<parameter name="timestamp">
<parameter_description> a #GdaTimestamp value to check if it is valid
</parameter_description>
</parameter>
</parameters>
<return> #TRUE if #GdaTimestamp is valid; %FALSE otherwise.

</return>
</function>

<function name="gda_data_proxy_get_sample_size">
<description>
Get the size of each chunk of data displayed at a time.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the chunk (or sample) size, or 0 if chunking is disabled.
</return>
</function>

<function name="gda_server_operation_get_sql_identifier_at">
<description>
This method is similar to gda_server_operation_get_value_at(), but for SQL identifiers: a new string
is returned instead of a #GValue. Also the returned string is assumed to represents an SQL identifier
and will correctly be quoted to be used with @cnc, or @prov if @cnc is %NULL (a generic quoting rule
will be applied if both are %NULL).

Since: 4.0.3

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection, or %NULL
</parameter_description>
</parameter>
<parameter name="prov">
<parameter_description> a #GdaServerProvider, or %NULL
</parameter_description>
</parameter>
<parameter name="path_format">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to use with @path_format to make a complete path
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if the value is undefined or
if the @path is not defined or @path does not hold any value, or if the value held is not a string
(in that last case a warning is shown).

</return>
</function>

<function name="gda_config_get_type">
<description>
Registers the #GdaConfig class on the GLib type system.


</description>
<parameters>
</parameters>
<return> the GType identifying the class.
</return>
</function>

<function name="gda_server_operation_get_root_nodes">
<description>
Get an array of strings containing the paths of nodes situated at the root of @op.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
</parameters>
<return> a new array, which must be freed with g_strfreev().
</return>
</function>

<function name="gda_g_type_from_string">
<description>
Converts a named type to ts GType type (also see the gda_g_type_to_string() function).

This function is a wrapper around the g_type_from_name() function, but also recognizes
some type synonyms such as:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;&quot;int&quot; for G_TYPE_INT&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;string&quot; for G_TYPE_STRING&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;date&quot; for G_TYPE_DATE&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;time&quot; for GDA_TYPE_TIME&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;timestamp&quot; for GDA_TYPE_TIMESTAMP&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;boolean&quot; for G_TYPE_BOOLEAN&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;blob&quot; for GDA_TYPE_BLOB&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;binary&quot; for GDA_TYPE_BINARY&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;null&quot; for GDA_TYPE_NULL&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="str">
<parameter_description> the name of a #GType, as returned by gda_g_type_to_string().
</parameter_description>
</parameter>
</parameters>
<return> the #GType represented by the given @str, or #G_TYPE_INVALID if not found
</return>
</function>

<function name="gda_sql_builder_add_field_value">
<description>
Valid only for: INSERT, UPDATE statements.

Specifies that the field represented by @field_name will be set to the value identified
by @... of type @type. See gda_sql_builder_add_expr() for more information.

This is a C convenience function. See also gda_sql_builder_add_field_value_as_gvalue().

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field name
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the GType of the following argument
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value to set the field to, of the type specified by @type
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_event_set_code">
<description>
Sets @event's code: the code is specific to the provider being used.
If you want to have a common understanding of the event codes, use
gda_connection_event_get_gda_code() instead.

This function should not be called directly

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> a code.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_update_row_in_table_v">
<description>
@col_names and @values must have length (&gt;= 1).

This is a convenience function, which creates an UPDATE statement and executes it using the values
provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: UPDATE &lt;table&gt; SET &lt;column_name&gt; = &lt;new_value&gt; [,...] WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table">
<parameter_description> the table's name with the row's values to be updated
</parameter_description>
</parameter>
<parameter name="condition_column_name">
<parameter_description> the name of the column to used in the WHERE condition clause
</parameter_description>
</parameter>
<parameter name="condition_value">
<parameter_description> the @condition_column_type's GType
</parameter_description>
</parameter>
<parameter name="col_names">
<parameter_description> a list of column names (as const gchar *)
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> a list of values (as #GValue)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_get_attributes_at">
<description>
Get the attributes of the value stored at (row, col) in @model, which
is an ORed value of #GdaValueAttribute flags. As a special case, if
@row is -1, then the attributes returned correspond to a &quot;would be&quot; value
if a row was added to @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a valid column number
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a valid row number, or -1
</parameter_description>
</parameter>
</parameters>
<return> the attributes as an ORed value of #GdaValueAttribute
</return>
</function>

<function name="gda_set_get_source_for_model">
<description>
Finds the #GdaSetSource structure used in @set for which @model is a
the data model (the returned structure should not be modified).


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GdaDataModel object
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaSetSource pointer or %NULL.
</return>
</function>

<function name="gda_connection_get_provider">
<description>
Gets a pointer to the #GdaServerProvider object used to access the database


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> the #GdaServerProvider (NEVER NULL)
</return>
</function>

<function name="gda_data_model_iter_set_value_at">
<description>
Sets a value in @iter, at the column specified by @col


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the column number
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue (not %NULL)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_builder_select_join_targets">
<description>
Joins two targets in a SELECT statement, using the @join_type type of join.

Note: if the target represented by @left_target_id is actually situated after (on the right) of
the target represented by @right_target_id, then the actual type of join may be switched from
%GDA_SQL_SELECT_JOIN_LEFT to %GDA_SQL_SELECT_JOIN_RIGHT or from %GDA_SQL_SELECT_JOIN_RIGHT to
%GDA_SQL_SELECT_JOIN_LEFT.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="left_target_id">
<parameter_description> the ID of the left target to use (not %0)
</parameter_description>
</parameter>
<parameter name="right_target_id">
<parameter_description> the ID of the right target to use (not %0)
</parameter_description>
</parameter>
<parameter name="join_type">
<parameter_description> the type of join
</parameter_description>
</parameter>
<parameter name="join_expr">
<parameter_description> joining expression's ID, or %0
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new join, or %0 if there was an error

</return>
</function>

<function name="gda_connection_event_set_sqlstate">
<description>
Changes the SQLSTATE code of @event, this function should not be called directly

Sets @event's SQL state.

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
<parameter name="sqlstate">
<parameter_description> SQL state.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_binary_to_string">
<description>
Converts all the non printable characters of bin-&gt;data into the &quot;\xyz&quot; representation
where &quot;xyz&quot; is the octal representation of the byte, and the '\' (backslash) character
is converted to &quot;\\&quot;.

Note that the backslash and newline characters are considered as printable characters and
will not be represented by the &quot;\xyz&quot; representation.

Use this function to get a representation as much readable by humans as possible of a binary
chunk. Note that this function is internally called when transforming a binary value to
a string for example when using g_value_transform() or gda_value_stringify().


</description>
<parameters>
<parameter name="bin">
<parameter_description> a correctly filled @GdaBinary structure
</parameter_description>
</parameter>
<parameter name="maxlen">
<parameter_description> a maximum len used to truncate, or %0 for no maximum length
</parameter_description>
</parameter>
</parameters>
<return> a new string from @bin
</return>
</function>

<function name="gda_connection_event_get_code">
<description>

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
</parameters>
<return> @event's code (the code is specific to the provider being used)
</return>
</function>

<function name="gda_holder_get_default_value">
<description>
Get the default value held into the holder. WARNING: the default value does not need to be of 
the same type as the one required by @holder.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> the default value
</return>
</function>

<function name="gda_server_provider_test_schema_model">
<description>
Test that the structure of @model is correct in regard with @schema

Deprecated: 4.2: This was a leftover from the pre 4.0 area

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel to test
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description>
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description>
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @model has the correct structure

</return>
</function>

<function name="gda_connection_create_operation">
<description>
Creates a new #GdaServerOperation object which can be modified in order 
to perform the type type of action. It is a wrapper around the gda_server_provider_create_operation()
method.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the type of operation requested
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> an optional list of parameters
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaServerOperation object, or %NULL in the connection's provider does not support the @type type
of operation or if an error occurred
</return>
</function>

<function name="gda_statement_get_parameters">
<description>
Get a new #GdaSet object which groups all the execution parameters
which @stmt needs. This new object is returned though @out_params.

Note that if @stmt does not need any parameter, then @out_params is set to %NULL.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="out_params">
<parameter_description> a place to store a new #GdaSet object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_geometricpoint_copy">
<description>

</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gda_attributes_manager_set_full">
<description>
Does the same as gda_attributes_manager_set() except that @destroy is called when @att_name needs
to be freed.

</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="ptr">
<parameter_description> a pointer to the resources to which the attribute will apply
</parameter_description>
</parameter>
<parameter name="att_name">
<parameter_description> an attribute's name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> function called when @att_name has to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_thread_wrapper_new">
<description>
Creates a new #GdaThreadWrapper object

Since: 4.2

</description>
<parameters>
</parameters>
<return> a new #GdaThreadWrapper object, or %NULL if threads are not supported/enabled

</return>
</function>

<function name="gda_set_merge_with_set">
<description>
Add to @set all the holders of @set_to_merge. 
Note1: only the #GdaHolder of @set_to_merge for which no holder in @set has the same ID are merged
Note2: all the #GdaHolder merged in @set are still used by @set_to_merge.

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="set_to_merge">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_table_column_set_attribute">
<description>
Set the value associated to a named attribute.

Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.
If there is already an attribute named @attribute set, then its value is replaced with the new @value, 
except if @value is %NULL, in which case the attribute is removed.

Warning: @attribute is not copied, if it needs to be freed when not used anymore, then @destroy should point to
the functions which will free it (typically g_free()). If @attribute does not need to be freed, then @destroy can be %NULL.

</description>
<parameters>
<parameter name="tcol">
<parameter_description> a #GdaMetaTableColumn
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a static string
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> function called when @attribute has to be freed, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_xa_transaction_id_to_string">
<description>
Creates a string representation of @xid, in the format &lt;gtrid&gt;,&lt;bqual&gt;,&lt;formatID&gt; the 
&lt;gtrid&gt; and &lt;bqual&gt; strings contain alphanumeric characters, and non alphanumeric characters
are converted to &quot;%ab&quot; where ab is the hexadecimal representation of the character.


</description>
<parameters>
<parameter name="xid">
<parameter_description> a #GdaXaTransactionId pointer
</parameter_description>
</parameter>
</parameters>
<return> a new string representation of @xid
</return>
</function>

<function name="gda_vconnection_hub_foreach">
<description>
Call @func for each #GdaConnection represented in @hub.

</description>
<parameters>
<parameter name="hub">
<parameter_description> a #GdaVconnectionHub connection
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaVconnectionDataModelFunc function pointer
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> data to pass to @func calls
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_import_new_file">
<description>
Creates a new #GdaDataModel object which contains the data stored within the @filename file.

The options are the following ones:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;For the CSV format:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;ENCODING (string): specifies the encoding of the data in the file&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;SEPARATOR (string): specifies the CSV separator (comma as default)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;QUOTE (string): specifies the character used to as quote park (double quote as default)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;TITLE_AS_FIRST_LINE (boolean): consider that the first line of the file contains columns' titles&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;G_TYPE_&lt;column number&gt; (GType): specifies the type of value expected in column &lt;column number&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Other formats: no option&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="filename">
<parameter_description> the file to import data from
</parameter_description>
</parameter>
<parameter name="random_access">
<parameter_description> TRUE if random access will be required
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> importing options
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_quark_list_find">
<description>
Searches for the value identified by @name in the given #GdaQuarkList.


</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the value to search for.
</parameter_description>
</parameter>
</parameters>
<return> the value associated with the given key if found, or %NULL
if not found.
</return>
</function>

<function name="gda_connection_close">
<description>
Closes the connection to the underlying data source, but first emits the 
&quot;conn-to-close&quot; signal.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_check_clean">
<description>
Cleans any data set by a previous call to gda_sql_statement_check_validity().

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a pinter to a #GdaSqlStatement structure
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_supports_feature">
<description>
Tests if a feature is supported


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="feature">
<parameter_description> #GdaConnectionFeature feature to test
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if @feature is supported
</return>
</function>

<function name="gda_sql_field_serialize">
<description>
Creates a new string representing a field. You need to free the returned string
using g_free();


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlField structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the name of the field or &quot;null&quot; in case @field is invalid.
</return>
</function>

<function name="gda_sql_operation_operator_from_string">
<description>
Returns #GdaSqlOperatorType that correspond with the string @op.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaSqlOperation structure
</parameter_description>
</parameter>
</parameters>
<return> #GdaSqlOperatorType
</return>
</function>

<function name="gda_connection_event_set_event_type">
<description>
Sets @event's severity (from a simple notice to a fatal event)
This function should not be called directly.

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent object
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the severity of the event
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_manager_new_with_func">
<description>
Use this method to create a new #GdaTreeManager if it's more convenient than subclassing; all is needed
is the @update_func function which is responsible for creating or updating the children nodes of a specified #GdaTreeNode.

Since: 4.2

</description>
<parameters>
<parameter name="update_func">
<parameter_description> the function to call when the manager object is requested to create or update its list of
#GdaTreeNode nodes
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager

</return>
</function>

<function name="gda_connection_internal_statement_executed">
<description>
Internal functions to be called by database providers when a statement has been executed
to keep track of the transaction status of the connection

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement which has been executed
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> execution's parameters
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a #GdaConnectionEvent if the execution failed, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_operation_string_to_op_type">
<description>
Performs the reverse of gda_server_operation_op_type_to_string()

Since: 4.2

</description>
<parameters>
<parameter name="str">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> the #GdaServerOperationType represented by @str, or #G_MAXINT if @str is not a valid representation
of a #GdaServerOperationType

</return>
</function>

<function name="gda_string_to_binary">
<description>
Performs the reverse of gda_binary_to_string() (note that for any &quot;\xyz&quot; succession
of 4 characters where &quot;xyz&quot; represents a valid octal value, the resulting read value will
be modulo 256)


</description>
<parameters>
<parameter name="str">
<parameter_description> a string to convert
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaBinary if no error were found in @str, or NULL otherwise
</return>
</function>

<function name="gda_mutex_free">
<description>
Destroys @mutex.

</description>
<parameters>
<parameter name="mutex">
<parameter_description> a #GdaMutex
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_compute_dml_statements">
<description>
Creates an INSERT, an UPDATE and a DELETE statement from a SELECT statement
using the database metadata available in @cnc's meta store.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="select_stmt">
<parameter_description> a SELECT #GdaStatement (compound statements not handled)
</parameter_description>
</parameter>
<parameter name="require_pk">
<parameter_description> TRUE if the created statement have to use a primary key
</parameter_description>
</parameter>
<parameter name="insert_stmt">
<parameter_description> a place to store the created INSERT statement, or %NULL
</parameter_description>
</parameter>
<parameter name="update_stmt">
<parameter_description> a place to store the created UPDATE statement, or %NULL
</parameter_description>
</parameter>
<parameter name="delete_stmt">
<parameter_description> a place to store the created DELETE statement, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_connection_create_parser">
<description>
Creates a new parser object able to parse the SQL dialect understood by @cnc. 
If the #GdaServerProvider object internally used by @cnc does not have its own parser, 
then %NULL is returned, and a general SQL parser can be obtained
using gda_sql_parser_new().


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlParser object, or %NULL
</return>
</function>

<function name="gda_parse_iso8601_date">
<description>
Extracts date parts from @value, and sets @gdate's contents

Accepted date format is &quot;YYYY-MM-DD&quot;.


</description>
<parameters>
<parameter name="gdate">
<parameter_description> a pointer to a #GDate structure which will be filled
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_column_get_description">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> the column's description, in any
</return>
</function>

<function name="gda_meta_store_schema_remove_custom_object">
<description>
Removes the custom database object named @obj_name.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="obj_name">
<parameter_description> name of the custom object to remove
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the custom object has sucessfully been removed
</return>
</function>

<function name="gda_data_model_get_n_columns">
<description>

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return> the number of columns in the given data model.
</return>
</function>

<function name="gda_column_get_g_type">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> the type of @column.
</return>
</function>

<function name="gda_thread_wrapper_execute_void">
<description>
Make @wrapper execute the @func function with the @arg argument (along with a #GError which is not @error)
in the sub thread managed by @wrapper. To execute a function which returns some pointer,
use gda_thread_wrapper_execute().

This method returns immediately. Calling gda_thread_wrapper_fetch_result() is not necessary as @func
does not return any result. However, it may be necessary to call gda_thread_wrapper_iterate() to give @wrapper a
chance to execute the @arg_destroy_func function if not %NULL (note that gda_thread_wrapper_iterate() is
called by gda_thread_wrapper_fetch_result() itself).

Once @func's execution is finished, if it is not %NULL, the @arg_destroy_func destruction function is called
on @arg. This occurs in the thread calling gda_thread_wrapper_fetch_result().

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> the function to execute
</parameter_description>
</parameter>
<parameter name="arg">
<parameter_description> argument to pass to @func
</parameter_description>
</parameter>
<parameter name="arg_destroy_func">
<parameter_description> function to be called when the execution has finished, to destroy @arg
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, for errors occurring in this method, not errors occurring while @func
is executed, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the job ID, or 0 if an error occurred

</return>
</function>

<function name="gda_default_unescape_string">
<description>
Do the reverse of gda_default_escape_string(): transforms any &quot;''&quot; into &quot;'&quot;, any
&quot;\\&quot; into &quot;\&quot; and any &quot;\'&quot; into &quot;'&quot;. 


</description>
<parameters>
<parameter name="string">
<parameter_description> string to unescape
</parameter_description>
</parameter>
</parameters>
<return> a new unescaped string, or %NULL in an error was found in @string
</return>
</function>

<function name="gda_meta_store_new_with_file">
<description>
Create a new #GdaMetaStore object using @file_name as its internal
database


</description>
<parameters>
<parameter name="file_name">
<parameter_description> a file name
</parameter_description>
</parameter>
</parameters>
<return> the newly created object, or %NULL if an error occurred
</return>
</function>

<function name="gda_tree_update_part">
<description>
Requests that @tree be populated with nodes, starting from @node

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="node">
<parameter_description> a #GdaTreeNode node in @tree
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.

</return>
</function>

<function name="gda_value_is_null">
<description>
Tests if a given @value is of type #GDA_TYPE_NULL.


</description>
<parameters>
<parameter name="value">
<parameter_description> value to test.
</parameter_description>
</parameter>
</parameters>
<return> a boolean that says whether or not @value is of type #GDA_TYPE_NULL.
</return>
</function>

<function name="gda_sql_table_free">
<description>
Frees a #GdaSqlTable structure and its members.

</description>
<parameters>
<parameter name="table">
<parameter_description> a #GdaSqlTable structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_select_get_stored_row">
<description>
Get the #GdaRow object stored within @model at row @rownum (without taking care of removed rows)


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="rownum">
<parameter_description> &quot;external&quot; advertized row number
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaRow, or %NULL if not found
</return>
</function>

<function name="gda_row_get_value">
<description>
Gets a pointer to a #GValue stored in a #GdaRow.

This is a pointer to the internal array of values. Don't try to free
or modify it (modifying is reserved to database provider's implementations).


</description>
<parameters>
<parameter name="row">
<parameter_description> a #GdaRow
</parameter_description>
</parameter>
<parameter name="num">
<parameter_description> field index.
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GValue in the position @num of @row.
</return>
</function>

<function name="gda_blob_op_read_all">
<description>
Reads the whole contents of the blob manipulated by @op into @blob


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaBlobOp
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob to read data to
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @blob-&gt;data contains the whole BLOB manipulated by @op
</return>
</function>

<function name="gda_statement_new">
<description>
Creates a new #GdaStatement object


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_sql_statement_free">
<description>
Releases any memory associated to @stmt.

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_set_list">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_array_clear">
<description>
Frees all the rows in @model.

</description>
<parameters>
<parameter name="model">
<parameter_description> the model to clear.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_get_data_handler_g_type">
<description>
Find a #GdaDataHandler object to manipulate data of type @for_type. The returned object must not be modified.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="for_type">
<parameter_description> a #GType
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataHandler, or %NULL if the provider does not support the requested @for_type data type 
</return>
</function>

<function name="gda_sql_builder_select_add_target">
<description>
Adds a new target to a SELECT statement

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the target table
</parameter_description>
</parameter>
<parameter name="alias">
<parameter_description> the alias to give to the target, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new target, or %0 if there was an error

</return>
</function>

<function name="gda_sql_parser_new">
<description>
Creates a new #GdaSqlParser object


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_compute_unique_table_row_condition_with_cnc">
<description>
Computes a #GdaSqlExpr expression which can be used in the WHERE clause of an UPDATE
or DELETE statement when a row from the result of the @stsel statement has to be modified.

Since: 4.0.3

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection, or %NULL
</parameter_description>
</parameter>
<parameter name="stsel">
<parameter_description> a #GdaSqlSelectStatement
</parameter_description>
</parameter>
<parameter name="mtable">
<parameter_description> a #GdaMetaTable
</parameter_description>
</parameter>
<parameter name="require_pk">
<parameter_description> set to TRUE if a primary key ir required
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlExpr, or %NULL if an error occurred.

</return>
</function>

<function name="gda_get_application_exec_path">
<description>
Find the path to the application identified by @app_name. For example if the application
is &quot;gda-sql&quot;, then calling this function will return
&quot;/your/prefix/bin/gda-sql-4.0&quot; if Libgda is installed in
the &quot;/your/prefix&quot; prefix (which would usually be &quot;/usr&quot;), and for the ABI version 4.0.


</description>
<parameters>
<parameter name="app_name">
<parameter_description> the name of the application to find
</parameter_description>
</parameter>
</parameters>
<return> the path as a new string, or %NULL if the application cannot be found
</return>
</function>

<function name="gda_connection_repetitive_statement_execute">
<description>
Executes the statement upon which @rstmt is built. Note that as several statements can actually be executed by this
method, it is recommended to be within a transaction.

If @error is not %NULL and @stop_on_error is %FALSE, then it may contain the last error which occurred.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="rstmt">
<parameter_description> a #GdaRepetitiveStatement object
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description> specifies how the returned data model will be used as a #GdaStatementModelUsage enum
</parameter_description>
</parameter>
<parameter name="col_types">
<parameter_description> an array of GType to request each returned GdaDataModel's column's GType, see gda_connection_statement_execute_select_full() for more information
</parameter_description>
</parameter>
<parameter name="stop_on_error">
<parameter_description> set to TRUE if the method has to stop on the first error.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new list of #GObject pointers (see gda_connection_statement_execute() for more information about what they
represent), one for each actual execution of the statement upon which @rstmt is built. If @stop_on_error is %FALSE, then
the list may contain some %NULL pointers which refer to statements which failed to execute.

</return>
</function>

<function name="gda_config_get_dsn_info_index">
<description>
Get the index (starting at 0) of the DSN named @dsn_name


</description>
<parameters>
<parameter name="dsn_name">
<parameter_description> a DSN
</parameter_description>
</parameter>
</parameters>
<return> the index or -1 if not found
</return>
</function>

<function name="gda_connection_rollback_transaction">
<description>
Rollbacks the given transaction. This means that all changes
made to the underlying data source since the last call to
#gda_connection_begin_transaction() or #gda_connection_commit_transaction()
will be discarded.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the transation to commit, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the operation was successful, %FALSE otherwise.
</return>
</function>

<function name="gda_holder_set_value_to_default">
<description>
Set @holder's value to its default value.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @holder has got a default value
</return>
</function>

<function name="gda_sql_operation_operator_to_string">
<description>
Returns a constant string representing a operator name. You don't need to free
the returned string.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaSqlOperation structure
</parameter_description>
</parameter>
</parameters>
<return> a string with the operator's name or NULL in case @op is invalid.
</return>
</function>

<function name="gda_connection_internal_savepoint_removed">
<description>
Internal functions to be called by database providers when a savepoint has been removed
to keep track of the transaction status of the connection

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="svp_name">
<parameter_description> savepoint's name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_set_where">
<description>
Valid only for: UPDATE, DELETE, SELECT statements

Sets the WHERE condition of the statement

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="cond_id">
<parameter_description> the ID of the expression to set as WHERE condition, or 0 to unset any previous WHERE condition
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_compare">
<description>
Compares two values of the same type, with the exception that a value of any type can be
compared to a GDA_TYPE_NULL value, specifically:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 and @value2 are both GDA_TYPE_NULL values then the returned value is 0&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 is a GDA_TYPE_NULL value and @value2 is of another type then the returned value is -1&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if @value1 is of another type and @value2 is a GDA_TYPE_NULL value then the returned value is 1&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;in all other cases, @value1 and @value2 must be of the same type and their values are compared&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;


</description>
<parameters>
<parameter name="value1">
<parameter_description> a #GValue to compare (not %NULL)
</parameter_description>
</parameter>
<parameter name="value2">
<parameter_description> the other #GValue to be compared to @value1 (not %NULL)
</parameter_description>
</parameter>
</parameters>
<return> if both values have the same type, returns 0 if both contain
the same value, an integer less than 0 if @value1 is less than @value2 or
an integer greater than 0 if @value1 is greater than @value2.
</return>
</function>

<function name="gda_quark_list_add_from_string">
<description>
@string must be a semi-colon separated list of &quot;&lt;key&gt;=&lt;value&gt;&quot; strings (for example
&quot;DB_NAME=notes;USERNAME=alfred&quot;). Each key and value must respect the RFC 1738 recommendations: the
&lt;constant&gt;&lt;&gt;&quot;#%{}|\^~[]&apos;;/?:@=&amp;&lt;/constant&gt; and space characters are replaced by 
&lt;constant&gt;&quot;%%ab&quot;&lt;/constant&gt; where
&lt;constant&gt;ab&lt;/constant&gt; is the hexadecimal number corresponding to the character (for example the
&quot;DB_NAME=notes;USERNAME=al%%20fred&quot; string will specify a username as &quot;al fred&quot;). If this formalism
is not respected, then some unexpected results may occur.

Adds new key-&gt;value pairs from the given @string. If @cleanup is
set to %TRUE, the previous contents will be discarded before adding
the new pairs.

</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList.
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a string.
</parameter_description>
</parameter>
<parameter name="cleanup">
<parameter_description> whether to cleanup the previous content or not.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_set_table">
<description>
Valid only for: INSERT, UPDATE, DELETE statements

Sets the name of the table on which the built statement operates.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> a table name
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_config_can_modify_system_config">
<description>
Tells if the global (system) configuration can be modified (considering
system permissions and settings)


</description>
<parameters>
</parameters>
<return> TRUE if system-wide configuration can be modified
</return>
</function>

<function name="gda_completion_list_get">
<description>
Creates an array of strings (terminated by a %NULL) corresponding to possible completions.
If no completion is available, then the returned array contains just one NULL entry, and
if it was not possible to try to compute a completions list, then %NULL is returned.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> a partial SQL statement which is the context of the completion proposal
</parameter_description>
</parameter>
<parameter name="start">
<parameter_description> starting position within @sql of the &quot;token&quot; to complete (starts at 0)
</parameter_description>
</parameter>
<parameter name="end">
<parameter_description> ending position within @sql of the &quot;token&quot; to complete
</parameter_description>
</parameter>
</parameters>
<return> a new array of strings, or %NULL (use g_strfreev() to free the returned array)
</return>
</function>

<function name="gda_holder_set_not_null">
<description>
Sets if the holder can have a NULL value. If @not_null is TRUE, then that won't be allowed

</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="not_null">
<parameter_description> TRUE if @holder should not accept %NULL values
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_set_numeric">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_handler_find">
<description>

</description>
<parameters>
</parameters>
<return>

</return>
</function>

<function name="gda_server_provider_find_file">
<description>
Finds the location of a @filename. This function should only be used by database provider's
implementations


</description>
<parameters>
<parameter name="prov">
<parameter_description> a #GdaServerProvider
</parameter_description>
</parameter>
<parameter name="inst_dir">
<parameter_description> directory where @prov is installed
</parameter_description>
</parameter>
<parameter name="filename">
<parameter_description> name of the file to find
</parameter_description>
</parameter>
</parameters>
<return> the complete path to @filename, or %NULL if not found
</return>
</function>

<function name="gda_data_model_set_value_at">
<description>
Modifies a value in @model, at (@col, @row).

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number.
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue (not %NULL)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the value in the data model has been updated and no error occurred
</return>
</function>

<function name="gda_data_comparator_get_n_diffs">
<description>
Get the number of differences as computed by the last time gda_data_comparator_compute_diff() was called.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GdaDataComparator object
</parameter_description>
</parameter>
</parameters>
<return> the number of computed differences
</return>
</function>

<function name="gda_sql_operation_copy">
<description>
Creates a new #GdaSqlOperation structure initiated with the values stored in @operation.


</description>
<parameters>
<parameter name="operation">
<parameter_description> a #GdaSqlOperation structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlOperation structure.
</return>
</function>

<function name="gda_sql_statement_select_take_expr_list">
<description>
Sets list of expressions selected by @stmt

@expr_list's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="expr_list">
<parameter_description> a list of #GdaSqlSelectField pointers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_statement_compound_take_stmt">
<description>
Adds the @s sub-statement to the @stmt compound statement. @s's reference is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="s">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_node_fetch_attribute">
<description>
Get the value associated to the attribute named @attribute for @node. If the attribute is not set,
then @node's parents is queries (recursively up to the top level node).

Attributes can have any name, but Libgda proposes some default names,
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a string
</parameter_description>
</parameter>
</parameters>
<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @node

</return>
</function>

<function name="gda_value_set_blob">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="blob">
<parameter_description> a #GdaBlob structure with the data and its size to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_mgr_schemas_get_type">
<description>
Since: 4.2

</description>
<parameters>
</parameters>
<return> the GType

</return>
</function>

<function name="gda_data_handler_get_descr">
<description>
Get a short description of the GdaDataHandler


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
</parameters>
<return> the description
</return>
</function>

<function name="gda_data_model_iter_get_row">
<description>
Get the row which @iter represents in the data model


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
</parameters>
<return> the row number, or -1 if @iter is invalid
</return>
</function>

<function name="gda_statement_serialize">
<description>
Creates a string representing the contents of @stmt.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return> a string containing the serialized version of @stmt
</return>
</function>

<function name="gda_data_handler_get_value_from_str">
<description>
Creates a new GValue which represents the STR value given as argument. This is
the opposite of the function gda_data_handler_get_str_from_value(). The type argument
is used to determine the real data type requested for the returned value.

If the str string is NULL, then the returned GValue is of type GDA_TYPE_NULL;
if the str string does not correspond to a valid STR string for the requested type, then
NULL is returned.


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a string
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a GType
</parameter_description>
</parameter>
</parameters>
<return> the new GValue or NULL on error
</return>
</function>

<function name="gda_data_model_iter_get_value_for_field">
<description>
Get the value stored at the column @field_name in @iter


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> the requested column name
</parameter_description>
</parameter>
</parameters>
<return> the #GValue, or %NULL
</return>
</function>

<function name="gda_connection_get_transaction_status">
<description>
Get the status of @cnc regarding transactions. The returned object should not be modified
or destroyed; however it may be modified or destroyed by the connection itself.

If %NULL is returned, then no transaction has been associated with @cnc


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a #GdaTransactionStatus object, or %NULL
</return>
</function>

<function name="gda_value_set_geometric_point">
<description>
Stores @val into @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="val">
<parameter_description> value to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_set_new_from_spec_string">
<description>
Creates a new #GdaSet object from the @xml_spec
specifications


</description>
<parameters>
<parameter name="xml_spec">
<parameter_description> a string
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store the error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new object, or %NULL if an error occurred
</return>
</function>

<function name="gda_holder_get_bind">
<description>
Get the holder which makes @holder change its value when the holder's value is changed.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
</parameters>
<return> the #GdaHolder or %NULL
</return>
</function>

<function name="gda_server_provider_perform_operation">
<description>
Performs the operation described by @op. Note that @op is not destroyed by this method
and can be reused.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object which will be used to perform the action, or %NULL
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_data_access_wrapper_new">
<description>
Creates a new #GdaDataModel object which buffers the rows of @model. This object is useful
only if @model can only be accessed using cursor based method.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the newly created #GdaDataModel.
</return>
</function>

<function name="gda_repetitive_statement_append_set">
<description>
Specifies that @rstmt be executed one time with the values contained in @values. 

A new #GdaSet to be used as the @values argument can be obtained using
gda_repetitive_statement_get_template_set().

Since: 4.2

</description>
<parameters>
<parameter name="rstmt">
<parameter_description> a #GdaRepetitiveStatement object
</parameter_description>
</parameter>
<parameter name="values">
<parameter_description> a #GdaSet object with the values to be used
</parameter_description>
</parameter>
<parameter name="make_copy">
<parameter_description> %TRUE if @values is copied, and %FALSE if @values is only ref'ed
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaRepetitiveStatement object

</return>
</function>

<function name="gda_data_comparator_get_diff">
<description>
Get a pointer to the #GdaDiff structure representing the difference which number is @pos


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GdaDataComparator object
</parameter_description>
</parameter>
<parameter name="pos">
<parameter_description> the requested difference number (starting at 0)
</parameter_description>
</parameter>
</parameters>
<return> a pointer to a #GdaDiff, or %NULL if @pos is invalid
</return>
</function>

<function name="gda_data_model_append_row">
<description>
Appends a row to the data model (the new row will possibly have NULL values for all columns,
or some other values depending on the data model implementation)

Upon errors -1 will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the number of the added row, or -1 if an error occurred
</return>
</function>

<function name="gda_connection_internal_savepoint_rolledback">
<description>
Internal functions to be called by database providers when a savepoint has been rolled back
to keep track of the transaction status of the connection

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="svp_name">
<parameter_description> savepoint's name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_copy">
<description>
Creates a new #GValue from an existing one.


</description>
<parameters>
<parameter name="value">
<parameter_description> value to get a copy from.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GValue with a copy of the data in @value.

Free-function: gda_value_free
</return>
</function>

<function name="gda_sql_statement_select_take_having_cond">
<description>
Sets the HAVING clause of @stmt

@expr's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_utility_data_model_dump_data_to_xml">
<description>
Dump the data in a #GdaDataModel into a xmlNodePtr (as used in libxml).


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="parent">
<parameter_description> the parent XML node
</parameter_description>
</parameter>
<parameter name="cols">
<parameter_description> an array containing which columns of @model will be exported, or %NULL for all columns
</parameter_description>
</parameter>
<parameter name="nb_cols">
<parameter_description> the number of columns in @cols
</parameter_description>
</parameter>
<parameter name="rows">
<parameter_description> an array containing which rows of @model will be exported, or %NULL for all rows
</parameter_description>
</parameter>
<parameter name="nb_rows">
<parameter_description> the number of rows in @rows
</parameter_description>
</parameter>
<parameter name="use_col_ids">
<parameter_description> set to %TRUE to add column ID information
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_get_access_flags">
<description>
Get the attributes of @model such as how to access the data it contains if it's modifiable, etc.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return> an ORed value of #GdaDataModelAccessFlags flags
</return>
</function>

<function name="gda_sql_parser_parse_string_as_batch">
<description>
Parse @sql and creates a #GdaBatch object which contains all the #GdaStatement objects created while parsing (one object
per SQL statement). Empty statements (composed of spaces only) do not appear in the resulting object.

@sql is parsed and #GdaStatement objects are created as long as no error is found in @sql. If an error is found
at some point, then the parsing stops and @remain may contain a non %NULL pointer, @error may be set, and %NULL
is returned.

if @sql is %NULL, then the returned #GdaBatch object will contain no statement.

To include variables in the @sql string, see the
&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser's object description&lt;/link&gt;.


</description>
<parameters>
<parameter name="parser">
<parameter_description> a #GdaSqlParser object
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> the SQL string to parse
</parameter_description>
</parameter>
<parameter name="remain">
<parameter_description> location to store a pointer to remaining part of @sql in case an error occurred while parsing @sql, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> location to store error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaBatch object, or %NULL if an error occurred
</return>
</function>

<function name="gda_data_model_get_column_title">
<description>

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number.
</parameter_description>
</parameter>
</parameters>
<return> the title for the given column in a data model object.
</return>
</function>

<function name="gda_handler_bin_new">
<description>
Creates a data handler for binary values


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_meta_table_column_get_attribute">
<description>
Get the value associated to a named attribute.

Attributes can have any name, but Libgda proposes some default names, see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.


</description>
<parameters>
<parameter name="tcol">
<parameter_description> a #GdaMetaTableColumn
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name as a string
</parameter_description>
</parameter>
</parameters>
<return> a read-only #GValue, or %NULL if not attribute named @attribute has been set for @column
</return>
</function>

<function name="gda_parse_iso8601_timestamp">
<description>
Extracts date and time parts from @value, and sets @timestamp's contents

Accepted date format is &quot;YYYY-MM-DD HH:MM:SS[.ms][TZ]&quot; where TZ is +hour or -hour


</description>
<parameters>
<parameter name="timestamp">
<parameter_description> a pointer to a #GdaTimeStamp structure which will be filled
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_set_new_inline">
<description>
Creates a new #GdaSet containing holders defined by each triplet in ...
For each triplet (id, Glib type and value), 
the value must be of the correct type (gchar * if type is G_STRING, ...)

Note that this function is a utility function and that only a limited set of types are supported. Trying
to use an unsupported type will result in a warning, and the returned value holder holding a safe default
value.


</description>
<parameters>
<parameter name="nb">
<parameter_description> the number of value holders which will be contained in the new #GdaSet
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a serie of a (const gchar*) id, (GType) type, and value
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSet object
</return>
</function>

<function name="gda_value_new_from_string">
<description>
Makes a new #GValue of type @type from its string representation. 

For more information
about the string format, see the gda_value_set_from_string() function.
This function is typically used when reading configuration files or other non-user input that should be locale 
independent.


</description>
<parameters>
<parameter name="as_string">
<parameter_description> stringified representation of the value.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the new value type.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue or %NULL if the string representation cannot be converted to the specified @type.

Free-function: gda_value_free
</return>
</function>

<function name="gda_sql_select_join_copy">
<description>
Creates a new #GdaSqlSelectJoin structure initiated with the values stored in @join.


</description>
<parameters>
<parameter name="join">
<parameter_description> a #GdaSqlSelectJoin structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectJoin structure.
</return>
</function>

<function name="gda_value_take_binary">
<description>
Stores @val into @value, but on the contrary to gda_value_set_binary(), the @binary
argument is not copied, but used as-is and it should be considered owned by @value.

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue that will store @val.
</parameter_description>
</parameter>
<parameter name="binary">
<parameter_description> a #GdaBinary structure with the data and its size to be stored in @value.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_identifier_needs_quotes">
<description>
Tells if @str needs to be quoted before using it in an SQL statement. To actually add quotes,
use gda_sql_identifier_add_quotes().

To determine if quotes are needed: the following rules are applied:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;If the 1st character is a digit, then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;If there are mixed lower and upper case letters, then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;If there are other characters than digits, letters and the '_', '$' and '#', then %TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;Otherwise %FALSE is returned&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

Deprecated: 4.0.3: Not needed anymore because of the gda_sql_identifier_quote() function.

</description>
<parameters>
<parameter name="str">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @str needs some quotes

</return>
</function>

<function name="gda_thread_wrapper_steal_signal">
<description>
Requests that the signal which ID is @id (which has been obtained using gda_thread_wrapper_connect_raw())
be treated by the calling thread instead of by the thread in which gda_thread_wrapper_connect_raw()
was called.

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> a signal ID
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_handler_time_set_sql_spec">
<description>
Specifies the SQL output style of the @dh data handler. The general format is &quot;FIRSTsSECsTHIRD&quot;
where FIRST, SEC and THIRD are specified by @first, @sec and @trird and 's' is the separator,
specified by @separator.

The default implementation is @first=G_DATE_MONTH, @sec=G_DATE_DAY and @third=G_DATE_YEAR
(the year is rendered on 4 digits) and the separator is '-'

</description>
<parameters>
<parameter name="dh">
<parameter_description> a #GdaHandlerTime object
</parameter_description>
</parameter>
<parameter name="first">
<parameter_description> what comes first in the date representation
</parameter_description>
</parameter>
<parameter name="sec">
<parameter_description> what comes second in the date representation
</parameter_description>
</parameter>
<parameter name="third">
<parameter_description> what comes third in the date representation
</parameter_description>
</parameter>
<parameter name="separator">
<parameter_description> separator character used between year, month and day
</parameter_description>
</parameter>
<parameter name="twodigits_years">
<parameter_description> TRUE if year part of date must be rendered on 2 digits
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_handler_get_sql_from_value">
<description>
Creates a new string which is an SQL representation of the given value, the returned string
can be used directly in an SQL statement. For example if @value is a G_TYPE_STRING, then
the returned string will be correctly quoted. Note however that it is a better practice
to use variables in statements instead of value literals, see
the &lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser&lt;/link&gt; for more information.

If the value is NULL or is of type GDA_TYPE_NULL, the returned string is &quot;NULL&quot;.


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> the value to be converted to a string
</parameter_description>
</parameter>
</parameters>
<return> the new string, or %NULL if an error occurred
</return>
</function>

<function name="gda_column_get_position">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> the position of the column refer to in the
containing data model.
</return>
</function>

<function name="gda_blob_op_get_length">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> an existing #GdaBlobOp
</parameter_description>
</parameter>
</parameters>
<return> the length of the blob in bytes. In case of error, -1 is returned and the
provider should have added an error (a #GdaConnectionEvent) to the connection.
</return>
</function>

<function name="gda_log_message">
<description>
Logs the given message in the GDA log file.

</description>
<parameters>
<parameter name="format">
<parameter_description> format string (see the printf(3) documentation).
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to insert in the message.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_expr_take_select">
<description>
Sets the expression's parent to the #GdaSqlStatementSelect held by @stmt. After
calling this function @stmt is freed.


</description>
<parameters>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr structure
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement holding the #GdaSqlStatementSelect to take from
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_mgr_tables_new">
<description>
Creates a new #GdaTreeManager object which will add one tree node for each table found in the
@schema if it is not %NULL, or for each table visible by default in @cnc.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> a schema name or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager object

</return>
</function>

<function name="gda_tree_manager_get_managers">
<description>
Get the list of sub managers which have already been added using gda_tree_manager_add_manager()

Since: 4.2

</description>
<parameters>
<parameter name="manager">
<parameter_description> a #GdaTreeManager object
</parameter_description>
</parameter>
</parameters>
<return> a list of #GdaTreeMenager which should not be modified.

</return>
</function>

<function name="gda_data_proxy_get_sample_end">
<description>
Get the number of the last row to be available in @proxy (in reference to the proxied data model)


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the number of the last proxied model's row.
</return>
</function>

<function name="gda_connection_perform_operation">
<description>
Performs the operation described by @op (which should have been created using
gda_connection_create_operation()). It is a wrapper around the gda_server_provider_perform_operation()
method.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_builder_add_expr">
<description>
Defines an expression in @builder which may be reused to build other parts of a statement.

The new expression will contain the value passed as the @... argument. It is possible to
customize how the value has to be interpreted by passing a specific #GdaDataHandler object as @dh.

Note that for composite types such as #GdaNumeric, #Gdate, #GdaTime, ... pointer to these
structures are expected, they should no be passed by value. For example:
&lt;programlisting&gt;&lt;![CDATA[GDate *date = g_date_new_dmy (27, G_DATE_MAY, 1972);
id = gda_sql_builder_add_expr (b, NULL, G_TYPE_DATE, date);
g_date_free (date);

id = gda_sql_builder_add_expr (b, NULL, G_TYPE_STRING, &quot;my string&quot;);
id = gda_sql_builder_add_expr (b, NULL, G_TYPE_INT, 25);
]]&gt;&lt;/programlisting&gt;

will correspond in SQL to:
&lt;programlisting&gt;
'05-27-1972'
'my string'
25
&lt;/programlisting&gt;

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="dh">
<parameter_description> a #GdaDataHandler to use, or %NULL
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the GType of the following argument
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value to set the expression to, of the type specified by @type
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_tree_manager_get_type">
<description>
Registers the #GdaTreeManager class on the GLib type system.

Since: 4.2

</description>
<parameters>
</parameters>
<return> the GType identifying the class.

</return>
</function>

<function name="gda_connection_commit_transaction">
<description>
Commits the given transaction to the backend database. You need to call
gda_connection_begin_transaction() first.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the transation to commit, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the transaction was finished successfully,
%FALSE otherwise.
</return>
</function>

<function name="gda_data_model_bdb_clean_errors">
<description>
Reset the list of errors which have occurred while using @model

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelBdb object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_select_set_row_selection_condition">
<description>
Offers the same features as gda_data_select_set_row_selection_condition_sql() but using a #GdaSqlExpr
structure instead of an SQL syntax.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr expression
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_builder_compound_set_type">
<description>
Changes the type of compound which @builder is making, for a COMPOUND statement

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="compound_type">
<parameter_description> a type of compound
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_event_new">
<description>
Creates a new uninitialized event object. This class is used for communicating
events from the different providers to the clients.

Deprecated: 4.2: use gda_connection_point_available_event() instead

</description>
<parameters>
<parameter name="type">
<parameter_description> the type of event
</parameter_description>
</parameter>
</parameters>
<return> the event object.

</return>
</function>

<function name="gda_sql_builder_add_id">
<description>
Defines an expression representing an identifier in @builder,
which may be reused to build other parts of a statement,
for instance as a parameter to gda_sql_builder_add_cond() or
gda_sql_builder_add_field_value_id().

The new expression will contain the @string literal.
For example:
&lt;programlisting&gt;
gda_sql_builder_add_id (b, &quot;name&quot;)
gda_sql_builder_add_id (b, &quot;date&quot;)
&lt;/programlisting&gt;

will be rendered as SQL as:
&lt;programlisting&gt;
name
&quot;date&quot;
&lt;/programlisting&gt;

because &quot;date&quot; is an SQL reserved keyword.

For fields, see gda_sql_builder_add_field_id().

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_meta_store_get_version">
<description>
Get @store's internal schema's version


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
</parameters>
<return> the version (incremented each time the schema changes, backward compatible)
</return>
</function>

<function name="gda_tree_node_set_node_attribute">
<description>
Set the value associated to a named attribute. The @attribute string is 'stolen' by this method, and
the memory it uses will be freed using the @destroy function when no longer needed (if @destroy is %NULL,
then the string will not be freed at all).

Attributes can have any name, but Libgda proposes some default names, 
see &lt;link linkend=&quot;libgda-40-Attributes-manager.synopsis&quot;&gt;this section&lt;/link&gt;.

For example one would use it as:

&lt;code&gt;
gda_tree_node_set_node_attribute (node, g_strdup (my_attribute), g_free, my_value);
gda_tree_node_set_node_attribute (node, GDA_ATTRIBUTE_NAME, NULL, my_value);
&lt;/code&gt;

If there is already an attribute named @attribute set, then its value is replaced with the new value (@value is
copied), except if @value is %NULL, in which case the attribute is removed.

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_string_split">
<description>
Extract the provider, connection parameters, username and password from @string. 
in @string, the various parts are strings
which are expected to be encoded using an RFC 1738 compliant encoding. If they are specified, 
the returned provider, username and password strings are correctly decoded.

For example all the following connection strings:
&lt;programlisting&gt;&lt;![CDATA[
PostgreSQL://meme:pass@DB_NAME=mydb;HOST=server
PostgreSQL://meme@DB_NAME=mydb;HOST=server;PASSWORD=pass
PostgreSQL://meme@DB_NAME=mydb;PASSWORD=pass;HOST=server
PostgreSQL://meme@PASSWORD=pass;DB_NAME=mydb;HOST=server
PostgreSQL://DB_NAME=mydb;HOST=server;USERNAME=meme;PASSWORD=pass
PostgreSQL://DB_NAME=mydb;HOST=server;PASSWORD=pass;USERNAME=meme
PostgreSQL://DB_NAME=mydb;USERNAME=meme;PASSWORD=pass;HOST=server
PostgreSQL://PASSWORD=pass;USERNAME=meme;DB_NAME=mydb;HOST=server
PostgreSQL://:pass@USERNAME=meme;DB_NAME=mydb;HOST=server
PostgreSQL://:pass@DB_NAME=mydb;HOST=server;USERNAME=meme]]&gt;&lt;/programlisting&gt;

will return the following new strings (double quotes added here to delimit strings):
&lt;programlisting&gt;&lt;![CDATA[
out_cnc_params: &quot;DB_NAME=mydb;HOST=server&quot;
out_provider: &quot;PostgreSQL&quot;
out_username: &quot;meme&quot;
out_password: &quot;pass&quot;]]&gt;&lt;/programlisting&gt;

</description>
<parameters>
<parameter name="string">
<parameter_description> a string in the &quot;[&lt;provider&gt;://][&lt;username&gt;[:&lt;password&gt;]@]&lt;connection_params&gt;&quot; form
</parameter_description>
</parameter>
<parameter name="out_cnc_params">
<parameter_description> a place to store the new string containing the &lt;connection_params&gt; part
</parameter_description>
</parameter>
<parameter name="out_provider">
<parameter_description> a place to store the new string containing the &lt;provider&gt; part
</parameter_description>
</parameter>
<parameter name="out_username">
<parameter_description> a place to store the new string containing the &lt;username&gt; part
</parameter_description>
</parameter>
<parameter name="out_password">
<parameter_description> a place to store the new string containing the &lt;password&gt; part
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_attributes_manager_copy">
<description>
For each attribute set for @from (in @from_mgr), set the same attribute to @to (in @to_mgr). @from_mgr and
@to_mgr can be equal.

</description>
<parameters>
<parameter name="from_mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> a pointer from which attributes are copied
</parameter_description>
</parameter>
<parameter name="to_mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="to">
<parameter_description> a pointer to which attributes are copied
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_add_event">
<description>
Adds an event to the given connection. This function is usually
called by providers, to inform clients of events that happened
during some operation.

As soon as a provider (or a client, it does not matter) calls this
function with an @event object which is an error,
the connection object emits the &quot;error&quot; signal, to which clients can connect to be
informed of events.

WARNING: the reference to the @event object is stolen by this function!

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="event">
<parameter_description> is stored internally, so you don't need to unref it.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_transaction_status_add_event_sub">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_connection_internal_transaction_committed">
<description>
Internal functions to be called by database providers when a transaction has been committed
to keep track of the transaction status of the connection

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="trans_name">
<parameter_description> transaction's name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_quark_list_remove">
<description>
Removes an entry from the #GdaQuarkList, given its name.

</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList structure.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> an entry name.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_proxy_get_filter_expr">
<description>
Get the current filter expression used by @proxy.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the current filter expression or %NULL if no filter has been set
</return>
</function>

<function name="gda_set_get_holder">
<description>
Finds a #GdaHolder using its ID


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder_id">
<parameter_description> the ID of the requested value holder
</parameter_description>
</parameter>
</parameters>
<return> the requested #GdaHolder or %NULL
</return>
</function>

<function name="gda_connection_event_get_sqlstate">
<description>
Get the SQLSTATE value of @event. Even though the SQLSTATE values are specified by ANSI SQL and ODBC,
consult each DBMS for the possible values. However, the &quot;00000&quot; (success) value means that there is no error,
and the &quot;HY000&quot; (general error) value means an error but no better error code available.


</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
</parameters>
<return> @event's SQL state.
</return>
</function>

<function name="gda_holder_set_bind">
<description>
Sets @holder to change when @bind_to changes (and does not make @bind_to change when @holder changes).
For the operation to succeed, the GType of @holder and @bind_to must be the same, with the exception that
any of them can have a %GDA_TYPE_NULL type (in this situation, the GType of the two #GdaHolder objects
involved is set to match the other when any of them sets its type to something different than GDA_TYPE_NULL).

If @bind_to is %NULL, then @holder will not be bound anymore.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder
</parameter_description>
</parameter>
<parameter name="bind_to">
<parameter_description> a #GdaHolder or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_sql_function_new">
<description>
Creates a new #GdaSqlFunction structure initiated.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlAnyPart structure
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlFunction structure.
</return>
</function>

<function name="gda_xa_transaction_rollback">
<description>
Cancels a distributed transaction (managed by @xa_trans). 


</description>
<parameters>
<parameter name="xa_trans">
<parameter_description> a #GdaXaTransaction object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_server_provider_get_default_dbms_type">
<description>
Get the name of the most common data type which has @type type.

The returned value may be %NULL either if the provider does not implement that method, or if
there is no DBMS data type which could contain data of the @g_type type (for example %NULL may be
returned if a DBMS has integers only up to 4 bytes and a G_TYPE_INT64 is requested).


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description>  a #GdaConnection object or %NULL
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GType value type
</parameter_description>
</parameter>
</parameters>
<return> the name of the DBMS type, or %NULL
</return>
</function>

<function name="gda_connection_internal_transaction_started">
<description>
Internal functions to be called by database providers when a transaction has been started
to keep track of the transaction status of the connection.

Note: this function should not be called if gda_connection_internal_statement_executed()
has already been called because a statement's execution was necessary to perform
the action.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="parent_trans">
<parameter_description> name of the parent transaction, or %NULL
</parameter_description>
</parameter>
<parameter name="trans_name">
<parameter_description> transaction's name, or %NULL
</parameter_description>
</parameter>
<parameter name="isol_level">
<parameter_description> isolation level.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_copy">
<description>
Creates a new #GdaColumn object from an existing one.


</description>
<parameters>
<parameter name="column">
<parameter_description> column to get a copy from. 	 
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaColumn with a copy of the data 	 
in @column. 	 
</return>
</function>

<function name="gda_sql_statement_check_validity_m">
<description>
If @mstruct is not %NULL, then checks that all the database objects referenced in the statement i
actually referenced in @mstruct
(for example the table being updated in a UPDATE statement must exist in the
connection's database for the check to succeed).
This method sets the @stmt-&gt;validity_meta_struct attribute to @mstruct.

If @mstruct is %NULL, then remove any information from a previous call to this method stored in @stmt. In this case,
the @stmt-&gt;validity_meta_struct attribute is cleared.

Also note that some parts of @stmt may be modified: for example leading and trailing spaces in aliases or
objects names will be removed.

Since: 4.2

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred

</return>
</function>

<function name="gda_value_stringify">
<description>
Converts a GValue to its string representation which is a human readable value. Note that the
returned string does not take into account the current locale of the user (on the contrary to the
#GdaDataHandler objects). Using this function should be limited to debugging and values serialization
purposes.

Dates are converted in a YYYY-MM-DD format.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue.
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if the conversion cannot be done. Free the value with a g_free() when you've finished using it. 
</return>
</function>

<function name="gda_value_new">
<description>
Makes a new #GValue of type @type.


</description>
<parameters>
<parameter name="type">
<parameter_description> the new value type.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue with the specified @type. You need to set the value in the returned GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_sql_builder_export_expression">
<description>
Exports a part managed by @builder as a new #GdaSqlExpr, which can represent any expression
in a statement.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID of the expression to be exported, (must be a valid ID in @builder, not %0)
</parameter_description>
</parameter>
</parameters>
<return> a pointer to a new #GdaSqlExpr structure, free using gda_sql_expr_free() when not
needed anymore. If the part with @id as ID cannot be found, the returned value is %NULL.

</return>
</function>

<function name="gda_data_proxy_undelete">
<description>
Remove the &quot;to be deleted&quot; mark at the row @proxy_row, if it existed.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_manager_add_manager">
<description>
Adds a sub manager to @manager. Use this method to create the skeleton structure
of a #GdaTree. Note that a single #GdaTreeManager can be used by several #GdaTree objects
or several times in the same #GdaTree's structure.

Since: 4.2

</description>
<parameters>
<parameter name="manager">
<parameter_description> a #GdaTreeManager object
</parameter_description>
</parameter>
<parameter name="sub">
<parameter_description> a #GdaTreeManager object to add
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_new">
<description>
Creates a new #GdaTree object

Since: 4.2

</description>
<parameters>
</parameters>
<return> a new #GdaTree object

</return>
</function>

<function name="gda_tree_mgr_columns_get_type">
<description>
Since: 4.2

</description>
<parameters>
</parameters>
<return> the GType

</return>
</function>

<function name="gda_column_get_allow_null">
<description>
Gets the 'allow null' flag of the given column.


</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> whether the given column allows null values or not (%TRUE or %FALSE).
</return>
</function>

<function name="gda_value_get_time">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_sql_builder_select_set_having">
<description>
Valid only for: SELECT statements

Sets the HAVING condition of the statement

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="cond_id">
<parameter_description> the ID of the expression to set as HAVING condition, or 0 to unset any previous HAVING condition
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_del_prepared_statement">
<description>
Removes any prepared statement associated to @gda_stmt in @cnc: this undoes what
gda_connection_add_prepared_statement() does.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="gda_stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_get_binary">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_data_model_import_get_type">
<description>

</description>
<parameters>
</parameters>
<return> the #GType of GdaDataModelImport.
</return>
</function>

<function name="gda_column_get_auto_increment">
<description>

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
</parameters>
<return> whether the given column is an auto incremented one (%TRUE or %FALSE).
</return>
</function>

<function name="gda_data_model_export_to_file">
<description>
Exports data contained in @model to the @file file; the format is specified using the @format argument.

Specifically, the parameters in the @options list can be:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;&quot;SEPARATOR&quot;: a string value of which the first character is used as a separator in case of CSV export
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;QUOTE&quot;: a string value of which the first character is used as a quote character in case of CSV export
&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;FIELD_QUOTE&quot;: a boolean value which can be set to FALSE if no quote around the individual fields 
is requeted, in case of CSV export&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;NAME&quot;: a string value used to name the exported data if the export format is XML&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;FIELDS_NAME&quot;: a boolean value which, if set to %TRUE and in case of a CSV export, will add a first line with the name each exported field&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;OVERWRITE&quot;: a boolean value which tells if the file must be over-written if it already exists.&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;NULL_AS_EMPTY&quot;: a boolean value which, if set to %TRUE and in case of a CSV export, will render and NULL value as the empty string (instead of the 'NULL' string)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;&quot;INVALID_AS_NULL&quot;: a boolean value which, if set to %TRUE, considers any invalid data (for example for the date related values) as NULL&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format in which to export data
</parameter_description>
</parameter>
<parameter name="file">
<parameter_description> the filename to export to
</parameter_description>
</parameter>
<parameter name="cols">
<parameter_description> an array containing which columns of @model will be exported, or %NULL for all columns
</parameter_description>
</parameter>
<parameter name="nb_cols">
<parameter_description> the number of columns in @cols
</parameter_description>
</parameter>
<parameter name="rows">
<parameter_description> an array containing which rows of @model will be exported, or %NULL for all rows
</parameter_description>
</parameter>
<parameter name="nb_rows">
<parameter_description> the number of rows in @rows
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> list of options for the export
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_proxy_has_changed">
<description>
Tells if @proxy contains any modifications not applied to the proxied data model.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if there are some modifications in @proxy
</return>
</function>

<function name="gda_meta_store_set_reserved_keywords_func">
<description>
Specifies a function which @store will use to determine if a keyword is an SQL reserved
keyword or not.

This method is mainly used by database providers.

Since: 4.2

</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="func">
<parameter_description> a #GdaSqlReservedKeywordsFunc function, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_operation_get_value_at">
<description>
Get the value for the node at the path formed using @path_format and ... (the rules are the same as
for g_strdup_printf())


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path_format">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to use with @path_format to make a complete path
</parameter_description>
</parameter>
</parameters>
<return> a constant #GValue if a value has been defined, or %NULL if the value is undefined or
if the @path is not defined or @path does not hold any value.
</return>
</function>

<function name="gda_sql_builder_add_case_v">
<description>
Creates a new CASE ... WHEN ... THEN ... ELSE ... END expression. The WHEN expression and the THEN
expression IDs are taken from the @when_array and @then_array at the same index, for each index inferior to
@args_size.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="test_expr">
<parameter_description> the expression ID representing the test of the CASE, or %0
</parameter_description>
</parameter>
<parameter name="else_expr">
<parameter_description> the expression ID representing the ELSE expression, or %0
</parameter_description>
</parameter>
<parameter name="when_array">
<parameter_description> an array containing each WHEN expression ID, having at least @args_size elements
</parameter_description>
</parameter>
<parameter name="then_array">
<parameter_description> an array containing each THEN expression ID, having at least @args_size elements
</parameter_description>
</parameter>
<parameter name="args_size">
<parameter_description> the size of @when_array and @then_array
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_meta_store_sql_identifier_quote">
<description>
Use this method to get a correctly quoted (if necessary) SQL identifier which can be used
to retrieve or filter information in a #GdaMetaStore which stores meta data about @cnc.

The returned SQL identifier can be used in conjunction with gda_connection_update_meta_store(),
gda_connection_get_meta_store_data(), gda_connection_get_meta_store_data_v() and
gda_meta_store_extract().

Since: 4.0.3

</description>
<parameters>
<parameter name="id">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
</parameters>
<return> a new string, to free with g_free() once not needed anymore

</return>
</function>

<function name="gda_identifier_hash">
<description>
computes a hash string from @id, to be used in hash tables as a #GHashFunc


</description>
<parameters>
<parameter name="id">
<parameter_description> an identifier string
</parameter_description>
</parameter>
</parameters>
<return> a new hash
</return>
</function>

<function name="gda_server_operation_get_node_path_portion">
<description>
Get the last part of @path


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if an error occurred
</return>
</function>

<function name="gda_lockable_lock">
<description>
Locks @lockable. If it is already locked by another thread, the current thread will block until it is unlocked 
by the other thread.

This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing.

Note: unlike g_mutex_lock(), this method recursive, which means a thread can lock @lockable several times 
(and has to unlock it as many times to actually unlock it).

</description>
<parameters>
<parameter name="lockable">
<parameter_description> a #GdaLockable object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_order_new">
<description>
Creates a new #GdaSqlSelectOrder structure and sets its parent to @parent.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementSelect
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectOrder structure
</return>
</function>

<function name="gda_data_model_row_removed">
<description>
Emits the 'row_removed' and 'changed' signal on @model.

This method should only be used by #GdaDataModel implementations to 
signal that a row has been removed

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_proxy_get_proxied_model_row">
<description>
Get the @proxy's proxied model row corresponding to @proxy_row


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return> the proxied model's row, or -1 if @proxy row which only exists @proxy
</return>
</function>

<function name="gda_column_set_g_type">
<description>
Sets the type of @column to @type.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> the new type of @column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_statement_rewrite_for_default_values">
<description>
Rewrites @stmt and creates a new #GdaSqlStatement where all the variables which are to a DEFAULT value
(as returned by gda_holder_value_is_default()) are either removed from the statement (if @remove
is %TRUE) or replaced by the &quot;DEFAULT&quot; keyword (if @remove is %FALSE).

This function is only usefull for database providers' implementations which have to deal with default
values when executing statements, and is only relevant in the case of INSERT or UPDATE statements
(in the latter case an error is returned if @remove is %TRUE).

For example the &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id, name) VALUES (23, ##name::string)]]&gt;&lt;/programlisting&gt;
is re-written into &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id, name) VALUES (23, DEFAULT)]]&gt;&lt;/programlisting&gt;
if @remove is %FALSE and into &lt;programlisting&gt;&lt;![CDATA[INSERT INTO mytable (id) VALUES (23)]]&gt;&lt;/programlisting&gt;
if @remove is %TRUE.

Since: 4.2

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet containing the variable's values to be bound when executing @stmt
</parameter_description>
</parameter>
<parameter name="remove">
<parameter_description> set to %TRUE if DEFAULT fields are removed, of %FALSE if the &quot;DEFAULT&quot; keyword is used
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlStatement, or %NULL if an error occurred

</return>
</function>

<function name="gda_data_proxy_delete">
<description>
Marks the row @proxy_row to be deleted

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_target_free">
<description>
Frees a #GdaSqlSelectTarget structure and its members.

</description>
<parameters>
<parameter name="target">
<parameter_description> a #GdaSqlSelectTarget structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_proxy_apply_row_changes">
<description>
Commits the modified data in the proxy back into the #GdaDataModel.


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> the row number to commit
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> place to store the error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_data_model_bdb_new">
<description>
Creates a new #GdaDataModel object to access the contents of the Berkeley DB file @file,
for the database @db_name if not %NULL


</description>
<parameters>
<parameter name="filename">
<parameter_description> name of the file containing the database
</parameter_description>
</parameter>
<parameter name="db_name">
<parameter_description> the name of the database within @filename, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataModel
</return>
</function>

<function name="gda_meta_store_schema_add_custom_object">
<description>
The internal database used by @store can be 'augmented' with some user-defined database objects
(such as tables or views). This method allows one to add a new database object.

If the internal database already contains the object, then:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;if the object is equal to the provided description then TRUE is returned&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;if the object exists but differs from the provided description, then FALSE is returned,
with the GDA_META_STORE_SCHEMA_OBJECT_CONFLICT_ERROR error code&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

The @xml_description defines the table of view's definition, for example:
&lt;programlisting&gt;&lt;![CDATA[&lt;table name=&quot;mytable&quot;&gt;
    &lt;column name=&quot;id&quot; pkey=&quot;TRUE&quot;/&gt;
    &lt;column name=&quot;value&quot;/&gt;
&lt;/table&gt;]]&gt;&lt;/programlisting&gt;

The partial DTD for this XML description of the object to add is the following (the top node must be
a &lt;table&gt; or a &lt;view&gt;):
&lt;programlisting&gt;&lt;![CDATA[&lt;!ELEMENT table (column*,check*,fkey*,unique*)&gt;
&lt;!ATTLIST table
          name NMTOKEN #REQUIRED&gt;

&lt;!ELEMENT column EMPTY&gt;
&lt;!ATTLIST column
          name NMTOKEN #REQUIRED
          type CDATA #IMPLIED
          pkey (TRUE|FALSE) #IMPLIED
          autoinc (TRUE|FALSE) #IMPLIED
          nullok (TRUE|FALSE) #IMPLIED&gt;

&lt;!ELEMENT check (#PCDATA)&gt;

&lt;!ELEMENT fkey (part+)&gt;
&lt;!ATTLIST fkey
          ref_table NMTOKEN #REQUIRED&gt;

&lt;!ELEMENT part EMPTY&gt;
&lt;!ATTLIST part
          column NMTOKEN #IMPLIED
          ref_column NMTOKEN #IMPLIED&gt;

&lt;!ELEMENT unique (column*)&gt;

&lt;!ELEMENT view (definition)&gt;
&lt;!ATTLIST view
          name NMTOKEN #REQUIRED
          descr CDATA #IMPLIED&gt;

&lt;!ELEMENT definition (#PCDATA)&gt;]]&gt;&lt;/programlisting&gt;


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="xml_description">
<parameter_description> an XML description of the table or view to add to @store
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the new object has sucessfully been added
</return>
</function>

<function name="gda_connection_internal_reset_transaction_status">
<description>
Internal function to be called by database providers to reset the transaction status.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_add_prepared_statement">
<description>
Declares that @prepared_stmt is a prepared statement object associated to @gda_stmt within the connection
(meaning the connection increments the reference counter of @prepared_stmt).

If @gda_stmt changes or is destroyed, the the association will be lost and the connection will lose the
reference it has on @prepared_stmt.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="gda_stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="prepared_stmt">
<parameter_description> a prepared statement object (as a #GdaPStmt object, or more likely a descendant)
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_select_order_by">
<description>
Adds a new ORDER BY expression to a SELECT statement.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuiler
</parameter_description>
</parameter>
<parameter name="expr_id">
<parameter_description> the ID of the expression to use during sorting (not %0)
</parameter_description>
</parameter>
<parameter name="asc">
<parameter_description> %TRUE for an ascending sorting
</parameter_description>
</parameter>
<parameter name="collation_name">
<parameter_description>  name of the collation to use when sorting, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_import_from_string">
<description>
Loads the data from @string into @model.

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="string">
<parameter_description> the string to import data from
</parameter_description>
</parameter>
<parameter name="cols_trans">
<parameter_description> a hash table containing which columns of @model will be imported, or %NULL for all columns, see gda_data_model_import_from_model()
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> list of options for the export
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_tree_mgr_columns_new">
<description>
Creates a new #GdaTreeManager object which will add one tree node for each
column in the table named @table_name in the @schema schema.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> a schema name
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of the table
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaTreeManager object 

</return>
</function>

<function name="gda_data_model_iter_move_to_row">
<description>
Synchronizes the values of the parameters in @iter with the values at the @row row.

If @row is not a valid row, then the returned value is FALSE, and the &quot;current-row&quot;
property is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE)

If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
property is set to the @row row.  In this case
each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row to set @iter to
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_lockable_trylock">
<description>
Tries to lock @lockable. If it is already locked by another thread, then it immediately returns FALSE, otherwise
it locks @lockable.

This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing.

Note: unlike g_mutex_lock(), this method recursive, which means a thread can lock @lockable several times 
(and has to unlock it as many times to actually unlock it).


</description>
<parameters>
<parameter name="lockable">
<parameter_description> a #GdaLockable object.
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the object has successfully been locked.
</return>
</function>

<function name="gda_server_operation_get_sequence_max_size">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> the maximum number of items in the sequence at @path, or 0 if @path is not a sequence node
</return>
</function>

<function name="gda_server_operation_get_sequence_size">
<description>

</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a sequence node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> the number of items in the sequence at @path, or 0 if @path is not a sequence node
</return>
</function>

<function name="gda_sql_statement_select_take_where_cond">
<description>
Sets the WHERE clause of @stmt

@expr's ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_quark_list_free">
<description>
Releases all memory occupied by the given #GdaQuarkList.

</description>
<parameters>
<parameter name="qlist">
<parameter_description> a #GdaQuarkList.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_param_spec_take_descr">
<description>
Sets @pspec's description. @value's ownership is transferred to
@pspec (which means @pspec is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="pspec">
<parameter_description> a #GdaSqlParamSpec pointer
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_virtual_connection_open">
<description>
Creates and opens a new virtual connection using the @virtual_provider provider


</description>
<parameters>
<parameter name="virtual_provider">
<parameter_description> a #GdaVirtualProvider object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnection object, or %NULL if an error occurred
</return>
</function>

<function name="gda_connection_statement_execute_non_select">
<description>
Executes a non-selection statement on the given connection. The gda_execute_non_select_command() method can be easier
to use if one prefers to use some SQL directly.

This function returns the number of rows affected by the execution of @stmt, or -1
if an error occurred, or -2 if the connection's provider does not return the number of rows affected.

This function is just a convenience function around the gda_connection_statement_execute()
function. 
See the documentation of the gda_connection_statement_execute() for information
about the @params list of parameters.

See gda_connection_statement_execute() form more information about @last_insert_row.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object.
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="last_insert_row">
<parameter_description> a place to store a new #GdaSet object which contains the values of the last inserted row, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the number of rows affected (&gt;=0) or -1 or -2 
</return>
</function>

<function name="gda_connection_async_cancel">
<description>
Requests that a task be cancelled. This operation may of may not have any effect
depending on the task's status, even if it returns %TRUE. If it returns %FALSE,
then the task has not been cancelled.

Since: 4.2

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="task_id">
<parameter_description> a task ID returned by gda_connection_async_statement_execute()
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred

</return>
</function>

<function name="gda_sql_identifier_add_quotes">
<description>
Add double quotes around the @str identifier. Use the gda_sql_identifier_needs_quotes()
function to tell if an identifier needs to be quoted.

Deprecated: 4.0.3: Use gda_sql_identifier_quote() instead.

</description>
<parameters>
<parameter name="str">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
</parameters>
<return> a new string

</return>
</function>

<function name="gda_data_proxy_new">
<description>
Creates a new proxy for @model


</description>
<parameters>
<parameter name="model">
<parameter_description> Data model to be proxied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataProxy object
</return>
</function>

<function name="gda_data_proxy_cancel_row_changes">
<description>
Resets data at the corresponding row and column. If @proxy_row corresponds to a new row, then
that new row is deleted from @proxy.

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> the row to cancel changes
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the column to cancel changes, or less than 0 to cancel any change on the @row row
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_handler_get_value_from_sql">
<description>
Creates a new GValue which represents the SQL value given as argument. This is
the opposite of the function gda_data_handler_get_sql_from_value(). The type argument
is used to determine the real data type requested for the returned value.

If the sql string is NULL, then the returned GValue is of type GDA_TYPE_NULL;
if the sql string does not correspond to a valid SQL string for the requested type, then
the &quot;NULL&quot; string is returned.


</description>
<parameters>
<parameter name="dh">
<parameter_description> an object which implements the #GdaDataHandler interface
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> an SQL string
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a GType
</parameter_description>
</parameter>
</parameters>
<return> the new GValue or NULL on error
</return>
</function>

<function name="gda_holder_set_default_value">
<description>
Sets the default value within the holder. If @value is %NULL then @holder won't have a
default value anymore. To set a default value to %NULL, then pass a #GValue created using
gda_value_new_null().

NOTE: the default value does not need to be of the same type as the one required by @holder.

</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value to set the holder's default value, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_open">
<description>
Tries to open the connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the connection is opened, and FALSE otherwise.
</return>
</function>

<function name="gda_meta_store_set_attribute_value">
<description>
Set the value of the attribute named @att_name to @att_value; see gda_meta_store_get_attribute_value() for
more information.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="att_name">
<parameter_description> name of the attribute to set
</parameter_description>
</parameter>
<parameter name="att_value">
<parameter_description> value of the attribute to set, or %NULL to unset the attribute
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_model_get_n_rows">
<description>

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return> the number of rows in the given data model, or -1 if the number of rows is not known
</return>
</function>

<function name="gda_sql_identifier_quote">
<description>
Use this function for any SQL identifier to make sure that:
&lt;itemizedlist&gt;
&lt;listitem&gt;
&lt;para&gt;it is correctly formatted
to be used with @cnc (if @cnc is %NULL, then some default SQL quoting rules will be applied,
similar to PostgreSQL's way) if @for_meta_store is %FALSE;
&lt;/para&gt;
&lt;/listitem&gt;
&lt;listitem&gt;
&lt;para&gt;it is correctly formatted to be used with the #GdaMetaStore's object associated to @cnc
is @for_meta_store is %TRUE.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;/itemizedlist&gt;

The @force_quotes allow some control of how to interpret @id: if %FALSE, then @id will be left
unchanged most of the time (except for example if it's a reserved keyword), otherwise
if @force_quotes is %TRUE, then the returned string will most probably have quotes around it
to request that the database keep the case sensitiveness (but again, this may vary depending
on the database being accessed through @cnc).

For example, the following table gives the result of this function depending on the arguments
when @cnc is %NULL (and @prov is also %NULL):
&lt;table frame=&quot;all&quot;&gt;
&lt;tgroup cols=&quot;6&quot; colsep=&quot;1&quot; rowsep=&quot;1&quot; align=&quot;justify&quot;&gt;
&lt;thead&gt;
&lt;row&gt;
&lt;entry&gt;id&lt;/entry&gt;
&lt;entry&gt;for_meta_store=%FALSE, force_quotes=%FALSE&lt;/entry&gt;
&lt;entry&gt;for_meta_store=%TRUE, force_quotes=%FALSE&lt;/entry&gt;
&lt;entry&gt;for_meta_store=%FALSE, force_quotes=%TRUE&lt;/entry&gt;
&lt;entry&gt;for_meta_store=%TRUE, force_quotes=%TRUE&lt;/entry&gt;
&lt;entry&gt;remark&lt;/entry&gt;
&lt;/row&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;row&gt;
&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;double word&quot;&lt;/entry&gt;
&lt;entry&gt;non allowed character in SQL identifier&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;Mixed case SQL identifier, already quoted&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;CapitalTest&lt;/entry&gt;
&lt;entry&gt;CapitalTest&lt;/entry&gt;
&lt;entry&gt;capitaltest&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;CapitalTest&quot;&lt;/entry&gt;
&lt;entry&gt;Mixed case SQL identifier, non quoted&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;All lowser case, quoted&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;&quot;mytable&quot;&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;All lowser case&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;MYTABLE&lt;/entry&gt;
&lt;entry&gt;MYTABLE&lt;/entry&gt;
&lt;entry&gt;mytable&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;All upper case&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;MYTABLE&quot;&lt;/entry&gt;
&lt;entry&gt;All upper case, quoted&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;desc&lt;/entry&gt;
&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;desc&quot;&lt;/entry&gt;
&lt;entry&gt;SQL reserved keyword&lt;/entry&gt;
&lt;/row&gt;
&lt;row&gt;
&lt;entry&gt;5ive&lt;/entry&gt;
&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
&lt;entry&gt;&quot;5ive&quot;&lt;/entry&gt;
&lt;entry&gt;SQL identifier starting with a digit&lt;/entry&gt;
&lt;/row&gt;
&lt;/tbody&gt;
&lt;/tgroup&gt;
&lt;/table&gt;

Here are a few examples of when and how to use this function:
&lt;itemizedlist&gt;
&lt;listitem&gt;
&lt;para&gt;
When creating a table, the user has entered the table name, this function can be used to
create a valid SQL identifier from the user provided table name:
&lt;programlisting&gt;
gchar *user_sqlid=...
gchar *valid_sqlid = gda_sql_identifier_quote (user_sqlid, cnc, NULL, FALSE, FALSE);
gchar *sql = g_strdup_printf (&quot;CREATE TABLE %s ...&quot;, valid_sqlid);
g_free (valid_sqlid);
&lt;/programlisting&gt;
Note that this is an illustration and creating a table should be sone using a #GdaServerOperation
object.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;listitem&gt;
&lt;para&gt;
When updating the meta data associated to a table which has been created with the code
above:
&lt;programlisting&gt;
GValue table_name_value = { 0 };
gchar* column_names[] = { (gchar*)&quot;table_name&quot; };
GValue* column_values[] = { &amp;table_name_value };
GdaMetaContext mcontext = { (gchar*)&quot;_tables&quot;, 1, column_names, column_values };
g_value_init (&amp;table_name_value, G_TYPE_STRING);
g_value_take_string (&amp;table_name_value, gda_sql_identifier_quote (user_sqlid, cnc, NULL, TRUE, FALSE);
gda_connection_update_meta_store (cnc, &amp;mcontext, NULL);
g_value_reset (&amp;table_name_value);
&lt;/programlisting&gt;
&lt;/para&gt;
&lt;/listitem&gt;
&lt;listitem&gt;
&lt;para&gt;
When using a #GdaMetaStruct object to fetch information about a table (which has been created with
the code above):
&lt;programlisting&gt;
GValue table_name_value = { 0 };
g_value_init (&amp;table_name_value, G_TYPE_STRING);
g_value_take_string (&amp;table_name_value, gda_sql_identifier_quote (user_sqlid, cnc, NULL, TRUE, FALSE);
GdaMetaDbObject *dbo;
dbo = gda_meta_struct_complement (mstruct, GDA_META_DB_TABLE, NULL, NULL, &amp;table_name_value, NULL);
g_value_reset (&amp;table_name_value);
&lt;/programlisting&gt;
&lt;/para&gt;
&lt;/listitem&gt;
&lt;/itemizedlist&gt;


Note that @id must not be a composed SQL identifier (such as &quot;mytable.mycolumn&quot; which should be
treated as the &quot;mytable&quot; and &quot;mycolumn&quot; SQL identifiers). If unsure, use gda_sql_identifier_split().

Also note that if @cnc is %NULL, then it's possible to pass an non %NULL @prov to have a result specific
to @prov.

For more information, see the &lt;link linkend=&quot;gen:sql_identifiers&quot;&gt;SQL identifiers and abstraction&lt;/link&gt; and
&lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;SQL identifiers in meta data&lt;/link&gt; sections.

Since: 4.0.3

</description>
<parameters>
<parameter name="id">
<parameter_description> an SQL identifier
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="prov">
<parameter_description> a #GdaServerProvider object, or %NULL
@for_meta_store set to %TRUE if the returned string will be used in a #GdaMetaStore
</parameter_description>
</parameter>
<parameter name="force_quotes">
<parameter_description> set to %TRUE to force the returned string to be quoted
</parameter_description>
</parameter>
</parameters>
<return> the representation of @id ready to be used in SQL statement, as a new string,
or %NULL if @id is in a wrong format

</return>
</function>

<function name="gda_mutex_trylock">
<description>
Tries to lock @mutex. If @mutex is already locked by another thread, it immediately returns FALSE.
Otherwise it locks @mutex and returns TRUE

This function can be used even if g_thread_init() has not yet been called, and, in that case, will immediately return TRUE.

Note: Unlike g_mutex_trylock(), the #GdaMutex is recursive, which means a thread can lock it several times (and has
to unlock it as many times to actually unlock it)


</description>
<parameters>
<parameter name="mutex">
<parameter_description> a #GdaMutex
</parameter_description>
</parameter>
</parameters>
<return> TRUE, if @mutex could be locked.
</return>
</function>

<function name="gda_pstmt_get_type">
<description>

</description>
<parameters>
</parameters>
<return> the #GType of GdaPStmt.
</return>
</function>

<function name="gda_set_add_holder">
<description>
Adds @holder to the list of holders managed within @set.

NOTE: if @set already has a #GdaHolder with the same ID as @holder, then @holder
will not be added to the set (even if @holder's type or value is not the same as the
one already in @set).


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @holder has been added to @set (and FALSE if it has not been added because there is another #GdaHolder
with the same ID)
</return>
</function>

<function name="gda_quark_list_copy">
<description>
Creates a new #GdaQuarkList from an existing one.


</description>
<parameters>
<parameter name="qlist">
<parameter_description> quark_list to get a copy from.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaQuarkList with a copy of the data in @qlist.
</return>
</function>

<function name="gda_binary_copy">
<description>
Creates a new #GdaBinary structure from an existing one.


</description>
<parameters>
<parameter name="boxed">
<parameter_description> source to get a copy from.
</parameter_description>
</parameter>
</parameters>
<return> a newly allocated #GdaBinary which contains a copy of information in @boxed.

Free-function: gda_binary_free
</return>
</function>

<function name="gda_column_set_dbms_type">
<description>
Defines @column's database type

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn
</parameter_description>
</parameter>
<parameter name="dbms_type">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_column_set_description">
<description>
Sets the column's description

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="title">
<parameter_description> title name.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_render_operation">
<description>
Creates an SQL statement (possibly using some specific extensions of the DBMS) corresponding to the
@op operation. Note that the returned string may actually contain more than one SQL statement.

This function's purpose is mainly informative to get the actual SQL code which would be executed to perform
the operation; to actually perform the operation, use gda_server_provider_perform_operation().


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object which will be used to render the action, or %NULL
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if an error occurred or operation cannot be rendered as SQL.
</return>
</function>

<function name="gda_server_provider_get_server_version">
<description>
Get the version of the database to which the connection is opened.


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
</parameters>
<return> a (read only) string, or %NULL if an error occurred
</return>
</function>

<function name="gda_sql_builder_select_set_limit">
<description>
If @limit_count_expr_id is not %0, defines the maximum number of rows in the #GdaDataModel
resulting from the execution of the built statement. In this case, the offset from which the
rows must be collected can be defined by the @limit_offset_expr_id expression if not %0 (note that
this feature may not be supported by all the database providers).

If @limit_count_expr_id is %0, then removes any LIMIT which may have been imposed by a previous
call to this method.

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="limit_count_expr_id">
<parameter_description> the ID of the LIMIT expression, or %0
</parameter_description>
</parameter>
<parameter name="limit_offset_expr_id">
<parameter_description> the ID of the OFFSET expression, or %0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_thread_wrapper_fetch_result">
<description>
Use this method to check if the execution of a function is finished. The function's execution must have
been requested using gda_thread_wrapper_execute().

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="may_lock">
<parameter_description> TRUE if this funct must lock the caller untill a result is available
</parameter_description>
</parameter>
<parameter name="exp_id">
<parameter_description> ID of the job for which a result is expected
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, for errors which may have occurred during the execution, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the pointer returned by the execution, or %NULL if no result is available

</return>
</function>

<function name="gda_data_comparator_compute_diff">
<description>
Actually computes the differences between the data models for which @comp is defined. 

For each difference computed, stored in a #GdaDiff structure, the &quot;diff-computed&quot; signal is emitted.
If one connects to this signal and returns FALSE in the signal handler, then computing differences will be
stopped and an error will be returned.


</description>
<parameters>
<parameter name="comp">
<parameter_description> a #GdaDataComparator object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if all the differences have been sucessfully computed, and FALSE if an error occurred
</return>
</function>

<function name="gda_connection_open_from_string">
<description>
Opens a connection given a provider ID and a connection string. This
allows applications to open connections without having to create
a data source (DSN) in the configuration. The format of @cnc_string is
similar to PostgreSQL and MySQL connection strings. It is a semicolumn-separated
series of &lt;key&gt;=&lt;value&gt; pairs, where each key and value are encoded as per RFC 1738, 
see gda_rfc1738_encode() for more information.

The possible keys depend on the provider, the &quot;gda-sql-4.0 -L&quot; command
can be used to list the actual keys for each installed database provider.

For example the connection string to open an SQLite connection to a database
file named &quot;my_data.db&quot; in the current directory would be &lt;constant&gt;&quot;DB_DIR=.;DB_NAME=my_data&quot;&lt;/constant&gt;.

The @cnc_string string must have the following format: 
&quot;[&lt;provider&gt;://][&lt;username&gt;[:&lt;password&gt;]@]&lt;connection_params&gt;&quot;
(if &lt;username&gt; and/or &lt;password&gt; are provided, and @auth_string is %NULL, then these username
and passwords will be used, and if &lt;provider&gt; is provided and @provider_name is %NULL then this
provider will be used). Note that if provided, &lt;username&gt;, &lt;password&gt; and  &lt;provider&gt;
must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The @auth_string must contain the authentication information for the server
to accept the connection. It is a string containing semi-colon seperated named values, usually 
like &quot;USERNAME=...;PASSWORD=...&quot; where the ... are replaced by actual values. Note that each
name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The actual named parameters required depend on the provider being used, and that list is available
as the &lt;parameter&gt;auth_params&lt;/parameter&gt; member of the #GdaProviderInfo structure for each installed
provider (use gda_config_get_provider_info() to get it). Similarly to the format of the connection
string, use the &quot;gda-sql-4.0 -L&quot; command to list the possible named parameters.

Additionally, it is possible to have the connection string
respect the &quot;&lt;provider_name&gt;://&lt;real cnc string&gt;&quot; format, in which case the provider name
and the real connection string will be extracted from that string (note that if @provider_name
is not %NULL then it will still be used as the provider ID).\

This method may fail with a GDA_CONNECTION_ERROR domain error (see the #GdaConnectionError error codes) 
or a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).


</description>
<parameters>
<parameter name="provider_name">
<parameter_description> provider ID to connect to, or %NULL
</parameter_description>
</parameter>
<parameter name="cnc_string">
<parameter_description> connection string.
</parameter_description>
</parameter>
<parameter name="auth_string">
<parameter_description> authentication string, or %NULL
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> options for the connection (see #GdaConnectionOptions).
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnection if connection opening was sucessfull or %NULL if there was an error.
</return>
</function>

<function name="gda_value_get_timestamp">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_tree_set_attribute">
<description>
Sets an attribute to @tree, which will be accessible to any node in it.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="attribute">
<parameter_description> attribute name
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a #GValue, or %NULL
</parameter_description>
</parameter>
<parameter name="destroy">
<parameter_description> a function to be called when @attribute is not needed anymore, or %NULL
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_case_free">
<description>
Frees a #GdaSqlCase structure and its members.

</description>
<parameters>
<parameter name="sc">
<parameter_description> a #GdaSqlCase structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_row_updated">
<description>
Emits the 'row_updated' and 'changed' signals on @model.

This method should only be used by #GdaDataModel implementations to 
signal that a row has been updated.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_get_blob">
<description>

</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue whose value we want to get.
</parameter_description>
</parameter>
</parameters>
<return> the value stored in @value.
</return>
</function>

<function name="gda_data_model_import_clean_errors">
<description>
Clears the history of errors @model has to report

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelImport object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_select_alter_select_for_empty">
<description>
Creates a new #GdaStatement, selecting the same data as @stmt, but which always returns an
empty (no row) data model. This is use dy database providers' implementations.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a SELECT #GdaStatement
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaStatement
</return>
</function>

<function name="gda_meta_store_create_modify_data_model">
<description>
Creates a new #GdaDataModelArray data model which can be used, after being correctly filled,
with the gda_meta_store_modify*() methods.*

To be used by provider's implementation


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> the name of a table present in @store
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataModel
</return>
</function>

<function name="gda_server_provider_unescape_string">
<description>
Unescapes @str for use within an SQL command. This is the exact opposite of gda_server_provider_escape_string().


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="str">
<parameter_description> a string to escape
</parameter_description>
</parameter>
</parameters>
<return> a new string
</return>
</function>

<function name="gda_thread_wrapper_cancel">
<description>
Cancels a job not yet executed. This may fail for the following reasons:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;the job @id could not be found, either because it has already been treated or because
it does not exist or because it was created in another thread&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;the job @id is currently being treated by the worker thread&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

Since: 4.2

</description>
<parameters>
<parameter name="wrapper">
<parameter_description> a #GdaThreadWrapper object
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the ID of a job as returned by gda_thread_wrapper_execute() or gda_thread_wrapper_execute_void()
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the job has been cancelled, or %FALSE in any other case.

</return>
</function>

<function name="gda_meta_store_get_internal_connection">
<description>
Get a pointer to the #GdaConnection object internally used by @store to store
its contents.

The returned connection can be used to access some other data than the one managed by @store
itself. The returned object is not owned by the caller (if you need to keep it, then use g_object_ref()).
Do not close the connection.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
</parameters>
<return> a #GdaConnection, or %NULL
</return>
</function>

<function name="gda_sql_select_from_new">
<description>
Creates a new #GdaSqlSelectFrom structure and sets its parent to @parent.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementSelect
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectFrom structure
</return>
</function>

<function name="gda_tree_node_get_child_name">
<description>
Get the #GdaTreeNode child of @node which has the #GDA_ATTRIBUTE_NAME set to @name

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> requested node's name
</parameter_description>
</parameter>
</parameters>
<return> the #GdaTreeNode, or %NULL if not found

</return>
</function>

<function name="gda_connection_begin_transaction">
<description>
Starts a transaction on the data source, identified by the
@name parameter.

Before starting a transaction, you can check whether the underlying
provider does support transactions or not by using the
gda_connection_supports_feature() function.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the name of the transation to start, or %NULL
</parameter_description>
</parameter>
<parameter name="level">
<parameter_description> the requested transaction level (%GDA_TRANSACTION_ISOLATION_UNKNOWN if not specified)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if the transaction was started successfully, %FALSE
otherwise.
</return>
</function>

<function name="gda_sql_field_new">
<description>
Creates a new #GdaSqlField structure, using @parent as its parent part.


</description>
<parameters>
<parameter name="parent">
<parameter_description> a #GdaSqlStatementSelect, #GdaSqlStatementInsert, #GdaSqlStatementDelete, #GdaSqlStatementUpdate
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlField structure.
</return>
</function>

<function name="gda_data_model_iter_move_next">
<description>
Moves @iter one row further than where it already is 
(synchronizes the values of the parameters in @iter with the values at the new row).

If the iterator was on the data model's last row, then it can't be moved forward
anymore, and the returned value is FALSE; nore also that the &quot;current-row&quot; property
is set to -1 (which means that gda_data_model_iter_is_valid() would return FALSE)

If any other error occurred then the returned value is FALSE, but the &quot;current-row&quot;
property is set to the new current row (one row more than it was before the call). In this case
each #GdaHolder composing @iter for which an error occurred will be invalid (see gda_holder_is_valid()).


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the iterator is now at the next row
</return>
</function>

<function name="gda_batch_copy">
<description>
Copy constructor


</description>
<parameters>
<parameter name="orig">
<parameter_description> a #GdaBatch to make a copy of
</parameter_description>
</parameter>
</parameters>
<return> a the new copy of @orig
</return>
</function>

<function name="gda_data_model_array_set_n_columns">
<description>
Sets the number of columns for rows inserted in this model. 
@cols must be greated than or equal to 0.

Also clears @model's contents.

</description>
<parameters>
<parameter name="model">
<parameter_description> the #GdaDataModelArray.
</parameter_description>
</parameter>
<parameter name="cols">
<parameter_description> number of columns for rows this data model should use.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_meta_store_schema_get_structure">
<description>
Creates a new #GdaMetaStruct object representing @store's internal database structure.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaMetaStruct object, or %NULL if an error occurred
</return>
</function>

<function name="gda_data_select_set_modification_statement">
<description>
Informs @model that it should allow modifications to the data in some columns and some rows
using @mod_stmt to propagate those modifications into the database.

If @mod_stmt is:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;an UPDATE statement, then all the rows in @model will be modifyable&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a DELETE statement, then it will be possible to delete rows in @model&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;in INSERT statement, then it will be possible to add some rows to @model&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;any other statement, then this method will return an error&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

This method can be called several times to specify different types of modification.

If @mod_stmt is an UPDATE or DELETE statement then it should have a WHERE part which identifies
a unique row in @model (please note that this property can't be checked but may result
in @model behaving in an unpredictable way).

NOTE1: However, if the gda_data_select_set_row_selection_condition()
or gda_data_select_set_row_selection_condition_sql() have been successfully be called before, the WHERE
part of @mod_stmt &lt;emphasis&gt;WILL&lt;/emphasis&gt; be modified to use the row selection condition specified through one of
these methods (please not that it is then possible to avoid specifying a WHERE part in @mod_stmt then).

NOTE2: if gda_data_select_set_row_selection_condition()
or gda_data_select_set_row_selection_condition_sql() have not yet been successfully be called before, then
the WHERE part of @mod_stmt will be used as if one of these functions had been called.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="mod_stmt">
<parameter_description> a #GdaStatement (INSERT, UPDATE or DELETE)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_execute_select_command">
<description>
Execute a SQL SELECT command over an opened connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> a query statement must begin with &quot;SELECT&quot;
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaDataModel if successful, NULL otherwise
</return>
</function>

<function name="gda_sql_statement_new">
<description>
Use this function to create a #GdaSqlStatement of the specified @type type.


</description>
<parameters>
<parameter name="type">
<parameter_description> type of statement to create
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlStatement
</return>
</function>

<function name="gda_alphanum_to_text">
<description>
Does the opposite of gda_text_to_alphanum(), in the same string 


</description>
<parameters>
<parameter name="text">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> @text if conversion succeeded or %NULL if an error occurred
</return>
</function>

<function name="gda_blob_to_string">
<description>
Converts all the non printable characters of blob-&gt;data into the \xxx representation
where xxx is the octal representation of the byte, and the '\' (backslash) character
is converted to &quot;\\&quot;.


</description>
<parameters>
<parameter name="blob">
<parameter_description> a correctly filled @GdaBlob structure
</parameter_description>
</parameter>
<parameter name="maxlen">
<parameter_description> a maximum len used to truncate, or 0 for no maximum length
</parameter_description>
</parameter>
</parameters>
<return> a new string from @blob
</return>
</function>

<function name="gda_data_model_import_get_errors">
<description>
Get the list of errors which @model has to report. The returned list is a list of
#GError structures, and must not be modified


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelImport object
</parameter_description>
</parameter>
</parameters>
<return> the list of errors (which must not be modified), or %NULL
</return>
</function>

<function name="gda_data_select_set_modification_statement_sql">
<description>
Offers the same feature as gda_data_select_set_modification_statement() but using an SQL statement


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="sql">
<parameter_description> an SQL text
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred.
</return>
</function>

<function name="gda_connection_delete_savepoint">
<description>
Delete the SAVEPOINT named @name when not used anymore.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name of the savepoint to delete
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_data_proxy_get_proxied_model">
<description>
Fetch the #GdaDataModel which @proxy does proxy


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
</parameters>
<return> the proxied data model
</return>
</function>

<function name="gda_sql_statement_insert_take_1_values_list">
<description>
Sets a list of list of values to be inserted by @stmt. @list's 
ownership is transferred to
@stmt (which means @stmt is then responsible for freeing it when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="list">
<parameter_description> a list of #GSQliet of #GdaSqlExpr pointers
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_proxy_set_ordering_column">
<description>
Orders by the @col column


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the column number to order from
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_handler_numerical_new">
<description>
Creates a data handler for numerical values


</description>
<parameters>
</parameters>
<return> the new object
</return>
</function>

<function name="gda_pstmt_copy_contents">
<description>
Copies @src's data to @dest 

</description>
<parameters>
<parameter name="src">
<parameter_description> a #GdaPStmt object
</parameter_description>
</parameter>
<parameter name="dest">
<parameter_description> a #GdaPStmt object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_builder_add_field_id">
<description>
Defines an expression representing a field in @builder,
which may be reused to build other parts of a statement,
for instance as a parameter to gda_sql_builder_add_cond() or
gda_sql_builder_add_field_value_id().

Calling this with a %NULL @table_name is equivalent to calling gda_sql_builder_add_id().

For SELECT queries, see gda_sql_builder_select_add_field().

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> a field name
</parameter_description>
</parameter>
<parameter name="table_name">
<parameter_description> a table name, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the ID of the new expression, or %0 if there was an error

</return>
</function>

<function name="gda_column_set_name">
<description>
Sets the name of @column to @name.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> the new name of @column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_field_copy">
<description>
Creates a new #GdaSqlSelectField structure initiated with the values stored in @field.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlSelectField structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlSelectField structure.
</return>
</function>

<function name="gda_data_proxy_row_is_inserted">
<description>
Tells if the row number @proxy_row is a row which has been inserted in @proxy
(and is thus not in the proxied data model).


</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="proxy_row">
<parameter_description> A proxy row number
</parameter_description>
</parameter>
</parameters>
<return> TRUE if the row is an inserted row
</return>
</function>

<function name="gda_delete_row_from_table">
<description>
This is a convenience function, which creates a DELETE statement and executes it using the values
provided. It internally relies on variables which makes it immune to SQL injection problems.

The equivalent SQL command is: DELETE FROM &lt;table&gt; WHERE &lt;condition_column_name&gt; = &lt;condition_value&gt;.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> an opened connection
</parameter_description>
</parameter>
<parameter name="table">
<parameter_description> the table's name with the row's values to be updated
</parameter_description>
</parameter>
<parameter name="condition_column_name">
<parameter_description> the name of the column to used in the WHERE condition clause
</parameter_description>
</parameter>
<parameter name="condition_value">
<parameter_description> the @condition_column_type's GType
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_vconnection_hub_remove">
<description>
Remove all the tables in @hub representing @cnc's tables.


</description>
<parameters>
<parameter name="hub">
<parameter_description> a #GdaVconnectionHub connection
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_value_new_blob_from_file">
<description>
Makes a new #GValue of type #GDA_TYPE_BLOB interfacing with the contents of the file
named @filename


</description>
<parameters>
<parameter name="filename">
<parameter_description> name of the file to manipulate
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_statement_to_sql_real">
<description>
Renders @stmt to its SQL representation, using @context to specify how each part of @stmt must
be rendered. This function is mainly used by database provider's implementations which require
to specialize some aspects of SQL rendering to be adapted to the database,'s own SQL dialect
(for example SQLite rewrites the 'FALSE' and 'TRUE' literals as '0' and 'NOT 0').


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="context">
<parameter_description> a #GdaSqlRenderingContext context
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new string, or %NULL if an error occurred
</return>
</function>

<function name="gda_data_model_remove_row">
<description>
Removes a row from the data model.

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> the row number to be removed.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gda_connection_statement_execute">
<description>
Executes @stmt. 

As @stmt can, by desing (and if not abused), contain only one SQL statement, the
return object will either be:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;a #GdaDataSelect object (which is also a #GdaDataModel) if @stmt is a SELECT statement 
(usually a GDA_SQL_STATEMENT_SELECT, see #GdaSqlStatementType)
containing the results of the SELECT. The resulting data model is by default read only, but
modifications can be enabled, see the #GdaDataSelect's documentation for more information.&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a #GdaSet for any other SQL statement which correctly executed. In this case
(if the provider supports it), then the #GdaSet may contain value holders named:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;a (gint) #GdaHolder named &quot;IMPACTED_ROWS&quot;&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;a (GObject) #GdaHolder named &quot;EVENT&quot; which contains a #GdaConnectionEvent&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

If @last_insert_row is not %NULL and @stmt is an INSERT statement, then it will contain (if the
provider used by @cnc supports it) a new #GdaSet object composed of value holders named &quot;+&lt;column number&gt;&quot;
starting at column 0 which contain the actual inserted values. For example if a table is composed of an 'id' column
which is auto incremented and a 'name' column then the execution of a &quot;INSERT INTO mytable (name) VALUES ('joe')&quot;
query will return a #GdaSet with two holders:
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;one with the '+0' ID which may for example contain 1 (note that its &quot;name&quot; property should be &quot;id&quot;)&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;one with the '+1' ID which will contain 'joe' (note that its &quot;name&quot; property should be &quot;name&quot;)&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

This method may fail with a %GDA_SERVER_PROVIDER_ERROR domain error (see the #GdaServerProviderError error codes).

Note1: If @stmt is a SELECT statement which has some parameters and  if @params is %NULL, then the statement can't
be executed and this method will return %NULL.

Note2: If @stmt is a SELECT statement which has some parameters and  if @params is not %NULL but contains some
invalid parameters, then the statement can't be executed and this method will return %NULL, unless the
@model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag.

Note3: If @stmt is a SELECT statement which has some parameters and  if @params is not %NULL but contains some
invalid parameters and if @model_usage has the GDA_STATEMENT_MODEL_ALLOW_NOPARAM flag, then the returned
data model will contain no row but will have all the correct columns (even though some of the columns might
report as GDA_TYPE_NULL). In this case, if (after this method call) any of @params' parameters change
then the resulting data model will re-run itself, see the GdaDataSelect's 
&lt;link linkend=&quot;GdaDataSelect--auto-reset&quot;&gt;auto-reset&lt;/link&gt; property for more information.

Note4: if @model_usage does not contain the GDA_STATEMENT_MODEL_RANDOM_ACCESS or
GDA_STATEMENT_MODEL_CURSOR_FORWARD flags, then the default will be to return a random access data model

Note5: If @stmt is a SELECT statement which returns blob values (of type %GDA_TYPE_BLOB), then an implicit
transaction will have been started by the database provider, and it's up to the caller to close the transaction
(which will then be locked) once all the blob ressources have been
liberated (when the returned data model is destroyed). See the section about
&lt;link linkend=&quot;gen:blobs&quot;&gt;Binary large objects (BLOBs)&lt;/link&gt; for more information.

Also see the &lt;link linkend=&quot;limitations&quot;&gt;provider's limitations&lt;/link&gt;, and the
&lt;link linkend=&quot;data-select&quot;&gt;Advanced GdaDataSelect usage&lt;/link&gt; sections.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
<parameter name="params">
<parameter_description> a #GdaSet object (which can be obtained using gda_statement_get_parameters()), or %NULL
</parameter_description>
</parameter>
<parameter name="model_usage">
<parameter_description> in the case where @stmt is a SELECT statement, specifies how the returned data model will be used
</parameter_description>
</parameter>
<parameter name="last_insert_row">
<parameter_description> a place to store a new #GdaSet object which contains the values of the last inserted row, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GObject, or %NULL if an error occurred 
</return>
</function>

<function name="gda_connection_get_authentication">
<description>
Gets the user name used to open this connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return> the user name.
</return>
</function>

<function name="gda_data_model_get_column_index">
<description>
Get the index of the first column named @name in @model.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> a column name
</parameter_description>
</parameter>
</parameters>
<return> the column index, or -1 if no column named @name was found
</return>
</function>

<function name="gda_transaction_status_new">
<description>
Creates a new #GdaTransactionStatus object, which allows a fine-tune and
full control of transactions to be used with providers.


</description>
<parameters>
<parameter name="name">
<parameter_description> name for the transaction
</parameter_description>
</parameter>
</parameters>
<return> the newly created object.
</return>
</function>

<function name="gda_data_model_reset">
<description>
Emits the 'reset' and 'changed' signal on @model.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_blob_free">
<description>
Deallocates all memory associated to the given #GdaBlob.

</description>
<parameters>
<parameter name="boxed">
<parameter_description> #GdaBlob to free.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_from_serialize">
<description>
Creates a new string description of the FROM clause used in a SELECT statement.


</description>
<parameters>
<parameter name="from">
<parameter_description> a #GdaSqlSelectFrom structure
</parameter_description>
</parameter>
</parameters>
<return> a new string with the description of the FROM or &quot;null&quot; in case @from is invalid.
</return>
</function>

<function name="gda_holder_new">
<description>
Creates a new holder of type @type


</description>
<parameters>
<parameter name="type">
<parameter_description> the #GType requested
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaHolder object
</return>
</function>

<function name="gda_tree_node_get_child_index">
<description>
Get the #GdaTreeNode child of @node at position @index (starting at 0).

Since: 4.2

</description>
<parameters>
<parameter name="node">
<parameter_description> a #GdaTreeNode object
</parameter_description>
</parameter>
<parameter name="index">
<parameter_description> a index
</parameter_description>
</parameter>
</parameters>
<return> the #GdaTreeNode, or %NULL if not found

</return>
</function>

<function name="gda_log_error">
<description>
Logs the given error in the GDA log file.

</description>
<parameters>
<parameter name="format">
<parameter_description> format string (see the printf(3) documentation).
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> arguments to insert in the error.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_select_take_row">
<description>
Stores @row into @model, externally advertized at row number @rownum (if no row has been removed). 
The reference to @row is stolen.

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a #GdaRow row
</parameter_description>
</parameter>
<parameter name="rownum">
<parameter_description> &quot;external&quot; advertized row number
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_attributes_manager_get">
<description>
Retrieves the value of an attribute previously set using gda_attributes_manager_set().


</description>
<parameters>
<parameter name="mgr">
<parameter_description> a #GdaAttributesManager
</parameter_description>
</parameter>
<parameter name="ptr">
<parameter_description> a pointer to the resources to which the attribute will apply
</parameter_description>
</parameter>
<parameter name="att_name">
<parameter_description> an attribute's name, as a *static* string
</parameter_description>
</parameter>
</parameters>
<return> the attribute's value, or %NULL if the attribute is not set.
</return>
</function>

<function name="gda_pstmt_get_gda_statement">
<description>
Get a pointer to the #GdaStatement which led to the creation of this prepared statement.

Note: if that statement has been modified since the creation of @pstmt, then this method
will return %NULL


</description>
<parameters>
<parameter name="pstmt">
<parameter_description> a #GdaPStmt object
</parameter_description>
</parameter>
</parameters>
<return> the #GdaStatement
</return>
</function>

<function name="gda_sql_field_free">
<description>
Frees a #GdaSqlField structure and its members.


</description>
<parameters>
<parameter name="field">
<parameter_description> a #GdaSqlField to be freed.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_operation_get_node_parent">
<description>
Get the complete path to the parent of the node defined by @path


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
</parameters>
<return> a new string or %NULL if the node does not have any parent or does not exist.
</return>
</function>

<function name="gda_server_operation_get_op_type">
<description>
Get the type of operation @op is for


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
</parameters>
<return> a #GdaServerOperationType enum
</return>
</function>

<function name="gda_data_model_iter_get_value_at">
<description>
Get the value stored at the column @col in @iter. The returned value must not be modified.


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> the requested column
</parameter_description>
</parameter>
</parameters>
<return> the #GValue, or %NULL if the value could not be fetched
</return>
</function>

<function name="gda_connection_open_from_dsn">
<description>
This function is the way of opening database connections with libgda, using a pre-defined data source (DSN),
see gda_config_define_dsn() for more information about how to define a DSN. If you don't want to define
a DSN, it is possible to use gda_connection_open_from_string() instead of this method.

The @dsn string must have the following format: &quot;[&lt;username&gt;[:&lt;password&gt;]@]&lt;DSN&gt;&quot; 
(if &lt;username&gt; and/or &lt;password&gt; are provided, and @auth_string is %NULL, then these username
and passwords will be used). Note that if provided, &lt;username&gt; and &lt;password&gt; 
must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The @auth_string can contain the authentication information for the server
to accept the connection. It is a string containing semi-colon seperated named value, usually 
like &quot;USERNAME=...;PASSWORD=...&quot; where the ... are replaced by actual values. Note that each
name and value must be encoded as per RFC 1738, see gda_rfc1738_encode() for more information.

The actual named parameters required depend on the provider being used, and that list is available
as the &lt;parameter&gt;auth_params&lt;/parameter&gt; member of the #GdaProviderInfo structure for each installed
provider (use gda_config_get_provider_info() to get it). Also one can use the &quot;gda-sql-4.0 -L&quot; command to 
list the possible named parameters.

This method may fail with a GDA_CONNECTION_ERROR domain error (see the #GdaConnectionError error codes) 
or a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).


</description>
<parameters>
<parameter name="dsn">
<parameter_description> data source name.
</parameter_description>
</parameter>
<parameter name="auth_string">
<parameter_description> authentication string, or %NULL
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> options for the connection (see #GdaConnectionOptions).
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaConnection if connection opening was sucessfull or %NULL if there was an error.
</return>
</function>

<function name="gda_meta_struct_complement_schema">
<description>
This method is similar to gda_meta_struct_complement() but creates #GdaMetaDbObject for all the
database object which are in the @schema schema (and in the @catalog catalog).
If @catalog is %NULL, then any catalog will be used, and
if @schema is %NULL then any schema will be used (if @schema is %NULL then catalog must also be %NULL).

Please refer to gda_meta_struct_complement() form more information.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="catalog">
<parameter_description> name of a catalog, or %NULL
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> name of a schema, or %NULL
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_connection_get_meta_store_data_v">
<description>
see #gda_connection_get_meta_store_data


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="meta_type">
<parameter_description> describes which data to get.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="filters">
<parameter_description> a #GList of #GdaHolder objects
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModel containing the data required. The caller is responsible
for freeing the returned model using g_object_unref().
</return>
</function>

<function name="gda_config_define_dsn">
<description>
Add or update a DSN from the definition in @info.

This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).


</description>
<parameters>
<parameter name="info">
<parameter_description> a pointer to a filled GdaDsnInfo structure
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_meta_store_schema_get_all_tables">
<description>
Get an ordered list of the tables @store knows about. The tables are ordered in a way that tables dependencies
are respected: if table B has a foreign key on table A, then table A will be listed before table B in the returned
list.


</description>
<parameters>
<parameter name="store">
<parameter_description> a #GdaMetaStore object
</parameter_description>
</parameter>
</parameters>
<return> a new list of tables names (as gchar*), the list must be freed when no longer needed, but the strings present in the list must not be modified.
</return>
</function>

<function name="gda_utility_data_model_find_column_description">
<description>
Finds the description of a field into Metadata from a #GdaDataModel.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="field_name">
<parameter_description> field name
</parameter_description>
</parameter>
</parameters>
<return> The field's description, or NULL if description is not set
</return>
</function>

<function name="gda_connection_get_meta_store_data">
<description>
Retrieves data stored in @cnc's associated #GdaMetaStore object. This method is useful
to easily get some information about the meta-data associated to @cnc, such as the list of
tables, views, and other database objects.

Note: it's up to the caller to make sure the information contained within @cnc's associated #GdaMetaStore
is up to date using gda_connection_update_meta_store() (it can become outdated if the database's schema
is modified).

For more information about the returned data model's attributes, or about the @meta_type and ... filter arguments,
see &lt;link linkend=&quot;GdaConnectionMetaTypeHead&quot;&gt;this description&lt;/link&gt;.

Also, when using filters involving data which are SQL identifiers, make sure each SQL identifier
is represented using the #GdaMetaStore convention, using gda_meta_store_sql_identifier_quote() or
gda_meta_store_sql_identifier_quote().

See the &lt;link linkend=&quot;information_schema:sql_identifiers&quot;&gt;
meta data section about SQL identifiers&lt;/link&gt; for more information, and the documentation about the
gda_sql_identifier_quote() function which will be most useful.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
<parameter name="meta_type">
<parameter_description> describes which data to get.
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
<parameter name="nb_filters">
<parameter_description> the number of filters in the @... argument
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> a list of (filter name (gchar *), filter value (GValue*)) pairs specifying
the filter to apply to the returned data model's contents (there must be @nb_filters pairs)
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataModel containing the data required. The caller is responsible
for freeing the returned model using g_object_unref().
</return>
</function>

<function name="gda_server_provider_init_schema_model">
<description>
Sets the column attributes of @model for the requested schema

Deprecated: 4.2: This was a leftover from the pre 4.0 area

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="schema">
<parameter_description> a #GdaConnectionSchema
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if there was no error

</return>
</function>

<function name="gda_holder_set_value_str">
<description>
Same functionality as gda_holder_set_value() except that it uses a string representation
of the value to set, which will be converted into a GValue first (using default data handler if
@dh is %NULL).

Note1: if @value is %NULL or is the &quot;NULL&quot; string, then @holder's value is set to %NULL.
Note2: if @holder can't accept the @value value, then this method returns FALSE, and @holder will be left
in an invalid state.


</description>
<parameters>
<parameter name="holder">
<parameter_description> a #GdaHolder object
</parameter_description>
</parameter>
<parameter name="dh">
<parameter_description> a #GdaDataHandler to use, or %NULL
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a value to set the holder to, as a string
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if value has been set
</return>
</function>

<function name="gda_holder_new_inline">
<description>
Creates a new #GdaHolder object with an ID set to @id, of type @type, 
and containing the value passed as the last argument.

Note that this function is a utility function and that only a limited set of types are supported. Trying
to use an unsupported type will result in a warning, and the returned value holder holding a safe default
value.


</description>
<parameters>
<parameter name="type">
<parameter_description> a valid GLib type
</parameter_description>
</parameter>
<parameter name="id">
<parameter_description> the id of the holder to create, or %NULL
</parameter_description>
</parameter>
<parameter name="Varargs">
<parameter_description> value to set
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaHolder object
</return>
</function>

<function name="gda_transaction_status_find_current">
<description>
Find a pointer to the &quot;current&quot; _unnamed_ transaction, which is the last
transaction if there are several nested transactions


</description>
<parameters>
</parameters>
<return>
</return>
</function>

<function name="gda_sql_select_order_free">
<description>
Frees a #GdaSqlSelectOrder structure and its members.

</description>
<parameters>
<parameter name="order">
<parameter_description> a #GdaSqlSelectOrder structure to be freed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_get_typed_value_at">
<description>
Upon errors %NULL will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.

This method is similar to gda_data_model_get_value_at(), except that it also allows one to specify the expected
#GType of the value to get: if the data model returned a #GValue of a type different than the expected one, then
this method returns %NULL and an error code.

Note: the same limitations and usage instructions apply as for gda_data_model_get_value_at().

Upon errors FALSE will be returned and @error will be assigned a
#GError from the #GDA_DATA_MODEL_ERROR domain.


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> a valid column number.
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> a valid row number.
</parameter_description>
</parameter>
<parameter name="expected_type">
<parameter_description> the expected data type of the returned value
</parameter_description>
</parameter>
<parameter name="nullok">
<parameter_description> if TRUE, then NULL values (value of type %GDA_TYPE_NULL) will not generate any error
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a #GValue containing the value stored in the given
position, or %NULL on error (out-of-bound position, wrong data type, etc).
</return>
</function>

<function name="gda_sql_function_copy">
<description>
Creates a new #GdaSqlFunction structure initiated with the values stored in @function.


</description>
<parameters>
<parameter name="function">
<parameter_description> a #GdaSqlFunction structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSqlFunction structure.
</return>
</function>

<function name="gda_set_copy">
<description>
Creates a new #GdaSet object, copy of @set


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSet object
</return>
</function>

<function name="gda_server_provider_get_data_handler_default">
<description>
Provides the implementation when the default Libgda's data handlers must be used


</description>
<parameters>
<parameter name="provider">
<parameter_description> a server provider.
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object, or %NULL
</parameter_description>
</parameter>
<parameter name="type">
<parameter_description> a #GType
</parameter_description>
</parameter>
<parameter name="dbms_type">
<parameter_description> a DBMS type definition
</parameter_description>
</parameter>
</parameters>
<return> a #GdaDataHandler, or %NULL
</return>
</function>

<function name="gda_connection_get_options">
<description>
Gets the #GdaConnectionOptions used to open this connection.


</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object.
</parameter_description>
</parameter>
</parameters>
<return> the connection options.
</return>
</function>

<function name="gda_server_operation_get_node_type">
<description>
Convenience function to get the type of a node.


</description>
<parameters>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="path">
<parameter_description> a complete path to a node (starting with &quot;/&quot;)
</parameter_description>
</parameter>
<parameter name="status">
<parameter_description> a place to store the status of the node, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the type of node, or GDA_SERVER_OPERATION_NODE_UNKNOWN if the node was not found
</return>
</function>

<function name="gda_column_set_default_value">
<description>
Sets @column's default #GValue.

</description>
<parameters>
<parameter name="column">
<parameter_description> a #GdaColumn.
</parameter_description>
</parameter>
<parameter name="default_value">
<parameter_description> default #GValue for the column
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_select_set_row_selection_condition_sql">
<description>
Specifies the SQL condition corresponding to the WHERE part of a SELECT statement which would
return only 1 row (the expression of the primary key).

For example for a table created as &lt;![CDATA[&quot;CREATE TABLE mytable (part1 int NOT NULL, part2 string NOT NULL, 
name string, PRIMARY KEY (part1, part2))&quot;]]&gt;, and if @pmodel corresponds to the execution of the 
&lt;![CDATA[&quot;SELECT name, part1, part2 FROM mytable&quot;]]&gt;, then the sensible value for @sql_where would be
&lt;![CDATA[&quot;part1 = ##-1::int AND part2 = ##-2::string&quot;]]&gt; because the values of the 'part1' field are located
in @pmodel's column number 1 and the values of the 'part2' field are located
in @pmodel's column number 2 and the primary key is composed of (part1, part2).

For more information about the syntax of the parameters (named &lt;![CDATA[&quot;##-1::int&quot;]]&gt; for example), see the
&lt;link linkend=&quot;GdaSqlParser.description&quot;&gt;GdaSqlParser&lt;/link&gt; documentation, and 
gda_data_select_set_modification_statement().


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="sql_where">
<parameter_description> an SQL condition (without the WHERE keyword)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_perform_create_database">
<description>
Creates a new database using the specifications in @op. @op can be obtained using
gda_server_provider_create_operation(), or gda_prepare_create_database().


</description>
<parameters>
<parameter name="provider">
<parameter_description> the database provider to use, or %NULL if @op has been created using gda_prepare_create_database()
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object obtained using gda_prepare_create_database()
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store en error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred and the database has been created
</return>
</function>

<function name="gda_connection_internal_set_provider_data">
<description>
Note: calling this function more than once will not make it call @destroy_func on any previously
set opaque @data, you'll have to do it yourself.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection object
</parameter_description>
</parameter>
<parameter name="data">
<parameter_description> an opaque structure, known only to the provider for which @cnc is opened
</parameter_description>
</parameter>
<parameter name="destroy_func">
<parameter_description> function to call when the connection closes and @data needs to be destroyed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_lockable_unlock">
<description>
Unlocks @lockable. This method should not be called if the current does not already holds a lock on @lockable (having
used gda_lockable_lock() or gda_lockable_trylock()).

This function can be used even if g_thread_init() has not yet been called, and, in that case, will do nothing.

</description>
<parameters>
<parameter name="lockable">
<parameter_description> a #GdaLockable object.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_compute_select_statement_from_update">
<description>
Computes a SELECT statement which selects all the rows the @update_stmt would update. Beware
however that this GdaSqlStatement does not select anything (ie it would be rendered as &quot;SELECT FROM ... WHERE ...&quot;)
and before being usable, one needs to add some fields to actually select.


</description>
<parameters>
<parameter name="update_stmt">
<parameter_description> an UPDATE statement
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaStatement if no error occurred, or %NULL otherwise
</return>
</function>

<function name="gda_data_model_set_column_name">
<description>
Sets the @name of the given @col in @model, and if its title is not set, also sets the
title to @name.

Since: 3.2

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel object.
</parameter_description>
</parameter>
<parameter name="col">
<parameter_description> column number
</parameter_description>
</parameter>
<parameter name="name">
<parameter_description> name for the given column.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_value_set_from_value">
<description>
Sets the value of a #GValue from another #GValue. This
is different from #gda_value_copy, which creates a new #GValue.
#gda_value_set_from_value, on the other hand, copies the contents
of @copy into @value, which must already be allocated.


</description>
<parameters>
<parameter name="value">
<parameter_description> a #GValue.
</parameter_description>
</parameter>
<parameter name="from">
<parameter_description> the value to copy from.
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if successful, %FALSE otherwise.
</return>
</function>

<function name="gda_set_replace_source_model">
<description>
Replaces @source-&gt;data_model with @model, which must have the same
characteristics as @source-&gt;data_model (same column types)

Also for each #GdaHolder for which @source-&gt;data_model is a source model,
this method calls gda_holder_set_source_model() with @model to replace
the source by the new model

Since: 4.2

</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="source">
<parameter_description> a pointer to a #GdaSetSource in @set
</parameter_description>
</parameter>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_model_iter_move_prev_default">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_data_model_iter_move_to_row_default">
<description>

</description>
<parameters>
</parameters>
<return></return>
</function>

<function name="gda_set_new_read_only">
<description>
Creates a new #GdaSet like gda_set_new(), but does not allow modifications to any of the #GdaHolder
object in @holders. This function is used for Libgda's database providers' implementation.

Since: 4.2

</description>
<parameters>
<parameter name="holders">
<parameter_description> a list of #GdaHolder objects
</parameter_description>
</parameter>
</parameters>
<return> a new #GdaSet object

</return>
</function>

<function name="gda_sql_builder_add_field_value_id">
<description>
Valid only for: INSERT, UPDATE, SELECT statements
&lt;itemizedlist&gt;
&lt;listitem&gt;&lt;para&gt;For UPDATE: specifies that the field represented by @field_id will be set to the value identified
by @value_id.&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;For SELECT: add a selected item to the statement, and if @value_id is not %0, then use it as an
alias&lt;/para&gt;&lt;/listitem&gt;
&lt;listitem&gt;&lt;para&gt;For INSERT: if @field_id represents an SQL identifier (obtained using gda_sql_builder_add_id()): then if
@value_id is not %0 then specifies that the field represented by @field_id will be set to the
value identified by @value_id, otherwise just specifies a named field to be given a value.
If @field_id represents a sub SELECT (obtained using gda_sql_builder_add_sub_select()), then
this method call defines the sub SELECT from which values to insert are taken.&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

See also gda_sql_builder_add_field_value() and gda_sql_builder_add_field_value_as_gvalue().

Since: 4.2

</description>
<parameters>
<parameter name="builder">
<parameter_description> a #GdaSqlBuilder object
</parameter_description>
</parameter>
<parameter name="field_id">
<parameter_description> the ID of the field's name or definition
</parameter_description>
</parameter>
<parameter name="value_id">
<parameter_description> the ID of the value to set the field to, or %0
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_server_provider_get_name">
<description>
Get the name (identifier) of the provider


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object.
</parameter_description>
</parameter>
</parameters>
<return> a string containing the provider's name
</return>
</function>

<function name="gda_value_free">
<description>
Deallocates all memory associated to a #GValue.

</description>
<parameters>
<parameter name="value">
<parameter_description> the resource to free.
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_sql_select_join_type_to_string">
<description>
Creates a new string representing the join type.


</description>
<parameters>
<parameter name="type">
<parameter_description> a #GdaSqlSelectJoinType structure to be copied
</parameter_description>
</parameter>
</parameters>
<return> a string representing the Join type.
</return>
</function>

<function name="gda_connection_event_get_description">
<description>
Get the description of the event. Note that is @event's type is GDA_CONNECTION_EVENT_COMMAND,
the the description is the SQL of the command.


</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent.
</parameter_description>
</parameter>
</parameters>
<return> @event's description.
</return>
</function>

<function name="gda_data_model_iter_is_valid">
<description>
Tells if @iter is a valid iterator (if it actually corresponds to a valid row in the model)


</description>
<parameters>
<parameter name="iter">
<parameter_description> a #GdaDataModelIter object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if @iter is valid
</return>
</function>

<function name="gda_data_proxy_set_sample_start">
<description>
Sets the number of the first row to be available in @proxy (in reference to the proxied data model)

</description>
<parameters>
<parameter name="proxy">
<parameter_description> a #GdaDataProxy object
</parameter_description>
</parameter>
<parameter name="sample_start">
<parameter_description> the number of the first row to be displayed
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_connection_internal_change_transaction_state">
<description>
Internal function to be called by database providers to force a transaction status
change.

</description>
<parameters>
<parameter name="cnc">
<parameter_description> a #GdaConnection
</parameter_description>
</parameter>
<parameter name="newstate">
<parameter_description> the new state
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_data_select_rerun">
<description>
Requests that @model be re-run to have an updated result. If an error occurs,
then @model will not be changed.

Since: 4.2

</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataSelect data model
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred

</return>
</function>

<function name="gda_value_new_timestamp_from_timet">
<description>
Makes a new #GValue of type #GDA_TYPE_TIMESTAMP with value @val
(of type time_t).


</description>
<parameters>
<parameter name="val">
<parameter_description> value to set for the new #GValue.
</parameter_description>
</parameter>
</parameters>
<return> the newly created #GValue.

Free-function: gda_value_free
</return>
</function>

<function name="gda_set_get_holder_value">
<description>
Get the value of the #GdaHolder which ID is @holder_id


</description>
<parameters>
<parameter name="set">
<parameter_description> a #GdaSet object
</parameter_description>
</parameter>
<parameter name="holder_id">
<parameter_description> the ID of the holder to set the value
</parameter_description>
</parameter>
</parameters>
<return> the requested GValue, or %NULL (see gda_holder_get_value())
</return>
</function>

<function name="gda_data_model_array_get_row">
<description>
Get a pointer to a row in @model


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModelArray object
</parameter_description>
</parameter>
<parameter name="row">
<parameter_description> row number (starting from 0)
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> the #GdaRow, or %NULL if an error occurred
</return>
</function>

<function name="gda_statement_is_useless">
<description>
Tells if @stmt is composed only of spaces (that is it has no real SQL code), and is completely
useless as such.


</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaStatement object
</parameter_description>
</parameter>
</parameters>
<return> TRUE if executing @stmt does nothing
</return>
</function>

<function name="gda_config_get">
<description>
Get a pointer to the global GdaConfig object


</description>
<parameters>
</parameters>
<return> a non %NULL pointer to a #GdaConfig
</return>
</function>

<function name="gda_meta_struct_complement_default">
<description>
This method is similar to gda_meta_struct_complement() and gda_meta_struct_complement_all()
but creates #GdaMetaDbObject for all the
database object which are usable using only their short name (that is which do not need to be prefixed by 
the schema in which they are to be used).

Please refer to gda_meta_struct_complement() form more information.


</description>
<parameters>
<parameter name="mstruct">
<parameter_description> a #GdaMetaStruct object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_parse_iso8601_time">
<description>
Extracts time parts from @value, and sets @timegda's contents

Accepted date format is &quot;HH:MM:SS[.ms][TZ]&quot; where TZ is +hour or -hour


</description>
<parameters>
<parameter name="timegda">
<parameter_description> a pointer to a #GdaTime structure which will be filled
</parameter_description>
</parameter>
<parameter name="value">
<parameter_description> a string
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred
</return>
</function>

<function name="gda_config_get_provider">
<description>
Get a pointer to the session-wide #GdaServerProvider for the
provider named @provider_name. The caller must not call g_object_unref() on the
returned object.

This method may fail with a %GDA_CONFIG_ERROR domain error (see the #GdaConfigError error codes).


</description>
<parameters>
<parameter name="provider_name">
<parameter_description> a database provider
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store errors, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> a pointer to the #GdaServerProvider, or %NULL if an error occurred
</return>
</function>

<function name="gda_server_provider_perform_operation_default">
<description>
Performs the operation described by @op, using the SQL from the rendering of the operation


</description>
<parameters>
<parameter name="provider">
<parameter_description> a #GdaServerProvider object
</parameter_description>
</parameter>
<parameter name="cnc">
<parameter_description> a #GdaConnection object which will be used to perform an action, or %NULL
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store an error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> %TRUE if no error occurred
</return>
</function>

<function name="gda_sql_statement_update_take_set_value">
<description>
Specifies that the field named @fname will be updated with the expression @expr.

@fname and @expr's responsibility are transferred to
@stmt (which means @stmt is then responsible for freeing them when no longer needed).

</description>
<parameters>
<parameter name="stmt">
<parameter_description> a #GdaSqlStatement pointer
</parameter_description>
</parameter>
<parameter name="fname">
<parameter_description> a field name, as a G_TYPE_STRING #GValue
</parameter_description>
</parameter>
<parameter name="expr">
<parameter_description> a #GdaSqlExpr pointer
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_tree_add_manager">
<description>
Sets @manager as a top #GdaTreeManager object, which will be responsible for creating top level nodes in @tree.

Since: 4.2

</description>
<parameters>
<parameter name="tree">
<parameter_description> a #GdaTree object
</parameter_description>
</parameter>
<parameter name="manager">
<parameter_description> a #GdaTreeManager object
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

<function name="gda_statement_copy">
<description>
Copy constructor


</description>
<parameters>
<parameter name="orig">
<parameter_description> a #GdaStatement to make a copy of
</parameter_description>
</parameter>
</parameters>
<return> a the new copy of @orig
</return>
</function>

<function name="gda_perform_drop_database">
<description>
Destroys an existing database using the specifications in @op.  @op can be obtained using
gda_server_provider_create_operation(), or gda_prepare_drop_database().


</description>
<parameters>
<parameter name="provider">
<parameter_description> the database provider to use, or %NULL if @op has been created using gda_prepare_drop_database()
</parameter_description>
</parameter>
<parameter name="op">
<parameter_description> a #GdaServerOperation object obtained using gda_prepare_drop_database()
</parameter_description>
</parameter>
<parameter name="error">
<parameter_description> a place to store en error, or %NULL
</parameter_description>
</parameter>
</parameters>
<return> TRUE if no error occurred and the database has been destroyed
</return>
</function>

<function name="gda_data_model_export_to_string">
<description>
Exports data contained in @model to a string; the format is specified using the @format argument, see the
gda_data_model_export_to_file() documentation for more information about the @options argument (except for the
&quot;OVERWRITE&quot; option).


</description>
<parameters>
<parameter name="model">
<parameter_description> a #GdaDataModel
</parameter_description>
</parameter>
<parameter name="format">
<parameter_description> the format in which to export data
</parameter_description>
</parameter>
<parameter name="cols">
<parameter_description> an array containing which columns of @model will be exported, or %NULL for all columns
</parameter_description>
</parameter>
<parameter name="nb_cols">
<parameter_description> the number of columns in @cols
</parameter_description>
</parameter>
<parameter name="rows">
<parameter_description> an array containing which rows of @model will be exported, or %NULL for all rows
</parameter_description>
</parameter>
<parameter name="nb_rows">
<parameter_description> the number of rows in @rows
</parameter_description>
</parameter>
<parameter name="options">
<parameter_description> list of options for the export
</parameter_description>
</parameter>
</parameters>
<return> a new string.
</return>
</function>

<function name="gda_connection_event_set_gda_code">
<description>
Sets @event's gda code: that code is standardized by the libgda
library. If you want to specify the corresponding provider specific code,
use gda_connection_event_get_code() or gda_connection_event_get_sqlstate() instead.

This function should not be called directly

</description>
<parameters>
<parameter name="event">
<parameter_description> a #GdaConnectionEvent
</parameter_description>
</parameter>
<parameter name="code">
<parameter_description> a code
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>

</root>
