PostgreSQL 函数

Postgresql functions

这些是提供给我的类型定义

create type IR as (pattern_number integer, uoc_number integer);

我目前的进度是:

create or replace function q1(pattern text, uoc_threshold integer)
  returns setof IR
  as $$
  BEGIN
    RETURN QUERY
    select count(code) from temp where code like ;
    RETURN QUERY 
    select count(code) from temp where code like  and uoc > ;

  END;
$$ language plpgsql;

我的输出需要是这样的: 查询:-

select * 
from q1('ECO%', 6);

pattern_number  |   uoc_number 
80              |         5      

我收到一条错误消息:

ERROR: structure of query does not match function result type
DETAIL: Returned type bigint does not match expected type integer in column 1.
CONTEXT: PL/pgSQL function q1(text,integer) line 3 at RETURN QUERY

我该如何解决这个问题?

是你想要的吗?..

create or replace function q1(pattern text, uoc_threshold integer)
  returns setof IR
  as $$
  BEGIN
    RETURN QUERY
    select (select count(code) from temp where code like )::integer
    ,(
    select count(code) from temp where code like  and uoc > )::integer;

  END;
$$ language plpgsql;