首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回查询的函数的PostgreSQL结构

返回查询的函数的PostgreSQL结构
EN

Stack Overflow用户
提问于 2017-04-14 01:07:03
回答 2查看 289关注 0票数 1

给定返回查询的PostgreSQL函数:

代码语言:javascript
运行
复制
CREATE OR REPLACE FUNCTION word_frequency(_max_tokens int)
  RETURNS TABLE (
    txt   text   -- visible as OUT parameter inside and outside function
  , cnt   bigint
  , ratio bigint) AS
$func$
BEGIN
   RETURN QUERY
   SELECT t.txt
        , count(*) AS cnt  -- column alias only visible inside
        , (count(*) * 100) / _max_tokens  -- I added brackets
   FROM  (
      SELECT t.txt
      FROM   token t
      WHERE  t.chartype = 'ALPHABETIC'
      LIMIT  _max_tokens
      ) t
   GROUP  BY t.txt
   ORDER  BY cnt DESC;  -- note the potential ambiguity 
END
$func$  LANGUAGE plpgsql;

如何检索此函数的结构?我的意思是,我知道这个函数将返回txtcntratio列,但是如何进行返回这些列名的查询呢?我试图在information_schema模式上找到这些列名,但是我找不到。

这个假设查询的预期结果如下所示:

代码语言:javascript
运行
复制
3 results found:
---------------------------------
?column_name?  |  ?function_name?
---------------------------------
txt                word_frequency
cnt                word_frequency
ratio              word_frequency
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-14 15:51:35

基于a_horse_with_no_name的回答,我附带了最后一个版本:

代码语言:javascript
运行
复制
SELECT
  column_name,
  function_name
FROM
(
  SELECT 
    unnest(p.proargnames) as column_name,
    unnest(p.proargmodes) as column_type,
    p.proname as function_name
FROM pg_proc p 
   JOIN pg_namespace n ON p.pronamespace = n.oid  
WHERE n.nspname = 'public' 
  AND p.proname = 'my_function'
) as temp_table
WHERE column_type = 't';

我只是省略了参数,只返回函数返回的列。

票数 1
EN

Stack Overflow用户

发布于 2017-04-14 05:54:16

此信息存储在pg_proc中。

代码语言:javascript
运行
复制
SELECT unnest(p.proargnames) as column_name,
       p.proname as function_name
FROM pg_proc p 
   JOIN pg_namespace n ON p.pronamespace = n.oid 
WHERE n.nspname = 'public' 
  AND p.proname = 'word_frequency'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43403882

复制
相关文章

相似问题

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