Hackers,

Given this script:

    BEGIN;

    CREATE TYPE foo AS ( this int, that int );

    CREATE OR REPLACE FUNCTION dump(foo[]) returns text language plperlu AS $$
        use Data::Dumper; Dumper shift;
    $$;

    CREATE OR REPLACE FUNCTION dump(foo) returns text language plperlu AS $$
        use Data::Dumper; Dumper shift;
    $$;

    select dump(row(3, 5)::foo);
    select dump(ARRAY[row(3, 5)::foo]);

    ROLLBACK;

The output is:

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

    Time: 0.936 ms
             dump         
    ----------------------
     $VAR1 = '{"(3,5)"}';+
 
    (1 row)

That is, if a record is passed to a PL/Perl function, it's correctly converted 
into a hash. If, however, an array of records are passed, the record are 
stringified, rather than turned into hashes. This seems inconsistent. Bug?

Thanks,

David


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to