|
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(dot)campbell(at)us(dot)michelin(dot)com > > "luiz" <luiz(at)planit(dot)com(dot)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. |