Re: [gnome-db] introspection issue



On 11 April 2011 10:29, Murray Cumming <murrayc murrayc com> wrote:
> On Sun, 2011-04-10 at 13:06 +0200, Murray Cumming wrote:
>> On Sun, 2011-04-10 at 11:52 +0200, Murray Cumming wrote:
>> > On Sat, 2011-04-09 at 18:39 +0200, Vivien Malerba wrote:
>> > > On 8 April 2011 22:12, Murray Cumming <murrayc murrayc com> wrote:
>> > > > GObject+Introspection is working quite well for me now with libgda.
>> > > > Thanks. I am glad that pygda is now obsolete, so it's one less module
>> > > > for me to maintain.
>> > > >
>> > > > However, I'm getting an error when trying to get the values from the
>> > > > DataModel with get_value_at(). For instance, this script
>> > > > http://git.gnome.org/browse/pygda/tree/examples/gda/select.py?h=introspection
>> > > > produces this error:
>> > > >
>> > > > Traceback (most recent call last):
>> > > >  File "./select.py", line 61, in <module>
>> > > >    main ()
>> > > >  File "./select.py", line 57, in main
>> > > >    print "        value=", data_model.get_value_at(col_index,
>> > > > row_index);
>> > > >  File "/opt/gnome230/lib/python2.7/site-packages/gi/types.py", line 44,
>> > > > in function
>> > > >    return info.invoke(*args)
>> > > > TypeError: unknown type (null)
>> > > >
>> > > >
>> > > > Presumably it doesn't like GdaValues with GType=0 (when
>> > > > gda_value_is_null(gvalue) is true).
>> > >
>> > > Yes, the a GValue with a 0 GType represents a SQL NULL value, whereas
>> > > if the returned value is NULL (the C NULL) then it means there was an
>> > > error retreiving the value, hence the difference between the 2.
>
> The PyGObject developers don't seem happy with this:
> https://bugzilla.gnome.org/show_bug.cgi?id=647272#c2

I don't know why Libgda uses G_TYPE_INVALID instead of G_TYPE_NONE
(some historical reason, lack of knowledge,...).

>
> Maybe it's something we can change in libgda-5.0.

I guess that can be done, I have to check the impacts first. However I
can't change the V4 behaviour, so for the GObject introspection, a
solution needs to be found.

Vivien


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]