Postgres HSTORE()函数是否仅对9.5中的文本/整数数据类型进行操作?

时间:2016-06-19 02:10:55

标签: sql postgresql hstore

当我在查询中的hstore()对象上使用PostgreSQL 9.5 row构造函数时,它似乎只返回该行中text或{{1}的列数据类型。我可以看到我的integertimestamp列默认从返回的HSTORE对象中省略。

在PostgreSQL 9.3中,构建character varying对象的行也包括hstoretimestamp列,如何才能恢复此行为?

具体来说,我的桌子的DDL看起来像是:

character varying

以下是运行CREATE TABLE public.sessions ( id integer NOT NULL DEFAULT nextval('sessions_id_seq'::regclass), session_id character varying(255) NOT NULL, data text, created_at timestamp without time zone, updated_at timestamp without time zone, CONSTRAINT sessions_pkey PRIMARY KEY (id) ) WITH ( OIDS=FALSE ); 构造函数的输出;请注意,hstoresession_idcreated_at列(键)不会添加到hstore中,即使它们的值不为null:

updated_at

1 个答案:

答案 0 :(得分:0)

没有。 应包含所有列。即使有NULL值。 (我刚测试验证。)

也许您无意中在不同的架构中使用了具有相同名称的其他表格? 旁白:你可以简化为(等效):

SELECT hstore(sessions) FROM public.sessions LIMIT 1;

我使用模式限定public.sessions以确保使用正确的表格 我假设您了解架构搜索路径的作用?