Обсуждение: plpgsql bug(?)

Поиск
Список
Период
Сортировка

plpgsql bug(?)

От
Kovacs Zoltan
Дата:
Dear Jan,

I have started to use plpgsql language for triggers (especially
for 'UPDATE AFTER' ones). It works very good, except the following:

CREATE FUNCTION "partner_t22" ( ) RETURNS opaque AS 
'begin if new.az != old.az then update vev�_megrendel�se 
set vev� = new.az where vev� = old.az; end if; return new; end;'
LANGUAGE 'plpgsql';

After UPDATE, I am running into:

ERROR:  record new has no field vev

The problem occurs with "vev� = new.az", I think the plpgsql parser
stops processing the field name "vev�" because "�" (code 245)
is not a standard ASCII character, it is from the Latin2 set.
I tried other non-international characters like "�" (code 233)
without success.

Could you please help, where to modify the sources to make this work?
I am using version 6.5.2.

Thank you in advice,
best wishes,            Kovacs, Zoltan




Re: [SQL] plpgsql bug(?)

От
Jan Wieck
Дата:
Kovacs Zoltan wrote:

> Dear Jan,
>
> The problem occurs with "vevõ = new.az", I think the plpgsql parser
> stops processing the field name "vevõ" because "õ" (code 245)
> is not a standard ASCII character, it is from the Latin2 set.
> I tried other non-international characters like "é" (code 233)
> without success.
>
> Could you please help, where to modify the sources to make this work?
> I am using version 6.5.2.
    Unfortunately I cannot reproduce that behaviour here. Seems    that your version of lex(1) has another
understandingof the    character class [:alnum:] than my one. I can use äöü    (a-diaeresis etc.), µ (greek my
character)and ³ (3    superscripted) too.
 
    I'm using flex-2.5.4 here. But I'm not really sure it is that    itself, maybe flex is using isalnum() from the
standardC    library inside. Then it would be more tricky.
 
    You can play around with the two character sets WS and WC    declared at the top of
    src/pl/plpgsql/src/scan.l
    They are slightly extended regular expressions (the class    notation inside).



Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#========================================= wieck@debis.com (Jan Wieck) #