json - Preserve column names when converting the results of a query to hstore -
i have table users
columns user_id
, user_name
, user_phone
example.
if do:
select hstore(u) users u
the result is:
"user_id" => "1", "user_name" => "mcenroe", "user_phone" => "xxx"
if do:
select hstore(u) (select user_id, user_name, user_phone users) u
the result is:
"f1" => "1", "f2" => "mcenroe", "f3" => "xxx"
i lose name of columns.
how can use 2nd example , having correct column name?
this shortcoming fixed postgres 9.2.
quote release notes 9.2 here:
e.5.3.3. queries
(...)
retain column names @ run time row expressions (andrew dunstan, tom lane)
this change allows better results when row value converted hstore or json type: fields of resulting value have expected names.
also, don't use user
table name, if it's demo. reserved word in every sql standard , in postgres , cannot used table name without double-quoting. took liberty fix test case in q.
Comments
Post a Comment