libgda r3304 - in trunk: . doc/C/tmpl libgda po providers/postgres
- From: vivien svn gnome org
- To: svn-commits-list gnome org
- Subject: libgda r3304 - in trunk: . doc/C/tmpl libgda po providers/postgres
- Date: Wed, 28 Jan 2009 13:38:40 +0000 (UTC)
Author: vivien
Date: Wed Jan 28 13:38:39 2009
New Revision: 3304
URL: http://svn.gnome.org/viewvc/libgda?rev=3304&view=rev
Log:
2009-01-28 Vivien Malerba <malerba gnome-db org>
* libgda/gda-server-provider.c: fixed a bug where the connection would remain
locked.
* providers/postgres/gda-postgres-meta.c: fix for bug #143576
* po/: ran "make update-po"
Modified:
trunk/ChangeLog
trunk/doc/C/tmpl/gda-meta-struct.sgml
trunk/libgda/gda-server-provider.c
trunk/po/ar.po
trunk/po/az.po
trunk/po/ca.po
trunk/po/cs.po
trunk/po/da.po
trunk/po/de.po
trunk/po/dz.po
trunk/po/el.po
trunk/po/en_CA.po
trunk/po/en_GB.po
trunk/po/es.po
trunk/po/eu.po
trunk/po/fa.po
trunk/po/fi.po
trunk/po/fr.po
trunk/po/ga.po
trunk/po/gl.po
trunk/po/hr.po
trunk/po/hu.po
trunk/po/it.po
trunk/po/ja.po
trunk/po/ko.po
trunk/po/lt.po
trunk/po/mk.po
trunk/po/ml.po
trunk/po/ms.po
trunk/po/nb.po
trunk/po/ne.po
trunk/po/nl.po
trunk/po/oc.po
trunk/po/pa.po
trunk/po/pl.po
trunk/po/pt.po
trunk/po/pt_BR.po
trunk/po/ru.po
trunk/po/rw.po
trunk/po/sk.po
trunk/po/sl.po
trunk/po/sq.po
trunk/po/sr.po
trunk/po/sr Latn po
trunk/po/sv.po
trunk/po/tr.po
trunk/po/uk.po
trunk/po/vi.po
trunk/po/zh_CN.po
trunk/po/zh_HK.po
trunk/po/zh_TW.po
trunk/providers/postgres/gda-postgres-meta.c
Modified: trunk/doc/C/tmpl/gda-meta-struct.sgml
==============================================================================
--- trunk/doc/C/tmpl/gda-meta-struct.sgml (original)
+++ trunk/doc/C/tmpl/gda-meta-struct.sgml Wed Jan 28 13:38:39 2009
@@ -223,7 +223,7 @@
</para>
@tcol:
- att_name:
+ attribute:
@Returns:
@@ -233,7 +233,7 @@
</para>
@tcol:
- att_name:
+ attribute:
@value:
@destroy:
Modified: trunk/libgda/gda-server-provider.c
==============================================================================
--- trunk/libgda/gda-server-provider.c (original)
+++ trunk/libgda/gda-server-provider.c Wed Jan 28 13:38:39 2009
@@ -870,7 +870,7 @@
gda_lockable_lock ((GdaLockable*) cnc);
dh = gda_server_provider_get_data_handler_g_type (provider, cnc, G_VALUE_TYPE (from));
if (dh)
- return gda_data_handler_get_sql_from_value (dh, from);
+ retval = gda_data_handler_get_sql_from_value (dh, from);
if (cnc)
gda_lockable_unlock ((GdaLockable*) cnc);
return retval;
Modified: trunk/providers/postgres/gda-postgres-meta.c
==============================================================================
--- trunk/providers/postgres/gda-postgres-meta.c (original)
+++ trunk/providers/postgres/gda-postgres-meta.c Wed Jan 28 13:38:39 2009
@@ -814,6 +814,8 @@
for (i = 0; i < nrows; i++) {
const GValue *value;
GType type;
+
+ /* GType */
value = gda_data_model_get_value_at (model, 24, i, error);
if (!value) {
retval = FALSE;
@@ -829,6 +831,39 @@
if (!retval)
break;
}
+
+ /* column default: remove the datatype cast on strings:
+ * 'abd'::character varying => 'abd' */
+ value = gda_data_model_get_value_at (model, 5, i, error);
+ if (!value) {
+ retval = FALSE;
+ break;
+ }
+
+ if (G_VALUE_TYPE (value) == G_TYPE_STRING) {
+ const gchar *cstr;
+ cstr = g_value_get_string (value);
+ if (cstr && (*cstr == '\'')) {
+ gint len;
+ len = strlen (cstr);
+ if (cstr [len-1] != '\'') {
+ gchar *tmp = g_strdup (cstr);
+ gint k;
+ for (k = len - 1; k > 0; k--) {
+ if (tmp [k] == '\'') {
+ tmp [k+1] = 0;
+ break;
+ }
+ }
+ GValue *v;
+ g_value_take_string (v = gda_value_new (G_TYPE_STRING), tmp);
+ retval = gda_data_model_set_value_at (proxy, 5, i, v, error);
+ gda_value_free (v);
+ if (!retval)
+ break;
+ }
+ }
+ }
}
/* modify meta store with @proxy */
@@ -883,6 +918,8 @@
for (i = 0; i < nrows; i++) {
const GValue *value;
GType type;
+
+ /* GType */
value = gda_data_model_get_value_at (model, 24, i, error);
if (!value) {
retval = FALSE;
@@ -898,6 +935,39 @@
if (!retval)
break;
}
+
+ /* column default: remove the datatype cast on strings:
+ * 'abd'::character varying => 'abd' */
+ value = gda_data_model_get_value_at (model, 5, i, error);
+ if (!value) {
+ retval = FALSE;
+ break;
+ }
+
+ if (G_VALUE_TYPE (value) == G_TYPE_STRING) {
+ const gchar *cstr;
+ cstr = g_value_get_string (value);
+ if (cstr && (*cstr == '\'')) {
+ gint len;
+ len = strlen (cstr);
+ if (cstr [len-1] != '\'') {
+ gchar *tmp = g_strdup (cstr);
+ gint k;
+ for (k = len - 1; k > 0; k--) {
+ if (tmp [k] == '\'') {
+ tmp [k+1] = 0;
+ break;
+ }
+ }
+ GValue *v;
+ g_value_take_string (v = gda_value_new (G_TYPE_STRING), tmp);
+ retval = gda_data_model_set_value_at (proxy, 5, i, v, error);
+ gda_value_free (v);
+ if (!retval)
+ break;
+ }
+ }
+ }
}
/* modify meta store with @proxy */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]