Re: recent ECPG 7.1->7.2 incompatibility ( interval('0sec') = syntax
От | Christof Petig |
---|---|
Тема | Re: recent ECPG 7.1->7.2 incompatibility ( interval('0sec') = syntax |
Дата | |
Msg-id | 3BE6AF46.9FC6E836@petig-baender.de обсуждение исходный текст |
Ответ на | recent ECPG 7.1->7.2 incompatibility ( interval('0sec') = syntax error ) (Christof Petig <christof@petig-baender.de>) |
Список | pgsql-bugs |
Thomas Lockhart wrote: > ... > > > > You mean it works with quotes but not without? > > > exec sql select "interval"('0sec'); // accepted by ecpg > > > exec sql select interval('0sec'); // not accepted by ecpg (yesterday's > > > CVS) > > Not really surprising I guess since "interval" is accepted as the string > > >interval< while interval is regarded a token. > > This change was forced by new features to support SQL9x INTERVAL syntax. > Since the full syntax allows constants of the form "INTERVAL 'val' DAY > TO MINUTE" I had to change the main parser to make INTERVAL a reserved > word, as is specified in SQL9x. > > Using internal conversion functions to force type is not recommended (or > at least shouldn't be). You probably know that CAST('string' AS > INTERVAL) should work for you, and is SQL9x compliant. I didn't know this to be SQL compliant (), so we'll switch to the cast syntax. I was used to the type conversion syntax back from the old days we used other DBMSs - so this kind of abuse might be common. A friend of mine which is used to oracle was shocked to see this syntax no longer supported. PS: Do you know a standard compliant way to combine a date and a time to a timestamp? Christof
В списке pgsql-bugs по дате отправления: