On 1/16/15 11:22 AM, Pavel Stehule wrote:
2015-01-16 18:03 GMT+01:00 Jim Nasby <[email protected]
<mailto:[email protected]>>:
On 1/16/15 3:45 AM, Pavel Stehule wrote:
I am returning back to processing records in plpgsql.
I am thinking so it can be simply processed with transformations to
array.
Now we have similar functions - hstore(row), row_to_json, ... but using
of these functions can be a useless step. Any row variable can be transformed
to 2D text array.
How is it useless? Why wouldn't you just use JSON and be done with it?
We can use a FOREACH IN ARRAY iteration in plpgsql (second variant is a
implementation FOREACH for jsonb)
so ROW->ARRAY is shorter than ROW->JSON->ARRAY or ROW->HSTORE->ARRAY
I think the real problem here is that we're inventing a bunch of different ways
to do the same thing: iterate over a set. Instead of doing that, should we add
the idea of an iterator to the type system? That would make sense for arrays,
hstore, json and XML.
Do you have some use cases you can share?
processing of NEW, OLD variables in triggers
Note that last time I checked you couldn't do something like NEW.variable, and
I don't think you could use EXEC to do it either. So there's more needed here
than just converting a record to an array.
There two possible transformations:
row_to_array --> [[key1, value1],[key2, value2], ...]
row_to_row_array --> [(key1, value1), (key2, value2), ... ]
If we're going to go that route, I think it makes more sense to create an actual
key/value type (ie: http://pgxn.org/dist/pair/doc/__pair.html
<http://pgxn.org/dist/pair/doc/pair.html>) and return an array of that.
ok
--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com
--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers