/* libgdadata.h generated by valac 0.40.8.18-c87af, the Vala compiler, do not modify */


#ifndef __LIBGDADATA_H__
#define __LIBGDADATA_H__

#include <glib.h>
#include <glib-object.h>
#include <libgda/libgda.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>

G_BEGIN_DECLS


#define GDA_DATA_TYPE_DB_OBJECT (gda_data_db_object_get_type ())
#define GDA_DATA_DB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_OBJECT, GdaDataDbObject))
#define GDA_DATA_IS_DB_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_OBJECT))
#define GDA_DATA_DB_OBJECT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_OBJECT, GdaDataDbObjectIface))

typedef struct _GdaDataDbObject GdaDataDbObject;
typedef struct _GdaDataDbObjectIface GdaDataDbObjectIface;

#define GDA_DATA_TYPE_DB_NAMED_OBJECT (gda_data_db_named_object_get_type ())
#define GDA_DATA_DB_NAMED_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_NAMED_OBJECT, GdaDataDbNamedObject))
#define GDA_DATA_IS_DB_NAMED_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_NAMED_OBJECT))
#define GDA_DATA_DB_NAMED_OBJECT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_NAMED_OBJECT, GdaDataDbNamedObjectIface))

typedef struct _GdaDataDbNamedObject GdaDataDbNamedObject;
typedef struct _GdaDataDbNamedObjectIface GdaDataDbNamedObjectIface;

#define GDA_DATA_TYPE_DB_COLLECTION (gda_data_db_collection_get_type ())
#define GDA_DATA_DB_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_COLLECTION, GdaDataDbCollection))
#define GDA_DATA_IS_DB_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_COLLECTION))
#define GDA_DATA_DB_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_COLLECTION, GdaDataDbCollectionIface))

typedef struct _GdaDataDbCollection GdaDataDbCollection;
typedef struct _GdaDataDbCollectionIface GdaDataDbCollectionIface;

#define GDA_DATA_TYPE_DB_SCHEMA (gda_data_db_schema_get_type ())
#define GDA_DATA_DB_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_SCHEMA, GdaDataDbSchema))
#define GDA_DATA_IS_DB_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_SCHEMA))
#define GDA_DATA_DB_SCHEMA_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_SCHEMA, GdaDataDbSchemaIface))

typedef struct _GdaDataDbSchema GdaDataDbSchema;
typedef struct _GdaDataDbSchemaIface GdaDataDbSchemaIface;

#define GDA_DATA_TYPE_DB_CATALOG (gda_data_db_catalog_get_type ())
#define GDA_DATA_DB_CATALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_CATALOG, GdaDataDbCatalog))
#define GDA_DATA_IS_DB_CATALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_CATALOG))
#define GDA_DATA_DB_CATALOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_CATALOG, GdaDataDbCatalogIface))

typedef struct _GdaDataDbCatalog GdaDataDbCatalog;
typedef struct _GdaDataDbCatalogIface GdaDataDbCatalogIface;

#define GDA_DATA_TYPE_DB_TABLE (gda_data_db_table_get_type ())
#define GDA_DATA_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_TABLE, GdaDataDbTable))
#define GDA_DATA_IS_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_TABLE))
#define GDA_DATA_DB_TABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_TABLE, GdaDataDbTableIface))

typedef struct _GdaDataDbTable GdaDataDbTable;
typedef struct _GdaDataDbTableIface GdaDataDbTableIface;

#define GDA_DATA_TYPE_DB_FIELD_INFO (gda_data_db_field_info_get_type ())
#define GDA_DATA_DB_FIELD_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_FIELD_INFO, GdaDataDbFieldInfo))
#define GDA_DATA_IS_DB_FIELD_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_FIELD_INFO))
#define GDA_DATA_DB_FIELD_INFO_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_FIELD_INFO, GdaDataDbFieldInfoIface))

typedef struct _GdaDataDbFieldInfo GdaDataDbFieldInfo;
typedef struct _GdaDataDbFieldInfoIface GdaDataDbFieldInfoIface;

#define GDA_DATA_DB_FIELD_INFO_TYPE_ATTRIBUTE (gda_data_db_field_info_attribute_get_type ())

#define GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY (gda_data_db_field_info_foreign_key_get_type ())
#define GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY, GdaDataDbFieldInfoForeignKey))
#define GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY, GdaDataDbFieldInfoForeignKeyClass))
#define GDA_DATA_DB_FIELD_INFO_IS_FOREIGN_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY))
#define GDA_DATA_DB_FIELD_INFO_IS_FOREIGN_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY))
#define GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_DB_FIELD_INFO_TYPE_FOREIGN_KEY, GdaDataDbFieldInfoForeignKeyClass))

typedef struct _GdaDataDbFieldInfoForeignKey GdaDataDbFieldInfoForeignKey;
typedef struct _GdaDataDbFieldInfoForeignKeyClass GdaDataDbFieldInfoForeignKeyClass;

#define GDA_DATA_DB_TABLE_TYPE_TABLE_TYPE (gda_data_db_table_table_type_get_type ())

#define GDA_DATA_TYPE_DB_RECORD (gda_data_db_record_get_type ())
#define GDA_DATA_DB_RECORD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_RECORD, GdaDataDbRecord))
#define GDA_DATA_IS_DB_RECORD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_RECORD))
#define GDA_DATA_DB_RECORD_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_RECORD, GdaDataDbRecordIface))

