debian の hstore と PG-8.4 を使用した回答の手順は次のとおりです。
1) まだインストールされていない場合は、contrib パッケージをインストールします
# apt-get install postgresql-contrib-8.4
2) 関連するデータベースに hstore をインストールします。
$ psql -U postgres -d データベース名
# \i /usr/share/postgresql/8.4/contrib/hstore.sql
2bis) plpgsql 言語がインストールされていない場合は、インストールします (まだ psql 内で postgres ユーザーとして)
# 言語の作成 plpgsql;
3) hstore を入力として受け取る関数を作成します。キーと値を列挙するだけの plpgsql の例を次に示します。
CREATE OR REPLACE function enum_hstore(in_h hstore) returns void
as $$
declare
kv record;
begin
for kv in select * from (select (each(in_h)).*) as f(k,v) loop
raise notice 'key=%,value=%',kv.k,kv.v;
end loop;
end
$$ language plpgsql;
4) 関数を呼び出します。キーと値はテキスト型であるため、質問の current_timestamp 呼び出しのように、非リテラル エントリをテキストにキャストする必要がある場合があります。例:
select enum_hstore(
hstore('c',current_timestamp::text) ||
'a=>2,b=>5'::hstore
);
上記の関数から期待される結果:
注意: キー=a、値=2
注意: キー=b、値=5
注意: キー = c、値 = 2012-04-08 16:12:59.410056+02