Skip to content

Add escape grammer and support like's SQL multi column transformer#13686

Merged
JackieTien97 merged 13 commits intoapache:masterfrom
linxt20:addEscapeAndLikeColumnTransformer
Oct 13, 2024
Merged

Add escape grammer and support like's SQL multi column transformer#13686
JackieTien97 merged 13 commits intoapache:masterfrom
linxt20:addEscapeAndLikeColumnTransformer

Conversation

@linxt20
Copy link
Contributor

@linxt20 linxt20 commented Oct 9, 2024

This submission mainly includes the following work:

  1. Solved the problem that the not keyword of regexp and like was not recognized. By adding recognition of the not keyword in parseRegex and parseLike in ASTVisitor, the original false default processing was cancelled.
  2. Added escape support for the like syntax of the tree model. Starting from G4, in the process of logical plan construction, each call of likeExpression and LikeViewExpression was processed and escape was added. The compilation operation of LikePattern was sunk before the filter was built.
  3. For the like support of the table model to handle the situation where pattern and escape are time series, Like2ColumnTransformer and Like3ColumnTransformer were added. In ColumnTransformerBuilder, different like inputs were classified and processed.
  4. The time-consuming comparison of NFA optimization, DFA optimization and Java regularization of like in the case of where s1 like s2 was explored. It is an extension and exploration of the previous like matching optimization work. The best like optimization option setting is obtained through experimental results and has been set in the code.

@linxt20 linxt20 changed the title Add escape grammer and support like's pattern & escape column transformer in no pushdown case Add escape grammer and support like's SQL multi column transformer Oct 10, 2024
@JackieTien97 JackieTien97 merged commit 5994c9e into apache:master Oct 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants