Обсуждение: Parse statement can fail for unquoted uppercase tablenames

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

Parse statement can fail for unquoted uppercase tablenames

От
"Wayne Armstrong"
Дата:
Hi,
 If I pass the odbc driver a statement that looks like :-
 select * from CALEND_EVENT
 and statement parsing is turned on it may fail if it tries to do a
PGAPI_Columns call using the following SQL:-
select u.nspname, c.relname, a.attname, a.atttypid, t.typname, a.attnum,
a.attlen, a.atttypmod, a.attnotnull, c.relhasrules, c.relkind from pg_namespace
u, pg_class c, pg_attribute a, pg_type t where u.oid = c.relnamespace and (not
a.attisdropped) and c.oid= a.attrelid and a.atttypid = t.oid and (a.attnum > 0)
and c.relname = 'CALEND_EVENT' and u.nspname = 'bacchus' order by u.nspname,
c.relname, attnum.

select * from calend_event
works fine.

So even though the tablename is not quoted (and thus should be folded to
lowercase), the statement may return no rows, cause the columncount returned
from the statement parsing is 0.

Regards,
Wayne


Re: Parse statement can fail for unquoted uppercase tablenames

От
"Wayne Armstrong"
Дата:
** Reply to message from "Wayne Armstrong" <wdarmst@bacchus.com.au> on Thu, 10
Apr 2003 14:57:28 +1000

Umm,
 This actually seems to happen when the tablename is qualified ie:-
 select * from BACCHUS.CALEND_EVENT WHERE ....
 The qualifier gets lowercased as it should, the tablename does not.


Regards,
Wayne

> Hi,
>  If I pass the odbc driver a statement that looks like :-
>  select * from CALEND_EVENT
>  and statement parsing is turned on it may fail if it tries to do a
> PGAPI_Columns call using the following SQL:-
> select u.nspname, c.relname, a.attname, a.atttypid, t.typname, a.attnum,
> a.attlen, a.atttypmod, a.attnotnull, c.relhasrules, c.relkind from pg_namespace
> u, pg_class c, pg_attribute a, pg_type t where u.oid = c.relnamespace and (not
> a.attisdropped) and c.oid= a.attrelid and a.atttypid = t.oid and (a.attnum > 0)
> and c.relname = 'CALEND_EVENT' and u.nspname = 'bacchus' order by u.nspname,
> c.relname, attnum.
>
> select * from calend_event
> works fine.
>
> So even though the tablename is not quoted (and thus should be folded to
> lowercase), the statement may return no rows, cause the columncount returned
> from the statement parsing is 0.
>
> Regards,
> Wayne
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


Re: Parse statement can fail for unquoted uppercase tablenames

От
"Hiroshi Inoue"
Дата:
> -----Original Message-----
> From: Wayne Armstrong
>
> ** Reply to message from "Wayne Armstrong"
> <wdarmst@bacchus.com.au> on Thu, 10
> Apr 2003 14:57:28 +1000
>
> Umm,
>  This actually seems to happen when the tablename is qualified ie:-
>  select * from BACCHUS.CALEND_EVENT WHERE ....
>  The qualifier gets lowercased as it should, the tablename does not.

Could you try the lastest snapshot dll at
http://www.geocities.jp/inocchichichi/psqlodbc/ .

regards,
Hiroshi Inoue