2009/1/26 Johannes Schmid <[email protected]> > Hi! > > I tried to execute the following query on postgresql: > > ALTER GROUP "glom_developers" ADD USER ##name::gchararray > > the holder name was defined as "jhs". > > The result was the following error: > Syntax error at »'jhs'« > LINE 1: ALTER GROUP "glom_developer" ADD USER 'jhs' > > The same query works as > ALTER GROUP "glom_developers" ADD USER "jhs" (note the difference > between ' and ". > > Is there anything wrong with the query. Can I specify different > behaviour for the holder?
No, there is no way at the moment. The problem appears because: * PostgreSQL does not seem to allow variables in the ALTER GROUP statement, so Libgda has to render the variable itself and renders a string (gchararray) using single quotes as any SQL string should be rendered * PostgreSQL does not want an SQL string but rather an unquoted string which Libgda cannot render. Here are the options: * create the complete ALTER GROUP statement yourself including the user name literal in it * modify Libgda to be able to handle non quoted strings The 1st solution is the easiest, but the 2nd is the cleanest. Modifying Libgda is not very difficult: * create a new type of data in gda-value.[ch], for example "GdaRawString" or "GdaUnquotedString" * optionnaly map this name to a more user friendly name such as "ustring" in gda_g_type_to_string() and gda_g_type_from_string() * create a GdaDataHandler object for this new type * modify the postgres provider to make it use that data handler when necessary, in gda_postgres_provider_get_data_handler() All of this is very easy to do. Vivien > > > Thanks, > Johannes > > _______________________________________________ > gnome-db-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/gnome-db-list > >
_______________________________________________ gnome-db-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-db-list
