Re: PostgreSQL arrays and DBD

Decibel! <[email protected]>
Newsgroups gmane.comp.db.postgresql.interfaces
Message-ID <[email protected]>
Don't know the answer, but I'm betting that Dave does :)

On Aug 14, 2008, at 3:31 AM, Александр Чешев wrote:
> I create a table:
>
> CREATE TABLE groups (
>   group_id serial PRIMARY KEY,
>   name varchar(64) UNIQUE NOT NULL,
>   guests integer[] DEFAULT '{}'
> )
>
> I add a new record to the table:
>
> INSERT INTO groups (name) VALUES ('My friends');
>
> Now the table contains 1 record:
>
> | group_id |    name    | guests
> +----------+------------+--------
> |        1 | My friends | {}
>
> I read the new record from the table using DBI:
>
> my $sth = $dbh->prepare(qq/SELECT * FROM groups/);
> $sth->execute();
> my (@guests, $group);
> push(@guests, $group) while $group = $sth->fetchrow_hashref(); #  
> Line 4
> print $guests[0]->{guests}->[0]; # Why ({group_id=>1, name=>'My  
> friends', guests=>[0]}) ?
>
> Output of the script:
>
> Argument "" isn't numeric in null operation at ./guestmanager.pl  
> line 4
> 0
>
> DBD should return a reference to an empty array. But DBD returned  
> the reference to the array containing 1 element (0). How can I have  
> a different result:
>
> ({group_id=>1, name=>'My friends', guests=>[]})
>
> PS
> Version of DBD::Pg is 2.9.0 .

-- 
Decibel!, aka Jim C. Nasby, Database Architect  [email protected]
Give your computer some brain candy! www.distributed.net Team #1828
smime.p7s (application/pkcs7-signature, 2.5 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.