我TYPE
在 PostgreSQL 中发现。我有一个TABLE TYPE
某些表必须尊重的(接口)。例如:
CREATE TYPE dataset AS(
ChannelId INTEGER
,GranulityIdIn INTEGER
,GranulityId INTEGER
,TimeValue TIMESTAMP
,FloatValue FLOAT
,Status BIGINT
,QualityCodeId INTEGER
,DataArray FLOAT[]
,DataCount BIGINT
,Performance FLOAT
,StepCount INTEGER
,TableRegClass regclass
,Tags TEXT[]
,WeightedMean FLOAT
,MeanData FLOAT
,StdData FLOAT
,MinData FLOAT
,MaxData FLOAT
,MedianData FLOAT
,Percentiles FLOAT[]
);
Run Code Online (Sandbox Code Playgroud)
我可以使用此模板创建表:
CREATE TABLE test OF dataset;
Run Code Online (Sandbox Code Playgroud)
我在API 中看到了很多选项,但我有点迷茫。我想知道是否可以将此类型分配给函数INPUT/OUTPUT
参数。
假设我有一个FUNCTION
调用process
,它从数据集中接收记录样本TABLE
source
,处理它们,然后返回TABLE
sink
具有相同TYPE
.
那就是我想知道是否有可能创建一个TYPE …
我想用 PostgreSQL 游标确认一点。
我必须为巨大的结果集查询(超过 1Go 的小重量行)实现一个选择工厂。因此,我已经了解了游标,并按以下方式执行查询:
我创建一个光标:
DECLARE HashedCursorName CURSOR FOR SELECT * FROM BigResultSetQuery;
Run Code Online (Sandbox Code Playgroud)
我重复获取少量结果集:
FETCH 1000 FROM HashedCursorName;
Run Code Online (Sandbox Code Playgroud)
当结果集耗尽时,我关闭游标:
CLOSE HashedCursorName;
Run Code Online (Sandbox Code Playgroud)
我需要解决并发问题,我的意思是,许多用户必须能够同时使用 API 过程中存储的相同查询。当用户执行存储的查询时,他会收到一个新连接。我首先在 API 中修改了我的游标名称,因为我认为如果调用所有选择查询,StaticCursorName
我会遇到两个用户试图创建相同游标或读取相同游标的问题。一切都按预期进行。
然后我尝试将光标名称更改为静态名称,它仍然有效。我能够同时运行多个相同的查询。然后我想知道,光标是否绑定到连接?,然后PostgreSQL是通过将游标分配给会话来解决并发的吗?
我已经创建了我的 CA、服务器和客户端证书和密钥。我尝试过使用sslmode
带有psql
. 我已编辑该pg_hba.conf
文件以强制hostssl
仅使用 SSL 。现在我想设置我的服务器以强制验证为sslmode=verify-full
. 我已经阅读了两次文档 I 并且不明白如何继续。他们说它由环境变量控制,但无法使其工作。我必须如何设置此变量以及如何使其持久化。有谁知道如何进行?
更新:我在 Ubuntu Server 14.04 上运行 PostgreSQL 9.3