public inbox for [email protected]
help / color / mirror / Atom feedFrom: Inoue,Hiroshi <[email protected]>
To: foxi_yiyi12081003 <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: [ Bug Report ]Re: column_query buffer in PGAPI ColumnPrivileges
Date: Thu, 1 Dec 2022 14:59:42 +0900
Message-ID: <CAFGcedVf1e-gtRuRjcjNOShJwOKz00rw_tk8MHV2Y3cV-Tq55w@mail.gmail.com> (raw)
In-Reply-To: <MEYP282MB40425E424BC7B49C6CA7705792019@MEYP282MB4042.AUSP282.PROD.OUTLOOK.COM>
References: <MEYP282MB4042E4BBE6781B0DCB3FF260923E9@MEYP282MB4042.AUSP282.PROD.OUTLOOK.COM>
<AM0PR01MB563486B9018D8DD263AF1044DD3E9@AM0PR01MB5634.eurprd01.prod.exchangelabs.com>
<MEYP282MB4042BC333C03F2D225071D7A92019@MEYP282MB4042.AUSP282.PROD.OUTLOOK.COM>
<AM0PR01MB5634D0C360CE54597E81B4EDDD019@AM0PR01MB5634.eurprd01.prod.exchangelabs.com>
<MEYP282MB40425E424BC7B49C6CA7705792019@MEYP282MB4042.AUSP282.PROD.OUTLOOK.COM>
Hi foxi_yiyi12081003,
Thanks for the report and the patch.
I would commit the patch after enabling SQLColumnPrivileges functionality.
regards,
Hiroshi Inoue
2022年11月10日(木) 20:14 foxi_yiyi12081003 <[email protected]>:
> Hi, All:
>
> diff --git a/info.c b/info.c
> index 8563a89..5ce531a 100644
> --- a/info.c
> +++ b/info.c
> @@ -3731,7 +3731,7 @@ PGAPI_ColumnPrivileges(HSTMT hstmt,
> 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);
> + appendPQExpBuffer(&column_query, " and table_schem*a*
> %s'%s'", eq_string, escSchemaName);
> if (escTableName)
> appendPQExpBuffer(&column_query, " and table_name %s'%s'",
> eq_string, escTableName);
> if (escColumnName)
> (END)
>
> Zhanyi Jiang
> [email protected]
>
> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=foxi_yiyi12081003...;
> ---- Replied Message ----
> From Wal, Jan Tjalling van der<[email protected]>
> <[email protected]>
> Date 11/10/2022 17:56
> To Chiang Chan-i<[email protected]> ,
> <[email protected]> [email protected]<[email protected]>
> <[email protected]>
> Subject RE: column_query buffer in PGAPI ColumnPrivileges
>
> Dear Jiang,
>
>
>
> Yes, you are right. I stand corrected.
>
>
>
> With that clause added as per line 3743, the query returns an error.
>
> When that missing ‘a’ is added, so table_schem*A * it yields results.
>
>
>
> Now we’ll have to wait and see if this get noticed and fixed.
>
> Or you could consider making the change and doing a pull request.
>
> So that your find and fix get pulled into the code base?
>
>
>
> Kind regards, Jan Tjalling
>
>
>
> *From:* Chiang Chan-i <[email protected]>
> *Sent:* 10 November 2022 02:37
> *To:* Wal, Jan Tjalling van der <[email protected]>;
> [email protected]
> *Subject:* RE: column_query buffer in PGAPI ColumnPrivileges
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgo.microsoft.com%2Ffwlink%2F%3FLin...;
> for Windows
>
>
>
> *From: *Wal, Jan Tjalling van der <[email protected]>
> *Sent: *2022年11月10日 5:45
> *To: *foxi_yiyi12081003 <[email protected]>;
> [email protected]
> *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 <[email protected]>
> *Sent:* 09 November 2022 04:18
> *To:* [email protected]
> *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。
>
>
>
>
>
Attachments:
[image/png] image001.png (135B, 3-image001.png)
download | view image
view thread (6+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: [ Bug Report ]Re: column_query buffer in PGAPI ColumnPrivileges
In-Reply-To: <CAFGcedVf1e-gtRuRjcjNOShJwOKz00rw_tk8MHV2Y3cV-Tq55w@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox