Re: error messages VERY misleading...!
От | Stephan Szabo |
---|---|
Тема | Re: error messages VERY misleading...! |
Дата | |
Msg-id | Pine.BSF.4.21.0103210645040.34533-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | error messages VERY misleading...! (will trillich <will@serensoft.com>) |
Ответы |
Re: error messages VERY misleading...!
|
Список | pgsql-general |
On Wed, 21 Mar 2001, will trillich wrote: > DECLARE > val int4; > BEGIN > -- minutes > val := int( date_part(''epoch'',current_timestamp - $1) / 60 ) ; > IF val < 60 THEN > val := val / 5; -- round down to 5-minute chunks > IF val < 1 > val := 1; > END IF; > return (val * 5) || '' min''; > END IF; > -- other time chunks follow > END; > ' LANGUAGE 'plpgsql'; > > > do you see the problem? i sure didn't, not for SEVEN HOURS > (thankyouverymuch). here's why: > > > psql=> SELECT showage( CURRENT_TIMESTAMP ); > ERROR: parser: parse error at or near "$2" > > > now WHO in their right mind would expect anyone to interpret > 'parse error at $2' as '"IF" needs a "THEN", bubba; where's the > "THEN", hmm?'? > > what $2? there's barely a $1! $2? WTF? > > AAUGH! > > </bitchmode> > > now, i know parsing for compilers/interpreters is a daunting > task, and meaningful error messages aren't easy to generate... > in postgresql plpgperl, you're lucky to get a relative line > number. but i gotta admit, 'near $2' takes the cake! WOW. My guess is that the variables are treated as $ things ($1 in this case is your argument, $2 == val) So it's complaining at the val:=1 line. Yeah, those messages could use help.
В списке pgsql-general по дате отправления: