refactor: 移除antlr4减小包体积&ai助手优化

This commit is contained in:
meilin.huang
2026-05-08 20:45:13 +08:00
parent 3768cef62d
commit f23b243fc5
154 changed files with 13054 additions and 396804 deletions

View File

@@ -1,187 +1,41 @@
package sqlstmt
type (
IExpr interface {
INode
isExpr()
}
Expr struct {
*Node
}
ExprLogical struct {
Expr
Operator string
Exprs []IExpr
}
ExprPredicate struct {
Expr
Predicate IPredicate
}
)
func (*Expr) isExpr() {}
type (
IPredicate interface {
INode
isPredicate()
}
Predicate struct {
*Node
}
PredicateBinaryComparison struct {
Predicate
Left IPredicate
Right IPredicate
ComparisonOperator string
}
PredicateIn struct {
Predicate
InPredicate IPredicate
Exprs []IExpr
SelectStmt ISelectStmt
}
PredicateExprAtom struct {
Predicate
ExprAtom IExprAtom
}
PredicateLike struct {
Predicate
InPredicate IPredicate
Exprs []IExpr
SelectStmt ISelectStmt
}
)
func (*Predicate) isPredicate() {}
type (
IExprAtom interface {
INode
isExprAtom()
}
ExprAtom struct {
*Node
}
ExprAtomFunctionCall struct {
*Node
}
ExprAtomConstant struct {
ExprAtom
Constant *Constant
}
ExprAtomColumnName struct {
ExprAtom
ColumnName *ColumnName
}
)
func (*ExprAtom) isExprAtom() {}
type (
ITableSource interface {
INode
isTableSource()
}
TableSource struct {
*Node
}
TableSources struct {
*Node
TableSources []ITableSource
}
TableSourceBase struct {
TableSource
TableSourceItem ITableSourceItem
JoinParts []IJoinPart
}
ITableSourceItem interface {
INode
}
TableSourceItem struct {
*Node
}
AtomTableItem struct {
TableSourceItem
TableName *TableName // 表名
Alias string // 别名
}
// SubqueryTableItem 表示子查询表项,如 (SELECT * FROM table1) AS alias
SubqueryTableItem struct {
TableSourceItem
SubQuery ISelectStmt
Alias string
}
)
func (*TableSource) isTableSource() {}
type (
Constant struct {
*Node
Value string
}
FullId struct {
*Node
Uids []string
}
)
type ColumnName struct {
*Node
Owner string
Identifier *IdentifierValue
NestedObjectAttrs []string
// TableRef 表示表引用
type TableRef struct {
Schema string // 数据库/模式名
Name string // 表名
Alias string // 别名
}
type TableName struct {
*Node
Owner string
Identifier *IdentifierValue
// FullName 返回完整表名(含 schema
func (t TableRef) FullName() string {
if t.Schema != "" {
return t.Schema + "." + t.Name
}
return t.Name
}
type (
FuncCall interface {
INode
}
)
// Expr 表示表达式WHERE、ON、HAVING 等)
type Expr struct {
Text string // 原始表达式文本
}
// Limit LIMIT/OFFSET
type Limit struct {
Count int
Offset int
Text string
}
// OrderByItem ORDER BY 项
type OrderByItem struct {
Text string
Desc bool
}
// Assignment SET 赋值
type Assignment struct {
Column string
Value *Expr
Text string
}