小编eng*_*erX的帖子

PostgreSQL将结果集返回为JSON数组?

我想让PostgreSQL将查询结果作为一个JSON数组返回.特定

create table t (a int primary key, b text);

insert into t values (1, 'value1');
insert into t values (2, 'value2');
insert into t values (3, 'value3');
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

[{"a":1,"b":"value1"},{"a":2,"b":"value2"},{"a":3,"b":"value3"}]
Run Code Online (Sandbox Code Playgroud)

要么

{"a":[1,2,3], "b":["value1","value2","value3"]}
Run Code Online (Sandbox Code Playgroud)

(实际上,了解两者会更有用).我尝试了一些类似的东西

select row_to_json(row) from (select * from t) row;
select array_agg(row) from (select * from t) row;
select array_to_string(array_agg(row), '') from (select * from t) row;
Run Code Online (Sandbox Code Playgroud)

我觉得我很亲密,但不是真的.除了9.15之外,我应该查看其他文档.JSON函数和操作符

顺便说一句,我不确定我的想法.这是一个通常的设计决定吗?我的想法是,当然,我可以获取上述3个查询中的第一个的结果(例如)并在将其提供给客户端之前在应用程序中稍微操作它,但是如果PostgreSQL可以直接创建最终的JSON对象,它会更简单,因为我还没有在我的应用程序中包含对任何JSON库的依赖.

postgresql json

103
推荐指数
3
解决办法
11万
查看次数

Eclipse CDT索引和std :: unique_ptr

我在这段代码中使用std :: unique_ptr,它按照我的预期编译和运行.

std::stringstream out;
out << std::setw(3) << std::setfill('0') << i;
std::unique_ptr<std::string> s(new std::string(out.str()));
s->insert(s->end()-2, 1, '.');
return std::move(s);
Run Code Online (Sandbox Code Playgroud)

但是,我从Eclipse CDT收到错误消息.在第四行:无法解析方法"插入",无法解析方法"结束".

以前,我在名称std :: unique_ptr的外观上也遇到了错误.这是通过设置预处理器符号__GXX_EXPERIMENTAL_CXX0X__和重建索引来解决的,如问题的答案中所述.

有没有办法让CDT理解s的类型是std :: string*并且它应该在std :: string中查找s-> insert()和s-> end()?

PS:我使用的是Eclipse 3.7.1和CDT 8.0.0.201106081058

PS2:我想在上面的问题中将其作为评论发布,但我不能,大概是因为我是新用户

c++ eclipse ide eclipse-cdt c++11

8
推荐指数
1
解决办法
4766
查看次数

Org模式:描述棋局并自动生成棋盘图像

我写关于国际象棋的文章。我经常需要使用名为 FEN 的标准格式来描述国际象棋位置,并希望它自动转换为 png 图像,并且当我将 org 文档导出为 LaTeX 或 html 时,图像将被内联。我认为这是可以做到的,因为 ditaa 的工作原理似乎类似。

例如,使用 FEN 字符串“8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1”作为输入,我创建一个名为 chessboard.tex 的 tex 文件:

\documentclass[border={0 0 3 0}, convert={density=150}]{standalone}
\usepackage{xskak}
\usepackage{chessboard}
\usepackage{chessfss}
\usepackage{fontspec}
\begin{document}

\setchessboard{normalboard, showmover=true, moverstyle=triangle, label=false}
\setboardfontfamily{merida}

\fenboard{8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1} \chessboard

\end{document}
Run Code Online (Sandbox Code Playgroud)

使用 shell 命令 $> xelatex --shell-escape chessboard.tex 会生成以下 png 图像(由于使用了独立包)。 在此输入图像描述

我怎样才能自动化这个过程,这样我就可以放入一个像这样的组织文件

#+BEGIN_SRC chessfen
8/pppr1kpp/8/8/8/5P2/PPP1RKPP/8 w - - 0 1
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

上述过程是否自动化?

emacs elisp chess org-mode fen

5
推荐指数
1
解决办法
1132
查看次数

Kubernetes 活性探针:pod 可以监控自己的标准输出吗?

我的想法是实现一个活性探针作为命令,并使用类似的东西

$ grep something ERROR
Run Code Online (Sandbox Code Playgroud)

来自 Pod 内部,因此如果在 Pod 的输出中存在包含 ERROR 的行,则活性探测失败。

这可能吗?如果没有,是否可以在同一个容器中添加另一个容器来监视第一个容器?

kubernetes kubernetes-pod

4
推荐指数
1
解决办法
2092
查看次数

Common LISP:将(未知)结构对象转换为 plist?

(defstruct (mydate (:constructor make-mydate (year month day)))
  (year 1970)
  (month 1)
  (day 1))

 (defvar *date1* (make-mydate 1992 1 1))
Run Code Online (Sandbox Code Playgroud)

问题更普遍,但说我想将像date1这样的对象转换为“文档”,我可以坚持到数据库(例如 mongoDB,使用包 cl-mongo)。所以我写

(defun mydate->document (mydate)
   (cl-mongo:$ (cl-mongo:$ "year" (mydate-year mydate))
               (cl-mongo:$ "month" (mydate-month mydate))
               (cl-mongo:$ "day" (mydate-day mydate))))

REPL--> (mydate->doc *date1*)
kv-container : #(#S(CL-MONGO::PAIR :KEY year :VALUE 1992)
                 #S(CL-MONGO::PAIR :KEY month :VALUE 1)
                 #S(CL-MONGO::PAIR :KEY day :VALUE 1))
Run Code Online (Sandbox Code Playgroud)

但是,我可以不必写下结构的所有字段,而是以编程方式获取它们的名称和值吗?毕竟,我的 lisp 运行时可以做到这一点:

REPL--> (describe *date1*)
#S(MYDATE :YEAR 1992 :MONTH 1 :DAY 1)
  [structure-object]

Slots with :INSTANCE allocation:
YEAR   = …
Run Code Online (Sandbox Code Playgroud)

common-lisp

2
推荐指数
2
解决办法
546
查看次数