PL/pgSQL 'i = i + 1' Syntax

From: David Wheeler <david(at)kineticode(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: PL/pgSQL 'i = i + 1' Syntax
Date: 2006-05-16 23:20:56
Message-ID: 0EA30263-51D2-4620-860D-82F2E83C3E42@kineticode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hellow PostgreSQL hackers,

Quick question. Why does the 'i = i + 1' syntax work in this PL/pgSQL
function?

try=# CREATE OR REPLACE FUNCTION inc_by_two(
try(# upfrom int,
try(# upto int
try(# ) RETURNS SETOF INT AS $$
try$# BEGIN
try$# FOR i IN upfrom..upto LOOP
try$# RETURN NEXT i;
try$# i = i + 1;
try$# END LOOP;
try$# END;
try$# $$ LANGUAGE 'plpgsql';
CREATE FUNCTION
try=# select * from inc_by_two(1,10);
inc_by_two
------------
1
3
5
7
9
(5 rows)

Someone posted a PL/pgSQL function in my blog with this syntax, which
is how I know about it, but I couldn't find it documented anywhere.
Is it a special exception for loop variables, perhaps?

Thanks,

David

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2006-05-16 23:30:35 Re: PL/pgSQL 'i = i + 1' Syntax
Previous Message Tom Lane 2006-05-16 23:18:48 Re: Mention pg_dump version portability