[FEAT MERGE]implement user-defined rewrite rules
This commit is contained in:
		@ -91,6 +91,7 @@ enum ParseMode
 | 
			
		||||
  TRIGGER_MODE, /* treat ':xxx' as identifier */
 | 
			
		||||
  DYNAMIC_SQL_MODE, /*解析动态sql过程中,:idx和:identifier要根据语句类型确定是否检查placeholder的名字*/
 | 
			
		||||
  DBMS_SQL_MODE,
 | 
			
		||||
  UDR_SQL_MODE,
 | 
			
		||||
  INS_MULTI_VALUES,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -227,6 +228,7 @@ typedef struct _ObQuestionMarkCtx
 | 
			
		||||
  int capacity_;
 | 
			
		||||
  bool by_ordinal_;
 | 
			
		||||
  bool by_name_;
 | 
			
		||||
  bool by_defined_name_;
 | 
			
		||||
} ObQuestionMarkCtx;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -301,7 +303,7 @@ typedef struct
 | 
			
		||||
    uint32_t is_include_old_new_in_trigger_    : 1;
 | 
			
		||||
    uint32_t is_normal_ps_prepare_             : 1;
 | 
			
		||||
    uint32_t is_multi_values_parser_           : 1;
 | 
			
		||||
    uint32_t reserved_                         : 1;
 | 
			
		||||
    uint32_t is_for_udr_                       : 1;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ParseNode *result_tree_;
 | 
			
		||||
@ -394,6 +396,7 @@ extern uint64_t parsenode_hash(const ParseNode *node, int *ret);
 | 
			
		||||
extern bool parsenode_equal(const ParseNode *node1, const ParseNode *node2, int *ret);
 | 
			
		||||
 | 
			
		||||
extern int64_t get_question_mark(ObQuestionMarkCtx *ctx, void *malloc_pool, const char *name);
 | 
			
		||||
extern int64_t get_question_mark_by_defined_name(ObQuestionMarkCtx *ctx, const char *name);
 | 
			
		||||
 | 
			
		||||
// compare ParseNode str_value_ to pattern
 | 
			
		||||
// @param [in] node        ParseNode
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user