typedef struct _GdaDataDbRecord GdaDataDbRecord;
typedef struct _GdaDataDbRecordIface GdaDataDbRecordIface;

#define GDA_DATA_TYPE_DB_FIELD (gda_data_db_field_get_type ())
#define GDA_DATA_DB_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_FIELD, GdaDataDbField))
#define GDA_DATA_IS_DB_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_FIELD))
#define GDA_DATA_DB_FIELD_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_FIELD, GdaDataDbFieldIface))

typedef struct _GdaDataDbField GdaDataDbField;
typedef struct _GdaDataDbFieldIface GdaDataDbFieldIface;

#define GDA_DATA_DB_FIELD_TYPE_ATTRIBUTE (gda_data_db_field_attribute_get_type ())

#define GDA_DATA_TYPE_DATA_BASE (gda_data_data_base_get_type ())
#define GDA_DATA_DATA_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DATA_BASE, GdaDataDataBase))
#define GDA_DATA_DATA_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_DATA_BASE, GdaDataDataBaseClass))
#define GDA_DATA_IS_DATA_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DATA_BASE))
#define GDA_DATA_IS_DATA_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_DATA_BASE))
#define GDA_DATA_DATA_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_DATA_BASE, GdaDataDataBaseClass))

typedef struct _GdaDataDataBase GdaDataDataBase;
typedef struct _GdaDataDataBaseClass GdaDataDataBaseClass;
typedef struct _GdaDataDataBasePrivate GdaDataDataBasePrivate;

#define GDA_DATA_TYPE_CATALOG (gda_data_catalog_get_type ())
#define GDA_DATA_CATALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_CATALOG, GdaDataCatalog))
#define GDA_DATA_CATALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_CATALOG, GdaDataCatalogClass))
#define GDA_DATA_IS_CATALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_CATALOG))
#define GDA_DATA_IS_CATALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_CATALOG))
#define GDA_DATA_CATALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_CATALOG, GdaDataCatalogClass))

typedef struct _GdaDataCatalog GdaDataCatalog;
typedef struct _GdaDataCatalogClass GdaDataCatalogClass;
typedef struct _GdaDataCatalogPrivate GdaDataCatalogPrivate;

#define GDA_DATA_TYPE_SCHEMA (gda_data_schema_get_type ())
#define GDA_DATA_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_SCHEMA, GdaDataSchema))
#define GDA_DATA_SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_SCHEMA, GdaDataSchemaClass))
#define GDA_DATA_IS_SCHEMA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_SCHEMA))
#define GDA_DATA_IS_SCHEMA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_SCHEMA))
#define GDA_DATA_SCHEMA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_SCHEMA, GdaDataSchemaClass))

typedef struct _GdaDataSchema GdaDataSchema;
typedef struct _GdaDataSchemaClass GdaDataSchemaClass;
typedef struct _GdaDataSchemaPrivate GdaDataSchemaPrivate;

#define GDA_DATA_TYPE_TABLE (gda_data_table_get_type ())
#define GDA_DATA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_TABLE, GdaDataTable))
#define GDA_DATA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_TABLE, GdaDataTableClass))
#define GDA_DATA_IS_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_TABLE))
#define GDA_DATA_IS_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_TABLE))
#define GDA_DATA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_TABLE, GdaDataTableClass))

typedef struct _GdaDataTable GdaDataTable;
typedef struct _GdaDataTableClass GdaDataTableClass;
typedef struct _GdaDataTablePrivate GdaDataTablePrivate;

#define GDA_DATA_TYPE_DB_RECORD_COLLECTION (gda_data_db_record_collection_get_type ())
#define GDA_DATA_DB_RECORD_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_DB_RECORD_COLLECTION, GdaDataDbRecordCollection))
#define GDA_DATA_IS_DB_RECORD_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_DB_RECORD_COLLECTION))
#define GDA_DATA_DB_RECORD_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDA_DATA_TYPE_DB_RECORD_COLLECTION, GdaDataDbRecordCollectionIface))

typedef struct _GdaDataDbRecordCollection GdaDataDbRecordCollection;
typedef struct _GdaDataDbRecordCollectionIface GdaDataDbRecordCollectionIface;

#define GDA_DATA_TYPE_RECORD (gda_data_record_get_type ())
#define GDA_DATA_RECORD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_RECORD, GdaDataRecord))
#define GDA_DATA_RECORD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_RECORD, GdaDataRecordClass))
#define GDA_DATA_IS_RECORD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_RECORD))
#define GDA_DATA_IS_RECORD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_RECORD))
#define GDA_DATA_RECORD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_RECORD, GdaDataRecordClass))

typedef struct _GdaDataRecord GdaDataRecord;
typedef struct _GdaDataRecordClass GdaDataRecordClass;
typedef struct _GdaDataRecordPrivate GdaDataRecordPrivate;
typedef struct _GdaDataDbFieldInfoForeignKeyPrivate GdaDataDbFieldInfoForeignKeyPrivate;

#define GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_TYPE_MATCH (gda_data_db_field_info_foreign_key_match_get_type ())

#define GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_TYPE_RULE (gda_data_db_field_info_foreign_key_rule_get_type ())

#define GDA_DATA_TYPE_RECORD_COLLECTION (gda_data_record_collection_get_type ())
#define GDA_DATA_RECORD_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_RECORD_COLLECTION, GdaDataRecordCollection))
#define GDA_DATA_RECORD_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_RECORD_COLLECTION, GdaDataRecordCollectionClass))
#define GDA_DATA_IS_RECORD_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_RECORD_COLLECTION))
#define GDA_DATA_IS_RECORD_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_RECORD_COLLECTION))
#define GDA_DATA_RECORD_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_RECORD_COLLECTION, GdaDataRecordCollectionClass))

typedef struct _GdaDataRecordCollection GdaDataRecordCollection;
typedef struct _GdaDataRecordCollectionClass GdaDataRecordCollectionClass;
typedef struct _GdaDataRecordCollectionPrivate GdaDataRecordCollectionPrivate;

#define GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR (gda_data_record_collection_iterator_get_type ())
#define GDA_DATA_RECORD_COLLECTION_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR, GdaDataRecordCollectionIterator))
#define GDA_DATA_RECORD_COLLECTION_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR, GdaDataRecordCollectionIteratorClass))
#define GDA_DATA_IS_RECORD_COLLECTION_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR))
#define GDA_DATA_IS_RECORD_COLLECTION_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR))
#define GDA_DATA_RECORD_COLLECTION_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_RECORD_COLLECTION_ITERATOR, GdaDataRecordCollectionIteratorClass))

typedef struct _GdaDataRecordCollectionIterator GdaDataRecordCollectionIterator;
typedef struct _GdaDataRecordCollectionIteratorClass GdaDataRecordCollectionIteratorClass;
typedef struct _GdaDataRecordCollectionIteratorPrivate GdaDataRecordCollectionIteratorPrivate;

#define GDA_DATA_TYPE_FIELD (gda_data_field_get_type ())
#define GDA_DATA_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_FIELD, GdaDataField))
#define GDA_DATA_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_FIELD, GdaDataFieldClass))
#define GDA_DATA_IS_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_FIELD))
#define GDA_DATA_IS_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_FIELD))
#define GDA_DATA_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_FIELD, GdaDataFieldClass))

typedef struct _GdaDataField GdaDataField;
typedef struct _GdaDataFieldClass GdaDataFieldClass;
typedef struct _GdaDataFieldPrivate GdaDataFieldPrivate;

#define GDA_DATA_TYPE_FIELD_INFO (gda_data_field_info_get_type ())
#define GDA_DATA_FIELD_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDA_DATA_TYPE_FIELD_INFO, GdaDataFieldInfo))
#define GDA_DATA_FIELD_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDA_DATA_TYPE_FIELD_INFO, GdaDataFieldInfoClass))
#define GDA_DATA_IS_FIELD_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDA_DATA_TYPE_FIELD_INFO))
#define GDA_DATA_IS_FIELD_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDA_DATA_TYPE_FIELD_INFO))
#define GDA_DATA_FIELD_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDA_DATA_TYPE_FIELD_INFO, GdaDataFieldInfoClass))

typedef struct _GdaDataFieldInfo GdaDataFieldInfo;
typedef struct _GdaDataFieldInfoClass GdaDataFieldInfoClass;
typedef struct _GdaDataFieldInfoPrivate GdaDataFieldInfoPrivate;

struct _GdaDataDbObjectIface {
	GTypeInterface parent_iface;
	void (*append) (GdaDataDbObject* self, GError** error);
	void (*update) (GdaDataDbObject* self, GError** error);
	void (*save) (GdaDataDbObject* self, GError** error);
	void (*drop) (GdaDataDbObject* self, gboolean cascade, GError** error);
	GdaConnection* (*get_connection) (GdaDataDbObject* self);
	void (*set_connection) (GdaDataDbObject* self, GdaConnection* value);
	gboolean (*get_update_meta) (GdaDataDbObject* self);
	void (*set_update_meta) (GdaDataDbObject* self, gboolean value);
};

struct _GdaDataDbNamedObjectIface {
	GTypeInterface parent_iface;
	const gchar* (*get_name) (GdaDataDbNamedObject* self);
	void (*set_name) (GdaDataDbNamedObject* self, const gchar* value);
};

struct _GdaDataDbCatalogIface {
	GTypeInterface parent_iface;
	GeeCollection* (*get_shemas) (GdaDataDbCatalog* self);
	void (*set_shemas) (GdaDataDbCatalog* self, GeeCollection* value);
};

typedef enum  {
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_NONE = 1 << 0,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_PRIMARY_KEY = 1 << 1,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_UNIQUE = 1 << 2,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_FOREIGN_KEY = 1 << 3,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_CHECK = 1 << 4,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_HAVE_DEFAULT = 1 << 5,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_CAN_BE_NULL = 1 << 6,
	GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_AUTO_INCREMENT = 1 << 7
} GdaDataDbFieldInfoAttribute;

struct _GdaDataDbFieldInfoIface {
	GTypeInterface parent_iface;
	gboolean (*compatible) (GdaDataDbFieldInfo* self, GdaDataDbFieldInfo* field);
	gboolean (*equivalent) (GdaDataDbFieldInfo* self, GdaDataDbFieldInfo* field);
	gchar* (*to_string) (GdaDataDbFieldInfo* self);
	gint (*get_ordinal) (GdaDataDbFieldInfo* self);
	void (*set_ordinal) (GdaDataDbFieldInfo* self, gint value);
	GType (*get_value_type) (GdaDataDbFieldInfo* self);
	void (*set_value_type) (GdaDataDbFieldInfo* self, GType value);
	GdaDataDbFieldInfoAttribute (*get_attributes) (GdaDataDbFieldInfo* self);
	void (*set_attributes) (GdaDataDbFieldInfo* self, GdaDataDbFieldInfoAttribute value);
	GValue* (*get_default_value) (GdaDataDbFieldInfo* self);
	void (*set_default_value) (GdaDataDbFieldInfo* self, GValue* value);
	const gchar* (*get_name) (GdaDataDbFieldInfo* self);
	void (*set_name) (GdaDataDbFieldInfo* self, const gchar* value);
	const gchar* (*get_desc) (GdaDataDbFieldInfo* self);
	void (*set_desc) (GdaDataDbFieldInfo* self, const gchar* value);
	gint (*get_precision) (GdaDataDbFieldInfo* self);
	void (*set_precision) (GdaDataDbFieldInfo* self, gint value);
	gint (*get_scale) (GdaDataDbFieldInfo* self);
	void (*set_scale) (GdaDataDbFieldInfo* self, gint value);
	GdaDataDbFieldInfoForeignKey* (*get_fkey) (GdaDataDbFieldInfo* self);
	void (*set_fkey) (GdaDataDbFieldInfo* self, GdaDataDbFieldInfoForeignKey* value);
};

typedef enum  {
	GDA_DATA_DB_TABLE_TABLE_TYPE_NONE,
	GDA_DATA_DB_TABLE_TABLE_TYPE_BASE_TABLE,
	GDA_DATA_DB_TABLE_TABLE_TYPE_VIEW,
	GDA_DATA_DB_TABLE_TABLE_TYPE_LOCAL_TEMPORARY,
	GDA_DATA_DB_TABLE_TABLE_TYPE_SYSTEM_TABLE,
	GDA_DATA_DB_TABLE_TABLE_TYPE_GLOBAL_TEMPORARY,
	GDA_DATA_DB_TABLE_TABLE_TYPE_ALIAS,
	GDA_DATA_DB_TABLE_TABLE_TYPE_SYNONYM
} GdaDataDbTableTableType;

typedef enum  {
	GDA_DATA_DB_FIELD_ATTRIBUTE_NONE = 1 << 0,
	GDA_DATA_DB_FIELD_ATTRIBUTE_IS_NULL = 1 << 1,
	GDA_DATA_DB_FIELD_ATTRIBUTE_CAN_BE_NULL = 1 << 2,
	GDA_DATA_DB_FIELD_ATTRIBUTE_IS_DEFAULT = 1 << 3,
	GDA_DATA_DB_FIELD_ATTRIBUTE_CAN_BE_DEFAULT = 1 << 4,
	GDA_DATA_DB_FIELD_ATTRIBUTE_IS_UNCHANGED = 1 << 5,
	GDA_DATA_DB_FIELD_ATTRIBUTE_ACTIONS_SHOWN = 1 << 6,
	GDA_DATA_DB_FIELD_ATTRIBUTE_DATA_NON_VALID = 1 << 7,
	GDA_DATA_DB_FIELD_ATTRIBUTE_HAS_VALUE_ORIG = 1 << 8,
	GDA_DATA_DB_FIELD_ATTRIBUTE_NO_MODIF = 1 << 9,
	GDA_DATA_DB_FIELD_ATTRIBUTE_UNUSED = 1 << 10
} GdaDataDbFieldAttribute;

struct _GdaDataDbFieldIface {
	GTypeInterface parent_iface;
	gboolean (*equal) (GdaDataDbField* self, GdaDataDbField* field);
	gchar* (*to_string) (GdaDataDbField* self);
	GValue* (*get_value) (GdaDataDbField* self);
	void (*set_value) (GdaDataDbField* self, GValue* value);
	const gchar* (*get_name) (GdaDataDbField* self);
	void (*set_name) (GdaDataDbField* self, const gchar* value);
	const gchar* (*get_column_name) (GdaDataDbField* self);
	GdaDataDbFieldAttribute (*get_attributes) (GdaDataDbField* self);
};

struct _GdaDataDbRecordIface {
	GTypeInterface parent_iface;
	GValue* (*get_value) (GdaDataDbRecord* self, const gchar* name, GError** error);
	void (*set_field) (GdaDataDbRecord* self, GdaDataDbField* field, GError** error);
	void (*set_field_value) (GdaDataDbRecord* self, const gchar* field, GValue* val, GError** error);
	GdaDataDbField* (*get_field) (GdaDataDbRecord* self, const gchar* name, GError** error);
	void (*set_key) (GdaDataDbRecord* self, GdaDataDbField* field, GError** error);
	void (*set_key_value) (GdaDataDbRecord* self, const gchar* field, GValue* val, GError** error);
	GdaDataDbField* (*get_key) (GdaDataDbRecord* self, const gchar* name, GError** error);
	gchar* (*to_string) (GdaDataDbRecord* self);
	void (*copy) (GdaDataDbRecord* self, GdaDataDbRecord* record, GError** error);
	gboolean (*equal) (GdaDataDbRecord* self, GdaDataDbRecord* record, GError** error);
	GdaDataDbTable* (*get_table) (GdaDataDbRecord* self);
	void (*set_table) (GdaDataDbRecord* self, GdaDataDbTable* value);
	GeeCollection* (*get_fields) (GdaDataDbRecord* self);
	GeeCollection* (*get_keys) (GdaDataDbRecord* self);
};

