BUG #3106: A problem with escaping table name pattern for DatabaseMetaData.getColumns()
От | Valery Meshkov |
---|---|
Тема | BUG #3106: A problem with escaping table name pattern for DatabaseMetaData.getColumns() |
Дата | |
Msg-id | 200703041900.l24J08aR034467@wwwmaster.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #3106: A problem with escaping table name pattern
for DatabaseMetaData.getColumns()
|
Список | pgsql-bugs |
The following bug has been logged online: Bug reference: 3106 Logged by: Valery Meshkov Email address: meshok2001-news@yahoo.com PostgreSQL version: 8.2.3 Operating system: Windows Description: A problem with escaping table name pattern for DatabaseMetaData.getColumns() Details: I am seeing a problem in the JDBC driver postgresql-8.2-504.jdbc3.jar with getting columns of the table 'A_B'. I am escaping '_' with the escape value returned by DatabaseMetaData.getSearchStringEscape(), which in my case is "\\\\" (standard_conforming_strings is off). When I pass the resulting table name 'A\\_B' to DatabaseMetaData.getColumns() the number of backslashes doubles again, resulting in 4 backslashes in the select statement: SELECT n.nspname,c.relname,a.attname,a.atttypid,a.attnotnull,a.atttypmod, a.attlen,a.attnum,def.adsrc,dsc.description FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_class c ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (a.attrelid=c.oid) LEFT JOIN pg_catalog.pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) LEFT JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid) LEFT JOIN pg_catalog.pg_class dc ON (dc.oid=dsc.classoid AND dc.relname='pg_class') LEFT JOIN pg_catalog.pg_namespace dn ON (dc.relnamespace=dn.oid AND dn.nspname='pg_catalog') WHERE a.attnum > 0 AND NOT a.attisdropped AND c.relname LIKE 'A\\\\_B' ORDER BY nspname,relname,attnum With this select no columns are found. If I change the escape string in the debugger to have just one backslash ("\\") everything works fine. It is also working with the 8.1-404 driver.
В списке pgsql-bugs по дате отправления: