Minor irritant with comment parsing in a function (SQL) body

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Minor irritant with comment parsing in a function (SQL) body
Дата
Msg-id 200310081921.51688.dev@archonet.com
обсуждение исходный текст
Ответы Re: Minor irritant with comment parsing in a function (SQL)  (Peter Eisentraut <peter_e@gmx.net>)
Re: Minor irritant with comment parsing in a function (SQL) body  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-bugs
Versions: 7.3, 7.4beta (not latest)
Applies to SQL functions, but not apparently to plpgsql (because of the
different parser, I presume).

This is really a "doctor it hurts when I..." thing - the fact that I've never
come across it before must mean it's pretty hard to trigger.

The first version of this function compiles fine, the second doesn't.

CREATE OR REPLACE FUNCTION zzz_test () RETURNS text AS '
  SELECT ''hello world''::text;
-- SELECT ''goodbye world''
' LANGUAGE 'SQL';

CREATE OR REPLACE FUNCTION zzz_test () RETURNS text AS '
  SELECT ''hello world''
-- SELECT ''goodbye world''
::text;
' LANGUAGE 'SQL';

ERROR:  parser: unterminated quoted string at or near "'hello world'
-- SELECT 'goodbye world'
::text;
"

It took forever to find a simple reproducible example, but the rules seem to
be:
1. You must have quoting at the end of both adjacent lines
2. Both lines must be within a single SQL statement.
3. You must use the -- comment, not /* ... */

Originally spotted with a formulation like:
  AND type1 = ''A''
  AND type2 = ''B''
  ...
I commented one test and got an error message.

--
  Richard Huxton
  Archonet Ltd

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Andreas Pflug
Дата:
Сообщение: Re: [pgadmin-hackers] Degrade(character conversion problem) pga3?
Следующее
От: "Hiroshi Saito"
Дата:
Сообщение: Re: [pgadmin-hackers] Degrade(character conversion problem) pga3?