struct _GdaDataDbTableIface {
	GTypeInterface parent_iface;
	void (*set_field) (GdaDataDbTable* self, GdaDataDbFieldInfo* field, GError** error);
	GdaDataDbFieldInfo* (*get_field) (GdaDataDbTable* self, const gchar* name, GError** error);
	gboolean (*compatible) (GdaDataDbTable* self, GdaDataDbTable* table);
	gboolean (*equivalent) (GdaDataDbTable* self, GdaDataDbTable* table);
	GdaDataDbCatalog* (*get_catalog) (GdaDataDbTable* self);
	void (*set_catalog) (GdaDataDbTable* self, GdaDataDbCatalog* value);
	GdaDataDbSchema* (*get_schema) (GdaDataDbTable* self);
	void (*set_schema) (GdaDataDbTable* self, GdaDataDbSchema* value);
	GdaDataDbTableTableType (*get_table_type) (GdaDataDbTable* self);
	void (*set_table_type) (GdaDataDbTable* self, GdaDataDbTableTableType value);
	GeeCollection* (*get_records) (GdaDataDbTable* self);
	GeeCollection* (*get_depends) (GdaDataDbTable* self);
	GeeCollection* (*get_referenced) (GdaDataDbTable* self);
	GeeCollection* (*get_fields) (GdaDataDbTable* self);
	GeeCollection* (*get_primary_keys) (GdaDataDbTable* self);
};

struct _GdaDataDbSchemaIface {
	GTypeInterface parent_iface;
	GdaDataDbCatalog* (*get_catalog) (GdaDataDbSchema* self);
	void (*set_catalog) (GdaDataDbSchema* self, GdaDataDbCatalog* value);
	GeeCollection* (*get_tables) (GdaDataDbSchema* self);
};

struct _GdaDataDbCollectionIface {
	GTypeInterface parent_iface;
	GeeCollection* (*get_schemas) (GdaDataDbCollection* self);
};

struct _GdaDataDataBase {
	GObject parent_instance;
	GdaDataDataBasePrivate * priv;
	GeeHashMap* _schemas;
};

struct _GdaDataDataBaseClass {
	GObjectClass parent_class;
};

struct _GdaDataCatalog {
	GObject parent_instance;
	GdaDataCatalogPrivate * priv;
};

struct _GdaDataCatalogClass {
	GObjectClass parent_class;
};

struct _GdaDataSchema {
	GObject parent_instance;
	GdaDataSchemaPrivate * priv;
	GeeHashMap* _tables;
};

struct _GdaDataSchemaClass {
	GObjectClass parent_class;
};

struct _GdaDataDbRecordCollectionIface {
	GTypeInterface parent_iface;
	GdaConnection* (*get_connection) (GdaDataDbRecordCollection* self);
	void (*set_connection) (GdaDataDbRecordCollection* self, GdaConnection* value);
	GdaDataModel* (*get_model) (GdaDataDbRecordCollection* self);
	GdaDataDbTable* (*get_table) (GdaDataDbRecordCollection* self);
};

struct _GdaDataTable {
	GObject parent_instance;
	GdaDataTablePrivate * priv;
	gchar* _name;
	GdaDataDbTableTableType _type;
	GdaDataDbRecordCollection* _records;
	GeeHashMap* _fields;
	GeeHashMap* _depends;
	GeeHashMap* _referenced;
};

struct _GdaDataTableClass {
	GObjectClass parent_class;
};

struct _GdaDataRecord {
	GObject parent_instance;
	GdaDataRecordPrivate * priv;
	GeeHashMap* _fields;
	GeeHashMap* _keys;
};

struct _GdaDataRecordClass {
	GObjectClass parent_class;
};

typedef enum  {
	GDA_DATA_DB_OBJECT_ERROR_APPEND,
	GDA_DATA_DB_OBJECT_ERROR_UPDATE,
	GDA_DATA_DB_OBJECT_ERROR_SAVE,
	GDA_DATA_DB_OBJECT_ERROR_DROP
} GdaDataDbObjectError;
#define GDA_DATA_DB_OBJECT_ERROR gda_data_db_object_error_quark ()
struct _GdaDataDbFieldInfoForeignKey {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GdaDataDbFieldInfoForeignKeyPrivate * priv;
};

struct _GdaDataDbFieldInfoForeignKeyClass {
	GTypeClass parent_class;
	void (*finalize) (GdaDataDbFieldInfoForeignKey *self);
};

typedef enum  {
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_NONE,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_FULL,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_PARTIAL
} GdaDataDbFieldInfoForeignKeyMatch;

typedef enum  {
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_NONE,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_CASCADE,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_SET_NULL,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_SET_DEFAULT,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_RESTRICT,
	GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_NO_ACTION
} GdaDataDbFieldInfoForeignKeyRule;

struct _GdaDataRecordCollection {
	GeeAbstractCollection parent_instance;
	GdaDataRecordCollectionPrivate * priv;
};

struct _GdaDataRecordCollectionClass {
	GeeAbstractCollectionClass parent_class;
};

struct _GdaDataRecordCollectionIterator {
	GObject parent_instance;
	GdaDataRecordCollectionIteratorPrivate * priv;
};

struct _GdaDataRecordCollectionIteratorClass {
	GObjectClass parent_class;
};

struct _GdaDataField {
	GObject parent_instance;
	GdaDataFieldPrivate * priv;
};

struct _GdaDataFieldClass {
	GObjectClass parent_class;
};

