parser

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidSyntax     = errors.New("invalid syntax")
	ErrUnexpectedToken   = errors.New("unexpected token")
	ErrUnknownStatement  = errors.New("unknown statement type")
	ErrMissingIdentifier = errors.New("missing identifier")
)

Functions

func CompareSQL

func CompareSQL(sql1, sql2 string) bool

func NormalizeSQL

func NormalizeSQL(sql string) string

Types

type AlterTableParser

type AlterTableParser struct{}

func NewAlterTableParser

func NewAlterTableParser() *AlterTableParser

func (*AlterTableParser) Parse

func (p *AlterTableParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*AlterTableParser) StatementTypes

func (p *AlterTableParser) StatementTypes() []StatementType

type CommentParser

type CommentParser struct{}

func NewCommentParser

func NewCommentParser() *CommentParser

func (*CommentParser) Parse

func (p *CommentParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*CommentParser) StatementTypes

func (p *CommentParser) StatementTypes() []StatementType

type CompressionPolicyParser

type CompressionPolicyParser struct{}

func NewCompressionPolicyParser

func NewCompressionPolicyParser() *CompressionPolicyParser

func (*CompressionPolicyParser) Parse

func (p *CompressionPolicyParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*CompressionPolicyParser) StatementTypes

func (p *CompressionPolicyParser) StatementTypes() []StatementType

type Config

type Config struct {
	CaseSensitive bool
}

type ContinuousAggregatePolicyParser

type ContinuousAggregatePolicyParser struct{}

func NewContinuousAggregatePolicyParser

func NewContinuousAggregatePolicyParser() *ContinuousAggregatePolicyParser

func (*ContinuousAggregatePolicyParser) Parse

func (p *ContinuousAggregatePolicyParser) Parse(
	root *Parser,
	stmt Statement,
	db *schema.Database,
) error

func (*ContinuousAggregatePolicyParser) StatementTypes

func (p *ContinuousAggregatePolicyParser) StatementTypes() []StatementType

type DoBlockParser

type DoBlockParser struct{}

func NewDoBlockParser

func NewDoBlockParser() *DoBlockParser

func (*DoBlockParser) Parse

func (p *DoBlockParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*DoBlockParser) StatementTypes

func (p *DoBlockParser) StatementTypes() []StatementType

type ExtensionParser

type ExtensionParser struct {
	// contains filtered or unexported fields
}

func NewExtensionParser

func NewExtensionParser() *ExtensionParser

func (*ExtensionParser) Parse

func (p *ExtensionParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*ExtensionParser) StatementTypes

func (p *ExtensionParser) StatementTypes() []StatementType

type FunctionParser

type FunctionParser struct{}

func NewFunctionParser

func NewFunctionParser() *FunctionParser

func (*FunctionParser) Parse

func (p *FunctionParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*FunctionParser) StatementTypes

func (p *FunctionParser) StatementTypes() []StatementType

type HypertableParser

type HypertableParser struct{}

func NewHypertableParser

func NewHypertableParser() *HypertableParser

func (*HypertableParser) Parse

func (p *HypertableParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*HypertableParser) StatementTypes

func (p *HypertableParser) StatementTypes() []StatementType

type IdentifierNormalizer

type IdentifierNormalizer struct {
	// contains filtered or unexported fields
}

func NewIdentifierNormalizer

func NewIdentifierNormalizer(caseSensitive bool) *IdentifierNormalizer

func (*IdentifierNormalizer) IsKeyword

func (n *IdentifierNormalizer) IsKeyword(ident string) bool

func (*IdentifierNormalizer) IsQuoted

func (n *IdentifierNormalizer) IsQuoted(ident string) bool

func (*IdentifierNormalizer) IsValidIdentifier

func (n *IdentifierNormalizer) IsValidIdentifier(ident string) bool

func (*IdentifierNormalizer) Normalize

func (n *IdentifierNormalizer) Normalize(ident string) string

func (*IdentifierNormalizer) QuoteIfNeeded

func (n *IdentifierNormalizer) QuoteIfNeeded(ident string) string

func (*IdentifierNormalizer) SplitQualified

func (n *IdentifierNormalizer) SplitQualified(qualified string) (schemaName, objectName string)

func (*IdentifierNormalizer) Unquote

func (n *IdentifierNormalizer) Unquote(ident string) string

type IndexParser

type IndexParser struct{}

func NewIndexParser

func NewIndexParser() *IndexParser

func (*IndexParser) Parse

func (p *IndexParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*IndexParser) StatementTypes

func (p *IndexParser) StatementTypes() []StatementType

type Lexer

type Lexer struct {
	// contains filtered or unexported fields
}

func NewLexer

func NewLexer(input string) *Lexer

func (*Lexer) Tokenize

func (l *Lexer) Tokenize() ([]Token, error)

type MaterializedViewParser

type MaterializedViewParser struct{}

func NewMaterializedViewParser

func NewMaterializedViewParser() *MaterializedViewParser

func (*MaterializedViewParser) Parse

func (p *MaterializedViewParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*MaterializedViewParser) StatementTypes

func (p *MaterializedViewParser) StatementTypes() []StatementType

type Option

type Option func(*Parser)

type ParseError

type ParseError struct {
	File    string
	Line    int
	Column  int
	Message string
	SQL     string
	Cause   error
}

func NewParseError

func NewParseError(message string) ParseError

func WrapParseError

func WrapParseError(err error, message string) ParseError

