Re: ODBC v08.02.0100 - Mailing list pgsql-odbc
From | luiz |
---|---|
Subject | Re: ODBC v08.02.0100 |
Date | |
Msg-id | 20060831200431.M35183@planit.com.br Whole thread Raw |
In response to | Re: ODBC v08.02.0100 (greg.campbell@us.michelin.com) |
List | pgsql-odbc |
Hi Greg
I'm sorry if I'm not can express clearly what I need to explain.
My english is litle.
In a left outer join like below, field4 may have null values when test.fk_test2 is null,
now the result is a char(3) empty field, then I presume that this is a incorrect resultset
On Thu, 31 Aug 2006 15:26:04 -0400, greg.campbell wrote
> So your issue is that now the field types including NULL constraints match the underlying tables?
> Is the change caused just from changing pgODBC driver versions, while the database version stayed the same.?
> Isn't this the result we would expect if we were using psql at the command line?
> I don't mean to be rude, but does your application expect a resultset where certain field never have a NULL value, but where the database design has the fields specified as nullable (no specification of NOT NULL)? For instance in your example fk_test2 is designed to allow NULL, but perhaps an application does not anticipate the possibility that NULL may be its value.
>
> Perhaps the old behavior was a bug.
>
> Greg Campbell ENG-ASE/Michelin US5
> Lexington, South Carolina
> 803-951-5561, x75561
> Fax: 803-951-5531
> greg.campbell@us.michelin.com
>
> "luiz" <luiz@planit.com.br>
>
>
> Hi all,
>
> I make some tests with this new version and i notice a diference in the
> behaviour about the structures of tables returned by queries trough this
> version and older versions of odbc
>
> I'm using Visual FoxPro with postgres 8.1.4.
>
> In previous version all fields are marked to accept null values.
> In this version (8.02.0100) some fields now don't accept null values, seemed
> to me that now use the same definition of source table structure, like this:
>
> CREATE TABLE test (
> id serial NOT NULL,
> fk_test2 int4,
> field1 char(3) NOT NULL,
> field2 varchar(10),
> field3 date );
>
> CREATE TABLE test2 (
> id serial NOT NULL,
> field4 char(3) NOT NULL,
> field5 char(3) );
>
> SELECT test.*
> , test2.id as id2
> , test2.field4
> , test2.field5
> from test LEFT OUTER JOIN test2 on test.fk_test2 = test2.id;
>
> The fields of resultset will be now this:
>
> id int4 NOT NULL
> fk_test2 int4
> field1 char(3) NOT NULL
> field2 varchar(10)
> field3 date
> id2 int4 NOT NULL
> field4 char(3) NOT NULL
> field5 char(3)
>
> with odbc version 8.01.0200 all fields accept null values.
>
> I'm not sure about what is the correct behaviour, but this can be considered
> as a bug in the new version ?
>
> Thanks in Advance
>
> Luiz
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
--
Plan IT Tecnologia Informatica Ltda.
I'm sorry if I'm not can express clearly what I need to explain.
My english is litle.
In a left outer join like below, field4 may have null values when test.fk_test2 is null,
now the result is a char(3) empty field, then I presume that this is a incorrect resultset
On Thu, 31 Aug 2006 15:26:04 -0400, greg.campbell wrote
> So your issue is that now the field types including NULL constraints match the underlying tables?
> Is the change caused just from changing pgODBC driver versions, while the database version stayed the same.?
> Isn't this the result we would expect if we were using psql at the command line?
> I don't mean to be rude, but does your application expect a resultset where certain field never have a NULL value, but where the database design has the fields specified as nullable (no specification of NOT NULL)? For instance in your example fk_test2 is designed to allow NULL, but perhaps an application does not anticipate the possibility that NULL may be its value.
>
> Perhaps the old behavior was a bug.
>
> Greg Campbell ENG-ASE/Michelin US5
> Lexington, South Carolina
> 803-951-5561, x75561
> Fax: 803-951-5531
> greg.campbell@us.michelin.com
>
> "luiz" <luiz@planit.com.br>
>
>
> Sent by: pgsql-odbc-owner@postgresql.org > 08/31/2006 14:14 |
|
> Hi all,
>
> I make some tests with this new version and i notice a diference in the
> behaviour about the structures of tables returned by queries trough this
> version and older versions of odbc
>
> I'm using Visual FoxPro with postgres 8.1.4.
>
> In previous version all fields are marked to accept null values.
> In this version (8.02.0100) some fields now don't accept null values, seemed
> to me that now use the same definition of source table structure, like this:
>
> CREATE TABLE test (
> id serial NOT NULL,
> fk_test2 int4,
> field1 char(3) NOT NULL,
> field2 varchar(10),
> field3 date );
>
> CREATE TABLE test2 (
> id serial NOT NULL,
> field4 char(3) NOT NULL,
> field5 char(3) );
>
> SELECT test.*
> , test2.id as id2
> , test2.field4
> , test2.field5
> from test LEFT OUTER JOIN test2 on test.fk_test2 = test2.id;
>
> The fields of resultset will be now this:
>
> id int4 NOT NULL
> fk_test2 int4
> field1 char(3) NOT NULL
> field2 varchar(10)
> field3 date
> id2 int4 NOT NULL
> field4 char(3) NOT NULL
> field5 char(3)
>
> with odbc version 8.01.0200 all fields accept null values.
>
> I'm not sure about what is the correct behaviour, but this can be considered
> as a bug in the new version ?
>
> Thanks in Advance
>
> Luiz
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>
--
Plan IT Tecnologia Informatica Ltda.
pgsql-odbc by date: