RE: column_query buffer in PGAPI ColumnPrivileges

Поиск
Список
Период
Сортировка
От Chiang Chan-i
Тема RE: column_query buffer in PGAPI ColumnPrivileges
Дата
Msg-id MEYP282MB4042BC333C03F2D225071D7A92019@MEYP282MB4042.AUSP282.PROD.OUTLOOK.COM
обсуждение исходный текст
Ответ на RE: column_query buffer in PGAPI ColumnPrivileges  ("Wal, Jan Tjalling van der" <jan_tjalling.vanderwal@wur.nl>)
Список pgsql-odbc

Dear Kind regards JT,

 

Thanks for your help and patience.

The error of SQL Command I mentioned is here

                                               

3733     if (escSchemaName)                                                  ↓↓--  table_schema

3734         appendPQExpBuffer(&column_query, " and table_schem %s'%s'", eq_string, escSchemaName);

 

 

jiang=# select '' as TABLE_CAT, table_schema as TABLE_SCHEM,

                table_name, column_name, grantor, grantee,

                privilege_type as PRIVILEGE, is_grantable from

                information_schema.column_privileges where true

                and table_schem = 'public'          ---->>>>       Maybe table_schem[a]   

                and table_name ='test'

                and column_name = 'a';

ERROR:  column "table_schem" does not exist

LINE 5:                 and table_schem = 'public'     

                            ^

HINT:  Perhaps you meant to reference the column "column_privileges.table_schema".

jiang=#

 

 

Sent from Mail for Windows

 

From: Wal, Jan Tjalling van der
Sent: 2022
1110 5:45
To: foxi_yiyi12081003; pgsql-odbc@postgresql.org
Subject: RE: column_query buffer in PGAPI ColumnPrivileges

 

Dear foxi_yiyi12081003,

 

I’m not an expert on the inner workings of this specific driver, but in my opinion this is probably correct.

The query that is defined inside appendPQExpBufferStr, asks for data from column table_schema to be returned using a different name: TABLE_SCHEM.

When the results of that query are used further down, the correct name to use them will be that new name.

 

When the query is run against an running instance of a postgres-database it gives results (over 9000), here limited to just 5.

select '' as TABLE_CAT, table_schema as TABLE_SCHEM,

          table_name, column_name, grantor, grantee,

          privilege_type as PRIVILEGE, is_grantable from

          information_schema.column_privileges where true limit 5;

"table_cat"

"table_schem"

"table_name"

"column_name"

"grantor"

"grantee"

"privilege"

"is_grantable"

 

"information_schema"

"routines"

"scope_schema"

"xxxxxxxxxxxxx"

"xxxxxxxxxxxxx"

"UPDATE"

"YES"

 

"information_schema"

"routines"

"dtd_identifier"

"xxxxxxxxxxxxx"

"xxxxxxxxxxxxx"

"INSERT"

"YES"

 

"pg_catalog"

"pg_stat_progress_vacuum"

"datid"

"xxxxxxxxxxxxx"

"xxxxxxxxxxxxx"

"SELECT"

"YES"

 

"information_schema"

"role_udt_grants"

"grantor"

"xxxxxxxxxxxxx"

"xxxxxxxxxxxxx"

"SELECT"

"NO"

 

"pg_catalog"

"pg_namespace"

"nspname"

"xxxxxxxxxxxxx"

"xxxxxxxxxxxxx"

"SELECT"

"YES"

 

Kind regards JT

 

From: foxi_yiyi12081003 <foxi_yiyi12081003@outlook.com>
Sent: 09 November 2022 04:18
To: pgsql-odbc@postgresql.org
Subject: column_query buffer in PGAPI ColumnPrivileges

 

Hi,

Is that a bug in psqlodbc-13.02.0000 release version ?

file: info.c : 3734 ?

the SQL Command in the second appendPQExpBuffers

and table_schem %s'%s' table_schem or table_schema ??

 

code:

appendPQExpBufferStr(&column_query, "select '' as TABLE_CAT, table_schema as TABLE_SCHEM,"

                " table_name, column_name, grantor, grantee,"

                " privilege_type as PRIVILEGE, is_grantable from"

                " information_schema.column_privileges where true");

  op_string = gen_opestr(like_or_eq, conn);

  eq_string = gen_opestr(eqop, conn);

  if (escSchemaName)

         appendPQExpBuffer(&column_query, " and table_schem %s'%s'", eq_string, escSchemaName);

  if (escTableName)

         appendPQExpBuffer(&column_query, " and table_name %s'%s'", eq_string, escTableName);

  if (escColumnName)

         appendPQExpBuffer(&column_query, " and column_name %s'%s'", op_string, escColumnName);

  if (PQExpBufferDataBroken(column_query))

 

 

and I also found the same condition in master branch

 

 

Вложения

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

Предыдущее
От: "Wal, Jan Tjalling van der"
Дата:
Сообщение: RE: column_query buffer in PGAPI ColumnPrivileges
Следующее
От: "Wal, Jan Tjalling van der"
Дата:
Сообщение: RE: column_query buffer in PGAPI ColumnPrivileges