[libgda] Generic improvements on GdaData classes. Added tests/vala/testdb.py.



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]