From 100fc5dc3e511bd59e18b0b8682afbfdc9aa732f Mon Sep 17 00:00:00 2001 From: shijuzheng1997 Date: Tue, 15 Apr 2025 10:33:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=82=E6=95=B0=E5=8C=96?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E4=B8=AD=E5=8F=82=E6=95=B0=E5=8C=96query?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/catalog/builtin_funcs.ini | 2 +- .../backend/catalog/query_parameterization_views.cpp | 5 +++-- .../rollback-post_catalog_maindb_93_044.sql | 2 +- .../rollback-post_catalog_otherdb_93_044.sql | 2 +- .../upgrade-post_catalog_maindb_93_044.sql | 6 +++--- .../upgrade-post_catalog_otherdb_93_044.sql | 6 +++--- .../regress/expected/auto_parameterization_views.out | 9 +++++++++ src/test/regress/sql/auto_parameterization_views.sql | 6 ++++++ 8 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/common/backend/catalog/builtin_funcs.ini b/src/common/backend/catalog/builtin_funcs.ini index f119e3548f..ca997f076a 100644 --- a/src/common/backend/catalog/builtin_funcs.ini +++ b/src/common/backend/catalog/builtin_funcs.ini @@ -13241,7 +13241,7 @@ AddFuncGroup( ), AddFuncGroup( "query_parameterization_views", 1, - AddBuiltinFunc(_0(6809), _1("query_parameterization_views"), _2(1), _3(false), _4(true), _5(query_parameterization_views), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 26, 19, 16, 22, 21, 19), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "reloid", "query_type", "is_bypass", "param_types", "param_nums", "parameterized_query"), _24(NULL), _25("query_parameterization_views"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("query_parameterization_views"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + AddBuiltinFunc(_0(6809), _1("query_parameterization_views"), _2(1), _3(false), _4(true), _5(query_parameterization_views), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 26, 19, 16, 22, 21, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "reloid", "query_type", "is_bypass", "param_types", "param_nums", "parameterized_query"), _24(NULL), _25("query_parameterization_views"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("query_parameterization_views"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hnswinsert", 1, diff --git a/src/common/backend/catalog/query_parameterization_views.cpp b/src/common/backend/catalog/query_parameterization_views.cpp index 5cc9627ebf..623a14f6e2 100644 --- a/src/common/backend/catalog/query_parameterization_views.cpp +++ b/src/common/backend/catalog/query_parameterization_views.cpp @@ -58,7 +58,8 @@ static void FillParamViewValues(Datum* paramViewsValues, bool* paramViewsNulls, paramViewsNulls[Anum_parameterization_views_types - 1] = true; } paramViewsValues[Anum_parameterization_views_param_nums - 1] = Int16GetDatum(paramView->paramNums); - paramViewsValues[Anum_parameterization_views_parameterized_query - 1] = NameGetDatum(paramView->parameterizedQuery); + paramViewsValues[Anum_parameterization_views_parameterized_query - 1] = + CStringGetTextDatum(paramView->parameterizedQuery); return; } @@ -116,7 +117,7 @@ Datum query_parameterization_views(PG_FUNCTION_ARGS) TupleDescInitEntry(tupDesc, (AttrNumber)Anum_parameterization_views_types, "param_types", INT2VECTOROID, -1, 0); TupleDescInitEntry(tupDesc, (AttrNumber)Anum_parameterization_views_param_nums, "param_nums", INT2OID, -1, 0); TupleDescInitEntry(tupDesc, (AttrNumber)Anum_parameterization_views_parameterized_query, "parameterized_query", - NAMEOID, -1, 0); + TEXTOID, -1, 0); funcCtx->user_fctx = GetAllParamQueries(&(funcCtx->max_calls)); funcCtx->tuple_desc = BlessTupleDesc(tupDesc); diff --git a/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_044.sql b/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_044.sql index fede59c5e1..dd136b2eac 100644 --- a/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_044.sql +++ b/src/include/catalog/upgrade_sql/rollback_catalog_maindb/rollback-post_catalog_maindb_93_044.sql @@ -5,5 +5,5 @@ DROP FUNCTION IF EXISTS pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) CASCADE; \ No newline at end of file diff --git a/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_044.sql b/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_044.sql index fede59c5e1..dd136b2eac 100644 --- a/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_044.sql +++ b/src/include/catalog/upgrade_sql/rollback_catalog_otherdb/rollback-post_catalog_otherdb_93_044.sql @@ -5,5 +5,5 @@ DROP FUNCTION IF EXISTS pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) CASCADE; \ No newline at end of file diff --git a/src/include/catalog/upgrade_sql/upgrade_catalog_maindb/upgrade-post_catalog_maindb_93_044.sql b/src/include/catalog/upgrade_sql/upgrade_catalog_maindb/upgrade-post_catalog_maindb_93_044.sql index 89fd52369d..8ef9c84d86 100644 --- a/src/include/catalog/upgrade_sql/upgrade_catalog_maindb/upgrade-post_catalog_maindb_93_044.sql +++ b/src/include/catalog/upgrade_sql/upgrade_catalog_maindb/upgrade-post_catalog_maindb_93_044.sql @@ -5,7 +5,7 @@ DROP FUNCTION IF EXISTS pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) CASCADE; SET LOCAL inplace_upgrade_next_system_object_oids = IUO_PROC, 6809; @@ -17,7 +17,7 @@ CREATE FUNCTION pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) RETURNS SETOF RECORD LANGUAGE INTERNAL STABLE as 'query_parameterization_views'; comment on function pg_catalog.query_parameterization_views( out reloid oid, @@ -25,6 +25,6 @@ comment on function pg_catalog.query_parameterization_views( out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) is 'query_parameterization_views'; SET LOCAL inplace_upgrade_next_system_object_oids = IUO_PROC, 0; diff --git a/src/include/catalog/upgrade_sql/upgrade_catalog_otherdb/upgrade-post_catalog_otherdb_93_044.sql b/src/include/catalog/upgrade_sql/upgrade_catalog_otherdb/upgrade-post_catalog_otherdb_93_044.sql index 89fd52369d..8ef9c84d86 100644 --- a/src/include/catalog/upgrade_sql/upgrade_catalog_otherdb/upgrade-post_catalog_otherdb_93_044.sql +++ b/src/include/catalog/upgrade_sql/upgrade_catalog_otherdb/upgrade-post_catalog_otherdb_93_044.sql @@ -5,7 +5,7 @@ DROP FUNCTION IF EXISTS pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) CASCADE; SET LOCAL inplace_upgrade_next_system_object_oids = IUO_PROC, 6809; @@ -17,7 +17,7 @@ CREATE FUNCTION pg_catalog.query_parameterization_views out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) RETURNS SETOF RECORD LANGUAGE INTERNAL STABLE as 'query_parameterization_views'; comment on function pg_catalog.query_parameterization_views( out reloid oid, @@ -25,6 +25,6 @@ comment on function pg_catalog.query_parameterization_views( out is_bypass bool, out param_types int2vector, out param_nums smallint, - out parameterized_query name + out parameterized_query text ) is 'query_parameterization_views'; SET LOCAL inplace_upgrade_next_system_object_oids = IUO_PROC, 0; diff --git a/src/test/regress/expected/auto_parameterization_views.out b/src/test/regress/expected/auto_parameterization_views.out index a926ac80f8..8689d2a137 100644 --- a/src/test/regress/expected/auto_parameterization_views.out +++ b/src/test/regress/expected/auto_parameterization_views.out @@ -62,4 +62,13 @@ SELECT query_type, is_bypass, param_types, param_nums, parameterized_query FROM (0 rows) DROP TABLE test; +CREATE TABLE test1(id int, column1 int, column2 int, column3 int, column4 int, column5 int, column6 int, column7 int, column8 int, column9 int, column10 int); +INSERT INTO test1(id, column1, column2, column3, column4, column5, column6, column7, column8, column9, column10) VALUES(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); +SELECT query_type, is_bypass, param_types, param_nums, parameterized_query FROM query_parameterization_views(); + query_type | is_bypass | param_types | param_nums | parameterized_query +------------+-----------+----------------------------------+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------- + INSERT | t | 23 23 23 23 23 23 23 23 23 23 23 | 11 | INSERT INTO test1(id, column1, column2, column3, column4, column5, column6, column7, column8, column9, column10) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); +(1 row) + +DROP TABLE test1; set enable_query_parameterization=off; diff --git a/src/test/regress/sql/auto_parameterization_views.sql b/src/test/regress/sql/auto_parameterization_views.sql index 17d9244311..25ffe31312 100644 --- a/src/test/regress/sql/auto_parameterization_views.sql +++ b/src/test/regress/sql/auto_parameterization_views.sql @@ -36,4 +36,10 @@ ALTER TABLE test DROP COLUMN C2; SELECT query_type, is_bypass, param_types, param_nums, parameterized_query FROM query_parameterization_views(); DROP TABLE test; + +CREATE TABLE test1(id int, column1 int, column2 int, column3 int, column4 int, column5 int, column6 int, column7 int, column8 int, column9 int, column10 int); +INSERT INTO test1(id, column1, column2, column3, column4, column5, column6, column7, column8, column9, column10) VALUES(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); +SELECT query_type, is_bypass, param_types, param_nums, parameterized_query FROM query_parameterization_views(); +DROP TABLE test1; + set enable_query_parameterization=off; \ No newline at end of file -- Gitee