parserutil

package
v0.3.265 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FloatBitSize int = 64
)

Variables

This section is empty.

Functions

func CheckColUsagesAgainstTable

func CheckColUsagesAgainstTable(colUsages []ColumnUsageMetadata, table *openapistackql.OperationStore) error

func CheckSqlParserTypeVsColumn

func CheckSqlParserTypeVsColumn(colUsage ColumnUsageMetadata, verifyCallback func(string, interface{}) bool) error

func CheckSqlParserTypeVsResourceColumn

func CheckSqlParserTypeVsResourceColumn(colUsage ColumnUsageMetadata) error

func CheckSqlParserTypeVsServiceColumn

func CheckSqlParserTypeVsServiceColumn(colUsage ColumnUsageMetadata) error

func ExtractAliasedValColumnData

func ExtractAliasedValColumnData(aliasedExpr *sqlparser.AliasedExpr) (map[string]interface{}, error)

func ExtractInsertColumnNames

func ExtractInsertColumnNames(insertStmt *sqlparser.Insert) ([]string, error)

func ExtractInsertValColumns

func ExtractInsertValColumns(insStmt *sqlparser.Insert) (map[int]map[int]interface{}, int, error)

func ExtractInsertValColumnsPlusPlaceHolders

func ExtractInsertValColumnsPlusPlaceHolders(insStmt *sqlparser.Insert) (map[int]map[int]interface{}, int, error)

func ExtractSelectValColumns

func ExtractSelectValColumns(selStmt *sqlparser.Select) (map[int]map[string]interface{}, int)

func ExtractShowColNames

func ExtractShowColNames(statement *sqlparser.ShowTablesOpt) ([]string, error)

func ExtractSingleTableFromTableExprs

func ExtractSingleTableFromTableExprs(tableExprs sqlparser.TableExprs) (*sqlparser.TableName, error)

func ExtractSleepDuration

func ExtractSleepDuration(statement *sqlparser.Sleep) (int, error)

func ExtractStringRepresentationOfValueColumn

func ExtractStringRepresentationOfValueColumn(expr *sqlparser.SQLVal) string

func ExtractTableNameFromTableExpr

func ExtractTableNameFromTableExpr(tableExpr sqlparser.TableExpr) (*sqlparser.TableName, error)

func ExtractUpdateValColumns

func ExtractUpdateValColumns(upStmt *sqlparser.Update) (map[*sqlparser.ColName]interface{}, []*sqlparser.ColName, error)

func ExtractValuesColumnData

func ExtractValuesColumnData(values sqlparser.Values) (map[int]map[int]interface{}, int, error)

func ExtractWhereColNames

func ExtractWhereColNames(statement *sqlparser.Where) ([]string, error)

func GetStringFromStringFunc

func GetStringFromStringFunc(fe *sqlparser.FuncExpr) (string, error)

func GetTableNameFromTableExpr

func GetTableNameFromTableExpr(node sqlparser.TableExpr) (sqlparser.TableName, error)

func IsNullTable

func IsNullTable(node sqlparser.TableExpr) bool

These null "dual" tables are some vitess artifact

func NaiveRewriteComparisonExprs

func NaiveRewriteComparisonExprs(m map[*sqlparser.ComparisonExpr]struct{})

func TableFromSelectNode

func TableFromSelectNode(sel *sqlparser.Select) (sqlparser.TableName, error)

Types

type ColTableMap

type ColTableMap map[ColumnarReference]sqlparser.TableExpr

ColTableMap maps a ColumnarReference (column-like input) to a "Table Expression"; this may be a simple (single table) or composite (eg: subquery, union) object.

type ColumnHandle

type ColumnHandle struct {
	Alias           string
	Expr            sqlparser.Expr
	Name            string
	Qualifier       string
	DecoratedColumn string
	IsColumn        bool
	Type            sqlparser.ValType
	Val             *sqlparser.SQLVal
}

func ExtractSelectColumnNames

func ExtractSelectColumnNames(selStmt *sqlparser.Select, formatter sqlparser.NodeFormatter) ([]ColumnHandle, error)

func InferColNameFromExpr

func InferColNameFromExpr(node *sqlparser.AliasedExpr, formatter sqlparser.NodeFormatter) (ColumnHandle, error)

func NewUnaliasedColumnHandle

func NewUnaliasedColumnHandle(name string) ColumnHandle

type ColumnKeyedDatastore

type ColumnKeyedDatastore interface {
	Contains(ColumnarReference) bool
	ContainsString(string) bool
	Delete(ColumnarReference) bool
	DeleteByString(string) bool
	GetStringified() map[string]interface{}
	AndStringMap(map[string]interface{}) ColumnKeyedDatastore
	DeleteStringMap(map[string]interface{}) ColumnKeyedDatastore
}

type ColumnUsageMetadata

type ColumnUsageMetadata struct {
	ColName *sqlparser.ColName
	ColVal  *sqlparser.SQLVal
}

func ExtractShowColUsage

func ExtractShowColUsage(statement *sqlparser.ShowTablesOpt) ([]ColumnUsageMetadata, error)

func GetColumnUsageTypes

func GetColumnUsageTypes(statement sqlparser.Expr) ([]ColumnUsageMetadata, error)

