# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Functions
Array returns a new Array type of the given underlying type.
CacheKey returns a hash of the given value to be used as key in a cache.
Char returns a new Char type of the given length.
DefaultSessionConfig returns default values for session variables.
EvaluateCondition evaluates a condition, which is an expression whose value will be coerced to boolean.
HasAvailableMemory reports whether more memory is available to the program if it hasn't reached the max memory limit.
HasDefaultValue checks if session variable value is the default one.
IsArray returns whether the given type is an array.
IsChar checks if t is a Char type.
IsDecimal checks if t is decimal type.
IsInteger checks if t is a (U)Int32/64 type.
IsNull returns true if expression is nil or is Null Type, otherwise false.
IsNumber checks if t is a number type.
IsSigned checks if t is a signed type.
IsText checks if t is a text type.
IsTime checks if t is a timestamp, date or datetime.
IsTuple checks if t is a tuple type.
IsUnsigned checks if t is an unsigned type.
IsVarChar checks if t is a varchar type.
MySQLTypeName returns the MySQL display name for the given type.
MysqlTypeToType gets the column type using the mysql type.
NewArrayGenerator creates a generator for a given array.
NewBaseSession creates a new empty session.
NewCatalog returns a new empty Catalog.
NewContext creates a new query context.
NewEmptyContext returns a default context with default values.
NewFunctionRegistry creates a new FunctionRegistry.
NewIndexRegistry returns a new Index Registry.
NewInformationSchemaDatabase creates a new INFORMATION_SCHEMA Database.
NewMemoryManager creates a new manager with the given memory reporter.
NewProcessList creates a new process list.
NewRow creates a row from the given values.
NewSession creates a new session with data.
NewSpanIter creates a RowIter executed in the given span.
No description provided by the author
NewTreePrinter creates a new tree printer.
NodeToRows converts a node to a slice of rows.
NumColumns returns the number of columns in a type.
RowIterToRows converts a row iterator to a slice of rows.
RowsToRowIter creates a RowIter that iterates over the given rows.
ToGenerator converts a value to a generator if possible.
Tuple returns a new tuple type with the given element types.
UnderlyingType returns the underlying type of an array if the type is an array, or the type itself in any other case.
ValidateTime receives a time and returns either that time or nil if it's not a valid time.
VarChar returns a new VarChar type of the given length.
WithMemoryManager adds the given memory manager to the context.
WithPid adds the given pid to the context.
WithQuery adds the given query to the context.
WithRootSpan sets the root span of the context.
WithSession adds the given session to the context.
WithTracer adds the given tracer to the context.
# Constants
ChecksumKey is the key in an index config to store the checksum.
ColumnsTableName is the name of columns table.
ColumnStatisticsTableName is the name of the column statistics table.
CreateIndexProcess is a process to create an index.
DateLayout is the layout of the MySQL date format in the representation Go understands.
DatetimeLayout is the layout of the MySQL date format in the representation Go understands.
FilesTableName is the name of the files table.
IndexBatchSize is the number of rows to save at a time when creating indexes.
IndexNotReady means the index is not ready to be used.
IndexOutdated means the index is loaded but will not be used because the contents in it are outdated.
IndexReady means the index can be used.
InformationSchemaDatabaseName is the name of the information schema database.
QueryKey to access query in the context.
QueryProcess is a query process.
SchemataTableName is the name of the schemata table.
TablesTableName is the name of tables table.
TimestampLayout is the formatting string with the layout of the timestamp using the format of Go "time" package.
# Variables
Blob is a type that holds a chunk of binary data.
Boolean is a boolean type.
Date is a date with day, month and year.
Datetime is a date and a time.
ErrCharTruncation is thrown when a Char value is textually longer than the destination capacity.
ErrChildrenAlreadyWritten is returned when the children have already been written.
ErrConvertingToTime is thrown when a value cannot be converted to a Time.
ErrConvertToSQL is returned when Convert failed.
ErrDatabaseNotFound is thrown when a database is not found.
ErrDeleteRowNotFound.
ErrFunctionAlreadyRegistered is thrown when a function is already registered.
ErrFunctionNotFound is thrown when a function is not found.
ErrIndexDeleteInvalidStatus is returned when the index trying to delete does not have a ready or outdated state.
ErrIndexExpressionAlreadyRegistered is the error returned when there is already an index with the same expression.
ErrIndexIDAlreadyRegistered is the error returned when there is already an index with the same ID.
ErrIndexNotFound is returned when the index could not be found.
ErrInvalidArgumentNumber is returned when the number of arguments to call a function is different from the function arity.
ErrInvalidChildrenNumber is returned when the WithChildren method of a node or expression is called with an invalid number of arguments.
ErrInvalidColumnNumber is returned when a tuple has an invalid number of arguments.
ErrInvalidType is thrown when there is an unexpected type at some part of the execution tree.
ErrKeyNotFound is returned when the key could not be found in the cache.
ErrNodeAlreadyWritten is returned when the node has already been written.
ErrNodeNotWritten is returned when the children are printed before the node.
ErrNoMemoryAvailable is returned when there is no more available memory.
ErrNotArray is returned when the value is not an array.
ErrNotGenerator is returned when the value cannot be converted to a generator.
ErrNotTuple is returned when the value is not a tuple.
ErrPidAlreadyUsed is returned when the pid is already registered.
ErrTableAlreadyExists is thrown when someone tries to create a table with a name of an existing one.
ErrTableNotFound is returned when the table is not available from the current scope.
ErrTypeNotSupported is thrown when a specific type is not supported.
ErrUnexpectedRowLength is thrown when the obtained row has more columns than the schema.
ErrUnexpectedType is thrown when a received type is not the expected.
ErrValueNotNil is thrown when a value that was expected to be nil, is not.
ErrVarCharTruncation is thrown when a VarChar value is textually longer than the destination capacity.
Float32 is a floating point number of 32 bits.
Float64 is a floating point number of 64 bits.
Int16 is an integer of 16 bits.
Int24 is an integer of 24 bits.
Int32 is an integer of 32 bits.
Int64 is an integer of 64 bytes.
Int8 is an integer of 8 bits.
JSON is a type that holds any valid JSON object.
Null represents the null type.
ProcessMemory is a reporter for the memory used by the process and the maximum amount of memory allowed controlled by the MAX_MEMORY environment variable.
Text is a string type.
Timestamp is an UNIX timestamp.
TimestampLayouts hold extra timestamps allowed for parsing.
Uint16 is an unsigned integer of 16 bits.
Uint24 is an unsigned integer of 24 bits.
Uint32 is an unsigned integer of 32 bits.
Uint64 is an unsigned integer of 64 bits.
Uint8 is an unsigned integer of 8 bits.
# Structs
BaseSession is the basic session type.
Catalog holds databases, tables and functions.
Client holds session user information.
Column is the definition of a table column.
Context of the query execution.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
IndexRegistry keeps track of all indexes in the engine.
MemoryManager is in charge of keeping track and managing all the components that operate in memory.
PartitionProgress keeps track of a partition progress.
Process represents a process in the SQL server.
ProcessList is a structure that keeps track of all the processes and their status.
Progress between done items and total items.
TableProgress keeps track of a table progress, and for each of its partitions.
TreePrinter is a printer for tree nodes.
No description provided by the author
No description provided by the author
# Interfaces
Aggregation implements an aggregation expression, where an aggregation buffer is created for each grouping (NewBuffer) and rows in the grouping are fed to the buffer (Update).
AscendIndex is an index that is sorted in ascending order.
AsyncNode is a node that can be executed asynchronously.
Checksumable provides the checksum of some data.
Database represents the database.
Databaser is a node that contains a reference to a database.
Deleter allow rows to be deleted from tables.
DescendIndex is an index that is sorted in descending order.
Disposable objects can erase all their content when they're no longer in use.
Expression is a combination of one or more SQL expressions.
Expressioner is a node that contains expressions.
FilteredTable is a table that can produce a specific RowIter that's more optimized given the filters.
Freeable objects can free their memory.
Function is a function defined by the user that can be applied in a SQL query.
Generator will generate a set of values for a given row.
Index is the basic representation of an index.
IndexableTable represents a table that supports being indexed and receiving indexes to be able to speed up its execution.
IndexDriver manages the coordination between the indexes and their representation on disk.
IndexKeyValueIter is an iterator of index key values, that is, a tuple of the values that will be index keys.
IndexLookup is a subset of an index.
IndexValueIter is an iterator of index values.
Inserter allow rows to be inserted in them.
KeyValueCache is a cache of key value pairs.
Lockable should be implemented by tables that can be locked and unlocked.
Mergeable is a specialization of IndexLookup to check if an IndexLookup can be merged with another one.
Nameable is something that has a name.
NegateIndex is an index that supports retrieving negated values.
Node is a node in the execution plan tree.
OpaqueNode is a node that doesn't allow transformations to its children and acts a a black box.
Partition represents a partition from a SQL table.
PartitionCounter can return the number of partitions.
PartitionIndexKeyValueIter is an iterator of partitions that will return the partition and the IndexKeyValueIter of that partition.
PartitionIter is an iterator that retrieves partitions.
ProjectedTable is a table that can produce a specific RowIter that's more optimized given the columns that are projected.
Replacer allows rows to be replaced through a Delete (if applicable) then Insert.
Reporter is a component that gives information about the memory usage.
Resolvable is something that can be resolved or not.
RowIter is an iterator that produces rows.
RowsCache is a cache of rows.
Session holds the session data.
SetOperations is a specialization of IndexLookup that enables set operations between several IndexLookups.
Table represents the backend of a SQL table.
Tableable is something that has a table.
TableCreator should be implemented by databases that can create new tables.
TableDropper should be implemented by databases that can drop tables.
TableWrapper is a node that wraps the real table.
Type represent a SQL type.
Updater allows rows to be updated.
# Type aliases
ContextOption is a function to configure the context.
Databases is a collection of Database.
DisposeFunc is a function to completely erase a cache and remove it from the manager.
FunctionRegistry is used to register functions.
IndexStatus represents the current status in which the index is.
ProcessType is the type of process.
Row is a tuple of values.
Schema is the definition of a table.
TransformExprFunc is a function that given an expression will return that expression as is or transformed along with an error, if any.
TransformNodeFunc is a function that given a node will return that node as is or transformed along with an error, if any.
UnresolvedDatabase is a database which has not been resolved yet.