Re: [gnome-db] Introspection - DataModel structures



On Tue, 2004-04-27 at 09:14 +0200, Vivien wrote:
> > On Sun, 2004-04-25 at 17:46 +0200, Murray Cumming wrote:
> >> On Fri, 2004-04-09 at 08:50, Vivien wrote:
> >> > Yes, the number and type of columns returned for each schema should be
> >> the
> >> > same for every provider (note that this is not yet the case and some
> >> work
> >> > needs to be done on some of the providers).
> >> >
> >> > The "format" of each returned data model for each schema is documented
> >> in
> >> > libgda's doc (such as
> >> > http://www.gnome-db.org/docs/libgda/libgda-provider-class.html#LIBGDA-PROVIDER-GET-SCHEMA).
> >>
> >> Are the types documented anywhere. For instance, when getting the
> >> GDA_CONNECTION_SCHEMA_FIELDS, the field type column is of type
> >> GDA_VALUE_TYPE_STRING, but I would expect it to be GDA_VALUE_TYPE_TYPE.
> >>
> >> This looks like a bug to me.
> >>
> > it should be GDA_VALUE_TYPE_TYPE, if the docs say _STRING, it's a bug
> > there. AFAIK, all providers use the _TYPE one.
> 
> No, it's not a bug. The column returns the type of the corresponding field
> as understood by the DBMS, which is not the GDA type. The corresponding
> GDA type, for a DBMS data type is given by the SCHEMA_TYPES schema.
> 
> For example Postgres has a data type for storing IP adresses and the
> returned data type is 'cidr' for such fields; the corresponding GDA type
> is STRING.
> 
> It is necessary to keep that distinction for Mergeant at least (because of
> the plugin system which is really usefull only if the DBMS type is known).
> 
> If you need to have the GDA type, then either you first get the
> SCHEMA_TYPES schema and keep a correspondance table, or you can use
> libmergeant which does it, or a new column could be added to the
> SCHEMA_FIELDS schema to return the GDA type.
> 
I guess this would be a good solution, thus avoiding the need for
getting the types schema.

Although, even easier might be to have a type_to_gda virtual method on
the providers. What do you think?

cheers




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