2009/8/4 Bas Driessen <[email protected]> > On Mon, 2009-08-03 at 21:19 +1000, Bas Driessen wrote: > > On Thu, 2009-07-30 at 16:17 +0200, Vivien Malerba wrote: > > > > 2009/7/30 Bas Driessen <[email protected]> > > > > 2009/7/30 Bas Driessen <[email protected]> > > > >> Hello, > >> > >> My database is in MySQL. When I run the following command to rebuild the > >> MetaStore (which lives in a sqlite3 database): > >> > >> gda_connection_update_meta_store(connection, NULL, &error) > >> > >> I get the following error/warning: > >> > >> ** (process:22406): WARNING **: (+5): Wrong Holder value type, expected > >> type 'boolean' when value's type is 'string' (Provider ThreadWrapper) > >> > >> > >> and the MySQL table information is not in the MetaStore. In fact if I > >> do: > >> > >> select * from _tables; > >> > >> nothing shows up. > >> > >> Anyone else having this problem? > >> > > > > The reason for this error is that a SELECT statement internally run by > the > > MySQL provider to get meta data returned a column of type string instead > > to > > a boolean. To solve this, the correction consists in locating the faulty > > SELECT, and use gda_connection_statement_execute_select_full() with an > > array > > of expected types for the columns instead of > > gda_connection_statement_execute_select(). This is already done at > several > > places in gda-mysql-meta.c. > > > > If you want to try to correct it, and if you are in the master branch, > you > > can use the definitions in > > libgda/providers-support/gda-meta-column-types.h > > (which is dynamically generated). > > > > Otherwise, I'd need to have more information to correct the problem > > myself. > > > OK, I will try to locate and correct the issue in libgda. Just wanted to > have confirmed first that this is an issue in libgda and not in my setup. > > > To help you, you can uncomment the line 2324 of the gda-meta-store.c file, > so you'll get debug info about all the results the provider is returning for > the meta store. > > > OK, I am a step further in this (I think). In file > providers/mysql/gda-mysql-meta.c, line 717 the structure should be changed > from: > > GType col_types_views[] = { > G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, > G_TYPE_STRING, *G_TYPE_STRING*, G_TYPE_NONE > }; > > to: > > > GType col_types_views[] = { > G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, > G_TYPE_STRING, *G_TYPE_BOOLEAN*, G_TYPE_NONE > }; > > The original error will be gone and it will continue past the point where > it stopped. However, there are now many new error messages: > > > (process:8055): GLib-WARNING **: GError set over the top of a previous > GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is NULL > before it's set. > The overwriting error message was: Type gchararray not mapped for value 0 > > (process:8055): GLib-WARNING **: GError set over the top of a previous > GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is NULL > before it's set. > The overwriting error message was: Type gint not mapped for value (null) > > (process:8055): GLib-WARNING **: GError set over the top of a previous > GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is NULL > before it's set. > The overwriting error message was: Invalid column bind data type. 253 > > (this repeats many many times) > ============ > > > (process:8055): GLib-WARNING **: GError set over the top of a previous > GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is NULL > before it's set. > The overwriting error message was: Unable to get value for row 0 and column > 10 > > ** (process:8055): WARNING **: Type gint not mapped for value (null) > (Provider ThreadWrapper) > > As a rollback is triggered, the meta store is empty. > > I have no idea if I am pretty close to have this all working, or if this > whole area is still up for a re-write/under development. > > See also my previous thread for a reproducible case of this issue. > > Any comments/tips/hints? > > Vivien, > > You should have received a patch from Carlos that correct the issues with > the MetaStore for the MySQL provider as discussed above. He sent me the > patch as well and initial testing shows that the MetaStore builds OK now. > Both full update as partial update works OK. It has my thumbs up to be > applied to the master. >
Ok, then I propose you apply it yourself, as I'm currently on holliday with limited internet access. Thanks a lot to you and Carlos, Vivien > > > Thanks, > Bas. > >
_______________________________________________ gnome-db-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-db-list
