Search Postgresql Archives

Re: Trying to avoid a simple temporary variable declaration in a pl/pgsql function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello

The solution proposed by Tom works as long as you can make sure that your SELECT statement in the function will return a single row with a single column of type TEXT:

CREATE TABLE test (id INTEGER, what_goes_here TEXT);
INSERT INTO test values (1,'Text 1');
INSERT INTO test values (2,'Text 2');

CREATE FUNCTION test_func()
RETURNS text
LANGUAGE 'plpgsql'
AS $$
BEGIN
RETURN (SELECT what_goes_here FROM test LIMIT 1);
END;
$$;

SELECT * FROM test_func();
 test_func
-----------
 Text 1
(1 row)

No need for INTO.

Bye
Charles

On 6/20/2015 17:07, David G. Johnston wrote:
On Sat, Jun 20, 2015 at 10:56 AM, Tom Lane <tgl@xxxxxxxxxxxxx <mailto:tgl@xxxxxxxxxxxxx>>wrote:

    "David G. Johnston" <david.g.johnston@xxxxxxxxx
    <mailto:david.g.johnston@xxxxxxxxx>> writes:
    > I know this could be written quite easily in sql but was
    wondering if it is
    > possible in pl/pgsql.

    > CREATE FUNCTION test_func()
    > RETURNS text
    > LANGUAGE 'plpgsql'
    > AS $$
    > BEGIN
    > SELECT 'text_to_return' INTO <what_goes_here?>; --with or
    without a cast
    > RETURN <what_goes_here?>;
    > END;
    > $$;

    > The goal is to return the value of text_to_return without
    declaring an
    > explicit variable to name in the INTO clause.

    INTO requires a declared variable as target.

    However, I'm wondering why you don't just use "RETURN expression"
    if this is all that will be in the function.


​ The use of SELECT is required and will likely have a CTE and a set of SQL CASE expressions as part of it.
It isn't a problem to declare it myself but I thought I had read about there being an implicit variable name that could be used instead. I guess I mis-remembered...

​Thanks for the quick response.

David J.





--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux