On Thu, May 18, 2006 at 08:40:04PM -0400, Douglas McNaught wrote: > Mark Dilger <[EMAIL PROTECTED]> writes: > > > Tom Lane wrote: > >> No it isn't. The plpgsql scanner treats := and = as *the same token*. > >> They can be interchanged freely. This has nothing to do with the case > >> of modifying a loop variable in particular. > > > > I disagree. If the scanner treated them the same, then > > > > if i := 1 then ... > > > > would work, but it doesn't. The := is rejected in a conditional. Try the > > following code if you don't believe me: > > That's because (AIUI) all expressions to be evaluated are handed off > to the SQL parser (why re-implement all that logic and have subtle and > annoying differences?) plpgsql only handles the statements, loops, etc. > So it doesn't care about the difference but SQL does...
Something that's always bugged me is how horribly variables are handled in plpgsql, namely that if you have a variable and a field with the same name it can be extremely difficult to keep them seperated. Perhaps := vs = might be a way to keep it clear as to which is which... Though, a better way would probably just be to provide a built-in construct for referencing plpgsql variables, such as $. -- Jim C. Nasby, Sr. Engineering Consultant [EMAIL PROTECTED] Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461 ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster