Thread: ecpg: arrays and nulls

ecpg: arrays and nulls

From
Kuba Ouhrabka
Date:
Hi,

I'd like to ask how to handle null values when fetching arrays into 
ecpg. Always I get this error:

Data read from backend is not an array in line ...

I'm using indicators and I use char * variables for array values (for 
all column types: int[], text[], bytea[]). It works when the value of 
array is not null but when it's null I get the error above.

Can null values in columns of array type be handled in more convenient 
way than using coalesce/nullif and special reserved value?

Thanks,                     Kuba


Re: ecpg: arrays and nulls

From
Michael Meskes
Date:
On Tue, Aug 02, 2005 at 10:40:23AM +0200, Kuba Ouhrabka wrote:
> I'd like to ask how to handle null values when fetching arrays into 
> ecpg. Always I get this error:
> 
> Data read from backend is not an array in line ...

Found it. The check for array data was doen too early. Of course a
NULL does not look like an array, so the message was issued before the
data was tested on NULL values. I changed the order and it appears to be
fine now. Expect a commit as soon as I am online again.

> Can null values in columns of array type be handled in more convenient 
> way than using coalesce/nullif and special reserved value?

Not sure what you mean with this? Do you want an integer array like
this {1,2,3,NULL,4,5}? I don't see how this could be possible as the
array itself is the value of the column. You can of course use a
relation instead of an array. In first normalform this should be easy to
do.

Michael
-- 
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!


Re: ecpg: arrays and nulls

From
Kuba Ouhrabka
Date:
Hi,

Michael Meskes napsal(a):
> On Tue, Aug 02, 2005 at 10:40:23AM +0200, Kuba Ouhrabka wrote:
> 
>>I'd like to ask how to handle null values when fetching arrays into 
>>ecpg. Always I get this error:
>>
>>Data read from backend is not an array in line ...
> 
> Found it. The check for array data was doen too early. Of course a
> NULL does not look like an array, so the message was issued before the
> data was tested on NULL values. I changed the order and it appears to be
> fine now. Expect a commit as soon as I am online again.

thanks.

>>Can null values in columns of array type be handled in more convenient 
>>way than using coalesce/nullif and special reserved value?
> 
> Not sure what you mean with this? Do you want an integer array like
> this {1,2,3,NULL,4,5}? I don't see how this could be possible as the
> array itself is the value of the column. You can of course use a
> relation instead of an array. In first normalform this should be easy to
> do.

Sorry, I meant I was using coalesce/nullif as a workaround for the bug 
above.

Thanks again,

Kuba