Skip to content

Commit 9895e99

Browse files
purge-semantics-added (#4)
* expand-grammar-pg-show-isolation-level Signed-off-by: General Kroll <generalkroll0@gmail.com> * purge-semantics-added Summary: - `purge` added to grammar. - Supports GC actions by admin. Signed-off-by: General Kroll <generalkroll0@gmail.com> * native-query-pass-through Summary: - Native query pass through facility. Signed-off-by: General Kroll <generalkroll0@gmail.com> Signed-off-by: General Kroll <generalkroll0@gmail.com>
1 parent e06bbaa commit 9895e99

File tree

7 files changed

+3989
-3870
lines changed

7 files changed

+3989
-3870
lines changed

go/vt/sqlparser/ast.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,21 @@ type (
8181
OptExecPayload *ExecVarDef
8282
}
8383

84+
// Purge represents a PURGE statement
85+
Purge struct {
86+
Await bool
87+
Comments Comments
88+
IsGlobal bool
89+
Target TableName
90+
}
91+
92+
// Purge represents a PURGE statement
93+
NativeQuery struct {
94+
Await bool
95+
Comments Comments
96+
QueryString string
97+
}
98+
8499
Sleep struct {
85100
Duration *SQLVal
86101
}
@@ -333,6 +348,8 @@ func (*Auth) iStatement() {}
333348
func (*Registry) iStatement() {}
334349
func (*AuthRevoke) iStatement() {}
335350
func (*Exec) iStatement() {}
351+
func (*Purge) iStatement() {}
352+
func (*NativeQuery) iStatement() {}
336353
func (*DescribeTable) iStatement() {}
337354
func (*OtherAdmin) iStatement() {}
338355
func (*Select) iSelectStatement() {}
@@ -962,6 +979,14 @@ func (node *Exec) Format(buf *TrackedBuffer) {
962979
buf.astPrintf(node, "exec %v %v", node.Comments, node.MethodName)
963980
}
964981

982+
func (node *Purge) Format(buf *TrackedBuffer) {
983+
buf.astPrintf(node, "purge %v %v", node.Comments, node.Target)
984+
}
985+
986+
func (node *NativeQuery) Format(buf *TrackedBuffer) {
987+
buf.astPrintf(node, "purge %v '%v'", node.Comments, node.QueryString)
988+
}
989+
965990
func (node *ExecSubquery) Format(buf *TrackedBuffer) {
966991
buf.astPrintf(node, "( exec %v )", node.Exec)
967992
}

go/vt/sqlparser/ast_funcs.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,23 @@ func NewExec(comments Comments, methodName TableName, execVarDefs []ExecVarDef,
519519
}
520520
}
521521

522+
// NewPurge makes a new Purge.
523+
func NewPurge(comments Comments, target TableName, isGlobal bool) *Purge {
524+
return &Purge{
525+
Comments: comments,
526+
Target: target,
527+
IsGlobal: isGlobal,
528+
}
529+
}
530+
531+
// NewNativeQuery makes a new NativeQuery.
532+
func NewNativeQuery(comments Comments, queryString string) *NativeQuery {
533+
return &NativeQuery{
534+
Comments: comments,
535+
QueryString: queryString,
536+
}
537+
}
538+
522539
// NewExecVarDef makes a new ExecVarDef.
523540
func NewExecVarDef(colIdent ColIdent, val Expr) ExecVarDef {
524541
return ExecVarDef{

go/vt/sqlparser/external_visitor.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ func (node *ParenTableExpr) Accept(vis SQLAstVisitor) error { return vis.V
7070
func (node *PartitionDefinition) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
7171
func (node Partitions) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
7272
func (node *PartitionSpec) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
73+
func (node *Purge) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
74+
func (node *NativeQuery) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
7375
func (node *RangeCond) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
7476
func (node ReferenceAction) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }
7577
func (node *Registry) Accept(vis SQLAstVisitor) error { return vis.Visit(node) }

go/vt/sqlparser/rewriter.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)