Re: [GENERAL] Bug with sequences in 6.4.2

Поиск
Список
Период
Сортировка
От wehner@digital-security.com (Stefan Wehner)
Тема Re: [GENERAL] Bug with sequences in 6.4.2
Дата
Msg-id 19990311170816.4853D1518F@miraculix.shw.com
обсуждение исходный текст
Список pgsql-general
Greetings,
I have found the place from which this bug seems to originate in
[6.4.2 sources]
backend/parser/parse_func.c
line #443 - #445

There is the call to
    text *lower(text *)

so probably any fix should start here.
Now what is the intended semantics/syntax for nextval(<ARG>) ?

e.g.
    a) nextval('AA'),
    b) nextval("AA")
or even
    c) nextval('"AA"')

a change to allow syntax a) might have the potential to break existing
assumptions about case-insensitiveness on behalf of nextval,
I would prefer a change that would allow
    nextval(aa) -- This will cause problems in the parser as a syntactic
                    -- element is removed
    nextval("AA")
something around this line of thought will make handling of identifiers
consistent again. Treat a string case-insensitive unless it is a quoted
identifier.
I had expected the ugly c) above to work, but currently there is no check if
the sequencename might be a quoted identifier.
I'm not sure if I have enough time to make a patch myself, as I'm not overly
confident to find my way through the intestines of the parser, but maybe one
of you can either think of a quick fix or point me to what needs to be
considered to implement a fix.

BTW, as this affects SERIAL, I consider this a definite showstopper for both
6.4.x and 6.5 ( that is if it is still present in there ).

Test Case from my earlier post should probably go into the Regress tests ASAP.

With Regards,
     Stefan Wehner








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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [INTERFACES] threads and libpq
Следующее
От: Ralf Weidemann
Дата:
Сообщение: daily check for expired data ?