当我在查询中的hstore()
对象上使用PostgreSQL 9.5 row
构造函数时,它似乎只返回该行中text
或{{1}的列数据类型。我可以看到我的integer
和timestamp
列默认从返回的HSTORE对象中省略。
在PostgreSQL 9.3中,构建character varying
对象的行也包括hstore
和timestamp
列,如何才能恢复此行为?
具体来说,我的桌子的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
);
构造函数的输出;请注意,hstore
,session_id
和created_at
列(键)不会添加到hstore中,即使它们的值不为null:
updated_at
答案 0 :(得分:0)
没有。 应包含所有列。即使有NULL值。 (我刚测试验证。)
也许您无意中在不同的架构中使用了具有相同名称的其他表格? 旁白:你可以简化为(等效):
SELECT hstore(sessions) FROM public.sessions LIMIT 1;
我使用模式限定public.sessions
以确保使用正确的表格
我假设您了解架构搜索路径的作用?