在Microsoft中,有一个proc sys.sp_describe_first_result_set,它接受任意的Sql查询字符串,并返回数据描述如果要执行结果集中的类型。注意,这是描述复杂查询的结果,而不是表。MSDN参考
对于Postgres有类似的东西吗?
发布于 2014-09-18 06:31:18
有在协议层面 -以描述消息的形式出现在扩展查询协议中。
对于任意SQL字符串,我不知道任何SQL级别的等价物。好主意,在pgsql-general上提出来。我想这会很容易实现。
事实上,快速查看exec_describe_statement_message在src/backend/tcop/postgres.c中显示出大脑在SendRowDescriptionMessage中的src/backend/access/common/printtup.c。编写一个简单的C扩展来完成类似的工作并生成一个结果集应该不难。如果您熟悉代码库,希望有几个小时的工作时间;这样做的想法是:
RETURNING节点,或者是SELECT的顶级Query tlist。ExecTypeFromTLresjunk列,在tlist中查找它们,并为查询中的每个非垃圾输出发出一行。https://stackoverflow.com/questions/25899722
复制相似问题