!3024 增加dolphin hook plpgsql_parser_setup

Merge pull request !3024 from chenbd/hook_plpg
This commit is contained in:
opengauss-bot
2023-03-04 06:49:56 +00:00
committed by Gitee
2 changed files with 7 additions and 1 deletions

View File

@ -5777,7 +5777,12 @@ static void exec_prepare_plan(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, int
*/
#if (!defined(ENABLE_MULTIPLE_NODES)) && (!defined(ENABLE_PRIVATEGAUSS))
if (u_sess->proc_cxt.MyDatabaseId != InvalidOid && DB_IS_CMPT(B_FORMAT) && u_sess->attr.attr_sql.dolphin) {
plan = SPI_prepare_params(expr->query, (ParserSetupHook)plpgsql_parser_setup, (void*)expr, cursorOptions, NULL);
if (u_sess->hook_cxt.plpgsqlParserSetHook != NULL) {
plan = SPI_prepare_params(expr->query,
(ParserSetupHook)u_sess->hook_cxt.plpgsqlParserSetHook, (void*)expr, cursorOptions, NULL);
} else {
plan = SPI_prepare_params(expr->query, (ParserSetupHook)plpgsql_parser_setup, (void*)expr, cursorOptions, NULL);
}
} else
#endif
plan = SPI_prepare_params(expr->query, (ParserSetupHook)plpgsql_parser_setup, (void*)expr, cursorOptions);

View File

@ -2736,6 +2736,7 @@ typedef struct knl_u_hook_context {
void *plannerHook;
void *pluginSearchCatHook;
void *pluginCCHashEqFuncs;
void *plpgsqlParserSetHook;
} knl_u_hook_context;
/* PBE message flag */
typedef enum {