Documentation
¶
Index ¶
- func Completion(ctx context.Context, cCtx base.CompletionContext, statement string, ...) ([]base.Candidate, error)
- func Diagnose(_ context.Context, _ base.DiagnoseContext, statement string) ([]base.Diagnostic, error)
- func FlattenExecuteStatementArgExecuteStatementArgUnnamed(ctx parser.IExecute_statement_argContext) []parser.IExecute_statement_arg_unnamedContext
- func GenerateRestoreSQL(ctx context.Context, rCtx base.RestoreContext, statement string, ...) (string, error)
- func GetQuerySpan(ctx context.Context, gCtx base.GetQuerySpanContext, ...) (*base.QuerySpan, error)
- func GetStatementTypes(asts []base.AST) ([]string, error)
- func IsSystemDatabase(databaseName string, caseSensitive bool) bool
- func IsSystemSchema(schemaName string, caseSensitive bool) bool
- func IsTSQLReservedKeyword(keyword string, caseSensitive bool) bool
- func IsTopLevel(ctx antlr.Tree) bool
- func NormalizeTSQLIdentifier(part parser.IId_Context) (original string, lowercase string)
- func NormalizeTSQLIdentifierText(text string) (original string, lowercase string)
- func NormalizeTSQLTableName(ctx parser.ITable_nameContext, fallbackDatabaseName, fallbackSchemaName string, ...) string
- func ParseTSQL(sql string) ([]*base.ParseResult, error)
- func SplitSQL(statement string) ([]base.SingleSQL, error)
- func TransformDMLToSelect(_ context.Context, _ base.TransformContext, statement string, ...) ([]base.BackupStatement, error)
- func ValidateSQLForEditor(statement string) (bool, bool, error)
- type Completer
- type CompletionMap
- type FullTableName
- type SelectAliasListener
- type StatementType
- type TableReference
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Completion ¶
func Diagnose ¶
func Diagnose(_ context.Context, _ base.DiagnoseContext, statement string) ([]base.Diagnostic, error)
func FlattenExecuteStatementArgExecuteStatementArgUnnamed ¶
func FlattenExecuteStatementArgExecuteStatementArgUnnamed(ctx parser.IExecute_statement_argContext) []parser.IExecute_statement_arg_unnamedContext
FlattenExecuteStatementArgExecuteStatementArgUnnamed returns the flattened unnamed execute statement arg.
func GenerateRestoreSQL ¶
func GenerateRestoreSQL(ctx context.Context, rCtx base.RestoreContext, statement string, backupItem *storepb.PriorBackupDetail_Item) (string, error)
func GetQuerySpan ¶
func GetQuerySpan( ctx context.Context, gCtx base.GetQuerySpanContext, statement, database, schema string, ignoreCaseSensitive bool, ) (*base.QuerySpan, error)
GetQuerySpan returns the query span for the given statement.
func IsSystemDatabase ¶
func IsSystemSchema ¶
func IsTSQLReservedKeyword ¶
IsTSQLReservedKeyword returns true if the given keyword is a TSQL keywords.
func IsTopLevel ¶
func NormalizeTSQLIdentifier ¶
func NormalizeTSQLIdentifier(part parser.IId_Context) (original string, lowercase string)
NormalizeTSQLIdentifier returns the normalized identifier. https://learn.microsoft.com/zh-cn/sql/relational-databases/databases/database-identifiers?view=sql-server-ver15 TODO(zp): currently, we returns the lowercase and original of the part, we may need to get the CI/CS from the server/database.
func NormalizeTSQLTableName ¶
func NormalizeTSQLTableName(ctx parser.ITable_nameContext, fallbackDatabaseName, fallbackSchemaName string, caseSensitive bool) string
NormalizeTSQLTableName returns the normalized table name.
func ParseTSQL ¶
func ParseTSQL(sql string) ([]*base.ParseResult, error)
ParseTSQL parses the given SQL and returns a list of ParseResult (one per statement). Use the T-SQL parser based on antlr4.
func TransformDMLToSelect ¶
Types ¶
type Completer ¶
type Completer struct {
// contains filtered or unexported fields
}
func NewStandardCompleter ¶
func NewTrickyCompleter ¶
type CompletionMap ¶
func (CompletionMap) Insert ¶
func (m CompletionMap) Insert(entry base.Candidate)
type FullTableName ¶
type FullTableName struct {
LinkedServer string
Server string
Database string
Schema string
Table string
}
func NormalizeFullColumnName ¶
func NormalizeFullColumnName(ctx parser.IFull_column_nameContext) (*FullTableName, string, error)
func NormalizeFullTableName ¶
func NormalizeFullTableName(ctx parser.IFull_table_nameContext) (*FullTableName, error)
full_table_name
: (linkedServer=id_ '.' '.' schema=id_ '.' | server=id_ '.' database=id_ '.' schema=id_ '.' | database=id_ '.' schema=id_? '.' | schema=id_ '.')? table=id_ ;
Rewrite full_table_name to avoid leading optional values. full_table_name
: id_ (
dotID+
| doubleDotID dotID?
)?
;
For performance reason, we rewrite the full_table_name to the second form. But it's hard to get the linkedServer, server, database, schema, and table separately. So we use NormalizeFullTableName to get them.
type SelectAliasListener ¶
type SelectAliasListener struct {
*tsqlparser.BaseTSqlParserListener
// contains filtered or unexported fields
}
func (*SelectAliasListener) EnterAs_column_alias ¶
func (l *SelectAliasListener) EnterAs_column_alias(ctx *tsqlparser.As_column_aliasContext)
type StatementType ¶
type StatementType int
const ( StatementTypeUnknown StatementType = iota StatementTypeUpdate StatementTypeInsert StatementTypeDelete )
type TableReference ¶
type TableReference struct {
Database string
Schema string
Table string
Alias string
StatementType StatementType
}