func (ParseError) Error

func (e ParseError) Error() string

func (ParseError) Unwrap

func (e ParseError) Unwrap() error

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

func New

func New(opts ...Option) *Parser

func (*Parser) GetErrors

func (p *Parser) GetErrors() []ParseError

func (*Parser) GetWarnings

func (p *Parser) GetWarnings() []Warning

func (*Parser) ParseDirectory

func (p *Parser) ParseDirectory(dirPath string) (*Result, error)

func (*Parser) ParseFile

func (p *Parser) ParseFile(filePath string, db *schema.Database) error

func (*Parser) ParseFileWithoutProcessingDeferred

func (p *Parser) ParseFileWithoutProcessingDeferred(filePath string, db *schema.Database) error

func (*Parser) ParseSQL

func (p *Parser) ParseSQL(sql string, db *schema.Database) error

func (*Parser) ProcessDeferredPartitions

func (p *Parser) ProcessDeferredPartitions(db *schema.Database) error

type ParserRegistry

type ParserRegistry struct {
	// contains filtered or unexported fields
}

func NewParserRegistry

func NewParserRegistry() *ParserRegistry

func (*ParserRegistry) Get

func (r *ParserRegistry) Get(stmtType StatementType) StatementParser

func (*ParserRegistry) Register

func (r *ParserRegistry) Register(parser StatementParser)

type Result

type Result struct {
	Database *schema.Database
	Errors   []ParseError
	Warnings []Warning
}

func (*Result) HasErrors

func (r *Result) HasErrors() bool

type RetentionPolicyParser

type RetentionPolicyParser struct{}

func NewRetentionPolicyParser

func NewRetentionPolicyParser() *RetentionPolicyParser

func (*RetentionPolicyParser) Parse

func (p *RetentionPolicyParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*RetentionPolicyParser) StatementTypes

func (p *RetentionPolicyParser) StatementTypes() []StatementType

type SchemaParser

type SchemaParser struct {
	// contains filtered or unexported fields
}

func NewSchemaParser

func NewSchemaParser() *SchemaParser

func (*SchemaParser) Parse

func (p *SchemaParser) Parse(_ *Parser, stmt Statement, db *schema.Database) error

func (*SchemaParser) StatementTypes

func (p *SchemaParser) StatementTypes() []StatementType

type SequenceParser

type SequenceParser struct {
	// contains filtered or unexported fields
}

func NewSequenceParser

func NewSequenceParser() *SequenceParser

func (*SequenceParser) Parse

func (p *SequenceParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*SequenceParser) StatementTypes

func (p *SequenceParser) StatementTypes() []StatementType

type Statement

type Statement struct {
	Type   StatementType
	SQL    string
	Tokens []Token
	Line   int
}

func (Statement) NormalizedSQL

func (s Statement) NormalizedSQL() string

type StatementParser

type StatementParser interface {
	StatementTypes() []StatementType
	Parse(root *Parser, stmt Statement, db *schema.Database) error
}

type StatementType

type StatementType int
const (
	StmtUnknown StatementType = iota
	StmtCreateTable
	StmtCreateIndex
	StmtCreateView
	StmtCreateMaterializedView
	StmtCreateFunction
	StmtCreateTrigger
	StmtCreateExtension
	StmtCreateType
	StmtCreateSequence
	StmtCreateSchema
	StmtAlterTable
	StmtComment
	StmtSelectCreateHypertable
	StmtSelectAddCompressionPolicy
	StmtSelectAddRetentionPolicy
	StmtSelectAddContinuousAggregatePolicy
	StmtDoBlock
)

func DetectStatementType

func DetectStatementType(tokens []Token) StatementType

type TableParser

type TableParser struct{}

func NewTableParser

func NewTableParser() *TableParser

func (*TableParser) Parse

func (p *TableParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*TableParser) StatementTypes

func (p *TableParser) StatementTypes() []StatementType

type Token

type Token struct {
	Type    TokenType
	Literal string
	Start   int
	End     int
	Line    int
	Column  int
}

type TokenType

type TokenType int
const (
	TokenIllegal TokenType = iota
	TokenEOF
	TokenKeyword
	TokenIdentifier
	TokenQuotedIdentifier
	TokenString
	TokenNumber
	TokenOperator
	TokenLParen
	TokenRParen
	TokenComma
	TokenSemicolon
	TokenDot
	TokenColon
	TokenComment
	TokenLBracket
	TokenRBracket
)

type TriggerParser

type TriggerParser struct{}

func NewTriggerParser

func NewTriggerParser() *TriggerParser

func (*TriggerParser) Parse

func (p *TriggerParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*TriggerParser) StatementTypes

func (p *TriggerParser) StatementTypes() []StatementType

type TypeParser

type TypeParser struct {
	// contains filtered or unexported fields
}

func NewTypeParser

func NewTypeParser() *TypeParser

func (*TypeParser) Parse

func (p *TypeParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*TypeParser) StatementTypes

func (p *TypeParser) StatementTypes() []StatementType

type ViewParser

type ViewParser struct{}

func NewViewParser

func NewViewParser() *ViewParser

func (*ViewParser) Parse

func (p *ViewParser) Parse(root *Parser, stmt Statement, db *schema.Database) error

func (*ViewParser) StatementTypes

func (p *ViewParser) StatementTypes() []StatementType

type Warning

type Warning struct {
	File    string
	Line    int
	Message string
}

Jump to

Keyboard shortcuts

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