Re: PHP array to PlPgSQL arrat. How to? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: PHP array to PlPgSQL arrat. How to?
Date
Msg-id AANLkTims1bWOZ+fhhOL9me2XEccvV+3xQx4khCYM2_oO@mail.gmail.com
Whole thread Raw
In response to Re: PHP array to PlPgSQL arrat. How to?  (Dmitriy Igrishin <dmitigr@gmail.com>)
List pgsql-general
2011/3/5 Dmitriy Igrishin <dmitigr@gmail.com>:
>
>
> 2011/3/5 Pavel Stehule <pavel.stehule@gmail.com>
>>
>> 2011/3/5 Dmitriy Igrishin <dmitigr@gmail.com>:
>> >
>> >
>> > 2011/3/5 Pavel Stehule <pavel.stehule@gmail.com>
>> >>
>> >> 2011/3/5 Andre Lopes <lopes80andre@gmail.com>:
>> >> > Hi Pavel,
>> >> >
>> >> > Thanks for the reply.
>> >> >
>> >> > In PlpgSQL there is possible to define arrays with "Key => Value, Key
>> >> > =>
>> >> > Value"?
>> >> >
>> >>
>> >> No, no directly
>> >>
>> >> there are no hash array
>> >>
>> >> there is a workaround a hstore module
>> >
>> > Why hstore is a workaround ? hstore is a proven and
>> > mature module.
>> > And since 9.0 is has a lot of improvements and
>> > make the life easy in some cases today and here.
>>
>> It doesn't allow a nested hstore values.
>
> How so ?
>
> dmitigr=> select ('id=>1, dat=>"id=>100"'::hstore -> 'dat')::hstore->'id'
> id;
>  id
> -----
>  100
> (1 row)

you cannot do some like

'a => { aa=>1, ba=>2}, c=>10, d => { a => 11, b => 12}'::hstore

your solution is trick, but it doesn't help too much with
deserialisation of PHP serialised structured value.

I have nothing against hstore - it's best for substitution of EAV and
good for almost all database use cases. But it hasn't a functionality
of hash tables from Perl or PHP.

Regards

Pavel

>
>>
>> Regards
>>
>> Pavel
>>
>>
>> >>
>> >> http://www.postgresql.org/docs/9.0/static/hstore.html
>> >>
>> >> attention - it doesn't allow a nested values
>> >>
>> >> Regards
>> >>
>> >> Pavel Stehule
>> >>
>> >> for more complex values is other was - using a temp tables - you can
>> >> fill a temp table and in next step a plpgsql code use this temp table.
>> >> But it should have a performance impacts.
>> >>
>> >>
>> >>
>> >> > Best Regards,
>> >> >
>> >> >
>> >> > On Sat, Mar 5, 2011 at 7:28 PM, Pavel Stehule
>> >> > <pavel.stehule@gmail.com>
>> >> > wrote:
>> >> >> Hello
>> >> >>
>> >> >> there isn't a simple way :(
>> >> >>
>> >> >> the most simply way is using string_to_array function
>> >> >>
>> >> >> SELECT func(string_to_array('1,2,3,4,5',','));
>> >> >>
>> >> >> Regards
>> >> >>
>> >> >> Pavel Stehule
>> >> >>
>> >> >>
>> >> >> 2011/3/5 Andre Lopes <lopes80andre@gmail.com>:
>> >> >>> Hi,
>> >> >>>
>> >> >>> I need to transform an PHP array to an PlPgSQL array. The PHP array
>> >> >>> is
>> >> >>> like this:
>> >> >>>
>> >> >>> [quote]
>> >> >>> $arr = array(
>> >> >>>                                0 => array(
>> >> >>>                                                        "base64" =>
>> >> >>> "ddfffffff",
>> >> >>>                                                        "image_type"
>> >> >>> =>
>> >> >>> "jpg",
>> >> >>>                                                        "width" =>
>> >> >>> "343",
>> >> >>>                                                        "height" =>
>> >> >>> "515",
>> >> >>>
>> >> >>>  "html_width_height" => 'width="343" height="515"',
>> >> >>>                                                        "mime" =>
>> >> >>> "image/jpeg"
>> >> >>>                                                        ),
>> >> >>>                                1 => array(
>> >> >>>                                                        "base64" =>
>> >> >>> "ddfffffffddddd",
>> >> >>>                                                        "image_type"
>> >> >>> =>
>> >> >>> "jpg",
>> >> >>>                                                        "width" =>
>> >> >>> "343",
>> >> >>>                                                        "height" =>
>> >> >>> "515",
>> >> >>>
>> >> >>>  "html_width_height" => 'width="343" height="515"',
>> >> >>>                                                        "mime" =>
>> >> >>> "image/jpeg"
>> >> >>>                                                        )
>> >> >>>                        );
>> >> >>> [/quote]
>> >> >>>
>> >> >>> How can I pass this kinf of PHP array to PlPgSQL?
>> >> >>>
>> >> >>> Give me a clue.
>> >> >>>
>> >> >>> Best Regards,
>> >> >>>
>> >> >>> --
>> >> >>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>> >> >>> To make changes to your subscription:
>> >> >>> http://www.postgresql.org/mailpref/pgsql-general
>> >> >>>
>> >> >>
>> >> >
>> >>
>> >> --
>> >> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>> >> To make changes to your subscription:
>> >> http://www.postgresql.org/mailpref/pgsql-general
>> >
>> >
>> >
>> > --
>> > // Dmitriy.
>> >
>> >
>> >
>
>
>
> --
> // Dmitriy.
>
>
>

pgsql-general by date:

Previous
From: Dmitriy Igrishin
Date:
Subject: Re: PHP array to PlPgSQL arrat. How to?
Next
From: Allan Kamau
Date:
Subject: Re: Why count(*) doest use index?