Tag: postgresql 9.3

如何在heroku postgres查询中使用LOCAL VARIABLES?

我已经在很多很多的线程中看过,并且通过各种文件来看看这个令人难以置信的简单任务,这让我非常吃惊。 我有一个node.js Web应用程序,它会在login时生成一个userId,并存储在一个会话对象中。 req.user.id <==我的本地variables的用户ID。 到目前为止,我的代码片段是这样的: var query = client.query("SELECT * FROM programs WHERE authorid = req.user.id", function (err, result) { if (err){ //Do erranous things } else { // Do good things } }); 我究竟做错了什么? 我怎么能做这个简单的任务比较一个数据库项目存储在本地variables的值? 任何/所有的帮助表示赞赏 – 我一直试图做6个小时。

PostgreSQL – 返回多个任意子查询的结果

像问题的标题所示,我试图采取一些任意的子查询,并将它们组合成一个单一的大型查询。 理想情况下,我想将数据作为单个logging返回,每列是其中一个子查询的结果。 例如 | sub-query 1 | sub-query 2 | … |—————–|—————–|—————– | (array of rows) | (array of rows) | … 子查询本身是在Node应用程序中使用Knex.js构build的,完全是任意的。 我已经相当接近一个适当的解决scheme,但我遇到了一个障碍。 我目前的实现有这样的最后一个查询: SELECT array_agg(sub0.*) as s0, array_agg(sub1.*) as s1, … FROM (…) as sub0, (…) as sub1, … ; 其中大部分工作,但在输出中导致大量的重复。 在我的testing过程中,我发现它会返回logging,这样每个logging的重复次数就等于没有重复logging的情况下将返回多lesslogging。 例如,应该返回10个logging的子查询将返回100(每个logging被重复10次)。 我还没有弄清楚为什么会发生这种情况,或者如何解决查询问题。 到目前为止,我只能确定: 单独查询时,子查询返回的logging数是正确的 副本不是由子查询之间的交集造成的 即子查询包含其他子查询中存在的行 提前致谢。

在postgresql有线协议中,我怎样才能从部分执行的select到达ReadyForQuery?

我正在尝试使用node.js中的node-pg-cursor模块针对postgresql服务器(版本9.3) 这个模块允许顺序读取一个select中的N行,并通过发送来工作 cur.read(N): 'Execute' on portal=unnamed, rows=N 这个命令最多可以读取N行,我们可以继续递增地读取行,直到我们接收到的结束 CommandComplete ReadyForQuery 现在我的问题是,我想退出扩展命令之前获取所有的行,并达到执行序列的结束:我想增量获取N行,N行,N行,..在一个点决定我有足够的。 当我这样做(通过执行停止获取),查询似乎永远不会达到CommandComplete或ReadyForQuery。 这似乎是正常的,因为没有任何事情告诉扩展查询,我永远不会再问它的行。 除了closures连接之外,还有一个命令可以访问CommandComplete或ReadyForQuery,而不是从门户获取所有行? 我试图发送closures并收到CloseComplete,但它没有去ReadyForQuery。 如果我通过在协议上发送垃圾强制ErrorResponse,我达到ReadyForQuery,但似乎不是很干净…