libgda r3157 - in trunk: . libgda libgda/binreloc libgda/sqlite providers/mysql
- From: vivien svn gnome org
- To: svn-commits-list gnome org
- Subject: libgda r3157 - in trunk: . libgda libgda/binreloc libgda/sqlite providers/mysql
- Date: Sun, 1 Jun 2008 13:49:25 +0000 (UTC)
Author: vivien
Date: Sun Jun 1 13:49:25 2008
New Revision: 3157
URL: http://svn.gnome.org/viewvc/libgda?rev=3157&view=rev
Log:
2008-06-01 Vivien Malerba <malerba gnome-db org>
* libgda/sqlite/gda-sqlite-provider.c:
* libgda/gda-server-operation.c: applied patch to fix mem leaks (thanks to
Phil Longstaff)
* providers/mysql/mysql_specs_create_table.xml.in: applied patch to fix the CREATE TABLE
operation (thanks to Phil Longstaff)
* libgda/gda-util.[ch]: applied patch for bug #534805 (thanks to Johannes Schmid)
* configure.in:
* libgda/binreloc/gda-binreloc.c: implemented binary relocation under Mac OS X
* configure.in:
* libgda/gda-data-model-dir.c: detect if GIO is available and
use it instead of GnomeVFS
Modified:
trunk/ChangeLog
trunk/configure.in
trunk/gtk-doc.make
trunk/libgda/Makefile.am
trunk/libgda/binreloc/gda-binreloc.c
trunk/libgda/gda-data-model-dir.c
trunk/libgda/gda-server-operation.c
trunk/libgda/gda-util.c
trunk/libgda/gda-util.h
trunk/libgda/sqlite/gda-sqlite-provider.c
trunk/providers/mysql/mysql_specs_create_table.xml.in
Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in (original)
+++ trunk/configure.in Sun Jun 1 13:49:25 2008
@@ -138,30 +138,46 @@
dnl Check for Win32
dnl ******************************
-AC_MSG_CHECKING([for some Win32 platform])
+AC_MSG_CHECKING([for platform])
+platform_win32=no
+platform_carbon=no
case "$host" in
*-cygwin*)
+ AC_MSG_RESULT([Win32 - cygwin])
platform_win32=yes
NO_UNDEFINED='-no-undefined'
SOPREFIX='cyg'
LIBTOOL_EXPORT_OPTIONS=
+ AC_MSG_RESULT([Win32])
;;
*-mingw*)
+ AC_MSG_RESULT([Win32 - MinGW])
platform_win32=yes
NO_UNDEFINED='-no-undefined'
SOPREFIX='lib'
LIBTOOL_EXPORT_OPTIONS=
;;
+*-*-darwin*)
+ dnl Darwin based distributions (including Mac OS X)
+ AC_MSG_RESULT([Mac OS X - carbon])
+ platform_carbon=yes
+ SOPREFIX='lib'
+ AM_BINRELOC
+ LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
+ AC_DEFINE(HAVE_CARBON)
+ dnl SO_SUFFIX=dylib
+ ;;
*)
- platform_win32=no
+ AC_MSG_RESULT([Unix])
NO_UNDEFINED=''
SOPREFIX='lib'
AM_BINRELOC
LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
;;
esac
-AC_MSG_RESULT([$platform_win32])
+
AM_CONDITIONAL(PLATFORM_WIN32, [test $platform_win32 = yes])
+AM_CONDITIONAL(PLATFORM_CARBON, [test $platform_carbon = yes])
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
AC_SUBST(NO_UNDEFINED)
AC_SUBST(SOPREFIX)
@@ -189,19 +205,34 @@
AC_SUBST(FAM_LIBS)
AC_SUBST(FAM_CFLAGS)
-dnl ******************************
-dnl Checks for Gnome VFS
-dnl ******************************
+dnl ***********************************************
+dnl Checks for GIO or Gnome VFS, use GIO preferably
+dnl ***********************************************
GNOMEVFS_MODULES="gnome-vfs-2.0 >= 2.20"
PKG_CHECK_MODULES(GNOMEVFS, $GNOMEVFS_MODULES, have_gnomevfs=yes, have_gnomevfs=no)
-AM_CONDITIONAL(HAVE_GNOMEVFS, test x"$have_gnomevfs" = "xyes")
if test x"$have_gnomevfs" = "xyes"
then
GNOMEVFS_CFLAGS="$GNOMEVFS_CFLAGS -DHAVE_GNOMEVFS"
fi
+
+GIO_MODULES="gio-2.0"
+PKG_CHECK_MODULES(GIO, $GIO_MODULES, have_gio=yes, have_gio=no)
+AM_CONDITIONAL(HAVE_GIO, test x"$have_gio" = "xyes")
+if test x"$have_gio" = "xyes"
+then
+ GIO_CFLAGS="$GIO_CFLAGS -DHAVE_GIO"
+ GNOMEVFS_CFLAGS=""
+ GNOMEVFS_LIBS=""
+ have_gnomevfs=no
+fi
+AC_SUBST(GIO_CFLAGS)
+AC_SUBST(GIO_LIBS)
+
AC_SUBST(GNOMEVFS_CFLAGS)
AC_SUBST(GNOMEVFS_LIBS)
+AM_CONDITIONAL(HAVE_GNOMEVFS, test x"$have_gnomevfs" = "xyes")
+
dnl ******************************
dnl Checks for libxslt
Modified: trunk/gtk-doc.make
==============================================================================
--- trunk/gtk-doc.make (original)
+++ trunk/gtk-doc.make Sun Jun 1 13:49:25 2008
@@ -5,11 +5,11 @@
####################################
if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
+GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
else
-GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
+GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
endif
# We set GPATH here; this gives us semantics for GNU make
@@ -38,7 +38,12 @@
$(DOC_MODULE).prerequisites \
$(DOC_MODULE).signals
-CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
+REPORT_FILES = \
+ $(DOC_MODULE)-undocumented.txt \
+ $(DOC_MODULE)-undeclared.txt \
+ $(DOC_MODULE)-unused.txt
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
if ENABLE_GTK_DOC
all-local: html-build.stamp
@@ -79,6 +84,10 @@
tmpl.stamp: tmpl-build.stamp
@true
+tmpl/*.sgml:
+ @true
+
+
#### xml ####
sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
@@ -96,11 +105,11 @@
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
@echo 'gtk-doc: Building HTML'
@-chmod -R u+w $(srcdir)
- rm -rf $(srcdir)/html
+ rm -rf $(srcdir)/html
mkdir $(srcdir)/html
cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
- @echo 'gtk-doc: Fixing cross-references'
+ @echo 'gtk-doc: Fixing cross-references'
cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
touch html-build.stamp
@@ -110,11 +119,16 @@
rm -f *~ *.bak
rm -rf .libs
+distclean-local:
+ cd $(srcdir) && \
+ rm -rf xml $(REPORT_FILES) \
+ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
maintainer-clean-local: clean
- cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+ cd $(srcdir) && rm -rf xml html
install-data-local:
- installfiles=`echo $(srcdir)/html/*`; \
+ -installfiles=`echo $(srcdir)/html/*`; \
if test "$$installfiles" = '$(srcdir)/html/*'; \
then echo '-- Nothing to install' ; \
else \
@@ -125,7 +139,10 @@
done; \
echo '-- Installing $(srcdir)/html/index.sgml' ; \
$(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \
+ which gtkdoc-rebase >/dev/null && \
+ gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \
fi
+
uninstall-local:
rm -f $(DESTDIR)$(TARGET_DIR)/*
@@ -148,8 +165,9 @@
-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-cp $(srcdir)/xml/*.xml $(distdir)/xml
cp $(srcdir)/html/* $(distdir)/html
- if test -f $(srcdir)/$(DOC_MODULE).types; then \
- cp $(srcdir)/$(DOC_MODULE).types $(distdir)/$(DOC_MODULE).types; \
- fi
+ -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
+ -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
+ cd $(distdir) && rm -f $(DISTCLEANFILES)
+ -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
.PHONY : dist-hook-local docs
Modified: trunk/libgda/Makefile.am
==============================================================================
--- trunk/libgda/Makefile.am (original)
+++ trunk/libgda/Makefile.am Sun Jun 1 13:49:25 2008
@@ -15,7 +15,7 @@
$(LIBGDA_CFLAGS) \
$(FAM_CFLAGS) \
$(BDB_CFLAGS) \
- $(GNOMEVFS_CFLAGS)
+ $(GIO_CFLAGS) $(GNOMEVFS_CFLAGS)
gda_marshal_built_files = gda-marshal.h gda-marshal.c
@@ -175,7 +175,7 @@
binreloc/libgda_binreloc-4.0.la \
sqlite/libgda-sqlite.la \
$(LIBGDA_LIBS) $(FAM_LIBS) \
- $(BDB_LIBS) $(GNOMEVFS_LIBS)
+ $(BDB_LIBS) $(GIO_LIBS) $(GNOMEVFS_LIBS)
gdaincludedir=$(includedir)/libgda-$(GDA_ABI_MAJOR_VERSION).$(GDA_ABI_MINOR_VERSION)/libgda
gdainclude_HEADERS=$(libgda_built_headers) $(gda_headers)
Modified: trunk/libgda/binreloc/gda-binreloc.c
==============================================================================
--- trunk/libgda/binreloc/gda-binreloc.c (original)
+++ trunk/libgda/binreloc/gda-binreloc.c Sun Jun 1 13:49:25 2008
@@ -39,6 +39,8 @@
return TRUE;
}
+#elif HAVE_CARBON
+#include <Carbon/Carbon.h>
#endif
@@ -49,6 +51,9 @@
gda_gbr_init (void)
{
#ifdef G_OS_WIN32
+ /* nothing */
+#elif HAVE_CARBON
+ /* nothing */
#else
_gda_gbr_init_lib (NULL);
#endif
@@ -60,7 +65,7 @@
gchar *
gda_gbr_get_file_path (GdaPrefixDir where, ...)
{
- gchar *prefix;
+ gchar *prefix = NULL;
gchar *tmp, *file_part;
va_list ap;
gchar **parts;
@@ -71,7 +76,6 @@
wchar_t path[MAX_PATH];
gchar* p;
#endif
-
switch (where) {
default:
case GDA_NO_DIR:
@@ -110,11 +114,23 @@
prefix = g_utf16_to_utf8 (path, -1, NULL, NULL, NULL);
if ((p = strrchr (prefix, G_DIR_SEPARATOR)) != NULL)
*p = '\0';
-
+
p = strrchr (prefix, G_DIR_SEPARATOR);
- if(p && (g_ascii_strcasecmp (p + 1, "bin") == 0 ||
- g_ascii_strcasecmp (p + 1, "lib") == 0))
+ if (p && (g_ascii_strcasecmp (p + 1, "bin") == 0 ||
+ g_ascii_strcasecmp (p + 1, "lib") == 0))
*p = '\0';
+#elif HAVE_CARBON
+#define MAXLEN 500
+ ProcessSerialNumber myProcess;
+ FSRef bundleLocation;
+ unsigned char bundlePath[MAXLEN];
+
+ if ((GetCurrentProcess (&myProcess) == noErr) &&
+ (GetProcessBundleLocation (&myProcess, &bundleLocation) == noErr) &&
+ (FSRefMakePath (&bundleLocation, bundlePath, MAXLEN) == noErr))
+ prefix = g_path_get_dirname ((const char*) bundlePath);
+ else
+ g_warning ("Could not get PREFIX (using Mac OS X Carbon)");
#else
prefix = _gda_gbr_find_prefix (LIBGDAPREFIX);
#endif
Modified: trunk/libgda/gda-data-model-dir.c
==============================================================================
--- trunk/libgda/gda-data-model-dir.c (original)
+++ trunk/libgda/gda-data-model-dir.c Sun Jun 1 13:49:25 2008
@@ -27,8 +27,12 @@
#include <libgda/gda-data-model-dir.h>
#include <libgda/gda-data-model-extra.h>
-#ifdef HAVE_GNOMEVFS
-#include <libgnomevfs/gnome-vfs-mime.h>
+#ifdef HAVE_GIO
+#include <gio/gio.h>
+#else
+ #ifdef HAVE_GNOMEVFS
+ #include <libgnomevfs/gnome-vfs-mime.h>
+ #endif
#endif
/* Use the RSA reference implementation included in the RFC-1321, http://www.freesoft.org/CIE/RFC/1321/ */
@@ -566,8 +570,23 @@
{
gboolean changed = TRUE;
GValue *value = NULL;
-
-#ifdef HAVE_GNOMEVFS
+#ifdef HAVE_GIO
+ GFile *file;
+ GFileInfo *info;
+ file = g_file_new_for_path (complete_filename);
+ info = g_file_query_info (file,
+ G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE,
+ G_FILE_QUERY_INFO_NONE, NULL, NULL);
+ if (info) {
+ value = gda_value_new (G_TYPE_STRING);
+ g_value_set_string (value, g_file_info_get_content_type (info));
+ g_object_unref (info);
+ }
+ else
+ value = gda_value_new_null ();
+ g_object_unref (file);
+#else
+ #ifdef HAVE_GNOMEVFS
const gchar *mime;
mime = gnome_vfs_get_file_mime_type (complete_filename, NULL, FALSE);
@@ -577,8 +596,9 @@
}
else
value = gda_value_new_null ();
-#else
+ #else
value = gda_value_new_null ();
+ #endif
#endif
if (value) {
Modified: trunk/libgda/gda-server-operation.c
==============================================================================
--- trunk/libgda/gda-server-operation.c (original)
+++ trunk/libgda/gda-server-operation.c Sun Jun 1 13:49:25 2008
@@ -412,6 +412,7 @@
node = NULL;
break;
}
+ g_free(cpath);
}
/*g_print ("# %s (%s) => %p\n", __FUNCTION__, path, node);*/
Modified: trunk/libgda/gda-util.c
==============================================================================
--- trunk/libgda/gda-util.c (original)
+++ trunk/libgda/gda-util.c Sun Jun 1 13:49:25 2008
@@ -735,7 +735,7 @@
*/
gboolean
gda_compute_dml_statements (GdaConnection *cnc, GdaStatement *select_stmt, gboolean require_pk,
- GdaStatement **insert, GdaStatement **update, GdaStatement **delete, GError **error)
+ GdaStatement **insert_stmt, GdaStatement **update_stmt, GdaStatement **delete_stmt, GError **error)
{
GdaSqlStatement *sel_struct;
GdaSqlStatementSelect *stsel;
@@ -776,14 +776,14 @@
target = (GdaSqlSelectTarget*) stsel->from->targets->data;
/* actual statement structure's computation */
- if (insert) {
+ if (insert_stmt) {
ist = g_new0 (GdaSqlStatementInsert, 1);
GDA_SQL_ANY_PART (ist)->type = GDA_SQL_ANY_STMT_INSERT;
ist->table = gda_sql_table_new (GDA_SQL_ANY_PART (ist));
ist->table->table_name = g_strdup ((gchar *) target->table_name);
}
- if (update) {
+ if (update_stmt) {
ust = g_new0 (GdaSqlStatementUpdate, 1);
GDA_SQL_ANY_PART (ust)->type = GDA_SQL_ANY_STMT_UPDATE;
ust->table = gda_sql_table_new (GDA_SQL_ANY_PART (ust));
@@ -798,7 +798,7 @@
GDA_SQL_ANY_PART (ust->cond)->parent = GDA_SQL_ANY_PART (ust);
}
- if (delete) {
+ if (delete_stmt) {
dst = g_new0 (GdaSqlStatementDelete, 1);
GDA_SQL_ANY_PART (dst)->type = GDA_SQL_ANY_STMT_DELETE;
dst->table = gda_sql_table_new (GDA_SQL_ANY_PART (dst));
@@ -830,13 +830,13 @@
if (g_hash_table_lookup (fields_hash, selfield->field_name))
continue;
g_hash_table_insert (fields_hash, selfield->field_name, GINT_TO_POINTER (1));
- if (insert) {
+ if (insert_stmt) {
GdaSqlField *field;
field = gda_sql_field_new (GDA_SQL_ANY_PART (ist));
field->field_name = g_strdup (selfield->field_name);
ist->fields_list = g_slist_append (ist->fields_list, field);
}
- if (update) {
+ if (update_stmt) {
GdaSqlField *field;
field = gda_sql_field_new (GDA_SQL_ANY_PART (ust));
field->field_name = g_strdup (selfield->field_name);
@@ -848,7 +848,7 @@
GdaMetaTableColumn *tcol;
tcol = selfield->validity_meta_table_column;
- if (insert) {
+ if (insert_stmt) {
GdaSqlParamSpec *pspec = g_new0 (GdaSqlParamSpec, 1);
pspec->name = g_strdup_printf ("+%d", colindex);
pspec->g_type = tcol->gtype != G_TYPE_INVALID ? tcol->gtype: G_TYPE_STRING;
@@ -858,7 +858,7 @@
expr->param_spec = pspec;
insert_values_list = g_slist_append (insert_values_list, expr);
}
- if (update) {
+ if (update_stmt) {
GdaSqlParamSpec *pspec = g_new0 (GdaSqlParamSpec, 1);
pspec->name = g_strdup_printf ("+%d", colindex);
pspec->g_type = tcol->gtype != G_TYPE_INVALID ? tcol->gtype: G_TYPE_STRING;
@@ -872,7 +872,7 @@
g_hash_table_destroy (fields_hash);
/* finish the statements */
- if (insert) {
+ if (insert_stmt) {
GdaSqlStatement *st;
if (!ist->fields_list) {
@@ -889,7 +889,7 @@
ret_insert = g_object_new (GDA_TYPE_STATEMENT, "structure", st, NULL);
gda_sql_statement_free (st);
}
- if (update) {
+ if (update_stmt) {
GdaSqlStatement *st;
st = gda_sql_statement_new (GDA_SQL_STATEMENT_UPDATE);
st->contents = ust;
@@ -897,7 +897,7 @@
ret_update = g_object_new (GDA_TYPE_STATEMENT, "structure", st, NULL);
gda_sql_statement_free (st);
}
- if (delete) {
+ if (delete_stmt) {
GdaSqlStatement *st;
st = gda_sql_statement_new (GDA_SQL_STATEMENT_DELETE);
st->contents = dst;
@@ -924,12 +924,12 @@
cinfo->free (dst);
}
- if (insert)
- *insert = ret_insert;
- if (update)
- *update = ret_update;
- if (delete)
- *delete = ret_delete;
+ if (insert_stmt)
+ *insert_stmt = ret_insert;
+ if (update_stmt)
+ *update_stmt = ret_update;
+ if (delete_stmt)
+ *delete_stmt = ret_delete;
return retval;
}
Modified: trunk/libgda/gda-util.h
==============================================================================
--- trunk/libgda/gda-util.h (original)
+++ trunk/libgda/gda-util.h Sun Jun 1 13:49:25 2008
@@ -66,7 +66,7 @@
* Statement computation from meta store
*/
gboolean gda_compute_dml_statements (GdaConnection *cnc, GdaStatement *select_stmt, gboolean require_pk,
- GdaStatement **insert, GdaStatement **update, GdaStatement **delete,
+ GdaStatement **insert_stmt, GdaStatement **update_stmt, GdaStatement **delete_stmt,
GError **error);
/*
Modified: trunk/libgda/sqlite/gda-sqlite-provider.c
==============================================================================
--- trunk/libgda/sqlite/gda-sqlite-provider.c (original)
+++ trunk/libgda/sqlite/gda-sqlite-provider.c Sun Jun 1 13:49:25 2008
@@ -1771,6 +1771,7 @@
{
GdaSqlitePStmt *ps;
SqliteConnectionData *cdata;
+ gboolean new_ps = FALSE;
g_return_val_if_fail (GDA_IS_CONNECTION (cnc), NULL);
g_return_val_if_fail (gda_connection_get_provider_obj (cnc) == provider, NULL);
@@ -1831,6 +1832,7 @@
/* create a SQLitePreparedStatement */
ps = gda_sqlite_pstmt_new (sqlite_stmt);
_GDA_PSTMT (ps)->sql = sql;
+ new_ps = TRUE;
}
else
ps = gda_connection_get_prepared_statement (cnc, stmt);
@@ -1839,10 +1841,11 @@
/* Don't use @ps => prepare stmt again */
GdaSqlitePStmt *nps;
nps = real_prepare (provider, cnc, stmt, error);
- gda_pstmt_copy_contents ((GdaPStmt *) ps, (GdaPStmt *) nps);
if (!nps)
return NULL;
+ gda_pstmt_copy_contents ((GdaPStmt *) ps, (GdaPStmt *) nps);
ps = nps;
+ new_ps = TRUE;
}
/* check that prepared stmt is not NULL, to avoid a crash */
@@ -1857,6 +1860,8 @@
gda_connection_del_prepared_statement (cnc, stmt);
g_set_error (error, GDA_SERVER_PROVIDER_ERROR, GDA_SERVER_PROVIDER_EMPTY_STMT_ERROR,
errmsg);
+ if (new_ps)
+ g_object_unref (ps);
return NULL;
}
@@ -1873,6 +1878,8 @@
gda_connection_del_prepared_statement (cnc, stmt);
g_set_error (error, GDA_SERVER_PROVIDER_ERROR, GDA_SERVER_PROVIDER_PREPARE_STMT_ERROR,
errmsg);
+ if (new_ps)
+ g_object_unref (ps);
return NULL;
}
@@ -2002,6 +2009,8 @@
if (event) {
gda_connection_add_event (cnc, event);
+ if (new_ps)
+ g_object_unref (ps);
return NULL;
}
@@ -2024,6 +2033,8 @@
data_model = (GObject *) gda_sqlite_recordset_new (cnc, ps, flags, col_types);
gda_connection_internal_statement_executed (cnc, stmt, params, NULL);
+ if (new_ps)
+ g_object_unref (ps);
return data_model;
}
else {
@@ -2044,12 +2055,16 @@
g_set_error (error, GDA_SERVER_PROVIDER_ERROR,
GDA_SERVER_PROVIDER_STATEMENT_EXEC_ERROR, errmsg);
gda_connection_internal_statement_executed (cnc, stmt, params, event);
+ if (new_ps)
+ g_object_unref (ps);
return NULL;
}
else {
/* could be SQLITE_SCHEMA if database schema has changed and
* changes are incompatible with statement */
TO_IMPLEMENT;
+ if (new_ps)
+ g_object_unref (ps);
return NULL;
}
}
@@ -2097,6 +2112,8 @@
gda_connection_add_event (cnc, event);
}
gda_connection_internal_statement_executed (cnc, stmt, params, event);
+ if (new_ps)
+ g_object_unref (ps);
return set;
}
}
Modified: trunk/providers/mysql/mysql_specs_create_table.xml.in
==============================================================================
--- trunk/providers/mysql/mysql_specs_create_table.xml.in (original)
+++ trunk/providers/mysql/mysql_specs_create_table.xml.in Sun Jun 1 13:49:25 2008
@@ -30,14 +30,14 @@
<gda_array_row>
<gda_value>id</gda_value>
<gda_value>int</gda_value>
- <gda_value></gda_value>
- <gda_value></gda_value>
+ <gda_value isnull="t"></gda_value>
+ <gda_value isnull="t"></gda_value>
<gda_value>FALSE</gda_value>
<gda_value>TRUE</gda_value>
<gda_value>FALSE</gda_value>
<gda_value>TRUE</gda_value>
- <gda_value></gda_value>
- <gda_value></gda_value>
+ <gda_value isnull="t"></gda_value>
+ <gda_value isnull="t"></gda_value>
<gda_value>Primary key</gda_value>
</gda_array_row>
</gda_array_data>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]