[libgda] Change Valac to 0.14. GdaData implementations for DbTable and Table metadata
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Change Valac to 0.14. GdaData implementations for DbTable and Table metadata
- Date: Wed, 1 Feb 2012 23:03:39 +0000 (UTC)
commit 58fb1321d039fb45841de08c6b97898c7788726c
Author: Daniel Espinosa <despinosa src gnome org>
Date: Tue Jan 31 19:51:18 2012 -0600
Change Valac to 0.14. GdaData implementations for DbTable and Table metadata
configure.ac | 2 +-
gnome-doc-utils.make | 656 --------------------------------
libgda/Gda-5.0.gir | 12 +-
libgda/Makefile.am | 2 +-
libgda/data/Catalog.vala | 37 ++
libgda/data/DataBase.vala | 4 +-
libgda/data/DbCatalog.vala | 28 ++
libgda/data/DbCollection.vala | 4 +-
libgda/data/DbField.vala | 12 +-
libgda/data/DbFieldInfo.vala | 96 +++++-
libgda/data/DbRecord.vala | 22 +-
libgda/data/DbRecordCollection.vala | 6 +-
libgda/data/DbSchema.vala | 5 +-
libgda/data/DbTable.vala | 46 ++-
libgda/data/Field.vala | 4 +-
libgda/data/FieldInfo.vala | 32 +-
libgda/data/GdaData-5.0.gir | 331 +++++++++++------
libgda/data/Makefile.am | 2 +
libgda/data/Record.vala | 34 +-
libgda/data/RecordCollection.vala | 50 ++--
libgda/data/Schema.vala | 11 +-
libgda/data/Table.vala | 137 ++++++-
libgda/libgda-5.0.vapi | 61 ++--
tests/vala/CheckDataModelIterator.vala | 6 +-
tests/vala/CheckDataObject.vala | 4 +-
25 files changed, 681 insertions(+), 923 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 187b229..0591538 100644
--- a/configure.ac
+++ b/configure.ac
@@ -481,7 +481,7 @@ AC_ARG_ENABLE([vala-extensions],
have_vala=no
if test "x$found_introspection" = "xyes"
then
- VALA_MODULES="libvala-0.16 >= 0.15.0"
+ VALA_MODULES="libvala-0.14 >= 0.14.0"
PKG_CHECK_MODULES(VALA, $VALA_MODULES,
if test "$enable_vala" = "yes" -o "$enable_vala" = "auto"
then
diff --git a/libgda/Gda-5.0.gir b/libgda/Gda-5.0.gir
index 63ef530..47f6fdc 100644
--- a/libgda/Gda-5.0.gir
+++ b/libgda/Gda-5.0.gir
@@ -7648,7 +7648,12 @@ still forming a valid SQL syntax).</doc>
glib:get-type="gda_data_proxy_get_type"
glib:type-struct="DataProxyClass">
<implements name="DataModel"/>
- <constructor name="new" c:identifier="gda_data_proxy_new">
+ <function name="error_quark" c:identifier="gda_data_proxy_error_quark">
+ <return-value transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </function>
+ <function name="new" c:identifier="gda_data_proxy_new">
<doc xml:whitespace="preserve">Creates a new proxy for @model</doc>
<return-value transfer-ownership="full">
<doc xml:whitespace="preserve">a new #GdaDataProxy object</doc>
@@ -7660,11 +7665,6 @@ still forming a valid SQL syntax).</doc>
<type name="DataModel" c:type="GdaDataModel*"/>
</parameter>
</parameters>
- </constructor>
- <function name="error_quark" c:identifier="gda_data_proxy_error_quark">
- <return-value transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
</function>
<virtual-method name="filter_changed">
<return-value transfer-ownership="none">
diff --git a/libgda/Makefile.am b/libgda/Makefile.am
index 126bcc7..21c7218 100644
--- a/libgda/Makefile.am
+++ b/libgda/Makefile.am
@@ -371,7 +371,7 @@ if ENABLE_VALA
vapi: libgda-5.0.vapi
libgda-5.0.vapi: Gda-5.0.gir
- $(VAPIGEN) --metadatadir=$(top_srcdir)/libgda --library libgda-5.0 --pkg libxml-2.0 Gda-5.0.gir libgda-5.0-custom.vala
+ $(VAPIGEN) --metadatadir=$(top_srcdir)/libgda --library libgda-5.0 --pkg libxml-2.0 Gda-5.0.gir
vapidir = $(VAPIDIR)
vapi_DATA=libgda-5.0.vapi
diff --git a/libgda/data/Catalog.vala b/libgda/data/Catalog.vala
new file mode 100644
index 0000000..5ae10ed
--- /dev/null
+++ b/libgda/data/Catalog.vala
@@ -0,0 +1,37 @@
+/* -*- Mode: Vala; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * libgdavala
+ * Copyright (C) Daniel Espinosa Ortiz 2012 <esodan gmail com>
+ *
+ * libgda is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * libgda is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+using Gda;
+using Gee;
+
+namespace GdaData {
+ public class Catalog : Object, DbObject, DbNamedObject, DbCatalog
+ {
+ // DbObject interface
+ // DbObject Interface
+ public Connection connection { get; set; }
+ public void update () throws Error {}
+ public void save () throws Error {}
+ public void append () throws Error {}
+ // DbNamedObject Interface
+ public string name { get; set; }
+ // DbCatalog interface
+ public Collection<DbSchema> shemas { get; set; }
+ }
+}
diff --git a/libgda/data/DataBase.vala b/libgda/data/DataBase.vala
index 85c89fc..8a3dbca 100644
--- a/libgda/data/DataBase.vala
+++ b/libgda/data/DataBase.vala
@@ -22,9 +22,9 @@ using Gda;
namespace GdaData
{
- public class DataBase : Object, DbObject, DbNamedObject, DbCollection<Value?>
+ public class DataBase : Object, DbObject, DbNamedObject, DbCollection
{
- public HashMap<string,DbSchema<Value?>> _schemas = new HashMap<string,DbSchema<Value?>> ();
+ public HashMap<string,DbSchema> _schemas = new HashMap<string,DbSchema> ();
// DbObject Interface
public Connection connection { get; set; }
public void update () throws Error
diff --git a/libgda/data/DbCatalog.vala b/libgda/data/DbCatalog.vala
new file mode 100644
index 0000000..9053e1c
--- /dev/null
+++ b/libgda/data/DbCatalog.vala
@@ -0,0 +1,28 @@
+/* -*- Mode: Vala; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * libgdavala
+ * Copyright (C) Daniel Espinosa Ortiz 2012 <esodan gmail com>
+ *
+ * libgda is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * libgda is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+using Gda;
+using Gee;
+
+namespace GdaData {
+ public interface DbCatalog : Object, DbObject, DbNamedObject
+ {
+ public abstract Collection<DbSchema> shemas { get; set; }
+ }
+}
diff --git a/libgda/data/DbCollection.vala b/libgda/data/DbCollection.vala
index 90f3d01..0593ba6 100644
--- a/libgda/data/DbCollection.vala
+++ b/libgda/data/DbCollection.vala
@@ -22,8 +22,8 @@ using Gda;
namespace GdaData
{
- public interface DbCollection<G> : DbNamedObject
+ public interface DbCollection : DbNamedObject
{
- public abstract Collection<DbSchema<G>> schemas { owned get; }
+ public abstract Collection<DbSchema> schemas { owned get; }
}
}
diff --git a/libgda/data/DbField.vala b/libgda/data/DbField.vala
index b5a2171..7d0f390 100644
--- a/libgda/data/DbField.vala
+++ b/libgda/data/DbField.vala
@@ -22,15 +22,15 @@ using Gda;
namespace GdaData
{
- public interface DbField<G> : Object
+ public interface DbField : Object
{
- public abstract G @value { get; set; }
- public abstract string name { get; set; }
- public abstract string column_name { get; }
- public abstract DbField.Attribute attributes { get; }
+ public abstract Value? @value { get; set; }
+ public abstract string name { get; set; }
+ public abstract string column_name { get; }
+ public abstract DbField.Attribute attributes { get; }
public abstract string to_string ();
-
+
[Flags]
public enum Attribute {
NONE,
diff --git a/libgda/data/DbFieldInfo.vala b/libgda/data/DbFieldInfo.vala
index ca9da87..b573264 100644
--- a/libgda/data/DbFieldInfo.vala
+++ b/libgda/data/DbFieldInfo.vala
@@ -20,10 +20,98 @@
using Gda;
namespace GdaData {
- public interface DbFieldInfo<G> : Object
+ public interface DbFieldInfo : Object
{
- public abstract DbField.Attribute attributes { get; }
- public abstract G default_value { get; }
- public abstract string name { get; }
+ public abstract DbFieldInfo.Attribute attributes { get; set; }
+ public abstract Value? default_value { get; set; }
+ public abstract string name { get; set; }
+ public abstract string desc { get; set; }
+
+ // Numeric and Datetime attributes
+ public abstract int precision { get; set; }
+ public abstract int scale { get; set; }
+
+ public static Attribute attribute_from_string (string str)
+ {
+ if (str == "NONE")
+ return Attribute.NONE;
+ if (str == "PRIMARY_KEY")
+ return Attribute.PRIMARY_KEY;
+ if (str == "UNIQUE")
+ return Attribute.UNIQUE;
+ if (str == "FOREIGN_KEY")
+ return Attribute.FOREIGN_KEY;
+ if (str == "CHECK")
+ return Attribute.CHECK;
+ if (str == "HAVE_DEFAULT")
+ return Attribute.HAVE_DEFAULT;
+ if (str == "IS_AUTO_INCREMENT")
+ return Attribute.IS_AUTO_INCREMENT;
+
+ return Attribute.NONE;
+ }
+ public enum Attribute {
+ NONE,
+ PRIMARY_KEY,
+ UNIQUE,
+ FOREIGN_KEY,
+ CHECK,
+ HAVE_DEFAULT,
+ IS_AUTO_INCREMENT
+ }
+
+ // Constrains
+ public abstract ForeignKey fkey { get; set; }
+
+ [Compact]
+ public class ForeignKey {
+ public string name;
+ public string refname;
+ public DbTable reftable;
+ public Match match;
+ public Rule update_rule;
+ public Rule delete_rule;
+
+ public ForeignKey copy () { return new ForeignKey (); }
+
+ public static Match match_from_string (string str)
+ {
+ if (str == "FULL")
+ return Match.FULL;
+ if (str == "PARTIAL")
+ return Match.PARTIAL;
+
+ return Match.NONE;
+ }
+
+ public static Rule rule_from_string (string str)
+ {
+ if (str == "CASCADE")
+ return Rule.CASCADE;
+ if (str == "SET NULL")
+ return Rule.SET_NULL;
+ if (str == "SET DEFAULT")
+ return Rule.SET_DEFAULT;
+ if (str == "RESTRICT")
+ return Rule.RESTRICT;
+ if (str == "NO ACTION")
+ return Rule.NO_ACTION;
+
+ return Rule.NONE;
+ }
+ public enum Match {
+ FULL,
+ PARTIAL,
+ NONE
+ }
+ public enum Rule {
+ CASCADE,
+ SET_NULL,
+ SET_DEFAULT,
+ RESTRICT,
+ NO_ACTION,
+ NONE
+ }
+ }
}
}
diff --git a/libgda/data/DbRecord.vala b/libgda/data/DbRecord.vala
index d847f70..7bab84c 100644
--- a/libgda/data/DbRecord.vala
+++ b/libgda/data/DbRecord.vala
@@ -22,21 +22,21 @@ using Gda;
namespace GdaData
{
- public interface DbRecord<G> : DbObject, Comparable<DbRecord<G>>
+ public interface DbRecord : DbObject, Comparable<DbRecord>
{
- public abstract DbTable<G> table { get; set construct; }
- public abstract Collection<DbField<G>> fields { owned get; }
- public abstract Collection<DbField<G>> keys { owned get; }
+ public abstract DbTable table { get; set construct; }
+ public abstract Collection<DbField> fields { owned get; }
+ public abstract Collection<DbField> keys { owned get; }
/**
* Returns a GLib.Value containing the value stored in the given field.
*/
- public abstract G get_value (string name) throws Error;
- public abstract void set_field (DbField<G> field) throws Error;
- public abstract void set_field_value (string field, G val) throws Error;
- public abstract DbField<G> get_field (string name) throws Error;
- public abstract void set_key (DbField<G> field) throws Error;
- public abstract void set_key_value (string field, G val) throws Error;
- public abstract DbField<G> get_key (string name) throws Error;
+ public abstract Value? get_value (string name) throws Error;
+ public abstract void set_field (DbField field) throws Error;
+ public abstract void set_field_value (string field, Value? val) throws Error;
+ public abstract DbField get_field (string name) throws Error;
+ public abstract void set_key (DbField field) throws Error;
+ public abstract void set_key_value (string field, Value? val) throws Error;
+ public abstract DbField get_key (string name) throws Error;
public abstract string to_string ();
}
}
diff --git a/libgda/data/DbRecordCollection.vala b/libgda/data/DbRecordCollection.vala
index a8f8e11..8199512 100644
--- a/libgda/data/DbRecordCollection.vala
+++ b/libgda/data/DbRecordCollection.vala
@@ -21,10 +21,10 @@ using Gee;
using Gda;
namespace GdaData {
- public interface DbRecordCollection<G> : Object, Traversable<DbRecord<Value?>>,
- Iterable<DbRecord<Value?>>, Collection<DbRecord<Value?>>
+ public interface DbRecordCollection : Object, Traversable<DbRecord>,
+ Iterable<DbRecord>, Collection<DbRecord>
{
public abstract Connection connection { get; set; }
- public abstract DbTable<G> table { get; }
+ public abstract DbTable table { get; }
}
}
diff --git a/libgda/data/DbSchema.vala b/libgda/data/DbSchema.vala
index 49d10b6..bb56163 100644
--- a/libgda/data/DbSchema.vala
+++ b/libgda/data/DbSchema.vala
@@ -22,8 +22,9 @@ using Gda;
namespace GdaData
{
- public interface DbSchema<G> : DbObject, DbNamedObject
+ public interface DbSchema : DbObject, DbNamedObject
{
- public abstract Collection<DbTable<G>> tables { owned get; }
+ public abstract DbCatalog catalog { get; set; }
+ public abstract Collection<DbTable> tables { owned get; }
}
}
diff --git a/libgda/data/DbTable.vala b/libgda/data/DbTable.vala
index 5db47e8..378c7bd 100644
--- a/libgda/data/DbTable.vala
+++ b/libgda/data/DbTable.vala
@@ -22,12 +22,46 @@ using Gda;
namespace GdaData
{
- public interface DbTable<G> : DbObject, DbNamedObject
+ public interface DbTable : DbObject, DbNamedObject
{
- public abstract DbSchema schema { get; set construct; }
- public abstract Collection<DbRecord<G>> records { owned get; }
- public abstract Collection<DbTable<G>> fk_depends { owned get; }
- public abstract Collection<DbTable<G>> fk { owned get; }
- public abstract Collection<DbFieldInfo<G>> fields { owned get; }
+ public abstract DbCatalog catalog { get; set; }
+ public abstract DbSchema schema { get; set; }
+ public abstract TableType table_type { get; set; }
+ public abstract Collection<DbRecord> records { owned get; }
+ public abstract Collection<DbTable> fk_depends { owned get; }
+ public abstract Collection<DbTable> fk { owned get; }
+ public abstract HashMap<string,DbFieldInfo> fields { get; }
+// public abstract Iterator<DbFieldInfo> pk_fields { get; } // FIXME: Implement
+
+ public enum TableType {
+ NONE,
+ BASE_TABLE,
+ VIEW,
+ LOCAL_TEMPORARY,
+ SYSTEM_TABLE,
+ GLOBAL_TEMPORARY,
+ ALIAS,
+ SYNONYM
+ }
+
+ public static TableType type_from_string (string str)
+ {
+ if (str == "BASE TABLE")
+ return TableType.BASE_TABLE;
+ if (str == "VIEW")
+ return TableType.VIEW;
+ if (str == "LOCAL TEMPORARY")
+ return TableType.LOCAL_TEMPORARY;
+ if (str == "SYSTEM TABLE")
+ return TableType.SYSTEM_TABLE;
+ if (str == "GLOBAL TEMPORARY")
+ return TableType.GLOBAL_TEMPORARY;
+ if (str == "ALIAS")
+ return TableType.ALIAS;
+ if (str == "SYNONYM")
+ return TableType.SYNONYM;
+
+ return TableType.NONE;
+ }
}
}
diff --git a/libgda/data/Field.vala b/libgda/data/Field.vala
index 7ad3555..8b3f0ed 100644
--- a/libgda/data/Field.vala
+++ b/libgda/data/Field.vala
@@ -22,14 +22,14 @@ using Gda;
namespace GdaData
{
- public class Field : Object, DbField<Value?>
+ public class Field : Object, DbField
{
private Value? val;
private string _name;
private string _column_name;
private DbField.Attribute _attributes;
// DbField Interface
- public G @value {
+ public Value? @value {
get { return val; }
set { val = value; }
}
diff --git a/libgda/data/FieldInfo.vala b/libgda/data/FieldInfo.vala
index 7a86476..f0cab47 100644
--- a/libgda/data/FieldInfo.vala
+++ b/libgda/data/FieldInfo.vala
@@ -20,27 +20,35 @@
using Gda;
namespace GdaData {
- public class FieldInfo : Object, DbFieldInfo<Value?>
+ public class FieldInfo : Object, DbFieldInfo
{
- private DbField.Attribute _attr;
- private Value? _default_value;
- private string _name;
+ private DbFieldInfo.Attribute _attr;
+ private Value? _default_value;
+ private string _name;
+ private string _desc;
+ private int _precision = -1;
+ private int _scale = -1;
+ private DbFieldInfo.ForeignKey _fk;
- public DbField.Attribute attributes {
- get { return _attr; }
+ public DbFieldInfo.Attribute attributes {
+ get { return _attr; } set { _attr = value; }
}
public Value? default_value {
get { return _default_value; }
+ set { _default_value = value; }
}
+
public string name {
get { return _name; }
+ set { _name = value; }
}
- FieldInfo (string name, DbField.Attribute attr, Value? default_val)
- {
- _name = name;
- _attr = attr;
- _default_value = default_val;
- }
+
+ public string desc { get { return _desc; } set { _desc = value; } }
+
+ public int precision { get { return _precision; } set { _precision = value; } }
+ public int scale { get { return _scale; } set { _scale = value; } }
+
+ public DbFieldInfo.ForeignKey fkey { get { return _fk; } set { _fk = value.copy (); } }
}
}
diff --git a/libgda/data/GdaData-5.0.gir b/libgda/data/GdaData-5.0.gir
index 77ce059..a26a01f 100644
--- a/libgda/data/GdaData-5.0.gir
+++ b/libgda/data/GdaData-5.0.gir
@@ -29,9 +29,7 @@
<field name="_schemas">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbSchema" c:type="GdaDataDbSchema*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbSchema" c:type="GdaDataDbSchema*"/>
</type>
</field>
<constructor name="new" c:identifier="gda_data_data_base_new">
@@ -46,6 +44,28 @@
</field>
</record>
<record name="DataBasePrivate" c:type="GdaDataDataBasePrivate" disguised="1"/>
+ <class name="Catalog" c:type="GdaDataCatalog" glib:type-name="GdaDataCatalog" glib:get-type="gda_data_catalog_get_type" glib:type-struct="CatalogClass" parent="GObject.Object">
+ <implements name="GdaData.DbObject"/>
+ <implements name="GdaData.DbNamedObject"/>
+ <implements name="GdaData.DbCatalog"/>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="priv">
+ <type name="CatalogPrivate" c:type="GdaDataCatalogPrivate*"/>
+ </field>
+ <constructor name="new" c:identifier="gda_data_catalog_new">
+ <return-value transfer-ownership="full">
+ <type name="GdaData.Catalog" c:type="GdaDataCatalog*"/>
+ </return-value>
+ </constructor>
+ </class>
+ <record name="CatalogClass" c:type="GdaDataCatalogClass" glib:is-gtype-struct-for="Catalog">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="CatalogPrivate" c:type="GdaDataCatalogPrivate" disguised="1"/>
<class name="Schema" c:type="GdaDataSchema" glib:type-name="GdaDataSchema" glib:get-type="gda_data_schema_get_type" glib:type-struct="SchemaClass" parent="GObject.Object">
<implements name="GdaData.DbObject"/>
<implements name="GdaData.DbNamedObject"/>
@@ -59,9 +79,7 @@
<field name="_tables">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</field>
<constructor name="new" c:identifier="gda_data_schema_new">
@@ -86,31 +104,28 @@
<field name="priv">
<type name="TablePrivate" c:type="GdaDataTablePrivate*"/>
</field>
+ <field name="_type">
+ <type name="GdaData.DbTableTableType" c:type="GdaDataDbTableTableType"/>
+ </field>
<field name="_records">
<type name="GdaData.DbRecordCollection" c:type="GdaDataDbRecordCollection*"/>
</field>
<field name="_fields">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*"/>
</type>
</field>
<field name="_fk_depends">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</field>
<field name="_fk">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</field>
<constructor name="with_fields_info" c:identifier="gda_data_table_new_with_fields_info">
@@ -118,9 +133,7 @@
<parameter name="fields" transfer-ownership="none">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*"/>
</type>
</parameter>
</parameters>
@@ -153,17 +166,13 @@
<field name="_fields">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="GObject.Value" c:type="GValue*"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</type>
</field>
<field name="_keys">
<type name="Gee.HashMap" c:type="GeeHashMap*">
<type name="utf8" c:type="gchar*"/>
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="GObject.Value" c:type="GValue*"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</type>
</field>
<constructor name="new" c:identifier="gda_data_record_new">
@@ -192,9 +201,7 @@
<type name="Gda.DataModel" c:type="GdaDataModel*"/>
</parameter>
<parameter name="table" transfer-ownership="none">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="GObject.Value" c:type="GValue*"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -231,9 +238,7 @@
<type name="Gda.DataModelIter" c:type="GdaDataModelIter*"/>
</parameter>
<parameter name="table" transfer-ownership="none">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="GObject.Value" c:type="GValue*"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -283,6 +288,11 @@
<field name="priv">
<type name="FieldInfoPrivate" c:type="GdaDataFieldInfoPrivate*"/>
</field>
+ <constructor name="new" c:identifier="gda_data_field_info_new">
+ <return-value transfer-ownership="full">
+ <type name="GdaData.FieldInfo" c:type="GdaDataFieldInfo*"/>
+ </return-value>
+ </constructor>
</class>
<record name="FieldInfoClass" c:type="GdaDataFieldInfoClass" glib:is-gtype-struct-for="FieldInfo">
<field name="parent_class">
@@ -382,9 +392,7 @@
<prerequisite name="GdaData.DbNamedObject"/>
<property name="schemas">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbSchema" c:type="GdaDataDbSchema*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbSchema" c:type="GdaDataDbSchema*"/>
</type>
</property>
</interface>
@@ -393,38 +401,62 @@
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
</record>
+ <interface name="DbCatalog" c:type="GdaDataDbCatalog" glib:type-name="GdaDataDbCatalog" glib:get-type="gda_data_db_catalog_get_type" glib:type-struct="DbCatalogIface">
+ <prerequisite name="GObject.Object"/>
+ <prerequisite name="GdaData.DbObject"/>
+ <prerequisite name="GdaData.DbNamedObject"/>
+ <property name="shemas" writable="1">
+ <type name="Gee.Collection" c:type="GeeCollection*">
+ <type name="GdaData.DbSchema" c:type="GdaDataDbSchema*"/>
+ </type>
+ </property>
+ </interface>
+ <record name="DbCatalogIface" c:type="GdaDataDbCatalogIface" glib:is-gtype-struct-for="DbCatalog">
+ <field name="parent_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ </record>
<interface name="DbTable" c:type="GdaDataDbTable" glib:type-name="GdaDataDbTable" glib:get-type="gda_data_db_table_get_type" glib:type-struct="DbTableIface">
<prerequisite name="GdaData.DbObject"/>
<prerequisite name="GdaData.DbNamedObject"/>
- <property name="schema" writable="1" construct="1">
+ <function name="type_from_string" c:identifier="gda_data_db_table_type_from_string">
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbTableTableType" c:type="GdaDataDbTableTableType"/>
+ </return-value>
+ </function>
+ <property name="catalog" writable="1">
+ <type name="GdaData.DbCatalog" c:type="GdaDataDbCatalog*"/>
+ </property>
+ <property name="schema" writable="1">
<type name="GdaData.DbSchema" c:type="GdaDataDbSchema*"/>
</property>
+ <property name="table-type" writable="1">
+ <type name="GdaData.DbTableTableType" c:type="GdaDataDbTableTableType"/>
+ </property>
<property name="records">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbRecord" c:type="GdaDataDbRecord*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
</type>
</property>
<property name="fk-depends">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</property>
<property name="fk">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</property>
<property name="fields">
- <type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="Gee.HashMap" c:type="GeeHashMap*">
+ <type name="utf8" c:type="gchar*"/>
+ <type name="GdaData.DbFieldInfo" c:type="GdaDataDbFieldInfo*"/>
</type>
</property>
</interface>
@@ -433,6 +465,16 @@
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
</record>
+ <enumeration name="DbTableTableType" c:type="GdaDataDbTableTableType" glib:type-name="GdaDataDbTableTableType" glib:get-type="gda_data_db_table_table_type_get_type">
+ <member name="none" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_NONE" value="0"/>
+ <member name="base_table" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_BASE_TABLE" value="1"/>
+ <member name="view" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_VIEW" value="2"/>
+ <member name="local_temporary" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_LOCAL_TEMPORARY" value="3"/>
+ <member name="system_table" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_SYSTEM_TABLE" value="4"/>
+ <member name="global_temporary" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_GLOBAL_TEMPORARY" value="5"/>
+ <member name="alias" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_ALIAS" value="6"/>
+ <member name="synonym" c:identifier="GDA_DATA_DB_TABLE_TABLE_TYPE_SYNONYM" value="7"/>
+ </enumeration>
<interface name="DbRecord" c:type="GdaDataDbRecord" glib:type-name="GdaDataDbRecord" glib:get-type="gda_data_db_record_get_type" glib:type-struct="DbRecordIface">
<prerequisite name="GdaData.DbObject"/>
<prerequisite name="Gee.Comparable"/>
@@ -443,7 +485,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</return-value>
</method>
<virtual-method name="get_value" invoker="get_value" throws="1">
@@ -453,15 +495,13 @@
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</return-value>
</virtual-method>
<method name="set_field" c:identifier="gda_data_db_record_set_field" throws="1">
<parameters>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -471,9 +511,7 @@
<virtual-method name="set_field" invoker="set_field" throws="1">
<parameters>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -486,7 +524,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -499,7 +537,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -513,9 +551,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</method>
<virtual-method name="get_field" invoker="get_field" throws="1">
@@ -525,17 +561,13 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</virtual-method>
<method name="set_key" c:identifier="gda_data_db_record_set_key" throws="1">
<parameters>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -545,9 +577,7 @@
<virtual-method name="set_key" invoker="set_key" throws="1">
<parameters>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -560,7 +590,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -573,7 +603,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -587,9 +617,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</method>
<virtual-method name="get_key" invoker="get_key" throws="1">
@@ -599,9 +627,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</virtual-method>
<method name="to_string" c:identifier="gda_data_db_record_to_string">
@@ -615,22 +641,16 @@
</return-value>
</virtual-method>
<property name="table" writable="1" construct="1">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</property>
<property name="fields">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</type>
</property>
<property name="keys">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</type>
</property>
</interface>
@@ -649,7 +669,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</return-value>
</callback>
</field>
@@ -660,9 +680,7 @@
<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
</parameter>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -680,7 +698,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -699,9 +717,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</callback>
</field>
@@ -712,9 +728,7 @@
<type name="GdaData.DbRecord" c:type="GdaDataDbRecord*"/>
</parameter>
<parameter name="field" transfer-ownership="none">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -732,7 +746,7 @@
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="val" transfer-ownership="none" allow-none="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
@@ -751,9 +765,7 @@
</parameter>
</parameters>
<return-value transfer-ownership="full">
- <type name="GdaData.DbField" c:type="GdaDataDbField*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbField" c:type="GdaDataDbField*"/>
</return-value>
</callback>
</field>
@@ -783,7 +795,7 @@
</return-value>
</virtual-method>
<property name="value" writable="1">
- <type name="gpointer" c:type="gpointer"/>
+ <type name="GObject.Value" c:type="GValue*"/>
</property>
<property name="name" writable="1">
<type name="utf8" c:type="gchar*"/>
@@ -827,29 +839,124 @@
</bitfield>
<interface name="DbFieldInfo" c:type="GdaDataDbFieldInfo" glib:type-name="GdaDataDbFieldInfo" glib:get-type="gda_data_db_field_info_get_type" glib:type-struct="DbFieldInfoIface">
<prerequisite name="GObject.Object"/>
- <property name="attributes">
- <type name="GdaData.DbFieldAttribute" c:type="GdaDataDbFieldAttribute"/>
+ <function name="attribute_from_string" c:identifier="gda_data_db_field_info_attribute_from_string">
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbFieldInfoAttribute" c:type="GdaDataDbFieldInfoAttribute"/>
+ </return-value>
+ </function>
+ <property name="attributes" writable="1">
+ <type name="GdaData.DbFieldInfoAttribute" c:type="GdaDataDbFieldInfoAttribute"/>
</property>
- <property name="default-value">
- <type name="gpointer" c:type="gpointer"/>
+ <property name="default-value" writable="1">
+ <type name="GObject.Value" c:type="GValue*"/>
</property>
- <property name="name">
+ <property name="name" writable="1">
<type name="utf8" c:type="gchar*"/>
</property>
+ <property name="desc" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="precision" writable="1">
+ <type name="gint" c:type="gint"/>
+ </property>
+ <property name="scale" writable="1">
+ <type name="gint" c:type="gint"/>
+ </property>
+ <property name="fkey" writable="1">
+ <type name="GdaData.DbFieldInfoForeignKey" c:type="GdaDataDbFieldInfoForeignKey*"/>
+ </property>
</interface>
<record name="DbFieldInfoIface" c:type="GdaDataDbFieldInfoIface" glib:is-gtype-struct-for="DbFieldInfo">
<field name="parent_iface">
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
</record>
+ <enumeration name="DbFieldInfoAttribute" c:type="GdaDataDbFieldInfoAttribute" glib:type-name="GdaDataDbFieldInfoAttribute" glib:get-type="gda_data_db_field_info_attribute_get_type">
+ <member name="none" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_NONE" value="0"/>
+ <member name="primary_key" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_PRIMARY_KEY" value="1"/>
+ <member name="unique" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_UNIQUE" value="2"/>
+ <member name="foreign_key" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_FOREIGN_KEY" value="3"/>
+ <member name="check" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_CHECK" value="4"/>
+ <member name="have_default" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_HAVE_DEFAULT" value="5"/>
+ <member name="is_auto_increment" c:identifier="GDA_DATA_DB_FIELD_INFO_ATTRIBUTE_IS_AUTO_INCREMENT" value="6"/>
+ </enumeration>
+ <record name="DbFieldInfoForeignKey">
+ <field name="name">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="refname">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="reftable">
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
+ </field>
+ <field name="match">
+ <type name="GdaData.DbFieldInfoForeignKeyMatch" c:type="GdaDataDbFieldInfoForeignKeyMatch"/>
+ </field>
+ <field name="update_rule">
+ <type name="GdaData.DbFieldInfoForeignKeyRule" c:type="GdaDataDbFieldInfoForeignKeyRule"/>
+ </field>
+ <field name="delete_rule">
+ <type name="GdaData.DbFieldInfoForeignKeyRule" c:type="GdaDataDbFieldInfoForeignKeyRule"/>
+ </field>
+ <method name="copy" c:identifier="gda_data_db_field_info_foreign_key_copy">
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbFieldInfoForeignKey" c:type="GdaDataDbFieldInfoForeignKey*"/>
+ </return-value>
+ </method>
+ <function name="match_from_string" c:identifier="gda_data_db_field_info_foreign_key_match_from_string">
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbFieldInfoForeignKeyMatch" c:type="GdaDataDbFieldInfoForeignKeyMatch"/>
+ </return-value>
+ </function>
+ <function name="rule_from_string" c:identifier="gda_data_db_field_info_foreign_key_rule_from_string">
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbFieldInfoForeignKeyRule" c:type="GdaDataDbFieldInfoForeignKeyRule"/>
+ </return-value>
+ </function>
+ <constructor name="new" c:identifier="gda_data_db_field_info_foreign_key_new">
+ <return-value transfer-ownership="full">
+ <type name="GdaData.DbFieldInfoForeignKey" c:type="GdaDataDbFieldInfoForeignKey*"/>
+ </return-value>
+ </constructor>
+ </record>
+ <enumeration name="DbFieldInfoForeignKeyMatch" c:type="GdaDataDbFieldInfoForeignKeyMatch" glib:type-name="GdaDataDbFieldInfoForeignKeyMatch" glib:get-type="gda_data_db_field_info_foreign_key_match_get_type">
+ <member name="full" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_FULL" value="0"/>
+ <member name="partial" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_PARTIAL" value="1"/>
+ <member name="none" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_MATCH_NONE" value="2"/>
+ </enumeration>
+ <enumeration name="DbFieldInfoForeignKeyRule" c:type="GdaDataDbFieldInfoForeignKeyRule" glib:type-name="GdaDataDbFieldInfoForeignKeyRule" glib:get-type="gda_data_db_field_info_foreign_key_rule_get_type">
+ <member name="cascade" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_CASCADE" value="0"/>
+ <member name="set_null" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_SET_NULL" value="1"/>
+ <member name="set_default" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_SET_DEFAULT" value="2"/>
+ <member name="restrict" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_RESTRICT" value="3"/>
+ <member name="no_action" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_NO_ACTION" value="4"/>
+ <member name="none" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_NONE" value="5"/>
+ </enumeration>
<interface name="DbSchema" c:type="GdaDataDbSchema" glib:type-name="GdaDataDbSchema" glib:get-type="gda_data_db_schema_get_type" glib:type-struct="DbSchemaIface">
<prerequisite name="GdaData.DbObject"/>
<prerequisite name="GdaData.DbNamedObject"/>
+ <property name="catalog" writable="1">
+ <type name="GdaData.DbCatalog" c:type="GdaDataDbCatalog*"/>
+ </property>
<property name="tables">
<type name="Gee.Collection" c:type="GeeCollection*">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</type>
</property>
</interface>
@@ -867,9 +974,7 @@
<type name="Gda.Connection" c:type="GdaConnection*"/>
</property>
<property name="table">
- <type name="GdaData.DbTable" c:type="GdaDataDbTable*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
+ <type name="GdaData.DbTable" c:type="GdaDataDbTable*"/>
</property>
</interface>
<record name="DbRecordCollectionIface" c:type="GdaDataDbRecordCollectionIface" glib:is-gtype-struct-for="DbRecordCollection">
diff --git a/libgda/data/Makefile.am b/libgda/data/Makefile.am
index 6e77567..eed4001 100644
--- a/libgda/data/Makefile.am
+++ b/libgda/data/Makefile.am
@@ -33,6 +33,7 @@ VALAFLAGS = \
object_persistance_sources = \
DataBase.vala \
+ Catalog.vala \
Schema.vala \
Table.vala \
Record.vala \
@@ -42,6 +43,7 @@ object_persistance_sources = \
db_collection_sources = \
DbObject.vala \
DbCollection.vala \
+ DbCatalog.vala \
DbTable.vala \
DbRecord.vala \
DbField.vala \
diff --git a/libgda/data/Record.vala b/libgda/data/Record.vala
index 66454d9..281e1b9 100644
--- a/libgda/data/Record.vala
+++ b/libgda/data/Record.vala
@@ -22,10 +22,10 @@ using Gee;
namespace GdaData {
- public class Record : Object, DbObject, Comparable<DbRecord<Value?>>, DbRecord<Value?>
+ public class Record : Object, DbObject, Comparable<DbRecord>, DbRecord
{
- protected HashMap<string,DbField<Value?>> _fields = new HashMap<string,DbField<Value?>> ();
- protected HashMap<string,DbField<Value?>> _keys = new HashMap<string,DbField<Value?>> ();
+ protected HashMap<string,DbField> _fields = new HashMap<string,DbField> ();
+ protected HashMap<string,DbField> _keys = new HashMap<string,DbField> ();
/**
* Derived classes must implement this property to set the table used to get data from.
*/
@@ -33,8 +33,8 @@ namespace GdaData {
/**
* Returns a Gee.Collection with the data stored by this object.
*/
- public Collection<DbField<Value?>> fields { owned get { return _fields.values; } }
- public Collection<DbField<Value?>> keys { owned get { return _keys.values; } }
+ public Collection<DbField> fields { owned get { return _fields.values; } }
+ public Collection<DbField> keys { owned get { return _keys.values; } }
/**
* Set the connection to be used to get/set data.
*/
@@ -51,7 +51,7 @@ namespace GdaData {
/**
* Set the value to a field with the given @name.
*/
- public void set_field (DbField<Value?> field) throws Error
+ public void set_field (DbField field) throws Error
{
if (_fields.has_key (field.name)) {
var f = this._fields.get (field.name);
@@ -72,11 +72,11 @@ namespace GdaData {
n.value = val;
this.set_field (n);
}
- public DbField<Value?> get_field (string name) throws Error
+ public DbField get_field (string name) throws Error
{
return _fields.get (name);
}
- public void set_key (DbField<Value?> field)
+ public void set_key (DbField field)
{
if (_keys.has_key (field.name)) {
var f = _keys.get (field.name);
@@ -96,7 +96,7 @@ namespace GdaData {
n.value = val;
this.set_key (n);
}
- public DbField<Value?> get_key (string name) throws Error
+ public DbField get_key (string name) throws Error
{
return _keys.get (name);
}
@@ -112,11 +112,11 @@ namespace GdaData {
throw new DbObjectError.SAVE ("No Keys has been set");
var q = new SqlBuilder (SqlStatementType.UPDATE);
q.set_table (table.name);
- foreach (DbField<Value?> f in fields) {
+ foreach (DbField f in fields) {
q.add_field_value_as_gvalue (f.column_name, f.value);
}
SqlBuilderId cond = -1;
- foreach (DbField<Value?> f in keys) {
+ foreach (DbField f in keys) {
var f_id = q.add_id (f.name);
var e_id = q.add_expr_value (null, f.value);
var c_id = q.add_cond (SqlOperatorType.EQ, f_id, e_id, 0);
@@ -146,7 +146,7 @@ namespace GdaData {
q.select_add_target (table.name, null);
q.select_add_field ("*", null, null);
SqlBuilderId cond = -1;
- foreach (DbField<Value?> f in keys) {
+ foreach (DbField f in keys) {
var f_id = q.add_id (f.name);
var e_id = q.add_expr_value (null, f.value);
var c_id = q.add_cond (SqlOperatorType.EQ, f_id, e_id, 0);
@@ -185,7 +185,7 @@ namespace GdaData {
var sql = new SqlBuilder (SqlStatementType.INSERT);
sql.set_table (table.name);
// FIXME: MetaData is required
- foreach (DbField<Value?> f in _fields.values) {
+ foreach (DbField f in _fields.values) {
sql.add_field_value_as_gvalue (f.column_name, f.value);
}
// stdout.printf ("DEBUG: INSERT statement to execute: \n"+
@@ -201,11 +201,11 @@ namespace GdaData {
public string to_string ()
{
string r = "";
- foreach (DbField<Value?> f in this.fields) {
+ foreach (DbField f in this.fields) {
r += "|" + f.name;
}
r+="\n";
- foreach (DbField<Value?> f in this.fields) {
+ foreach (DbField f in this.fields) {
r += "|" + Gda.value_stringify (f.value);
}
return r;
@@ -216,10 +216,10 @@ namespace GdaData {
*
* @Returns: 0 if keys are equal or -1 if they are different.
*/
- public int compare_to (DbRecord<Value?> object)
+ public int compare_to (DbRecord object)
{
int r = 0;
- foreach (DbField<Value?> f in fields) {
+ foreach (DbField f in fields) {
var fl = object.get_field (f.name);
if (Gda.value_compare (f.value, fl.value) != 0)
return -1;
diff --git a/libgda/data/RecordCollection.vala b/libgda/data/RecordCollection.vala
index 7df04c4..749bd98 100644
--- a/libgda/data/RecordCollection.vala
+++ b/libgda/data/RecordCollection.vala
@@ -21,28 +21,28 @@ using Gee;
using Gda;
namespace GdaData {
- public class RecordCollection : AbstractCollection<DbRecord<Value?>>, DbRecordCollection<Value?>
+ public class RecordCollection : AbstractCollection<DbRecord>, DbRecordCollection
{
private DataModel _model;
- private DbTable<Value?> _table;
+ private DbTable _table;
- public DbTable<Value?> table { get { return table; } }
+ public DbTable table { get { return table; } }
- public DataModel model { get { return _model; } }
+ public DataModel model { get { return _model; } }
public Connection connection { get; set; }
- public RecordCollection (DataModel m, DbTable<Value?> table)
+ public RecordCollection (DataModel m, DbTable table)
{
_model = m;
_table = table;
}
// AbstractCollection Implementation
- public override bool add (DbRecord<Value?> item)
+ public override bool add (DbRecord item)
{
try {
int r = _model.append_row ();
- foreach (DbField<Value?> f in item.fields) {
+ foreach (DbField f in item.fields) {
_model.set_value_at (_model.get_column_index (f.name), r, f.value);
}
return true;
@@ -57,12 +57,12 @@ namespace GdaData {
}
((DataProxy) _model).apply_all_changes ();
}
- public override bool contains (DbRecord<Value?> item)
+ public override bool contains (DbRecord item)
{
var iter = _model.create_iter ();
while (iter.move_next ()) {
bool found = true;
- foreach (DbField<Value?> k in item.keys) {
+ foreach (DbField k in item.keys) {
Value id = iter.get_value_at (iter.data_model.get_column_index (k.name));
Value v = k.value;
if (Gda.value_compare (id,v) != 0)
@@ -72,17 +72,17 @@ namespace GdaData {
}
return false;
}
- public override Gee.Iterator<DbRecord<Value?>> iterator ()
+ public override Gee.Iterator<DbRecord> iterator ()
{
var iter = _model.create_iter ();
return new RecordCollectionIterator (iter, _table);
}
- public override bool remove (DbRecord<Value?> item)
+ public override bool remove (DbRecord item)
{
var iter = _model.create_iter ();
while (iter.move_next ()) {
bool found = true;
- foreach (DbField<Value?> k in item.keys) {
+ foreach (DbField k in item.keys) {
Value id = iter.get_value_at (iter.data_model.get_column_index (k.name));
Value v = k.value;
if (Gda.value_compare (id,v) != 0)
@@ -115,15 +115,15 @@ namespace GdaData {
}
}
// Traversable Interface
- public override Iterator<DbRecord<Value?>> chop (int offset, int length = -1)
+ public override Iterator<DbRecord> chop (int offset, int length = -1)
{
return this.iterator().chop (offset, length);
}
- public override Gee.Iterator<DbRecord<Value?>> filter (owned Gee.Predicate<DbRecord<Value?>> f)
+ public override Gee.Iterator<DbRecord> filter (owned Gee.Predicate<DbRecord<Value?>> f)
{
return this.iterator().filter (f);
}
- public override Iterator<A> stream<A> (owned StreamFunc<DbRecord<Value?>, A> f)
+ public override Iterator<A> stream<A> (owned StreamFunc<DbRecord, A> f)
{
return this.iterator().stream<A> (f);
}
@@ -134,23 +134,23 @@ namespace GdaData {
}
}
- public class RecordCollectionIterator : Object, Traversable<DbRecord<Value?>>, Iterator<DbRecord<Value?>>
+ public class RecordCollectionIterator : Object, Traversable<DbRecord>, Iterator<DbRecord>
{
private DataModelIter _iter;
- private DbTable<Value?> _table;
+ private DbTable _table;
private int _length = -1;
private int init_row = -1;
private HashMap<int,int> _elements;
private int filter_pos = -1;
- public RecordCollectionIterator (DataModelIter iter, DbTable<Value?> table)
+ public RecordCollectionIterator (DataModelIter iter, DbTable table)
{
_iter = iter;
_table = table;
_elements = new HashMap<int,int>();
}
- private RecordCollectionIterator.filtered (DataModelIter iter, DbTable<Value?> table,
+ private RecordCollectionIterator.filtered (DataModelIter iter, DbTable table,
int init, int offset, int length,
HashMap<int,int> elements, int filter_pos)
{
@@ -177,13 +177,13 @@ namespace GdaData {
}
// Traversable Interface
- public Gee.Iterator<DbRecord<Value?>> chop (int offset, int length = -1)
+ public Gee.Iterator<DbRecord> chop (int offset, int length = -1)
{
var iter = _iter.data_model.create_iter ();
return new RecordCollectionIterator.filtered (iter, _table, _iter.current_row,
offset, length, _elements, filter_pos);
}
- public Gee.Iterator<DbRecord<Value?>> filter (owned Gee.Predicate<DbRecord<Value?>> f)
+ public Gee.Iterator<DbRecord> filter (owned Gee.Predicate<DbRecord> f)
{
var elements = new Gee.HashMap <int,int> ();
int pos = -1;
@@ -196,20 +196,20 @@ namespace GdaData {
var iter = _iter.data_model.create_iter ();
return new RecordCollectionIterator.filtered (iter, _table, -1, 0, -1, elements, -1);
}
- public new void @foreach (Gee.ForallFunc<DbRecord<Value?>> f)
+ public new void @foreach (Gee.ForallFunc<DbRecord> f)
{
while (this.next ()) {
var r = this.get ();
f(r);
}
}
- public Gee.Iterator<A> stream<A> (owned Gee.StreamFunc<DbRecord<Value?>,A> f)
+ public Gee.Iterator<A> stream<A> (owned Gee.StreamFunc<DbRecord,A> f)
{
- return stream_impl<DbRecord<Value?>, A> (this, f);
+ return stream_impl<DbRecord, A> (this, f);
}
// Iterator Interface
- public new DbRecord<Value?> @get ()
+ public new DbRecord @get ()
{
var r = new Record ();
r.connection = _table.connection;
diff --git a/libgda/data/Schema.vala b/libgda/data/Schema.vala
index 4fd3b56..fca1b8b 100644
--- a/libgda/data/Schema.vala
+++ b/libgda/data/Schema.vala
@@ -22,9 +22,9 @@ using Gda;
namespace GdaData
{
- public class Schema : Object, DbObject, DbNamedObject, DbSchema<Value?>
+ public class Schema : Object, DbObject, DbNamedObject, DbSchema
{
- public HashMap<string,DbTable<Value?>> _tables = new HashMap<string,DbTable<Value?>> ();
+ public HashMap<string,DbTable> _tables = new HashMap<string,DbTable> ();
// DbObject Interface
public Connection connection { get; set; }
public void update () throws Error
@@ -40,8 +40,10 @@ namespace GdaData
var t = new Table ();
t.connection = connection;
t.name = (string) mt.get_value_at (mt.get_column_index ("table_name"), r);
- t.schema = (DbSchema) this;
- tables.set (t.name, (DbTable) t);
+ t.table_type =
+ DbTable.type_from_string((string) mt.get_value_at (mt.get_column_index ("table_type"), r));
+ t.schema = this;
+ tables.set (t.name, t);
}
}
public void save () throws Error {}
@@ -49,6 +51,7 @@ namespace GdaData
// DbNamedObject Interface
public string name { get; set; }
// DbSchema Interface
+ public DbCatalog catalog { get; set; }
public Collection<DbTable> tables { owned get { return _tables.values; } }
}
}
diff --git a/libgda/data/Table.vala b/libgda/data/Table.vala
index 66053b2..b92da4a 100644
--- a/libgda/data/Table.vala
+++ b/libgda/data/Table.vala
@@ -22,33 +22,142 @@ using Gda;
namespace GdaData
{
- public class Table : Object, DbObject, DbNamedObject, DbTable<Value?>
+ public class Table : Object, DbObject, DbNamedObject, DbTable
{
- protected DbRecordCollection _records;
- protected HashMap<string,DbFieldInfo<Value?>> _fields = new HashMap<string,DbFieldInfo<Value?>> ();
- protected HashMap<string,DbTable<Value?>> _fk_depends = new HashMap<string,DbTable<Value?>> ();
- protected HashMap<string,DbTable<Value?>> _fk = new HashMap<string,DbTable<Value?>> ();
+ protected DbTable.TableType _type;
+ protected DbRecordCollection _records;
+ protected HashMap<string,DbFieldInfo> _fields = new HashMap<string,DbFieldInfo> ();
+ protected HashMap<string,DbTable> _fk_depends = new HashMap<string,DbTable> ();
+ protected HashMap<string,DbTable> _fk = new HashMap<string,DbTable> ();
- public Table.with_fields_info (HashMap<string,DbFieldInfo<Value?>> fields)
+ public Table.with_fields_info (HashMap<string,DbFieldInfo> fields)
{
- foreach (DbFieldInfo<Value?> f in fields.values) {
+ foreach (DbFieldInfo f in fields.values) {
_fields.set (f.name, f);
}
}
// DbObject Interface
public Connection connection { get; set; }
- public void update () throws Error {}
+ public void update () throws Error
+ {
+ var store = connection.get_meta_store ();
+ _fields.clear ();
+ var vals = new HashTable<string,Value?> (str_hash,str_equal);
+ vals.set ("name", name);
+ vals.set ("schema", schema.name);
+ vals.set ("catalog", schema.catalog.name);
+ var mt = store.extract_v ("SELECT * FROM _columns WHERE table_schema = ##schema::string AND table_catalog = ##catalog::string AND table_name = ##name::string", vals);
+ for (int r = 0; r < mt.get_n_columns (); r++)
+ {
+ var fi = new FieldInfo ();
+ string fname = (string) mt.get_value_at (mt.get_column_index ("column_name"), r);
+ Type ft = (Type) mt.get_value_at (mt.get_column_index ("gtype"), r);
+ DbFieldInfo.Attribute attr = DbFieldInfo.Attribute.NONE;
+ bool fcbn = (bool) mt.get_value_at (mt.get_column_index ("is_nullable"), r);
+ if (fcbn)
+ attr = attr & DbField.Attribute.CAN_BE_NULL;
+ string fdv = (string) mt.get_value_at (mt.get_column_index ("column_default"), r);
+ if (fdv != null) {
+ attr = attr & DbField.Attribute.CAN_BE_DEFAULT;
+ //Value? dv = Gda.value_new_from_string (fdv, ft);
+ }
+ string fai = (string) mt.get_value_at (mt.get_column_index ("extras"), r);
+ bool fai_b = false;
+ if (fai == "AUTO_INCREMENT")
+ fai_b = true;
+ attr = attr & DbFieldInfo.Attribute.IS_AUTO_INCREMENT;
+ if (ft == typeof (Gda.Numeric)) {
+ int fp = (int) mt.get_value_at (mt.get_column_index ("numeric_precision"), r);
+ int fs = (int) mt.get_value_at (mt.get_column_index ("numeric_scale"), r);
+// fi.name = fname;
+// fi.attribute = attr;
+// fi.precision = fp;
+// fi.scale = fs;
+ }
+ if (ft == typeof (Date)) {
+ int fp = (int) mt.get_value_at (mt.get_column_index ("numeric_precision"), r);
+// fi
+ }
+ _fields.set (fi.name, fi);
+ }
+ // Constraints
+ var mc = store.extract_v ("SELECT * FROM _table_constraints WHERE table_schema = ##schema::string AND table_catalog = ##catalog::string AND table_name = ##name::string", vals);
+ for (int r = 0; r < mc.get_n_columns (); r++)
+ {
+ string ct = (string) mc.get_value_at (mc.get_column_index ("constraint_type"), r);
+ string cn = (string) mc.get_value_at (mc.get_column_index ("constraint_name"), r);
+ var vals2 = new HashTable<string,Value?> (str_hash,str_equal);
+ vals2.set ("name", name);
+ vals2.set ("schema", schema);
+ vals2.set ("catalog", schema.catalog.name);
+ vals2.set ("constraint_name", cn);
+ var mpk = store.extract_v ("SELECT * FROM _key_column_usage WHERE table_schema = ##schema::string AND table_catalog = ##catalog::string AND table_name = ##name::string AND constraint_name = ##constraint", vals2);
+ var colname = (string) mpk.get_value_at (mpk.get_column_index ("column_name"), r);
+
+ var f = _fields.get (colname);
+ f.attributes = f.attributes & DbFieldInfo.attribute_from_string (ct);
+
+ if (DbFieldInfo.Attribute.FOREIGN_KEY in f.attributes)
+ {
+ f.attributes = f.attributes & DbFieldInfo.Attribute.FOREIGN_KEY;
+ var mfk = store.extract_v ("SELECT * FROM _referential_constraints WHERE table_schema = ##schema::string AND table_catalog = ##catalog::string AND table_name = ##name::string AND constraint_name = ##constraint", vals2);
+ f.fkey = new DbFieldInfo.ForeignKey ();
+ f.fkey.name = cn;
+ f.fkey.refname = (string) mfk.get_value_at (mfk.get_column_index ("ref_constraint_name"), 0);
+ f.fkey.reftable = new Table ();
+ f.fkey.reftable.connection = connection;
+ f.fkey.reftable.name = (string) mfk.get_value_at (
+ mfk.get_column_index ("ref_table_name"), 0);
+ f.fkey.reftable.catalog = new Catalog ();
+ f.fkey.reftable.catalog.connection = connection;
+ f.fkey.reftable.catalog.name = (string) mfk.get_value_at (
+ mfk.get_column_index ("ref_table_catalog"), 0);
+ f.fkey.reftable.schema = new Schema ();
+ f.fkey.reftable.schema.connection = connection;
+ f.fkey.reftable.schema.name = (string) mfk.get_value_at (
+ mfk.get_column_index ("ref_table_schema"), 0);
+ var match = (string) mfk.get_value_at (
+ mfk.get_column_index ("match_option"), 0);
+ f.fkey.match = DbFieldInfo.ForeignKey.match_from_string (match);
+
+ var update_rule = (string) mfk.get_value_at (
+ mfk.get_column_index ("update_rule"), 0);
+ f.fkey.update_rule = DbFieldInfo.ForeignKey.rule_from_string (update_rule);
+ var delete_rule = (string) mfk.get_value_at (
+ mfk.get_column_index ("delete_rule"), 0);
+ f.fkey.delete_rule = DbFieldInfo.ForeignKey.rule_from_string (delete_rule);
+ }
+ if (DbFieldInfo.Attribute.CHECK in f.attributes)
+ {
+
+ }
+ }
+ }
public void save () throws Error {}
public void append () throws Error {}
// DbNamedObject Interface
public string name { get; set; }
// DbTable Interface
- public Collection<DbFieldInfo<Value?>> fields {
- owned get { return _fields.values; }
+ public DbTable.TableType table_type { get { return _type; } set { _type = value; } }
+ public HashMap<string,DbFieldInfo> fields {
+ get { return _fields; }
}
- public DbSchema schema { get; set construct; }
- public Collection<DbRecord<Value?>> records {
+ // FIXME: Implement
+// public Iterator<DbFieldInfo> pk_fields {
+// get {
+// return _fields.filter (
+// (g) => {
+// if (DbFieldInfo.Attribute.PRIMARY_KEY in g.value.attributes)
+// return true;
+// return false;
+// }
+// );
+// }
+// }
+ public DbCatalog catalog { get; set; }
+ public DbSchema schema { get; set; }
+ public Collection<DbRecord> records {
owned get {
var q = new Gda.SqlBuilder (SqlStatementType.SELECT);
q.set_table (name);
@@ -59,7 +168,7 @@ namespace GdaData
return _records;
}
}
- public Collection<DbTable<Value?>> fk_depends { owned get { return _fk_depends.values; } }
- public Collection<DbTable<Value?>> fk { owned get { return _fk.values; } }
+ public Collection<DbTable> fk_depends { owned get { return _fk_depends.values; } }
+ public Collection<DbTable> fk { owned get { return _fk.values; } }
}
}
diff --git a/libgda/libgda-5.0.vapi b/libgda/libgda-5.0.vapi
index 37234ce..fc60ff8 100644
--- a/libgda/libgda-5.0.vapi
+++ b/libgda/libgda-5.0.vapi
@@ -149,7 +149,7 @@ namespace Gda {
public unowned Gda.ServerProvider get_provider ();
public unowned string get_provider_name ();
public unowned Gda.TransactionStatus get_transaction_status ();
- public bool insert_row_into_table_v (string table, GLib.SList<string> col_names, GLib.SList<GLib.Value?> values) throws GLib.Error;
+ public bool insert_row_into_table_v (string table, GLib.SList<string> col_names, GLib.SList<GLib.Value> values) throws GLib.Error;
public bool is_opened ();
public bool open () throws GLib.Error;
public static Gda.Connection open_from_dsn (string dsn, string? auth_string, Gda.ConnectionOptions options) throws GLib.Error;
@@ -171,7 +171,7 @@ namespace Gda {
public static void string_split (string string, string out_cnc_params, string out_provider, string out_username, string out_password);
public bool supports_feature (Gda.ConnectionFeature feature);
public bool update_meta_store (Gda.MetaContext? context) throws GLib.Error;
- public bool update_row_in_table_v (string table, string condition_column_name, GLib.Value condition_value, GLib.SList<string> col_names, GLib.SList<GLib.Value?> values) throws GLib.Error;
+ public bool update_row_in_table_v (string table, string condition_column_name, GLib.Value condition_value, GLib.SList<string> col_names, GLib.SList<GLib.Value> values) throws GLib.Error;
public string value_to_sql_string (GLib.Value from);
[NoAccessorMethod]
public string auth_string { owned get; set; }
@@ -330,10 +330,10 @@ namespace Gda {
[NoAccessorMethod]
public Gda.DataModel model { owned get; set; }
}
- [CCode (cheader_filename = "libgda/libgda.h")]
- public class DataProxy : GLib.Object, Gda.DataModel, Gda.DataModel {
- [CCode (has_construct_function = false, type = "GObject*")]
- public DataProxy (Gda.DataModel model);
+ [CCode (cheader_filename = "libgda/libgda.h", type_id = "gda_data_proxy_get_type ()")]
+ public class DataProxy : GLib.Object, Gda.DataModel {
+ [CCode (has_construct_function = false)]
+ protected DataProxy ();
public void alter_value_attributes (int proxy_row, int col, Gda.ValueAttribute alter_flags);
public bool apply_all_changes () throws GLib.Error;
public bool apply_row_changes (int proxy_row) throws GLib.Error;
@@ -353,10 +353,9 @@ namespace Gda {
public int get_sample_size ();
public int get_sample_start ();
public Gda.ValueAttribute get_value_attributes (int proxy_row, int col);
- public GLib.SList<weak GLib.Value?> get_values (int proxy_row, [CCode (array_length = false)] int[] cols_index, int n_cols);
+ public GLib.SList<weak GLib.Value> get_values (int proxy_row, [CCode (array_length = false)] int[] cols_index, int n_cols);
public bool has_changed ();
public bool is_read_only ();
- [CCode (cname = "gda_data_proxy_new")]
public static GLib.Object @new (Gda.DataModel model);
public bool row_has_changed (int proxy_row);
public bool row_is_deleted (int proxy_row);
@@ -572,7 +571,7 @@ namespace Gda {
public Gda.DataModel create_modify_data_model (string table_name);
public bool declare_foreign_key (Gda.MetaStruct? mstruct, string fk_name, string? catalog, string? schema, string table, string? ref_catalog, string? ref_schema, string ref_table, [CCode (array_length_cname = "nb_cols", array_length_pos = 8.5, array_length_type = "guint")] string[] colnames, [CCode (array_length_cname = "nb_cols", array_length_pos = 8.5, array_length_type = "guint")] string[] ref_colnames) throws GLib.Error;
public static GLib.Quark error_quark ();
- public Gda.DataModel extract_v (string select_sql, GLib.HashTable<string,GLib.Value?>? vars) throws GLib.Error;
+ public Gda.DataModel extract_v (string select_sql, GLib.HashTable<string,GLib.Value>? vars) throws GLib.Error;
public bool get_attribute_value (string att_name, out string att_value) throws GLib.Error;
public unowned Gda.Connection get_internal_connection ();
public int get_version ();
@@ -1244,22 +1243,22 @@ namespace Gda {
public bool trylock ();
public void unlock ();
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct DataMetaWrapper {
public weak GLib.Object object;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct DataMetaWrapperClass {
public weak GLib.ObjectClass parent_class;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct Diff {
public Gda.DiffType type;
public int old_row;
public int new_row;
public weak GLib.HashTable<void*,void*> values;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct DsnInfo {
public weak string name;
public weak string provider;
@@ -1268,7 +1267,7 @@ namespace Gda {
public weak string auth_string;
public bool is_system;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaContext {
public weak string table_name;
public int size;
@@ -1277,7 +1276,7 @@ namespace Gda {
[CCode (array_length_cname = "size")]
public weak GLib.Value[] column_values;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaDbObject {
public Gda.MetaDbObjectType obj_type;
public bool outdated;
@@ -1293,13 +1292,13 @@ namespace Gda {
[CCode (cname = "extra.meta_view")]
public Gda.MetaView extra_meta_view;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaStoreChange {
public Gda.MetaStoreChangeType c_type;
public weak string table_name;
public weak GLib.HashTable<void*,void*> keys;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaTable {
public GLib.List<Gda.MetaTableColumn> columns;
public int pk_cols_array;
@@ -1307,7 +1306,7 @@ namespace Gda {
public GLib.List<Gda.MetaTableForeignKey> reverse_fk_list;
public GLib.List<Gda.MetaTableForeignKey> fk_list;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaTableColumn {
public weak string column_name;
public weak string column_type;
@@ -1319,7 +1318,7 @@ namespace Gda {
public GLib.Value get_attribute (string attribute);
public void set_attribute (string attribute, GLib.Value? value, GLib.DestroyNotify? destroy);
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaTableForeignKey {
public Gda.MetaDbObject meta_table;
public Gda.MetaDbObject depend_on;
@@ -1330,13 +1329,13 @@ namespace Gda {
public weak string ref_pk_names_array;
public weak string fk_name;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct MetaView {
public Gda.MetaTable table;
public weak string view_def;
public bool is_updatable;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct ProviderInfo {
public weak string id;
public weak string location;
@@ -1344,24 +1343,24 @@ namespace Gda {
public weak Gda.Set dsn_params;
public weak Gda.Set auth_params;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct ServerProviderHandlerInfo {
public weak Gda.Connection cnc;
public GLib.Type g_type;
public weak string dbms_type;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct SetGroup {
public GLib.List<Gda.SetNode> nodes;
public Gda.SetSource nodes_source;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct SetNode {
public weak Gda.Holder holder;
public weak Gda.DataModel source_model;
public int source_column;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct SetSource {
public weak Gda.DataModel data_model;
public GLib.List<Gda.SetNode> nodes;
@@ -1370,7 +1369,7 @@ namespace Gda {
[SimpleType]
public struct SqlBuilderId : uint {
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct SqlRenderingContext {
public Gda.StatementSqlFlag flags;
public weak Gda.Set @params;
@@ -1379,12 +1378,12 @@ namespace Gda {
public weak Gda.Connection cnc;
public weak Gda.SqlRenderingValue render_value;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct ThreadNotification {
public Gda.ThreadNotificationType type;
public uint job_id;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct TransactionStatusEvent {
public weak Gda.TransactionStatus trans;
public Gda.TransactionStatusEventType type;
@@ -1396,7 +1395,7 @@ namespace Gda {
[CCode (cname = "pl.sub_trans")]
public weak Gda.TransactionStatus pl_sub_trans;
}
- [CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h")]
public struct XaTransactionId {
public uint32 format;
public ushort gtrid_length;
@@ -1405,7 +1404,7 @@ namespace Gda {
public weak char[] data;
public string to_string ();
}
- [CCode (cheader_filename = "libgda/libgda.h", cname = "_GdaServerOperationNode", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h", cname = "_GdaServerOperationNode")]
public struct _ServerOperationNode {
public Gda.ServerOperationNodeType type;
public Gda.ServerOperationNodeStatus status;
@@ -1414,7 +1413,7 @@ namespace Gda {
public weak Gda.Column column;
public weak Gda.Holder param;
}
- [CCode (cheader_filename = "libgda/libgda.h", cname = "_GdaSqlParserIface", has_type_id = false)]
+ [CCode (cheader_filename = "libgda/libgda.h", cname = "_GdaSqlParserIface")]
public struct _SqlParserIface {
public weak Gda.SqlParser parser;
public weak Gda.SqlStatement parsed_statement;
diff --git a/tests/vala/CheckDataModelIterator.vala b/tests/vala/CheckDataModelIterator.vala
index 143b45d..44f575e 100644
--- a/tests/vala/CheckDataModelIterator.vala
+++ b/tests/vala/CheckDataModelIterator.vala
@@ -76,7 +76,7 @@ namespace Check {
stdout.printf ("+++++ PASS\n");
stdout.printf ("Iterating using foreach instruction...\n");
i = 0;
- foreach (DbRecord<Value?> r in itermodel) {
+ foreach (DbRecord r in itermodel) {
string t = r.to_string ();
if (t == null) {
fails++;
@@ -188,7 +188,7 @@ namespace Check {
var iter = itermodel.filter (
(g) => {
bool ret = false;
- foreach (DbField<Value?> fl in g.fields) {
+ foreach (DbField fl in g.fields) {
string t = Gda.value_stringify (fl.value);
stdout.printf ("Value to check: " + t);
if (t.contains ("J")) {
@@ -227,7 +227,7 @@ namespace Check {
(state, g, out lazy) => {
if (state == Gee.Traversable.Stream.CONTINUE) {
var r = g.value;
- foreach (DbField<Value?> f in r.fields) {
+ foreach (DbField f in r.fields) {
if (f.value.type () == typeof (string)) {
stdout.printf ("Value to YIELD: %s\n", Gda.value_stringify (f.value));
string ts = "YIELDED Value = " + Gda.value_stringify (f.value) + "\n";
diff --git a/tests/vala/CheckDataObject.vala b/tests/vala/CheckDataObject.vala
index 9b251f0..aa81858 100644
--- a/tests/vala/CheckDataObject.vala
+++ b/tests/vala/CheckDataObject.vala
@@ -75,11 +75,11 @@ namespace Check {
try {
k.value = 1;
r.set_key (k);
- foreach (DbField<Value?> kv in r.keys) {
+ foreach (DbField kv in r.keys) {
stdout.printf ("KEY: " + kv.name + " VALUE: " + Gda.value_stringify(kv.value) + "\n");
}
r.update ();
- foreach (DbField<Value?> kv in r.fields) {
+ foreach (DbField kv in r.fields) {
stdout.printf ("FIELD: " + kv.name + " VALUE: " + Gda.value_stringify(kv.value) + "\n");
}
stdout.printf("PASS\n");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]