func GetColumnUsageTypesForExec

func GetColumnUsageTypesForExec(exec *sqlparser.Exec) ([]ColumnUsageMetadata, error)

type ColumnarReference

type ColumnarReference interface {
	GetStringKey() string
	Value() interface{}
	Alias() string
	String() string
	Name() string
	Abbreviate() (string, bool)
	SourceType() ParamSourceType
	// contains filtered or unexported methods
}

An abstract data type where the underlying datum should in some way represent a column or parameter. Purposes include parameterisation and request routing.

func NewColumnarReference

func NewColumnarReference(k interface{}, sourceType ParamSourceType) (ColumnarReference, error)

func NewUnknownTypeColumnarReference

func NewUnknownTypeColumnarReference(k interface{}) (ColumnarReference, error)

type ComparisonTableMap

type ComparisonTableMap map[*sqlparser.ComparisonExpr]sqlparser.TableExpr

type ParamSourceType

type ParamSourceType int
const (
	UnknownParam ParamSourceType = iota
	WhereParam
	JoinOnParam
)

type ParameterMap

type ParameterMap interface {
	ColumnKeyedDatastore

	Clone() ParameterMap
	Merge(ParameterMap) ParameterMap
	Set(ColumnarReference, ParameterMetadata) error
	Get(ColumnarReference) (ParameterMetadata, bool)
	GetAll() []ParameterMapKeyVal
	GetByString(string) ([]ParameterMapKeyVal, bool)
	GetMap() map[ColumnarReference]ParameterMetadata
	GetAbbreviatedStringified() map[string]interface{}
	// contains filtered or unexported methods
}

ParameterMap type is an abstraction for mapping a "Columnar Reference" (an abstract data type) to some supplied or inferred value.

func NewParameterMap

func NewParameterMap() ParameterMap

type ParameterMapKeyVal

type ParameterMapKeyVal struct {
	K ColumnarReference
	V ParameterMetadata
}

type ParameterMetadata

type ParameterMetadata interface {
	GetParent() *sqlparser.ComparisonExpr
	GetVal() interface{}
	GetTable() sqlparser.SQLNode
	SetTable(sqlparser.SQLNode) error
	// contains filtered or unexported methods
}

func NewComparisonParameterMetadata

func NewComparisonParameterMetadata(parent *sqlparser.ComparisonExpr, val interface{}) ParameterMetadata

func NewPlaceholderParameterMetadata

func NewPlaceholderParameterMetadata() ParameterMetadata

type PlaceholderParameterMetadata

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

func (PlaceholderParameterMetadata) GetParent

func (PlaceholderParameterMetadata) GetTable

func (PlaceholderParameterMetadata) GetVal

func (pm PlaceholderParameterMetadata) GetVal() interface{}

func (PlaceholderParameterMetadata) SetTable

type StandardColumnarReference

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

func (StandardColumnarReference) Abbreviate

func (cr StandardColumnarReference) Abbreviate() (string, bool)

func (StandardColumnarReference) Alias

func (cr StandardColumnarReference) Alias() string

func (StandardColumnarReference) GetStringKey

func (cr StandardColumnarReference) GetStringKey() string

func (StandardColumnarReference) Name

func (StandardColumnarReference) SourceType

func (StandardColumnarReference) String

func (cr StandardColumnarReference) String() string

func (StandardColumnarReference) Value

func (cr StandardColumnarReference) Value() interface{}

type StandardComparisonParameterMetadata

type StandardComparisonParameterMetadata struct {
	Parent *sqlparser.ComparisonExpr
	Val    interface{}
	// contains filtered or unexported fields
}

func (*StandardComparisonParameterMetadata) GetParent

func (*StandardComparisonParameterMetadata) GetTable

func (*StandardComparisonParameterMetadata) GetVal

func (pm *StandardComparisonParameterMetadata) GetVal() interface{}

func (*StandardComparisonParameterMetadata) SetTable

type TableAliasMap

type TableAliasMap map[string]sqlparser.TableExpr

type TableExprMap

type TableExprMap map[sqlparser.TableName]sqlparser.TableExpr

func (TableExprMap) GetByAlias

func (tem TableExprMap) GetByAlias(alias string) (sqlparser.TableExpr, bool)

func (TableExprMap) SingleTableMap

func (tm TableExprMap) SingleTableMap(filterTable sqlparser.TableName) TableExprMap

func (TableExprMap) ToStringMap

func (tm TableExprMap) ToStringMap() map[string]interface{}

type TableParameterCoupling

type TableParameterCoupling interface {
	ColumnKeyedDatastore

	AbbreviateMap() (map[string]interface{}, error)
	Add(ColumnarReference, ParameterMetadata, ParamSourceType) error
	Clone() TableParameterCoupling
	GetOnCoupling() TableParameterCoupling
	GetNotOnCoupling() TableParameterCoupling
	GetAllParameters() []ParameterMapKeyVal
	Minus(rhs TableParameterCoupling) TableParameterCoupling
	ReconstituteConsumedParams(map[string]interface{}) (TableParameterCoupling, error)
	// contains filtered or unexported methods
}

func NewTableParameterCoupling

func NewTableParameterCoupling() TableParameterCoupling

Jump to

Keyboard shortcuts

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