[FEAT MERGE]implement user-defined rewrite rules

This commit is contained in:
obdev
2022-12-30 08:10:42 +00:00
committed by ob-robot
parent 21c0bac716
commit 9dcc0a529e
100 changed files with 5540 additions and 315 deletions

View File

@ -21,6 +21,7 @@
#include "lib/utility/ob_print_utils.h"
#include "common/object/ob_object.h"
#include "sql/parser/ob_parser.h"
#include "sql/parser/ob_fast_parser.h"
#include "sql/session/ob_sql_session_info.h"
#include "sql/plan_cache/ob_id_manager_allocator.h"
#include "sql/plan_cache/ob_plan_cache_util.h"
@ -115,10 +116,8 @@ public:
ObSqlParameterization() {}
virtual ~ObSqlParameterization() {}
static int fast_parser(common::ObIAllocator &allocator,
ObSQLMode sql_mode,
common::ObCollationType connection_collation,
const FPContext &fp_ctx,
const common::ObString &sql,
const bool enable_batched_multi_stmt,
ObFastParserResult &fp_result);
static int transform_syntax_tree(common::ObIAllocator &allocator,
@ -130,7 +129,8 @@ public:
SelectItemParamInfoArray *select_item_param_infos,
share::schema::ObMaxConcurrentParam::FixParamStore &fixed_param_store,
bool is_transform_outline,
SQL_EXECUTION_MODE execution_mode = INVALID_MODE);
SQL_EXECUTION_MODE execution_mode = INVALID_MODE,
const ObIArray<FixedParamValue> *udr_fixed_params = NULL);
static int raw_fast_parameterize_sql(common::ObIAllocator &allocator,
const ObSQLSessionInfo &session,
const common::ObString &sql,
@ -170,6 +170,7 @@ private:
static int is_fast_parse_const(TransformTreeCtx &ctx);
static bool is_node_not_param(TransformTreeCtx &ctx);
static bool is_udr_not_param(TransformTreeCtx &ctx);
static int transform_tree(TransformTreeCtx &ctx, const ObSQLSessionInfo &session_info);
static int add_param_flag(const ParseNode *node, SqlInfo &sql_info);
static int add_not_param_flag(const ParseNode *node, SqlInfo &sql_info);