Re: BUG #2851: Error in documentation or in code?

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: BUG #2851: Error in documentation or in code?
Дата
Msg-id 200612230052.kBN0qrh07606@momjian.us
обсуждение исходный текст
Ответ на BUG #2851: Error in documentation or in code?  ("Gurjeet Singh" <singh.gurjeet@gmail.com>)
Список pgsql-bugs
Interesting.  The bug was caused because 'on' and 'off' both start with
'o', so the code didn't do tests for partial matches.

The attached, applied patch will do the right thing, checking for at
least two characters for 'on' and 'off'.  The fix will appear in 8.3.

---------------------------------------------------------------------------

Gurjeet Singh wrote:
>
> The following bug has been logged online:
>
> Bug reference:      2851
> Logged by:          Gurjeet Singh
> Email address:      singh.gurjeet@gmail.com
> PostgreSQL version: 8.2.0
> Operating system:   Windows XP Professional
> Description:        Error in documentation or in code?
> Details:
>
> The documentation at
> http://www.postgresql.org/docs/8.2/interactive/config-setting.html states
> that:
>
> Boolean values may be written as ON, OFF, TRUE, FALSE, YES, NO, 1, 0 (all
> case-insensitive) or any unambiguous prefix of these.
>
> But the following doesn't work:
>
> postgres=# set enable_seqscan = of;
> ERROR:  parameter "enable_seqscan" requires a Boolean value
> postgres=#
>
> 'of' is an unambiguous prefix of OFF, but it clearly doesn't work. Is it the
> documentation that needs fix or is it the code?
>
> I tried the following too:
>
> set enable_seqscan = "of"; -- doesn't work
> set enable_seqscan = "off"; -- works
>
> BTW, I tried TR, TRU, FA, FAL, FALS, YE. They all work fine.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.362
diff -c -c -r1.362 guc.c
*** src/backend/utils/misc/guc.c    13 Dec 2006 05:54:48 -0000    1.362
--- src/backend/utils/misc/guc.c    23 Dec 2006 00:50:18 -0000
***************
*** 3575,3586 ****
              *result = false;
      }

!     else if (pg_strcasecmp(value, "on") == 0)
      {
          if (result)
              *result = true;
      }
!     else if (pg_strcasecmp(value, "off") == 0)
      {
          if (result)
              *result = false;
--- 3575,3587 ----
              *result = false;
      }

!     /* 'o' is not unique enough */
!     else if (pg_strncasecmp(value, "on", (len > 2 ? len : 2)) == 0)
      {
          if (result)
              *result = true;
      }
!     else if (pg_strncasecmp(value, "off", (len > 2 ? len : 2)) == 0)
      {
          if (result)
              *result = false;

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

Предыдущее
От: "Gurjeet Singh"
Дата:
Сообщение: Re: BUG #2847: Bug with IN statement
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: BUG #2852: User-defined type name begins with the