Thread: plpgsql bug(?)
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
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) #