Обсуждение: tweaking scan.l

Поиск
Список
Период
Сортировка

tweaking scan.l

От
Ben Kim
Дата:
Manuel Sugawara <masm ( at ) fciencias ( dot ) unam ( dot ) mx> wrote:
>> Is there a way to completely turn off case sensitivity of the names
>> of table, field, sequence, etc.?
>No, i'm afraid not. But you can tweak scan.l to teach postgreSQL do
>what you want.

Many thanks. I want to ask a few questions, if you don't mind.

I checked the file scan.l. I guess you are referring to these lines...  I
wonder if I just comment them out,

1. whether the mixed case table names will be delivered finally to the
query engine? (Will MyTable be the same as "MyTable" then?)
2. whether all the other parts of the backend will accept this change
without problem?
3. Is there an easy test to make assure that the change is not causing
unforeseen problem, because I'm not expert enough?

(I'm not using keywords as table names, so at least this is not a
concern.)

          for (i = 0; ident[i]; i++)
          {
            if (isupper((unsigned char) ident[i]))
              ident[i] = tolower((unsigned char) ident[i]);
          }

In fact this was a problem for me making interfacing with phakt
(dreamweaver) and dbdesigner impossible. Phakt people's response is on
this page if you are interested.
http://www.interakt.ro/products/bbs/view_0_9873.html


Thanks,

Ben Kim


Re: tweaking scan.l

От
Manuel Sugawara
Дата:
Ben Kim <bkim@coe.tamu.edu> writes:

> Manuel Sugawara <masm ( at ) fciencias ( dot ) unam ( dot ) mx> wrote:
> >> Is there a way to completely turn off case sensitivity of the names
> >> of table, field, sequence, etc.?
> >No, i'm afraid not. But you can tweak scan.l to teach postgreSQL do
> >what you want.
>
> Many thanks. I want to ask a few questions, if you don't mind.

Ok, here is what I would do if I were facing your problem:

1.- Be sure that each identifier in the database catalogs doesn't
require the double quotes, for instance, for pg_class do something
like:

  update pg_class set relname = lower(relname) where relname <> lower(relname);

Do the same for pg_namespace, pg_attribute, etc.

2.- Teach scan.l to treat "Identifier" just as identifier, the
following patch against 7.3 will do the work


Regards,
Manuel.

Вложения