首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PostgreSQL描述结果集?

用PostgreSQL描述结果集?
EN

Stack Overflow用户
提问于 2014-09-17 20:24:06
回答 2查看 653关注 0票数 5

在Microsoft中,有一个proc sys.sp_describe_first_result_set,它接受任意的Sql查询字符串,并返回数据描述如果要执行结果集中的类型。注意,这是描述复杂查询的结果,而不是表。MSDN参考

对于Postgres有类似的东西吗?

EN

Stack Overflow用户

回答已采纳

发布于 2014-09-18 06:31:18

在协议层面 -以描述消息的形式出现在扩展查询协议中。

对于任意SQL字符串,我不知道任何SQL级别的等价物。好主意,在pgsql-general上提出来。我想这会很容易实现。

事实上,快速查看exec_describe_statement_messagesrc/backend/tcop/postgres.c中显示出大脑在SendRowDescriptionMessage中的src/backend/access/common/printtup.c。编写一个简单的C扩展来完成类似的工作并生成一个结果集应该不难。如果您熟悉代码库,希望有几个小时的工作时间;这样做的想法是:

  • 将SQL字符串输入解析器/重写器/计划器以获得计划
  • 查找顶级节点的目标列表(如果有的话)。这将是DML的RETURNING节点,或者是SELECT的顶级Query tlist。
  • 将tlist输入ExecTypeFromTL
  • 循环在tupledesc条目上,跳过resjunk列,在tlist中查找它们,并为查询中的每个非垃圾输出发出一行。
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25899722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档