Thread: Incorrect display type of the function result

Incorrect display type of the function result

From
Алексей Лутовинин
Date:
Hello!

pgAdmin 1.20.0 (Dec 16 2014, rev: REL-1_20_0)
OS: Windows 7/64.

Create a function that returns a table with a column "col1":

CREATE OR REPLACE FUNCTION myfunc()
RETURNS TABLE(col1 text) AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
LANGUAGE sql STABLE;

After creating a look at the source code of the function in the object browser:

CREATE OR REPLACE FUNCTION myfunc()
  RETURNS SETOF text AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
  LANGUAGE sql STABLE
  COST 100
  ROWS 1000;

The type of result of the function is shown as "SETOF text" instead "TABLE(col1 text)", column name "col1" is lost.
Despite this, the name of the column "col1" is present in the results:

SELECT * FROM myfunc();

col1      !
text      !
----------+-
aaa       |

Сommand-line utility "psql" returns (\df+) correct value of function type.

Re: Incorrect display type of the function result

From
"Guillermo E. Villanueva"
Date:
What you say is almost the same as I reported

Guillermo Villanueva


2015-04-20 11:45 GMT-03:00 Алексей Лутовинин <crossrw1@gmail.com>:
Hello!

pgAdmin 1.20.0 (Dec 16 2014, rev: REL-1_20_0)
OS: Windows 7/64.

Create a function that returns a table with a column "col1":

CREATE OR REPLACE FUNCTION myfunc()
RETURNS TABLE(col1 text) AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
LANGUAGE sql STABLE;

After creating a look at the source code of the function in the object browser:

CREATE OR REPLACE FUNCTION myfunc()
  RETURNS SETOF text AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
  LANGUAGE sql STABLE
  COST 100
  ROWS 1000;

The type of result of the function is shown as "SETOF text" instead "TABLE(col1 text)", column name "col1" is lost.
Despite this, the name of the column "col1" is present in the results:

SELECT * FROM myfunc();

col1      !
text      !
----------+-
aaa       |

Сommand-line utility "psql" returns (\df+) correct value of function type.


Re: Incorrect display type of the function result

From
Алексей Лутовинин
Date:
Yes, very similar.

2015-04-22 6:23 GMT+03:00 Guillermo E. Villanueva <guillermovil@gmail.com>:
What you say is almost the same as I reported

Guillermo Villanueva


2015-04-20 11:45 GMT-03:00 Алексей Лутовинин <crossrw1@gmail.com>:

Hello!

pgAdmin 1.20.0 (Dec 16 2014, rev: REL-1_20_0)
OS: Windows 7/64.

Create a function that returns a table with a column "col1":

CREATE OR REPLACE FUNCTION myfunc()
RETURNS TABLE(col1 text) AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
LANGUAGE sql STABLE;

After creating a look at the source code of the function in the object browser:

CREATE OR REPLACE FUNCTION myfunc()
  RETURNS SETOF text AS
$BODY$
  SELECT 'aaa'::text;
$BODY$
  LANGUAGE sql STABLE
  COST 100
  ROWS 1000;

The type of result of the function is shown as "SETOF text" instead "TABLE(col1 text)", column name "col1" is lost.
Despite this, the name of the column "col1" is present in the results:

SELECT * FROM myfunc();

col1      !
text      !
----------+-
aaa       |

Сommand-line utility "psql" returns (\df+) correct value of function type.