Re: Arrays of Records in PL/Perl

From: "David E(dot) Wheeler" <david(at)kineticode(dot)com>
To: Alex Hunsaker <badalex(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Arrays of Records in PL/Perl
Date: 2011-07-12 22:06:13
Message-ID: BA84CD41-25A6-46ED-95DD-240BF9F9E35C@kineticode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Jul 12, 2011, at 12:19 PM, Alex Hunsaker wrote:

> All Arrays in 9.0 and lower are strings, regardless of if they are
> comprised of composite types. Its not so much a bug as a limitation.
> Alexey Klyukin fixed this for 9.1 :-)

Oh?

dump
--------------------------
$VAR1 = { +
'that' => '5',+
'this' => '3' +
}; +

(1 row)

Time: 2.016 ms
dump
----------------------------------------------------
$VAR1 = bless( { +
'array' => [ +
{ +
'that' => '5', +
'this' => '3' +
} +
], +
'typeoid' => 16457 +
}, 'PostgreSQL::InServer::ARRAY' );+

(1 row)

Woo! Thanks!

> [ In 9.1 we could not make them straight perl arrayrefs as we needed
> to keep the string representation for backwards compatibility. What we
> did in 9.1 is overload the arrayref and string operations on blessed
> object so you can treat it as either. ]

Yep, awesome.

Best,

David

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2011-07-12 22:10:44 Re: spinlock contention
Previous Message Alvaro Herrera 2011-07-12 21:59:01 Re: FOR KEY LOCK foreign keys