[libgda] Generic improvements on GdaData classes. Added tests/vala/testdb.py.
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Generic improvements on GdaData classes. Added tests/vala/testdb.py.
- Date: Mon, 27 Feb 2012 05:27:37 +0000 (UTC)
commit 6f10f395a5de2f76a87765ea99ffd42074b12dec
Author: Daniel Espinosa <despinosa src gnome org>
Date: Sun Feb 26 17:12:54 2012 -0600
Generic improvements on GdaData classes. Added tests/vala/testdb.py.
libgda/data/DbCollection.vala | 2 +-
libgda/data/DbObject.vala | 6 ++++--
libgda/data/DbRecord.vala | 2 +-
libgda/data/DbSchema.vala | 2 +-
libgda/data/GdaData-5.0.gir | 5 +++++
libgda/data/Makefile.am | 1 +
libgda/data/RecordCollection.vala | 11 +++++++----
samples/vala/Makefile | 5 ++++-
tests/vala/Makefile.am | 1 +
tests/vala/testdb.py | 27 +++++++++++++++++++++++++++
10 files changed, 52 insertions(+), 10 deletions(-)
---
diff --git a/libgda/data/DbCollection.vala b/libgda/data/DbCollection.vala
index 0593ba6..8ad651e 100644
--- a/libgda/data/DbCollection.vala
+++ b/libgda/data/DbCollection.vala
@@ -22,7 +22,7 @@ using Gda;
namespace GdaData
{
- public interface DbCollection : DbNamedObject
+ public interface DbCollection : Object, DbObject, DbNamedObject
{
public abstract Collection<DbSchema> schemas { owned get; }
}
diff --git a/libgda/data/DbObject.vala b/libgda/data/DbObject.vala
index 2ecd75b..4538f22 100644
--- a/libgda/data/DbObject.vala
+++ b/libgda/data/DbObject.vala
@@ -21,14 +21,16 @@ using Gee;
using Gda;
namespace GdaData {
- public interface DbObject : Object {
+ public interface DbObject : Object
+ {
public abstract Connection connection { get; set; }
public abstract void append () throws Error;
public abstract void update () throws Error;
public abstract void save () throws Error;
}
- public interface DbNamedObject : DbObject {
+ public interface DbNamedObject : Object, DbObject
+ {
public abstract string name { get; set; }
}
diff --git a/libgda/data/DbRecord.vala b/libgda/data/DbRecord.vala
index 7bab84c..4fea153 100644
--- a/libgda/data/DbRecord.vala
+++ b/libgda/data/DbRecord.vala
@@ -22,7 +22,7 @@ using Gda;
namespace GdaData
{
- public interface DbRecord : DbObject, Comparable<DbRecord>
+ public interface DbRecord : Object, DbObject, Comparable<DbRecord>
{
public abstract DbTable table { get; set construct; }
public abstract Collection<DbField> fields { owned get; }
diff --git a/libgda/data/DbSchema.vala b/libgda/data/DbSchema.vala
index bb56163..c69f044 100644
--- a/libgda/data/DbSchema.vala
+++ b/libgda/data/DbSchema.vala
@@ -22,7 +22,7 @@ using Gda;
namespace GdaData
{
- public interface DbSchema : DbObject, DbNamedObject
+ public interface DbSchema : Object, DbObject, DbNamedObject
{
public abstract DbCatalog catalog { get; set; }
public abstract Collection<DbTable> tables { owned get; }
diff --git a/libgda/data/GdaData-5.0.gir b/libgda/data/GdaData-5.0.gir
index c8a5bd0..2223542 100644
--- a/libgda/data/GdaData-5.0.gir
+++ b/libgda/data/GdaData-5.0.gir
@@ -398,6 +398,7 @@
</field>
</record>
<interface name="DbNamedObject" c:type="GdaDataDbNamedObject" glib:type-name="GdaDataDbNamedObject" glib:get-type="gda_data_db_named_object_get_type" glib:type-struct="DbNamedObjectIface">
+ <prerequisite name="GObject.Object"/>
<prerequisite name="GdaData.DbObject"/>
<property name="name" writable="1">
<type name="utf8" c:type="gchar*"/>
@@ -409,6 +410,8 @@
</field>
</record>
<interface name="DbCollection" c:type="GdaDataDbCollection" glib:type-name="GdaDataDbCollection" glib:get-type="gda_data_db_collection_get_type" glib:type-struct="DbCollectionIface">
+ <prerequisite name="GObject.Object"/>
+ <prerequisite name="GdaData.DbObject"/>
<prerequisite name="GdaData.DbNamedObject"/>
<property name="schemas">
<type name="Gee.Collection" c:type="GeeCollection*">
@@ -501,6 +504,7 @@
<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="GObject.Object"/>
<prerequisite name="GdaData.DbObject"/>
<prerequisite name="Gee.Comparable"/>
<method name="get_value" c:identifier="gda_data_db_record_get_value" throws="1">
@@ -1004,6 +1008,7 @@
<member name="no_action" c:identifier="GDA_DATA_DB_FIELD_INFO_FOREIGN_KEY_RULE_NO_ACTION" 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="GObject.Object"/>
<prerequisite name="GdaData.DbObject"/>
<prerequisite name="GdaData.DbNamedObject"/>
<property name="catalog" writable="1">
diff --git a/libgda/data/Makefile.am b/libgda/data/Makefile.am
index eed4001..14eb3ac 100644
--- a/libgda/data/Makefile.am
+++ b/libgda/data/Makefile.am
@@ -25,6 +25,7 @@ lib_LTLIBRARIES = libgdadata-5.0.la
VALAFLAGS = \
--vapidir=$(top_srcdir)/libgda \
+ --vapidir=$(VAPIDIR) \
--includedir=$(top_srcdir)/libgda \
--pkg libxml-2.0 \
--pkg gee-0.8 \
diff --git a/libgda/data/RecordCollection.vala b/libgda/data/RecordCollection.vala
index 01a3c42..feacf4e 100644
--- a/libgda/data/RecordCollection.vala
+++ b/libgda/data/RecordCollection.vala
@@ -63,21 +63,24 @@ namespace GdaData {
}
public override bool contains (DbRecord item)
{
+ bool found = true;
try {
var iter = _model.create_iter ();
while (iter.move_next ()) {
- bool found = true;
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)
found = false;
}
- if (found) return true;
+ if (found) break;
}
}
- catch (Error e) { GLib.warning (e.message); }
- return false;
+ catch (Error e) {
+ GLib.warning (e.message);
+ found = false;
+ }
+ return found;
}
public override Gee.Iterator<DbRecord> iterator ()
{
diff --git a/samples/vala/Makefile b/samples/vala/Makefile
index 351a53f..2211d1d 100644
--- a/samples/vala/Makefile
+++ b/samples/vala/Makefile
@@ -6,7 +6,10 @@ CFLAGS = \
LDFLAGS = `pkg-config --libs libgdadata-5.0`
-VALAFLAGS = -g --save-temps --pkg libgda-5.0 --pkg gdadata-5.0 --pkg gee-0.8 --pkg libxml-2.0
+VALA_DATADIR=`pkg-config $VALA_MODULES --variable=datadir`
+VAPIDIR="$VALA_DATADIR/vala/vapi"
+
+VALAFLAGS = -g --save-temps --vapidir=$(VAPIDIR) --pkg libgda-5.0 --pkg gdadata-5.0 --pkg gee-0.8 --pkg libxml-2.0
all: sampledataobject sampledatamodeliterable
diff --git a/tests/vala/Makefile.am b/tests/vala/Makefile.am
index 9f57fc7..0e63670 100644
--- a/tests/vala/Makefile.am
+++ b/tests/vala/Makefile.am
@@ -36,6 +36,7 @@ VALAFLAGS = \
--includedir=$(top_builddir) \
--vapidir=$(top_srcdir)/libgda \
--vapidir=$(top_builddir)/libgda/data \
+ --vapidir=$(VAPIDIR) \
$(NULL)
check_dataobject_VALASOURCES = \
diff --git a/tests/vala/testdb.py b/tests/vala/testdb.py
new file mode 100644
index 0000000..8fe2479
--- /dev/null
+++ b/tests/vala/testdb.py
@@ -0,0 +1,27 @@
+#!python
+from gi.repository import Gda
+
+class Test:
+ def __init__ (self, db):
+ self.cnn = Gda.Connection.open_from_string ("SQLite", "DB_NAME=" + db, None, Gda.ConnectionOptions.NONE)
+ self.cnn.update_meta_store (None)
+ self.meta = self.cnn.get_meta_store ()
+
+ def show_meta_table (self, table):
+ m = self.meta.extract ("SELECT * FROM " + table, None)
+ print m.dump_as_string ()
+
+ def show_table (self, table):
+ m = self.cnn.execute_select_command ("SELECT * FROM " + table)
+ print m.dump_as_string ()
+
+ def update (self):
+ self.cnn.update_meta_store ()
+
+ def execute_select (self, sql):
+ return self.cnn.execute_select_command (sql)
+
+ def execute_sql (self, sql):
+ self.cnn.execute_non_select_command (sql)
+
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]