From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Dmitriy Igrishin <dmitigr(at)gmail(dot)com> |
Cc: | Andre Lopes <lopes80andre(at)gmail(dot)com>, postgresql Forums <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: PHP array to PlPgSQL arrat. How to? |
Date: | 2011-03-05 22:05:02 |
Message-ID: | AANLkTims1bWOZ+fhhOL9me2XEccvV+3xQx4khCYM2_oO@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2011/3/5 Dmitriy Igrishin <dmitigr(at)gmail(dot)com>:
>
>
> 2011/3/5 Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
>>
>> 2011/3/5 Dmitriy Igrishin <dmitigr(at)gmail(dot)com>:
>> >
>> >
>> > 2011/3/5 Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
>> >>
>> >> 2011/3/5 Andre Lopes <lopes80andre(at)gmail(dot)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(dot)stehule(at)gmail(dot)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(at)gmail(dot)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(at)postgresql(dot)org)
>> >> >>> To make changes to your subscription:
>> >> >>> http://www.postgresql.org/mailpref/pgsql-general
>> >> >>>
>> >> >>
>> >> >
>> >>
>> >> --
>> >> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>> >> To make changes to your subscription:
>> >> http://www.postgresql.org/mailpref/pgsql-general
>> >
>> >
>> >
>> > --
>> > // Dmitriy.
>> >
>> >
>> >
>
>
>
> --
> // Dmitriy.
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Allan Kamau | 2011-03-05 22:05:53 | Re: Why count(*) doest use index? |
Previous Message | matty jones | 2011-03-05 21:08:02 | Web Hosting |