struct _GdaDataFieldInfo {
	GObject parent_instance;
	GdaDataFieldInfoPrivate * priv;
};

struct _GdaDataFieldInfoClass {
	GObjectClass parent_class;
};


GType gda_data_db_object_get_type (void) G_GNUC_CONST;
GType gda_data_db_named_object_get_type (void) G_GNUC_CONST;
GType gda_data_db_catalog_get_type (void) G_GNUC_CONST;
GType gda_data_db_field_info_attribute_get_type (void) G_GNUC_CONST;
gpointer gda_data_db_field_info_foreign_key_ref (gpointer instance);
void gda_data_db_field_info_foreign_key_unref (gpointer instance);
GParamSpec* gda_data_db_field_info_param_spec_foreign_key (const gchar* name,
                                                           const gchar* nick,
                                                           const gchar* blurb,
                                                           GType object_type,
                                                           GParamFlags flags);
void gda_data_db_field_info_value_set_foreign_key (GValue* value,
                                                   gpointer v_object);
void gda_data_db_field_info_value_take_foreign_key (GValue* value,
                                                    gpointer v_object);
gpointer gda_data_db_field_info_value_get_foreign_key (const GValue* value);
GType gda_data_db_field_info_foreign_key_get_type (void) G_GNUC_CONST;
GType gda_data_db_field_info_get_type (void) G_GNUC_CONST;
GType gda_data_db_table_table_type_get_type (void) G_GNUC_CONST;
GType gda_data_db_field_attribute_get_type (void) G_GNUC_CONST;
GType gda_data_db_field_get_type (void) G_GNUC_CONST;
GType gda_data_db_record_get_type (void) G_GNUC_CONST;
GType gda_data_db_table_get_type (void) G_GNUC_CONST;
GType gda_data_db_schema_get_type (void) G_GNUC_CONST;
GType gda_data_db_collection_get_type (void) G_GNUC_CONST;
GType gda_data_data_base_get_type (void) G_GNUC_CONST;
GdaDataDataBase* gda_data_data_base_new (void);
GdaDataDataBase* gda_data_data_base_construct (GType object_type);
GType gda_data_catalog_get_type (void) G_GNUC_CONST;
GdaDataCatalog* gda_data_catalog_new (void);
GdaDataCatalog* gda_data_catalog_construct (GType object_type);
GType gda_data_schema_get_type (void) G_GNUC_CONST;
GdaDataSchema* gda_data_schema_new (void);
GdaDataSchema* gda_data_schema_construct (GType object_type);
GType gda_data_table_get_type (void) G_GNUC_CONST;
GType gda_data_db_record_collection_get_type (void) G_GNUC_CONST;
GdaDataTable* gda_data_table_new_with_fields_info (GeeHashMap* fields);
GdaDataTable* gda_data_table_construct_with_fields_info (GType object_type,
                                                         GeeHashMap* fields);
GdaDataTable* gda_data_table_new (void);
GdaDataTable* gda_data_table_construct (GType object_type);
GType gda_data_record_get_type (void) G_GNUC_CONST;
GdaDataRecord* gda_data_record_new (void);
GdaDataRecord* gda_data_record_construct (GType object_type);
void gda_data_db_object_append (GdaDataDbObject* self,
                                GError** error);
void gda_data_db_object_update (GdaDataDbObject* self,
                                GError** error);
void gda_data_db_object_save (GdaDataDbObject* self,
                              GError** error);
void gda_data_db_object_drop (GdaDataDbObject* self,
                              gboolean cascade,
                              GError** error);
GdaConnection* gda_data_db_object_get_connection (GdaDataDbObject* self);
void gda_data_db_object_set_connection (GdaDataDbObject* self,
                                        GdaConnection* value);
gboolean gda_data_db_object_get_update_meta (GdaDataDbObject* self);
void gda_data_db_object_set_update_meta (GdaDataDbObject* self,
                                         gboolean value);
const gchar* gda_data_db_named_object_get_name (GdaDataDbNamedObject* self);
void gda_data_db_named_object_set_name (GdaDataDbNamedObject* self,
                                        const gchar* value);
GQuark gda_data_db_object_error_quark (void);
GeeCollection* gda_data_db_collection_get_schemas (GdaDataDbCollection* self);
GeeCollection* gda_data_db_catalog_get_shemas (GdaDataDbCatalog* self);
void gda_data_db_catalog_set_shemas (GdaDataDbCatalog* self,
                                     GeeCollection* value);
GdaDataDbTableTableType gda_data_db_table_table_type_from_string (const gchar* str);
void gda_data_db_table_set_field (GdaDataDbTable* self,
                                  GdaDataDbFieldInfo* field,
                                  GError** error);
GdaDataDbFieldInfo* gda_data_db_table_get_field (GdaDataDbTable* self,
                                                 const gchar* name,
                                                 GError** error);
gboolean gda_data_db_table_compatible (GdaDataDbTable* self,
                                       GdaDataDbTable* table);
gboolean gda_data_db_table_equivalent (GdaDataDbTable* self,
                                       GdaDataDbTable* table);
GdaDataDbCatalog* gda_data_db_table_get_catalog (GdaDataDbTable* self);
void gda_data_db_table_set_catalog (GdaDataDbTable* self,
                                    GdaDataDbCatalog* value);
