Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SQLSystem ¶
type SQLSystem interface {
ComposeSelectQuery([]typing.RelationalColumn, []string, []string, string, string, string, int) (string, error)
DelimitGroupByColumn(term string) string
DelimitOrderByColumn(term string) string
// GCAdd() will record a Txn as active
GCAdd(string, internaldto.TxnControlCounters, internaldto.TxnControlCounters) error
// GCCollectAll() will remove all records from data tables.
GCCollectAll() error
// GCCollectObsoleted() must be mutex-protected.
GCCollectObsoleted(minTransactionID int) error
// GCControlTablesPurge() will remove all data from non ring control tables.
GCControlTablesPurge() error
// GCPurgeCache() will completely wipe the cache.
GCPurgeCache() error
// GCPurgeCache() will completely wipe the cache.
GCPurgeEphemeral() error
//
GenerateDDL(relationaldto.RelationalTable, bool) ([]string, error)
GenerateInsertDML(relationaldto.RelationalTable, internaldto.TxnControlCounters) (string, error)
GenerateSelectDML(relationaldto.RelationalTable, internaldto.TxnControlCounters, string, string) (string, error)
GetGCHousekeepingQuery(string, internaldto.TxnControlCounters) string
//
GetASTFormatter() sqlparser.NodeFormatter
GetASTFuncRewriter() astfuncrewrite.ASTFuncRewriter
GetFullyQualifiedTableName(string) (string, error)
GetSQLEngine() sqlengine.SQLEngine
// PurgeAll() drops all data tables, does **not** drop control tables.
PurgeAll() error
SanitizeQueryString(queryString string) (string, error)
// **NOTE**: SanitizeWhereQueryString() is **NOT** idempotent.
SanitizeWhereQueryString(queryString string) (string, error)
GetOperatorOr() string
GetOperatorStringConcat() string
GetName() string
GetGolangKind(string) reflect.Kind
GetGolangValue(string) interface{}
GetRelationalType(string) string
QueryNamespaced(string, string, string, string) (*sql.Rows, error)
IsTablePresent(string, string, string) bool
TableOldestUpdateUTC(string, string, string, string) (time.Time, internaldto.TxnControlCounters)
GetCurrentTable(internaldto.HeirarchyIdentifiers) (internaldto.DBTable, error)
GetTable(internaldto.HeirarchyIdentifiers, int) (internaldto.DBTable, error)
// Views
CreateView(viewName string, rawDDL string, replaceAllowed bool) error
DropView(viewName string) error
GetViewByName(viewName string) (internaldto.RelationDTO, bool)
// Materialized Views
CreateMaterializedView(
relationName string,
colz []typing.RelationalColumn,
rawDDL string,
replaceAllowed bool,
selectQuery string,
varargs ...any,
) error
RefreshMaterializedView(viewName string,
colz []typing.RelationalColumn,
selectQuery string,
varargs ...any) error
DropMaterializedView(viewName string) error
GetMaterializedViewByName(viewName string) (internaldto.RelationDTO, bool)
QueryMaterializedView(colzString, actualRelationName, whereClause string) (*sql.Rows, error)
// Tables, both permanent and temp
CreatePhysicalTable(
relationName string,
colz []typing.RelationalColumn,
rawDDL string,
ifNotExists bool,
) error
DropPhysicalTable(
tableName string,
ifExists bool,
) error
GetPhysicalTableByName(
tableName string,
) (internaldto.RelationDTO, bool)
InsertIntoPhysicalTable(tableName string,
insertClause string,
selectQuery string,
varargs ...any) error
// External SQL data sources
RegisterExternalTable(connectionName string, tableDetails anysdk.SQLExternalTable) error
ObtainRelationalColumnFromExternalSQLtable(
hierarchyIDs internaldto.HeirarchyIdentifiers,
colName string,
) (typing.RelationalColumn, error)
ObtainRelationalColumnsFromExternalSQLtable(
hierarchyIDs internaldto.HeirarchyIdentifiers,
) ([]typing.RelationalColumn, error)
}
func NewSQLSystem ¶
func NewSQLSystem( sqlEngine sqlengine.SQLEngine, analyticsNamespaceLikeString string, controlAttributes sqlcontrol.ControlAttributes, sqlCfg dto.SQLBackendCfg, authCfg map[string]*dto.AuthCtx, typCfg typing.Config, ) (SQLSystem, error)
Click to show internal directories.
Click to hide internal directories.