Saluton,

plpgsql seems to get confused when using variable names that coincide
with, e.g., column names:

create Function IdOfPossiblyNewAuthor(text) returns int4 as '
  declare
    id int4;
  begin
    select id into id from author where name = $1;
    raise notice ''ID found: %'', id;
    if id is null then
      insert into author (name) values ($1);
      select currval(''author_id_seq'') into id;
      raise debug ''Author inserted. ID: %'', id;
    end if;
    return id;
  end;
' language 'plpgsql' with (IsCachable);

Logically it is clear which "id" should be parsed as the variable,
which as author.id, but I have to use a different name to make this
work. I do not see any mention on this restriction of variable names
(the full extent of which I do not know) in the documentation (7.0.2).

Albert.


-- 

--------------------------------------------------------------------------
Albert Reiner                                   <[EMAIL PROTECTED]>
Deutsch       *       English       *       Esperanto       *       Latine
--------------------------------------------------------------------------

Reply via email to