GdaDataDbSchema* gda_data_db_table_get_schema (GdaDataDbTable* self);
void gda_data_db_table_set_schema (GdaDataDbTable* self,
                                   GdaDataDbSchema* value);
GdaDataDbTableTableType gda_data_db_table_get_table_type (GdaDataDbTable* self);
void gda_data_db_table_set_table_type (GdaDataDbTable* self,
                                       GdaDataDbTableTableType value);
GeeCollection* gda_data_db_table_get_records (GdaDataDbTable* self);
GeeCollection* gda_data_db_table_get_depends (GdaDataDbTable* self);
GeeCollection* gda_data_db_table_get_referenced (GdaDataDbTable* self);
GeeCollection* gda_data_db_table_get_fields (GdaDataDbTable* self);
GeeCollection* gda_data_db_table_get_primary_keys (GdaDataDbTable* self);
GValue* gda_data_db_record_get_value (GdaDataDbRecord* self,
                                      const gchar* name,
                                      GError** error);
void gda_data_db_record_set_field (GdaDataDbRecord* self,
                                   GdaDataDbField* field,
                                   GError** error);
void gda_data_db_record_set_field_value (GdaDataDbRecord* self,
                                         const gchar* field,
                                         GValue* val,
                                         GError** error);
GdaDataDbField* gda_data_db_record_get_field (GdaDataDbRecord* self,
                                              const gchar* name,
                                              GError** error);
void gda_data_db_record_set_key (GdaDataDbRecord* self,
                                 GdaDataDbField* field,
                                 GError** error);
void gda_data_db_record_set_key_value (GdaDataDbRecord* self,
                                       const gchar* field,
                                       GValue* val,
                                       GError** error);
GdaDataDbField* gda_data_db_record_get_key (GdaDataDbRecord* self,
                                            const gchar* name,
                                            GError** error);
gchar* gda_data_db_record_to_string (GdaDataDbRecord* self);
void gda_data_db_record_copy (GdaDataDbRecord* self,
                              GdaDataDbRecord* record,
                              GError** error);
gboolean gda_data_db_record_equal (GdaDataDbRecord* self,
                                   GdaDataDbRecord* record,
                                   GError** error);
GdaDataDbTable* gda_data_db_record_get_table (GdaDataDbRecord* self);
void gda_data_db_record_set_table (GdaDataDbRecord* self,
                                   GdaDataDbTable* value);
GeeCollection* gda_data_db_record_get_fields (GdaDataDbRecord* self);
GeeCollection* gda_data_db_record_get_keys (GdaDataDbRecord* self);
GdaDataDbFieldAttribute* gda_data_db_field_attribute_items (int* result_length1);
gchar* gda_data_db_field_attribute_to_string (GdaDataDbFieldAttribute self);
gboolean gda_data_db_field_equal (GdaDataDbField* self,
                                  GdaDataDbField* field);
GValue* gda_data_db_field_value_from_string (const gchar* as_string,
                                             GType type);
gchar* gda_data_db_field_to_string (GdaDataDbField* self);
GValue* gda_data_db_field_get_value (GdaDataDbField* self);
void gda_data_db_field_set_value (GdaDataDbField* self,
                                  GValue* value);
const gchar* gda_data_db_field_get_name (GdaDataDbField* self);
void gda_data_db_field_set_name (GdaDataDbField* self,
                                 const gchar* value);
const gchar* gda_data_db_field_get_column_name (GdaDataDbField* self);
GdaDataDbFieldAttribute gda_data_db_field_get_attributes (GdaDataDbField* self);
GdaDataDbFieldInfoAttribute* gda_data_db_field_info_attribute_items (int* result_length1);
gchar* gda_data_db_field_info_attribute_to_string (GdaDataDbFieldInfoAttribute self);
GdaDataDbFieldInfoAttribute gda_data_db_field_info_attribute_from_string (const gchar* str);
gboolean gda_data_db_field_info_compatible (GdaDataDbFieldInfo* self,
                                            GdaDataDbFieldInfo* field);
gboolean gda_data_db_field_info_equivalent (GdaDataDbFieldInfo* self,
                                            GdaDataDbFieldInfo* field);
gchar* gda_data_db_field_info_to_string (GdaDataDbFieldInfo* self);
gint gda_data_db_field_info_get_ordinal (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_ordinal (GdaDataDbFieldInfo* self,
                                         gint value);
GType gda_data_db_field_info_get_value_type (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_value_type (GdaDataDbFieldInfo* self,
                                            GType value);
GdaDataDbFieldInfoAttribute gda_data_db_field_info_get_attributes (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_attributes (GdaDataDbFieldInfo* self,
                                            GdaDataDbFieldInfoAttribute value);
GValue* gda_data_db_field_info_get_default_value (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_default_value (GdaDataDbFieldInfo* self,
                                               GValue* value);
const gchar* gda_data_db_field_info_get_name (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_name (GdaDataDbFieldInfo* self,
                                      const gchar* value);
const gchar* gda_data_db_field_info_get_desc (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_desc (GdaDataDbFieldInfo* self,
                                      const gchar* value);
gint gda_data_db_field_info_get_precision (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_precision (GdaDataDbFieldInfo* self,
                                           gint value);
gint gda_data_db_field_info_get_scale (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_scale (GdaDataDbFieldInfo* self,
                                       gint value);
GdaDataDbFieldInfoForeignKey* gda_data_db_field_info_get_fkey (GdaDataDbFieldInfo* self);
void gda_data_db_field_info_set_fkey (GdaDataDbFieldInfo* self,
                                      GdaDataDbFieldInfoForeignKey* value);
GType gda_data_db_field_info_foreign_key_match_get_type (void) G_GNUC_CONST;
GdaDataDbFieldInfoForeignKeyMatch* gda_data_db_field_info_foreign_key_match_items (int* result_length1);
gchar* gda_data_db_field_info_foreign_key_match_to_string (GdaDataDbFieldInfoForeignKeyMatch self);
GdaDataDbFieldInfoForeignKeyMatch gda_data_db_field_info_foreign_key_match_from_string (const gchar* str);
GType gda_data_db_field_info_foreign_key_rule_get_type (void) G_GNUC_CONST;
GdaDataDbFieldInfoForeignKeyRule* gda_data_db_field_info_foreign_key_rule_items (int* result_length1);
gchar* gda_data_db_field_info_foreign_key_rule_to_string (GdaDataDbFieldInfoForeignKeyRule self);
GdaDataDbFieldInfoForeignKeyRule gda_data_db_field_info_foreign_key_rule_from_string (const gchar* str);
GdaDataDbFieldInfoForeignKey* gda_data_db_field_info_foreign_key_new (void);
GdaDataDbFieldInfoForeignKey* gda_data_db_field_info_foreign_key_construct (GType object_type);
gboolean gda_data_db_field_info_foreign_key_equal (GdaDataDbFieldInfoForeignKey* self,
                                                   GdaDataDbFieldInfoForeignKey* fkey);
gchar* gda_data_db_field_info_foreign_key_to_string (GdaDataDbFieldInfoForeignKey* self);
const gchar* gda_data_db_field_info_foreign_key_get_name (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_name (GdaDataDbFieldInfoForeignKey* self,
                                                  const gchar* value);
const gchar* gda_data_db_field_info_foreign_key_get_refname (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_refname (GdaDataDbFieldInfoForeignKey* self,
                                                     const gchar* value);
GdaDataDbTable* gda_data_db_field_info_foreign_key_get_reftable (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_reftable (GdaDataDbFieldInfoForeignKey* self,
                                                      GdaDataDbTable* value);
GeeArrayList* gda_data_db_field_info_foreign_key_get_refcol (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_refcol (GdaDataDbFieldInfoForeignKey* self,
                                                    GeeArrayList* value);
GdaDataDbFieldInfoForeignKeyMatch gda_data_db_field_info_foreign_key_get_match (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_match (GdaDataDbFieldInfoForeignKey* self,
                                                   GdaDataDbFieldInfoForeignKeyMatch value);
GdaDataDbFieldInfoForeignKeyRule gda_data_db_field_info_foreign_key_get_update_rule (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_update_rule (GdaDataDbFieldInfoForeignKey* self,
                                                         GdaDataDbFieldInfoForeignKeyRule value);
GdaDataDbFieldInfoForeignKeyRule gda_data_db_field_info_foreign_key_get_delete_rule (GdaDataDbFieldInfoForeignKey* self);
void gda_data_db_field_info_foreign_key_set_delete_rule (GdaDataDbFieldInfoForeignKey* self,
                                                         GdaDataDbFieldInfoForeignKeyRule value);
GdaDataDbCatalog* gda_data_db_schema_get_catalog (GdaDataDbSchema* self);
void gda_data_db_schema_set_catalog (GdaDataDbSchema* self,
                                     GdaDataDbCatalog* value);
GeeCollection* gda_data_db_schema_get_tables (GdaDataDbSchema* self);
GdaConnection* gda_data_db_record_collection_get_connection (GdaDataDbRecordCollection* self);
void gda_data_db_record_collection_set_connection (GdaDataDbRecordCollection* self,
                                                   GdaConnection* value);
GdaDataModel* gda_data_db_record_collection_get_model (GdaDataDbRecordCollection* self);
GdaDataDbTable* gda_data_db_record_collection_get_table (GdaDataDbRecordCollection* self);
GType gda_data_record_collection_get_type (void) G_GNUC_CONST;
GdaDataRecordCollection* gda_data_record_collection_new (GdaDataModel* m,
                                                         GdaDataDbTable* table);
GdaDataRecordCollection* gda_data_record_collection_construct (GType object_type,
                                                               GdaDataModel* m,
                                                               GdaDataDbTable* table);
gchar* gda_data_record_collection_to_string (GdaDataRecordCollection* self);
GType gda_data_record_collection_iterator_get_type (void) G_GNUC_CONST;
GdaDataRecordCollectionIterator* gda_data_record_collection_iterator_new (GdaDataModelIter* iter,
                                                                          GdaDataDbTable* table);
GdaDataRecordCollectionIterator* gda_data_record_collection_iterator_construct (GType object_type,
                                                                                GdaDataModelIter* iter,
                                                                                GdaDataDbTable* table);
GType gda_data_field_get_type (void) G_GNUC_CONST;
GdaDataField* gda_data_field_new (const gchar* col_name,
                                  GdaDataDbFieldAttribute attr);
GdaDataField* gda_data_field_construct (GType object_type,
                                        const gchar* col_name,
                                        GdaDataDbFieldAttribute attr);
GType gda_data_field_info_get_type (void) G_GNUC_CONST;
GdaDataFieldInfo* gda_data_field_info_new (void);
GdaDataFieldInfo* gda_data_field_info_construct (GType object_type);


G_END_DECLS

#endif
