parser

package
v0.43.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ColumnDef

type ColumnDef struct {
	Name            string
	Type            string
	Constraints     []string
	IsPrimaryKey    bool
	IsAutoIncrement bool
	IsNotNull       bool
}

type Query

type Query struct {
	Name     string
	Type     QueryType
	SQL      string
	Table    string
	Params   []string
	Columns  []string
	IsSelect bool
	IsInsert bool
	IsUpdate bool
	IsDelete bool
}

func ParseQueries

func ParseQueries(sqlContent string) ([]Query, error)

type QueryType

type QueryType string
const (
	Many QueryType = "many"
	One  QueryType = "one"
	Exec QueryType = "exec"
)

type SQLQueryExtractor

type SQLQueryExtractor struct {
	sqlite.BaseSQLiteParserListener
	Query                 Query
	CurrentTable          string
	InSelectExpr          bool
	InTableExpr           bool
	InColumnsList         bool
	InValuesClause        bool
	ExtractedColumns      []string
	ExtractedTables       []string
	ExtractedPlaceholders int
}

func NewSQLQueryExtractor

func NewSQLQueryExtractor() *SQLQueryExtractor

func (*SQLQueryExtractor) EnterColumn_name

func (s *SQLQueryExtractor) EnterColumn_name(ctx *sqlite.Column_nameContext)

func (*SQLQueryExtractor) EnterColumn_name_list

func (s *SQLQueryExtractor) EnterColumn_name_list(ctx *sqlite.Column_name_listContext)

func (*SQLQueryExtractor) EnterDelete_stmt

func (s *SQLQueryExtractor) EnterDelete_stmt(ctx *sqlite.Delete_stmtContext)

func (*SQLQueryExtractor) EnterExpr

func (s *SQLQueryExtractor) EnterExpr(ctx *sqlite.ExprContext)

func (*SQLQueryExtractor) EnterInsert_stmt

func (s *SQLQueryExtractor) EnterInsert_stmt(ctx *sqlite.Insert_stmtContext)

func (*SQLQueryExtractor) EnterLiteral_value

func (s *SQLQueryExtractor) EnterLiteral_value(ctx *sqlite.Literal_valueContext)

func (*SQLQueryExtractor) EnterSelect_stmt

func (s *SQLQueryExtractor) EnterSelect_stmt(ctx *sqlite.Select_stmtContext)

func (*SQLQueryExtractor) EnterTable_name

func (s *SQLQueryExtractor) EnterTable_name(ctx *sqlite.Table_nameContext)

func (*SQLQueryExtractor) EnterUpdate_stmt

func (s *SQLQueryExtractor) EnterUpdate_stmt(ctx *sqlite.Update_stmtContext)

func (*SQLQueryExtractor) ExitColumn_name_list

func (s *SQLQueryExtractor) ExitColumn_name_list(ctx *sqlite.Column_name_listContext)

func (*SQLQueryExtractor) FinalizeQuery

func (s *SQLQueryExtractor) FinalizeQuery(sql string) Query

type SQLTableExtractor

type SQLTableExtractor struct {
	sqlite.BaseSQLiteParserListener
	CurrentTable             string
	CurrentColumnName        string
	CurrentColumnType        string
	CurrentColumnConstraints []string
	Tables                   map[string][]ColumnDef
	IsInColumnDef            bool
	IsInConstraint           bool
	IsPrimaryKey             bool
	IsAutoIncrement          bool
	IsNotNull                bool
	RawSQL                   string
}

func NewSQLTableExtractor

func NewSQLTableExtractor() *SQLTableExtractor

func (*SQLTableExtractor) EnterColumn_constraint

func (s *SQLTableExtractor) EnterColumn_constraint(ctx *sqlite.Column_constraintContext)

func (*SQLTableExtractor) EnterColumn_def

func (s *SQLTableExtractor) EnterColumn_def(ctx *sqlite.Column_defContext)

func (*SQLTableExtractor) EnterCreate_table_stmt

func (s *SQLTableExtractor) EnterCreate_table_stmt(ctx *sqlite.Create_table_stmtContext)

func (*SQLTableExtractor) ExitColumn_constraint

func (s *SQLTableExtractor) ExitColumn_constraint(ctx *sqlite.Column_constraintContext)

func (*SQLTableExtractor) ExitColumn_def

func (s *SQLTableExtractor) ExitColumn_def(ctx *sqlite.Column_defContext)

type TableSchema

type TableSchema struct {
	TableName string
	Columns   []ColumnDef
}

func ParseTable

func ParseTable(sqlContent string) ([]TableSchema, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL