Documentation
¶
Index ¶
- Constants
- Variables
- func Assert(a bool)
- func Backtrace() []byte
- func Check_version(version_string string) bool
- func Datatype_shortdef(datatype Datatype_t, precision uint16, scale uint16, fixlen_flag bool) string
- func Db_path(prefix_path string, dbid int64) string
- func Directory_exists(path string) bool
- func File_exists(path string) bool
- func Get_uint64(bytes []byte) uint64
- func Joaat_hash(bytes []byte) uint32
- func Joaat_hash_str(str string) uint32
- func Journal_path(prefix_path string, journal_id int64) string
- func Keyname2coldef_list(gtabledef *GTabledef, keyname_list []string) ([]*Coldef, *Error)
- func Max_int(a int, b int) int
- func Min_int(a int, b int) int
- func Must_create_and_open_flashfile(prefix string) *os.File
- func Must_create_directory(path string, perm os.FileMode)
- func Must_create_ordinary_file(filename string, content string)
- func Must_create_tabledef_file(path string, perm os.FileMode)
- func Must_read_ordinary_file(filename string) (content string)
- func Must_remove_directory_all(path string)
- func Must_remove_directory_content(dir string)
- func Must_remove_existing_file(path string)
- func Must_remove_file(path string)
- func Must_remove_tabledef_file(path string)
- func Prime_for_hashtable(count_of_elements uint32) uint32
- func Printf(format string, a ...interface{}) (n int, err error)
- func Println(a ...interface{}) (n int, err error)
- func Read_int64(s string, separator byte) (result int64, tail string, err error)
- func Read_string_from_file(filename string) (content string, err error)
- func Rtrim(s string) string
- func Schema_path(prefix_path string, dbid int64, schid int64) string
- func Set_uint64(bytes []byte, v uint64)
- func Tabledef_path(prefix_path string, dbid int64, schid int64, tblid int64) (path string)
- func Truncate_bytes(a []byte, n int) []byte
- func Truncate_bytes_with_ellipsis(a []byte, n int) []byte
- func Truncate_string(a string, n int) string
- func Truncate_string_with_ellipsis(a string, n int) string
- func Write_error_msgp(mw *msgp.Writer, rsql_err *Error)
- type AnyINT
- type Backup_params
- type Basicblock
- type Bulk_export_params
- type Bulk_insert_params
- type Category_id_t
- type Cd_autonum_t
- type Coldef
- type Collstrength_t
- type Context
- func (context *Context) Check_keepalive() (rsql_err *Error)
- func (context *Context) Clear_for_new_batch()
- func (context *Context) Send_MESSAGE(format string, a ...interface{}) *Error
- func (context *Context) Send_MESSAGE_no_flush(format string, a ...interface{}) *Error
- func (context *Context) Send_MESSAGE_or_panic(format string, a ...interface{})
- func (context *Context) Send_warning(rsql_err *Error) *Error
- func (context *Context) Set_last_rowcount(val int64)
- func (context *Context) Writer_error() *Error
- func (context *Context) Writer_flush() *Error
- type Datatype_t
- type Dump_params
- type Durability_t
- type Error
- func Check_forbidden_file_path(file_path string) *Error
- func Get_collator(collation_string string) (*collate.Collator, *Error)
- func New_Error(category_id Category_id_t, message_id Message_id_t, severity_id Severity_id_t, ...) *Error
- func New_Error_SQLITE_ABORT(err error) *Error
- func Normalize_collation(collation_str string) (string, *Error)
- type GTabledef
- func (gtabledef *GTabledef) Clone() *GTabledef
- func (gtabledef *GTabledef) Get_any_invalid_Tabledef() *Tabledef
- func (gtabledef *GTabledef) Has_IDENTITY_column() bool
- func (gtabledef *GTabledef) Modify_native_key(index_name string, index_name_original string, index_type Td_index_type_t, ...) *Error
- func (gtabledef *GTabledef) Primary_key() (tabledef_pk *Tabledef)
- type GTabledefs_by_name
- type IDataslot
- type IWcache
- type Indexes_by_name
- type Insert_select_params
- type Instr3ac
- type Instrcode_t
- type Kind_t
- type Message_id_t
- type Object_qname_t
- type Permission_t
- type Request_t
- type Response_t
- type Restore_params
- type Row
- type Select_params
- type Severity_id_t
- type Sh_output_type_t
- type Show_info_params
- type Show_params
- type State_t
- type Tabledef
- type Td_cluster_type_t
- type Td_index_type_t
- type Td_status_t
- type Td_type_t
- type Temptable_bag
- func (tablebag *Temptable_bag) Bag() map[string]*GTabledef
- func (tablebag *Temptable_bag) Exists(tblname string) bool
- func (tablebag *Temptable_bag) Get(tblname string) (*GTabledef, *Error)
- func (tablebag *Temptable_bag) Put(tblname string, gtabledef *GTabledef) *Error
- func (tablebag *Temptable_bag) Remove(tblname string)
- type Tuple
- type Tuple_type_t
- type Update_params
Constants ¶
const ( MAX_UINT64 = math.MaxUint64 MAX_INT64 = math.MaxInt64 MIN_INT64 = math.MinInt64 )
const ( MASTER_PATH = "file:master.db" // for available modes, see https://www.sqlite.org/c3ref/open.html MASTER_PATH_RW = MASTER_PATH + "?mode=rw" MASTER_PATH_RWC = MASTER_PATH + "?mode=rwc" )
const ( SPEC_GTABLEDEF_INDEXMAP_DEFAULT_SIZE = 4 SPEC_GTABLEDEF_COLMAP_DEFAULT_SIZE = 20 SPEC_TABLEDEF_COLDEFS_SLICE_DEFAULT_CAPACITY = SPEC_GTABLEDEF_COLMAP_DEFAULT_SIZE SPEC_TABLEDEF_NK_SLICE_DEFAULT_CAPACITY = 6 SPEC_TABLEDEF_PAYLOAD_SLICE_DEFAULT_CAPACITY = SPEC_GTABLEDEF_COLMAP_DEFAULT_SIZE SPEC_TABLE_NUMBER_OF_COLUMNS_MAX = 1024 // DON'T CHANGE IT, because it changes the layout of cache.Page. SPEC_TABLE_NUMBER_OF_INDEX_COLUMN_MAX = 11 // DON'T CHANGE IT, because it changes the layout of cache.Page. TODO mettre à 20 SPEC_TABLE_NUMBER_OF_INDEXES_MAX = 10 // TODO mettre à 15 )
const ( DEFAULT_BYTE_BUFF_CAPACITY = 50 // a good value for general purpose buffer []byte capacity DEFAULT_COLDEF_SLICE_CAPACITY = 10 // a good value for default capacity []*Coldef )
const ( THROW_MESSAGE_ID_LIMIT_LOWEST = 50000 THROW_MESSAGE_ID_LIMIT_HIGHEST = 2147483647 )
Range of Message_id_t for Error that THROW can create.
const ( CTX_CANCEL_BY_EOF = iota + 1 CTX_CANCEL_BY_TIMEOUT CTX_CANCEL_BY_COMMUNICATION_FAILURE )
const ( DATATYPE_PRECISION_BIT = 1 DATATYPE_PRECISION_TINYINT = 3 DATATYPE_PRECISION_SMALLINT = 5 DATATYPE_PRECISION_INT = 10 DATATYPE_PRECISION_BIGINT = 19 DATATYPE_PRECISION_MONEY = 19 // because in SQL Server, money is stored as bigint DATATYPE_SCALE_MONEY = 4 DATATYPE_NUMERIC_PRECISION_MAX = 34 // must be equal to C.DECQUAD_Pmax (==34). A check is done in quad.init(), and panics if value mismatch. DATATYPE_NUMERIC_RESULT_SCALE_MAX = 6 // max scale of numeric result, resulting from an operator or a function. DATATYPE_NUMERIC_RESULT_INTEGRALPART_MAX = (DATATYPE_NUMERIC_PRECISION_MAX - DATATYPE_NUMERIC_RESULT_SCALE_MAX) // max integral part size of numeric result, resulting from an operator or a function. DATATYPE_VARBINARY_PRECISION_MAX = 8000 // max precision for binary and varbinary, in bytes. DATATYPE_VARCHAR_PRECISION_MAX = 8000 // max precision for char and varchar DATATYPE_NVARCHAR_PRECISION_MAX = 4000 // max precision for nchar and nvarchar )
for numbers, precision is the number of significant digits (but '-' sign is not included)
const ( DATATYPE_ILLEGAL Datatype_t = iota // illegal datatype of value 0, never used DATATYPE_VOID // _void. Used for NULL literal. DATATYPE_SYSCOLLATOR // internal datatype, containing information for collation DATATYPE_SYSLANGUAGE // internal datatype, containing information for date and number formatting DATATYPE_BOOLEAN // _bool. Internal datatype, used for boolean operations. DATATYPE_BINARY // BINARY. Not implemented. DATATYPE_VARBINARY // VARBINARY DATATYPE_IMAGE // IMAGE. Not implemented. DATATYPE_CHAR // CHAR. The decorator module will convert CHAR to VARCHAR with fixlen_flag = true. DATATYPE_VARCHAR // VARCHAR with fixlen_flag = false. DATATYPE_TEXT // TEXT. Not implemented. DATATYPE_NCHAR // NCHAR. Always converted to CHAR. DATATYPE_NVARCHAR // NVARCHAR. Always converted to VARCHAR. DATATYPE_NTEXT // NTEXT. Always converted to TEXT. DATATYPE_REGEXPLIKE // internal datatype, containing regular expression. Used by LIKE operator. DATATYPE_BIT // BIT DATATYPE_TINYINT // TINYINT DATATYPE_SMALLINT // SMALLINT DATATYPE_INT // INT DATATYPE_BIGINT // BIGINT DATATYPE_SMALLMONEY // SMALLMONEY. Always converted to MONEY. DATATYPE_MONEY // MONEY DATATYPE_DECIMAL // DECIMAL. Always convered to NUMERIC. DATATYPE_NUMERIC // NUMERIC DATATYPE_REAL // REAL. Always converted to FLOAT. DATATYPE_FLOAT // FLOAT DATATYPE_DATE // DATE DATATYPE_TIME // TIME DATATYPE_SMALLDATETIME // SMALLDATETIME. Always converted to DATETIME. DATATYPE_DATETIME // DATETIME DATATYPE_DATETIME2 // DATETIME2. Always converted to DATETIME. DATATYPE_CHARACTER // same as CHAR DATATYPE_INTEGER // same as INT DATATYPE_DEC // same as DECIMAL DATATYPE_DOUBLE // same as FLOAT. Must be followed by PRECISION. DATATYPE_ARRAYSIZE uint = uint(DATATYPE_DATETIME) + 1 // number of datatypes, used for G_SQL_DATATYPE_CAST_INSTRUCTION_CODE[][] array dimensions. DATETIME is the highest used datatype. )
'boolean' datatype does not exist in MS SQL Server, nor 'void' datatype for NULL literal. They are used internally. IMPORTANT: The order of these datatypes is important AND SHOULD NOT BE CHANGED, as these values are used when decorating operators to find the "winning" datatype among multiple operands.
E.g. 10 + 12.3 When an "int" and a "numeric" are added, the "int" operand is cast to a "numeric" datatype, and the "+" operator will add two "numeric" values.
const ( DIR_PERM = 0775 TBLFILE_PERM = 0664 JOURNALFILE_PERM = 0664 BULKDIR_PERM = 0777 DUMPDIR_PERM = 0777 TEMPDIR_PERM = 0777 DIRECTORY_DATA = "data" // if a new directory used by the server is added, you must also change Check_forbidden_file_path function DIRECTORY_INDEX = "index" DIRECTORY_JOURNALS = "journals" DIRECTORY_LOGGING = "logging" DIRECTORY_BULKDIR = "bulkdir" DIRECTORY_DUMPDIR = "dumpdir" DIRECTORY_TEMPDIR = "tempdir" JOURNAL_FILENAME_PREFIX = "journal_" JOURNAL_FILENAME_EXTENSION = ".jrnl" NORMAL_FILE_PERM = 0664 VERSION_FILENAME = "version" LISTENER_ADDRESS_FILENAME = "listener_address.cfg" )
const DEFAULT_MESSAGE_LOCALE = "en_us"
const ELLIPSIS_TRUNCATION_LIMIT_DEFAULT = 50 // used for Truncate_string_with_ellipsis() and Truncate_bytes_with_ellipsis()
const FIELD_OFFSET_SIZE = 2 // offsets in tuple header are uint16
const ROWID = "rowid"
const ROWID_INTERNAL = "$rowid$" // rowid column name for grouptable and sorttable
const SPEC_ERROR_PRINT_BACKTRACE bool = false // if true, backtrace will be output by this function
const TRASHDB = "trashdb"
const VERSION = "0.7.1"
Variables ¶
var CATEGORY_MAP = map[Category_id_t]string{ ERROR_GENERAL: "ERROR_GENERAL", ERROR_ARITH: "ERROR_ARITH", ERROR_SQL_SYNTAX: "ERROR_SQL_SYNTAX", ERROR_RESOURCE: "ERROR_RESOURCE", ERROR_DICT: "ERROR_DICT", ERROR_STORAGE: "ERROR_STORAGE", ERROR_PERMISSION: "ERROR_PERMISSION", ERROR_DICT_FATAL: "ERROR_DICT_FATAL", ERROR_UNEXPECTED: "ERROR_UNEXPECTED", }
CATEGORY_MAP is a static map, to get the string representation of a Category_t.
var Check_column_not_null func(context *Context, gtabledef *GTabledef, column_name string) *Error
Check_column_not_null contains a function defined in rsql/csr, but used in rsql/dict. This variable is created here to avoid circular import issue.
var Execute_basicblock func(context *Context, basicblock *Basicblock) (retval int64, rsql_err *Error)
pointer to vm.Execute_basicblock, needed to avoid circular import. Indeed, rsql/csr cursors need to call this function to evaluate ON and WHERE clauses, but vm already imports csr.
var Fill_index_with_records func(context *Context, table_qname Object_qname_t, gtabledef *GTabledef, indexdef *Tabledef) *Error
Fill_index_with_records contains a function defined in rsql/stmt, but used in rsql/dict. This variable is created here to avoid circular import issue.
var G_BATCH_INSERTS_MAX_COUNT int
var G_BATCH_TEXT_MAX_SIZE int
If too large, there is a risk that too much memory will be used by the batch for all the Token_primaries, which size is more than 300 bytes. This value is sent to the client, which stores it in session.server_batch_text_max_size when connection is established.
var G_COLLATION_MAP = map[string]string{
"aa": "aa",
"af": "af",
"ar": "ar",
"as": "as",
"az": "az",
"be": "be",
"bg": "bg",
"bn": "bn",
"bs": "bs",
"bs_cyrl": "bs-Cyrl",
"ca": "ca",
"cs": "cs",
"cy": "cy",
"da": "da",
"de": "de",
"dz": "dz",
"ee": "ee",
"el": "el",
"en": "en",
"eo": "eo",
"es": "es",
"et": "et",
"fa": "fa",
"fa_af": "fa-AF",
"fi": "fi",
"fil": "fil",
"fo": "fo",
"fr": "fr",
"fr_ca": "fr-CA",
"gu": "gu",
"ha": "ha",
"haw": "haw",
"he": "he",
"hi": "hi",
"hr": "hr",
"hu": "hu",
"hy": "hy",
"ig": "ig",
"is": "is",
"ja": "ja",
"kk": "kk",
"kl": "kl",
"km": "km",
"kn": "kn",
"ko": "ko",
"kok": "kok",
"ln": "ln",
"lt": "lt",
"lv": "lv",
"mk": "mk",
"ml": "ml",
"mr": "mr",
"mt": "mt",
"my": "my",
"nb": "nb",
"nn": "nn",
"nso": "nso",
"om": "om",
"or": "or",
"pa": "pa",
"pl": "pl",
"ps": "ps",
"ro": "ro",
"ru": "ru",
"se": "se",
"si": "si",
"sk": "sk",
"sl": "sl",
"sq": "sq",
"sr": "sr",
"sr_latn": "sr-Latn",
"ssy": "ssy",
"sv": "sv",
"ta": "ta",
"te": "te",
"th": "th",
"tn": "tn",
"to": "to",
"tr": "tr",
"uk": "uk",
"ur": "ur",
"vi": "vi",
"wae": "wae",
"yo": "yo",
"zh": "zh",
"zh_hant": "zh-Hant",
}
rsql collation name to golang collation name.
NOTE: "bs_cyrl" is mapped to "bs-Cyrl". Notice the underscore, replaced by a hyphen in the mapping. Same for "fr_ca" etc.
This map is created from the list of locales returned by function Supported(), in package "code.google.com/p/go.text/collate".
VERSION OF COLLATION DATA: In file code.google.com/p/go.text/collate/tables.go, it is written that the collation table was created by running: maketables -root=http://unicode.org/Public/UCA/6.2.0/CollationAuxiliary.zip -cldr=http://www.unicode.org/Public/cldr/23/core.zip In 2015, all packages in code.google.com/p/ have been migrated to golang.org/x/. In file golang.org/x/text/collate/collate.go, it is written: go:generate go run maketables.go -cldr=23 -unicode=6.2.0
If a collation is not listed here, like italian "it", it means it is the same as "en" collation.
TODO THIS PROBLEM WILL BE SOLVED WHEN TABLES WILL BE CREATED WITH CLDR VERSION 25. WE JUST HAVE TO WAIT. Indeed, in cldr release 25, all missing collations like "it" have been added, with empty body: In http://unicode.org/cldr/trac/browser/tags/release-25/common/collation/it.xml, as it is written "The root collation order is valid for this language".
var G_DATATYPES = map[string]Datatype_t{ "binary": DATATYPE_BINARY, "varbinary": DATATYPE_VARBINARY, "image": DATATYPE_IMAGE, "char": DATATYPE_CHAR, "varchar": DATATYPE_VARCHAR, "text": DATATYPE_TEXT, "nchar": DATATYPE_NCHAR, "nvarchar": DATATYPE_NVARCHAR, "ntext": DATATYPE_NTEXT, "bit": DATATYPE_BIT, "tinyint": DATATYPE_TINYINT, "smallint": DATATYPE_SMALLINT, "int": DATATYPE_INT, "bigint": DATATYPE_BIGINT, "smallmoney": DATATYPE_SMALLMONEY, "money": DATATYPE_MONEY, "decimal": DATATYPE_DECIMAL, "numeric": DATATYPE_NUMERIC, "real": DATATYPE_REAL, "float": DATATYPE_FLOAT, "date": DATATYPE_DATE, "time": DATATYPE_TIME, "smalldatetime": DATATYPE_SMALLDATETIME, "datetime": DATATYPE_DATETIME, "datetime2": DATATYPE_DATETIME2, "character": DATATYPE_CHAR, "integer": DATATYPE_INT, "dec": DATATYPE_DECIMAL, "double": DATATYPE_DOUBLE, }
G_DATATYPES map contains datatypes, that can be used in DECLARE statement.
This means that internal datatypes such as DATATYPE_VOID or DATATYPE_BOOLEAN should not be put in this map.
var G_DEBUG_FLAG bool // set by the -debug option
var G_LISTENER_ADDRESS string
var G_LIST_OF_RSQL_COLLATIONS_FOR_DISPLAY string
var G_SERVERNAME string
var G_SERVER_DEFAULT_COLLATION string
var G_server_shutdown_flag uint32 // if >0, normal shutdown, waiting for sessions to finish their work
var MESSAGE_MAP = map[Message_id_t]string{}/* 529 elements not displayed */
MESSAGE_MAP is a static map, to get the string representation of a Message_t.
var MESSAGE_MAP_TEXT_LOCALE_ROOT = map[Message_id_t]string{}/* 529 elements not displayed */
MESSAGE_LOCALE_ROOT is a static map, containing text messages (format string) for Error.
var PRIMES_SAMPLES = []uint32{
53,
97,
193,
389,
769,
1543,
3079,
6151,
12289,
24593,
49157,
98317,
196613,
393241,
786433,
1572869,
3145739,
6291469,
12582917,
25165843,
50331653,
100663319,
201326611,
402653189,
805306457,
1610612741}
list of prime numbers
var Param_read_timeout int64 // in seconds
var SEVERITY_MAP = map[Severity_id_t]string{ ERROR_IS_WARNING: "ERROR_IS_WARNING", ERROR_BATCH_ABORT: "ERROR_BATCH_ABORT", ERROR_SESSION_ABORT: "ERROR_SESSION_ABORT", ERROR_SERVER_ABORT: "ERROR_SERVER_ABORT", }
SEVERITY_MAP is a static map, to get the string representation of a Severity_t.
var WINDOWS_TO_COLLATION_MAP = map[string]string{
"latin1_general": "en",
"latin1_general_100": "en",
"cyrillic_general": "ru",
"cyrillic_general_100": "ru",
"afar": "aa",
"afrikaans": "af",
"arabic": "ar",
"assamese": "as",
"azeri": "az",
"belarusian": "be",
"bulgarian": "bg",
"bengali": "bn",
"bosnian_latin": "bs",
"bosnian_cyrillic": "bs_cyrl",
"catalan": "ca",
"czech": "cs",
"welsh": "cy",
"danish": "da",
"german": "de",
"dzongkha": "dz",
"ewe": "ee",
"greek": "el",
"english": "en",
"esperanto": "eo",
"spanish": "es",
"estonian": "et",
"persian": "fa",
"dari": "fa_af",
"finnish": "fi",
"filipino": "fil",
"faroese": "fo",
"french": "fr",
"french_ca": "fr_ca",
"gujarati": "gu",
"hausa": "ha",
"hawaiian": "haw",
"hebrew": "he",
"hindi": "hi",
"croatian": "hr",
"hungarian": "hu",
"armenian": "hy",
"igbo": "ig",
"icelandic": "is",
"japanese": "ja",
"kazakh": "kk",
"kalaallisut": "kl",
"khmer": "km",
"kannada": "kn",
"korean": "ko",
"konkani": "kok",
"lingala": "ln",
"lithuanian": "lt",
"latvian": "lv",
"macedonian": "mk",
"malayalam": "ml",
"marathi": "mr",
"maltese": "mt",
"burmese": "my",
"norwegian_bokmål": "nb",
"norwegian_nynorsk": "nn",
"northern_sotho": "nso",
"oromo": "om",
"oriya": "or",
"punjabi": "pa",
"polish": "pl",
"pashto": "ps",
"romanian": "ro",
"russian": "ru",
"northern_sami": "se",
"sinhala": "si",
"slovak": "sk",
"slovenian": "sl",
"albanian": "sq",
"serbian_cyrillic": "sr",
"serbian_latin": "sr_latn",
"saho": "ssy",
"swedish": "sv",
"tamil": "ta",
"telugu": "te",
"thai": "th",
"tswana": "tn",
"tongan": "to",
"turkish": "tr",
"ukrainian": "uk",
"urdu": "ur",
"vietnamese": "vi",
"walser": "wae",
"yoruba": "yo",
"chinese_prc": "zh",
"chinese_traditional": "zh_hant",
}
collation full names, that are aliases for the short rsql collation names
Functions ¶
func Backtrace ¶
func Backtrace() []byte
Backtrace returns a slice of bytes, containing the full backtrace. You can use string(base.Backtrace()) to convert the returned result to string.
func Check_version ¶
func Datatype_shortdef ¶
func Datatype_shortdef(datatype Datatype_t, precision uint16, scale uint16, fixlen_flag bool) string
Datatype_shortdef returns the datatype string, with precision and scale if needed. sql_datatype can be DATATYPE_CHAR (in this case, fixlen_flag is ignored).
func Directory_exists ¶
func File_exists ¶
func Get_uint64 ¶
func Joaat_hash ¶
joaat_hash computes a hash value of a byte string. It uses Jenkins One-at-a-Time Hash algorithm.
func Joaat_hash_str ¶
func Journal_path ¶
func Keyname2coldef_list ¶
func Must_create_directory ¶
func Must_read_ordinary_file ¶
func Must_remove_directory_all ¶
func Must_remove_directory_all(path string)
Must_remove_directory_all removes all subdirectories and files in path, and path itself. If path doesn't exist, no error is returned.
func Must_remove_directory_content ¶
func Must_remove_directory_content(dir string)
func Must_remove_existing_file ¶
func Must_remove_existing_file(path string)
Must_remove_existing_file removes path file. If path doesn't exist, panics.
func Must_remove_file ¶
func Must_remove_file(path string)
Must_remove_file removes path file. If path doesn't exist, no error is returned.
func Must_remove_tabledef_file ¶
func Must_remove_tabledef_file(path string)
Must_remove_tabledef_file removes path file. If path doesn't exist, no error is returned.
func Prime_for_hashtable ¶
func Printf ¶
Printf just calls fmt.Printf. It is just a convenience function for debugging purpose, to avoid putting 'import "fmt"' in files that don't already import "fmt".
func Println ¶
Println just calls fmt.Println. It is just a convenience function for debugging purpose, to avoid putting 'import "fmt"' in files that don't already import "fmt".
func Read_int64 ¶
Read_int64 returns the first integer read in string s. s is a series of integer separated by separator. Blanks characters are skipped. E.g. "35,7 , 675 "
This function is simple and can only read integers with <= 18 digits, to avoid int64 overflow. Else, it panics. It is not a problem as it is used to read column numbers.
func Read_string_from_file ¶
func Set_uint64 ¶
func Tabledef_path ¶
func Truncate_bytes ¶
func Truncate_bytes_with_ellipsis ¶
Truncate_bytes_with_ellipsis returns the argument, truncated at n bytes with ellipsis appended. You can use ELLIPSIS_TRUNCATION_LIMIT_DEFAULT for n.
func Truncate_string ¶
func Truncate_string_with_ellipsis ¶
Truncate_string_with_ellipsis returns the argument, truncated at n bytes with ellipsis appended. You can use ELLIPSIS_TRUNCATION_LIMIT_DEFAULT for n.
func Write_error_msgp ¶
Types ¶
type Backup_params ¶
type Backup_params struct {
Bk_server_default_collation string // sorting order for SHOW output
}
Params for BACKUP DATABASE statement.
type Basicblock ¶
type Basicblock struct { Bb_instr3ac_list []Instr3ac // List of instructions. It is allowed to have many jumps out of the basic block anywhere in the instruction list. The list may be NULL, for BEGIN..END block with only pragma e.g. DEBUG TABLE_LOCK_FREEZE. Bb_jump_target *Basicblock Bb_return_value int64 // return value, when a RETURN or EXIT statement is encountered. }
type Bulk_export_params ¶
type Bulk_export_params struct { Be_opt_codepage string Be_opt_rowterminator string Be_opt_fieldterminator string Be_opt_date_format string // if "", it is the default Be_opt_time_format string // if "", it is the default Be_opt_datetime_format string // if "", it is the default }
Params for BULK EXPORT
type Bulk_insert_params ¶
type Bulk_insert_params struct { Bi_opt_codepage string Bi_opt_rowterminator string Bi_opt_fieldterminator string Bi_opt_firstrow uint64 Bi_opt_lastrow uint64 Bi_opt_keepidentity bool Bi_opt_rtrim bool }
Params for BULK INSERT
type Category_id_t ¶
type Category_id_t uint32
Category_t is the category id of an Error.
const ( ERROR_GENERAL Category_id_t = iota + 10 ERROR_ARITH ERROR_SQL_SYNTAX ERROR_RESOURCE ERROR_DICT ERROR_STORAGE ERROR_PERMISSION ERROR_DICT_FATAL ERROR_UNEXPECTED )
Constants for Category_t
func (Category_id_t) String ¶
func (category_id Category_id_t) String() string
type Cd_autonum_t ¶
type Cd_autonum_t uint8
const ( CD_AUTONUM_NONE Cd_autonum_t = 0 // CD_AUTONUM_NONE must be 0 CD_AUTONUM_ROWID Cd_autonum_t = 1 // must be power of two CD_AUTONUM_IDENTITY Cd_autonum_t = 2 // same )
type Coldef ¶
type Coldef struct { Cd_colname string Cd_colname_original string // original cased, for display usage Cd_datatype Datatype_t Cd_precision uint16 Cd_scale uint16 Cd_fixlen_flag bool Cd_collation_strength Collstrength_t // for VARCHAR, always COLLSTRENGTH_1 Cd_collation string // for VARCHAR, never "" Cd_autonum Cd_autonum_t // CD_AUTONUM_NONE, CD_AUTONUM_ROWID, CD_AUTONUM_IDENTITY Cd_NOT_NULL_flag bool // false if NULL allowed, else true Cd_base_seqno uint16 // seqno of the base table }
type Collstrength_t ¶
type Collstrength_t uint8
const ( COLLSTRENGTH_0 Collstrength_t = 0 // default collation COLLSTRENGTH_1 Collstrength_t = 1 // for collation of table columns COLLSTRENGTH_2 Collstrength_t = 2 // COLLATE clause )
type Context ¶
type Context struct { Ctx_login_id int64 // immutable. During the execution of a batch, the real login can be dropped by the batch itself, or by another batch being executed concurrently. Ctx_login_name_for_info string // immutable Ctx_worker_id uint32 Ctx_conn net.Conn Ctx_mw *msgp.Writer Ctx_cancel int32 // if client closes the connection, or timeout, or communication failure, this field indicates that the session must terminate. Ctx_scratch []byte // just a scratch buffer used for transient usage by some functions Ctx_wcache IWcache // private write-cache. Stored type is *cache.Wcache. It is stored in an interface to avoid circular import error. Ctx_trancount int // BEGIN TRANSACTION increments this counter. When COMMIT is encountered, if > 1: decrement counter; if 1: make changes permanent and decrement counter; else, raise error. Ctx_nocount bool // SET NOCOUNT sets this flag. Specifies whether VM sends rowcount info to client. }
Context allows the session to pass the output stream, error stream, and credential, to the VM and instructions.
func New_context ¶
New_context creates a new Context, to transmit important information to the VM.
func (*Context) Check_keepalive ¶
Check_keepalive checks if keepalive signal has timed out.
func (*Context) Clear_for_new_batch ¶
func (context *Context) Clear_for_new_batch()
func (*Context) Send_MESSAGE ¶
Send_MESSAGE sends a string as RESTYP_MESSAGE.
func (*Context) Send_MESSAGE_no_flush ¶
Send_MESSAGE sends a string as RESTYP_MESSAGE, but doesn't flush. You must call context.Writer_flush() yourself.
func (*Context) Send_MESSAGE_or_panic ¶
Send_MESSAGE_or_panic sends a string as RESTYP_MESSAGE. If error occurs because connection failed, panics.
**** WARNING **** This function is used only in ast/debug_print_ast.go, because wrapping each call with "if err = ...; err != nil { return err }" would make the code less clear. But "panic" must be trapped by "recover", in this case by ast.Debug_print_AST.
func (*Context) Send_warning ¶
Send_warning sends a string as RESTYP_MESSAGE.
Argument rsql_err must have field Severity_id == ERROR_IS_WARNING.
func (*Context) Set_last_rowcount ¶
func (*Context) Writer_error ¶
Writer_error returns the error state of the messagepack Writer.
func (*Context) Writer_flush ¶
Writer_flush flushes the Writer context.Ctx_mw into the connection.
type Datatype_t ¶
type Datatype_t uint16
func (Datatype_t) Is_allowed_select_column ¶
func (datatype Datatype_t) Is_allowed_select_column() bool
Is_allowed_select_column returns true if datatype is allowed in SELECT column.
func (Datatype_t) String ¶
func (sql_datatype Datatype_t) String() string
String returns the datatype name. It is used to display datatype name when ERROR_INVALID_SYNTAX_CAST_NOT_ALLOWED occurs.
type Dump_params ¶
type Durability_t ¶
type Durability_t uint8
const ( DURABILITY_PERMANENT Durability_t = iota // normal table, with records stored in its own permanent data file, and modifications are logged in main journal. DURABILITY_TEMPORARY // not implemented yet. Temporary #table, with records stored in its own temporary data file, and modifications are logged in temporary journal. DURABILITY_FLASH // variable @table or system generated table, e.g. $grouptable$, with records living as TRANSITORY in temporary journal, until the session terminates. System generated table is discarded as soon as it has been read. Is not affected by COMMIT or ROLLBACK. )
func (Durability_t) String ¶
func (durability Durability_t) String() string
type Error ¶
type Error struct { Source_filename string // source file of the error Source_line_no int // source file line number of the error Source_funcname string // source file function that triggered the error Category_id Category_id_t // category id Message_id Message_id_t // message id. If >= THROW_MESSAGE_ID_BASE, the Error has been created by THROW. Message_fmt_string string // message format string. Normally, it is MESSAGE_MAP_TEXT_LOCALE_ROOT[Message_id], except for THROW which overrides this field Message_args []interface{} // arguments used by format string Message_fmt_string Severity_id Severity_id_t // severity id State State_t // state (default is 1. Only THROW can pass another value) Batch_line_no uint32 // line no in SQL batch. Filled out by the parser, decorator, VM, etc, when an error occurs during one of these processing steps. Batch_line_pos uint32 // position in line. See Batch_line_no. // contains filtered or unexported fields }
Error is created when an error occurs in RSQL.
func Check_forbidden_file_path ¶
Check_forbidden_file_path returns an error if the path is in a directory reserved for server use.
func Get_collator ¶
get_collator creates a new Collator from string.
collation must be a supported locale, with a suffix like "_cs_as", or an error is returned.
2014.03.19 text/collate package is still buggy.
Normally, with a collator with Strength = colltab.Primary and CaseLevel = true, 'role' == 'rôle', because comparison is accent insensitive and case sensitive. But text/collate.CompareString('role', 'rôle') gives -1. That's why we only allow Primary, Secondary and Tertiary Strength. CaseLevel setting is not used, as it is buggy.
func New_Error ¶
func New_Error(category_id Category_id_t, message_id Message_id_t, severity_id Severity_id_t, message_args ...interface{}) *Error
New_Error returns a pointer to a new Error object. You can pass optional arguments (message_args) that will be stored in the Error object. They will be used for formatting with MESSAGE_LOCALE_ROOT map.
func New_Error_SQLITE_ABORT ¶
func Normalize_collation ¶
Normalize_collation returns the normalized version of a collation string. For e.g. "French_cs_as", "FR_CS_AS", the string "fr_cs_as" is returned. For "French_CA_ci_ai", "fr_ca_ci_ai" is returned.
Returns error if invalid collation.
func (*Error) Error_short ¶
func (*Error) More_info ¶
More_info adds some accessory info to a rsql.Error object received from higher level at which it originated. Sometimes, we want to add a little bit more information to this rsql.Error.
E.g. when a parsing error occurs during BULK INSERT, it is nice to have also the line number of import file which caused the error.
type GTabledef ¶
type GTabledef struct { Gtblid int64 Gdbid int64 Gschid int64 Gtable_name string // table name Gtable_name_original string // original cased, for display usage Base *Tabledef // CLUSTERED base table (for base table, Td_tblid == Td_base_gtblid == Gtblid) Indexmap map[string]*Tabledef // contains all NONCLUSTERED index tables Colmap map[string]*Coldef Identity_seed int64 Identity_increment int64 // if increment not 0, a column has the property Cd_autonum==CD_AUTONUM_IDENTITY Create_date time.Time // creation time }
func New_GTabledef ¶
func New_GTabledef() *GTabledef
func (*GTabledef) Get_any_invalid_Tabledef ¶
Get_any_invalid_Tabledef returns the first non TD_STATUS_VALID Tabledef. Returs nil if all Tabledefs are TD_STATUS_VALID.
func (*GTabledef) Has_IDENTITY_column ¶
func (*GTabledef) Modify_native_key ¶
func (gtabledef *GTabledef) Modify_native_key(index_name string, index_name_original string, index_type Td_index_type_t, keyname_list []string) *Error
Modify_native_key changes the native key of gtabledef. It modifies all indexes, so all Tabledefs in gtabledef are modified.
*** IMPORTANT *** If error, gtabledef is in a garbage state. YOU MUST ALWAYS PASS A CLONE OF gtabledef AS RECEIVER, so that you can discard it if the function returns an error. Also note that the tblid of all Tabledefs are not changed, but they are useless, as CREATE TABLE will overwrite them with new values.
func (*GTabledef) Primary_key ¶
type GTabledefs_by_name ¶
type GTabledefs_by_name struct {
// contains filtered or unexported fields
}
GTabledefs_by_name is used to sort a list of *GTabledefs by alphabetical order.
func New_GTabledefs_by_name ¶
func New_GTabledefs_by_name(lst []*GTabledef, coll *collate.Collator) *GTabledefs_by_name
func (*GTabledefs_by_name) Len ¶
func (list *GTabledefs_by_name) Len() int
func (*GTabledefs_by_name) Less ¶
func (list *GTabledefs_by_name) Less(i, j int) bool
func (*GTabledefs_by_name) Swap ¶
func (list *GTabledefs_by_name) Swap(i, j int)
type IDataslot ¶
type IDataslot interface { Datatype() Datatype_t Kind() Kind_t Set_kind(Kind_t) Error() *Error Set_Error(*Error) NULL_flag() bool Set_to_NULL() RO_LEAF_hashval() uint32 String() string }
IDataslot is the interface that can receive all datatypes, e.g. data.VARCHAR, data.INT, data.NUMERIC, data.DATETIME, etc.
type Indexes_by_name ¶
type Indexes_by_name struct {
// contains filtered or unexported fields
}
Indexes_by_name is used to sort a list of index *Tabledefs by alphabetical order.
func New_Indexes_by_name ¶
func New_Indexes_by_name(lst []*Tabledef, coll *collate.Collator) *Indexes_by_name
func (*Indexes_by_name) Len ¶
func (list *Indexes_by_name) Len() int
func (*Indexes_by_name) Less ¶
func (list *Indexes_by_name) Less(i, j int) bool
func (*Indexes_by_name) Swap ¶
func (list *Indexes_by_name) Swap(i, j int)
type Insert_select_params ¶
type Insert_select_params struct { Ins_cursor interface{} // always csr.Cursor. But we cannot declare it here, because of circular import. Ins_conversion_basicblock *Basicblock Ins_base_row []IDataslot // row to insert Ins_explicit_IDENTITY_provided bool }
Params for INSERT INTO ... SELECT
type Instr3ac ¶
type Instr3ac struct { Batch_line_no uint32 Batch_line_pos uint32 // uint32 is good enough and smaller than lex.Txtdim_t, which is int64. Code Instrcode_t Arg0 interface{} // arguments to the instruction. Usually, *Data_INT, etc. May also be []*INT, etc. May be *Lexeme. But for jump, it is pointers to Basicblock. Arg1 interface{} // same Arg2 interface{} // same Arg3 interface{} // same Arg4 interface{} // same }
type Instrcode_t ¶
type Instrcode_t uint16
const ( INSTR_CAST_ILLEGAL Instrcode_t = iota // must be 0, so that in G_SQL_DATATYPE_CAST_INSTRUCTION_CODE, all uninitialized casts are INSTR_CAST_ILLEGAL INSTR_UNARY_MINUS_VOID INSTR_ADD_VOID INSTR_SUBTRACT_VOID INSTR_MULT_VOID INSTR_DIV_VOID INSTR_MOD_VOID INSTR_COMP_EQUAL_VOID INSTR_COMP_GREATER_VOID INSTR_COMP_LESS_VOID INSTR_COMP_GREATER_EQUAL_VOID INSTR_COMP_LESS_EQUAL_VOID INSTR_COMP_NOT_EQUAL_VOID INSTR_IS_NULL_VOID INSTR_IS_NOT_NULL_VOID INSTR_IN_LIST_VOID INSTR_NOT_IN_LIST_VOID INSTR_CASE_VOID INSTR_CAST_VOID_VOID INSTR_CAST_VOID_SYSLANGUAGE INSTR_CAST_VOID_VARBINARY INSTR_CAST_VOID_VARCHAR INSTR_CAST_VOID_BIT INSTR_CAST_VOID_TINYINT INSTR_CAST_VOID_SMALLINT INSTR_CAST_VOID_INT INSTR_CAST_VOID_BIGINT INSTR_CAST_VOID_MONEY INSTR_CAST_VOID_NUMERIC INSTR_CAST_VOID_FLOAT INSTR_CAST_VOID_DATE INSTR_CAST_VOID_TIME INSTR_CAST_VOID_DATETIME INSTR_SYSFUNC_ISNUMERIC_VOID INSTR_SYSFUNC_ISNULL_VOID INSTR_SYSFUNC_IIF_VOID INSTR_SYSFUNC_CHOOSE_VOID INSTR_SYSFUNC_COALESCE_VOID INSTR_SYSFUNC_TYPEOF_VOID INSTR_CAST_SYSLANGUAGE_SYSLANGUAGE INSTR_SYSFUNC_atatDATEFIRST INSTR_SYSFUNC_atatDATEFORMAT INSTR_SYSFUNC_atatLANGUAGE INSTR_SYSFUNC_FIRSTDAYOFWEEK_SYSLANGUAGE INSTR_SYSFUNC_DMY_SYSLANGUAGE INSTR_LOGICAL_UNARY_NOT_BOOLEAN INSTR_LOGICAL_AND_BOOLEAN INSTR_LOGICAL_OR_BOOLEAN INSTR_SYSFUNC_TYPEOF_BOOLEAN INSTR_ADD_VARBINARY INSTR_COMP_EQUAL_VARBINARY INSTR_COMP_GREATER_VARBINARY INSTR_COMP_LESS_VARBINARY INSTR_COMP_GREATER_EQUAL_VARBINARY INSTR_COMP_LESS_EQUAL_VARBINARY INSTR_COMP_NOT_EQUAL_VARBINARY INSTR_IS_NULL_VARBINARY INSTR_IS_NOT_NULL_VARBINARY INSTR_IN_LIST_VARBINARY INSTR_NOT_IN_LIST_VARBINARY INSTR_CASE_VARBINARY INSTR_CAST_VARBINARY_VARBINARY INSTR_CAST_VARBINARY_BIT INSTR_CAST_VARBINARY_TINYINT INSTR_CAST_VARBINARY_SMALLINT INSTR_CAST_VARBINARY_INT INSTR_CAST_VARBINARY_BIGINT INSTR_SYSFUNC_LEN_VARBINARY INSTR_SYSFUNC_ISNUMERIC_VARBINARY INSTR_SYSFUNC_FIT_NO_TRUNCATE_VARBINARY // The user cannot call this function. It is generated by the decorator for INSERT INTO and UPDATE statements. INSTR_SYSFUNC_ISNULL_VARBINARY INSTR_SYSFUNC_IIF_VARBINARY INSTR_SYSFUNC_CHOOSE_VARBINARY INSTR_SYSFUNC_COALESCE_VARBINARY INSTR_SYSFUNC_TYPEOF_VARBINARY INSTR_ADD_VARCHAR INSTR_COMP_EQUAL_VARCHAR INSTR_COMP_GREATER_VARCHAR INSTR_COMP_LESS_VARCHAR INSTR_COMP_GREATER_EQUAL_VARCHAR INSTR_COMP_LESS_EQUAL_VARCHAR INSTR_COMP_NOT_EQUAL_VARCHAR INSTR_LIKE_VARCHAR INSTR_NOT_LIKE_VARCHAR INSTR_IS_NULL_VARCHAR INSTR_IS_NOT_NULL_VARCHAR INSTR_IN_LIST_VARCHAR INSTR_NOT_IN_LIST_VARCHAR INSTR_CASE_VARCHAR INSTR_CAST_VARCHAR_SYSLANGUAGE INSTR_CAST_VARCHAR_VARCHAR INSTR_CAST_VARCHAR_BIT INSTR_CAST_VARCHAR_TINYINT INSTR_CAST_VARCHAR_SMALLINT INSTR_CAST_VARCHAR_INT INSTR_CAST_VARCHAR_BIGINT INSTR_CAST_VARCHAR_MONEY INSTR_CAST_VARCHAR_NUMERIC INSTR_CAST_VARCHAR_FLOAT INSTR_CAST_VARCHAR_DATE // decorator will replace it by INSTR_SYSFUNC_CONVERT_VARCHAR_TO_DATE INSTR_CAST_VARCHAR_TIME // decorator will replace it by INSTR_SYSFUNC_CONVERT_VARCHAR_TO_TIME INSTR_CAST_VARCHAR_DATETIME // decorator will replace it by INSTR_SYSFUNC_CONVERT_VARCHAR_TO_DATETIME INSTR_SYSFUNC_COMPILE_VARCHAR_TO_REGEXPLIKE INSTR_SYSFUNC_CHARLEN_VARCHAR INSTR_SYSFUNC_LEN_VARCHAR INSTR_SYSFUNC_ASCII_VARCHAR INSTR_SYSFUNC_UNICODE_VARCHAR INSTR_SYSFUNC_CHAR_VARCHAR INSTR_SYSFUNC_NCHAR_VARCHAR INSTR_SYSFUNC_LTRIM_VARCHAR INSTR_SYSFUNC_RTRIM_VARCHAR INSTR_SYSFUNC_TRIM_VARCHAR INSTR_SYSFUNC_LOWER_VARCHAR INSTR_SYSFUNC_UPPER_VARCHAR INSTR_SYSFUNC_SPACE_VARCHAR INSTR_SYSFUNC_REPLICATE_VARCHAR INSTR_SYSFUNC_LEFT_VARCHAR INSTR_SYSFUNC_RIGHT_VARCHAR INSTR_SYSFUNC_STUFF_VARCHAR INSTR_SYSFUNC_SUBSTRING_VARCHAR INSTR_SYSFUNC_CHARINDEX_VARCHAR INSTR_SYSFUNC_REPLACE_VARCHAR INSTR_SYSFUNC_STARTS_WITH_VARCHAR INSTR_SYSFUNC_CONCAT_VARCHAR INSTR_SYSFUNC_CONVERT_VARCHAR_TO_DATE INSTR_SYSFUNC_CONVERT_VARCHAR_TO_TIME INSTR_SYSFUNC_CONVERT_VARCHAR_TO_DATETIME INSTR_SYSFUNC_ISDATE_VARCHAR INSTR_SYSFUNC_ISNUMERIC_VARCHAR INSTR_SYSFUNC_FIT_NO_TRUNCATE_VARCHAR // The user cannot call this function. It is generated by the decorator for INSERT INTO and UPDATE statements. INSTR_SYSFUNC_ISNULL_VARCHAR INSTR_SYSFUNC_IIF_VARCHAR INSTR_SYSFUNC_CHOOSE_VARCHAR INSTR_SYSFUNC_COALESCE_VARCHAR INSTR_SYSFUNC_TYPEOF_VARCHAR INSTR_BITWISE_AND_BIT INSTR_BITWISE_OR_BIT INSTR_BITWISE_XOR_BIT INSTR_BITWISE_UNARY_NOT_BIT INSTR_COMP_EQUAL_BIT INSTR_COMP_GREATER_BIT INSTR_COMP_LESS_BIT INSTR_COMP_GREATER_EQUAL_BIT INSTR_COMP_LESS_EQUAL_BIT INSTR_COMP_NOT_EQUAL_BIT INSTR_IS_NULL_BIT INSTR_IS_NOT_NULL_BIT INSTR_IN_LIST_BIT INSTR_NOT_IN_LIST_BIT INSTR_CASE_BIT INSTR_CAST_BIT_VARCHAR INSTR_CAST_BIT_BIT INSTR_CAST_BIT_TINYINT INSTR_CAST_BIT_SMALLINT INSTR_CAST_BIT_INT INSTR_CAST_BIT_BIGINT INSTR_CAST_BIT_MONEY INSTR_CAST_BIT_NUMERIC INSTR_CAST_BIT_FLOAT INSTR_SYSFUNC_ISNUMERIC_BIT INSTR_SYSFUNC_ISNULL_BIT INSTR_SYSFUNC_IIF_BIT INSTR_SYSFUNC_CHOOSE_BIT INSTR_SYSFUNC_COALESCE_BIT INSTR_SYSFUNC_TYPEOF_BIT INSTR_UNARY_MINUS_TINYINT INSTR_ADD_TINYINT INSTR_SUBTRACT_TINYINT INSTR_MULT_TINYINT INSTR_DIV_TINYINT INSTR_MOD_TINYINT INSTR_BITWISE_AND_TINYINT INSTR_BITWISE_OR_TINYINT INSTR_BITWISE_XOR_TINYINT INSTR_BITWISE_UNARY_NOT_TINYINT INSTR_COMP_EQUAL_TINYINT INSTR_COMP_GREATER_TINYINT INSTR_COMP_LESS_TINYINT INSTR_COMP_GREATER_EQUAL_TINYINT INSTR_COMP_LESS_EQUAL_TINYINT INSTR_COMP_NOT_EQUAL_TINYINT INSTR_IS_NULL_TINYINT INSTR_IS_NOT_NULL_TINYINT INSTR_IN_LIST_TINYINT INSTR_NOT_IN_LIST_TINYINT INSTR_CASE_TINYINT INSTR_CAST_TINYINT_VARCHAR INSTR_CAST_TINYINT_BIT INSTR_CAST_TINYINT_TINYINT INSTR_CAST_TINYINT_SMALLINT INSTR_CAST_TINYINT_INT INSTR_CAST_TINYINT_BIGINT INSTR_CAST_TINYINT_MONEY INSTR_CAST_TINYINT_NUMERIC INSTR_CAST_TINYINT_FLOAT INSTR_CAST_TINYINT_DATETIME INSTR_SYSFUNC_ISNUMERIC_TINYINT INSTR_SYSFUNC_ISNULL_TINYINT INSTR_SYSFUNC_IIF_TINYINT INSTR_SYSFUNC_CHOOSE_TINYINT INSTR_SYSFUNC_COALESCE_TINYINT INSTR_SYSFUNC_TYPEOF_TINYINT INSTR_UNARY_MINUS_SMALLINT INSTR_ADD_SMALLINT INSTR_SUBTRACT_SMALLINT INSTR_MULT_SMALLINT INSTR_DIV_SMALLINT INSTR_MOD_SMALLINT INSTR_BITWISE_AND_SMALLINT INSTR_BITWISE_OR_SMALLINT INSTR_BITWISE_XOR_SMALLINT INSTR_BITWISE_UNARY_NOT_SMALLINT INSTR_COMP_EQUAL_SMALLINT INSTR_COMP_GREATER_SMALLINT INSTR_COMP_LESS_SMALLINT INSTR_COMP_GREATER_EQUAL_SMALLINT INSTR_COMP_LESS_EQUAL_SMALLINT INSTR_COMP_NOT_EQUAL_SMALLINT INSTR_IS_NULL_SMALLINT INSTR_IS_NOT_NULL_SMALLINT INSTR_IN_LIST_SMALLINT INSTR_NOT_IN_LIST_SMALLINT INSTR_CASE_SMALLINT INSTR_CAST_SMALLINT_VARCHAR INSTR_CAST_SMALLINT_BIT INSTR_CAST_SMALLINT_TINYINT INSTR_CAST_SMALLINT_SMALLINT INSTR_CAST_SMALLINT_INT INSTR_CAST_SMALLINT_BIGINT INSTR_CAST_SMALLINT_MONEY INSTR_CAST_SMALLINT_NUMERIC INSTR_CAST_SMALLINT_FLOAT INSTR_CAST_SMALLINT_DATETIME INSTR_SYSFUNC_ISNUMERIC_SMALLINT INSTR_SYSFUNC_ISNULL_SMALLINT INSTR_SYSFUNC_IIF_SMALLINT INSTR_SYSFUNC_CHOOSE_SMALLINT INSTR_SYSFUNC_COALESCE_SMALLINT INSTR_SYSFUNC_TYPEOF_SMALLINT INSTR_UNARY_MINUS_INT INSTR_ADD_INT INSTR_SUBTRACT_INT INSTR_MULT_INT INSTR_DIV_INT INSTR_MOD_INT INSTR_BITWISE_AND_INT INSTR_BITWISE_OR_INT INSTR_BITWISE_XOR_INT INSTR_BITWISE_UNARY_NOT_INT INSTR_COMP_EQUAL_INT INSTR_COMP_GREATER_INT INSTR_COMP_LESS_INT INSTR_COMP_GREATER_EQUAL_INT INSTR_COMP_LESS_EQUAL_INT INSTR_COMP_NOT_EQUAL_INT INSTR_IS_NULL_INT INSTR_IS_NOT_NULL_INT INSTR_IN_LIST_INT INSTR_NOT_IN_LIST_INT INSTR_CASE_INT INSTR_CAST_INT_VARCHAR INSTR_CAST_INT_BIT INSTR_CAST_INT_TINYINT INSTR_CAST_INT_SMALLINT INSTR_CAST_INT_INT INSTR_CAST_INT_BIGINT INSTR_CAST_INT_MONEY INSTR_CAST_INT_NUMERIC INSTR_CAST_INT_FLOAT INSTR_CAST_INT_DATETIME INSTR_SYSFUNC_ABS_INT INSTR_SYSFUNC_CEILING_INT INSTR_SYSFUNC_FLOOR_INT INSTR_SYSFUNC_SIGN_INT INSTR_SYSFUNC_POWER_INT INSTR_SYSFUNC_ROUND_INT INSTR_SYSFUNC_FORMAT_INT INSTR_SYSFUNC_ISNUMERIC_INT INSTR_SYSFUNC_ISNULL_INT INSTR_SYSFUNC_IIF_INT INSTR_SYSFUNC_CHOOSE_INT INSTR_SYSFUNC_COALESCE_INT INSTR_SYSFUNC_TYPEOF_INT INSTR_UNARY_MINUS_BIGINT INSTR_ADD_BIGINT INSTR_SUBTRACT_BIGINT INSTR_MULT_BIGINT INSTR_DIV_BIGINT INSTR_MOD_BIGINT INSTR_BITWISE_AND_BIGINT INSTR_BITWISE_OR_BIGINT INSTR_BITWISE_XOR_BIGINT INSTR_BITWISE_UNARY_NOT_BIGINT INSTR_COMP_EQUAL_BIGINT INSTR_COMP_GREATER_BIGINT INSTR_COMP_LESS_BIGINT INSTR_COMP_GREATER_EQUAL_BIGINT INSTR_COMP_LESS_EQUAL_BIGINT INSTR_COMP_NOT_EQUAL_BIGINT INSTR_IS_NULL_BIGINT INSTR_IS_NOT_NULL_BIGINT INSTR_IN_LIST_BIGINT INSTR_NOT_IN_LIST_BIGINT INSTR_CASE_BIGINT INSTR_CAST_BIGINT_VARCHAR INSTR_CAST_BIGINT_BIT INSTR_CAST_BIGINT_TINYINT INSTR_CAST_BIGINT_SMALLINT INSTR_CAST_BIGINT_INT INSTR_CAST_BIGINT_BIGINT INSTR_CAST_BIGINT_MONEY INSTR_CAST_BIGINT_NUMERIC INSTR_CAST_BIGINT_FLOAT INSTR_CAST_BIGINT_DATETIME INSTR_SYSFUNC_ABS_BIGINT INSTR_SYSFUNC_CEILING_BIGINT INSTR_SYSFUNC_FLOOR_BIGINT INSTR_SYSFUNC_SIGN_BIGINT INSTR_SYSFUNC_POWER_BIGINT INSTR_SYSFUNC_ROUND_BIGINT INSTR_SYSFUNC_FORMAT_BIGINT INSTR_SYSFUNC_ISNUMERIC_BIGINT INSTR_SYSFUNC_ISNULL_BIGINT INSTR_SYSFUNC_IIF_BIGINT INSTR_SYSFUNC_CHOOSE_BIGINT INSTR_SYSFUNC_COALESCE_BIGINT INSTR_SYSFUNC_TYPEOF_BIGINT INSTR_UNARY_MINUS_MONEY INSTR_ADD_MONEY INSTR_SUBTRACT_MONEY INSTR_MULT_MONEY INSTR_DIV_MONEY INSTR_COMP_EQUAL_MONEY INSTR_COMP_GREATER_MONEY INSTR_COMP_LESS_MONEY INSTR_COMP_GREATER_EQUAL_MONEY INSTR_COMP_LESS_EQUAL_MONEY INSTR_COMP_NOT_EQUAL_MONEY INSTR_IS_NULL_MONEY INSTR_IS_NOT_NULL_MONEY INSTR_IN_LIST_MONEY INSTR_NOT_IN_LIST_MONEY INSTR_CASE_MONEY INSTR_CAST_MONEY_VARCHAR INSTR_CAST_MONEY_BIT INSTR_CAST_MONEY_TINYINT INSTR_CAST_MONEY_SMALLINT INSTR_CAST_MONEY_INT INSTR_CAST_MONEY_BIGINT INSTR_CAST_MONEY_MONEY INSTR_CAST_MONEY_NUMERIC INSTR_CAST_MONEY_FLOAT INSTR_SYSFUNC_ABS_MONEY INSTR_SYSFUNC_CEILING_MONEY INSTR_SYSFUNC_FLOOR_MONEY INSTR_SYSFUNC_SIGN_MONEY INSTR_SYSFUNC_POWER_MONEY INSTR_SYSFUNC_ROUND_MONEY INSTR_SYSFUNC_FORMAT_MONEY INSTR_SYSFUNC_ISNUMERIC_MONEY INSTR_SYSFUNC_ISNULL_MONEY INSTR_SYSFUNC_IIF_MONEY INSTR_SYSFUNC_CHOOSE_MONEY INSTR_SYSFUNC_COALESCE_MONEY INSTR_SYSFUNC_TYPEOF_MONEY INSTR_UNARY_MINUS_NUMERIC INSTR_ADD_NUMERIC INSTR_SUBTRACT_NUMERIC INSTR_MULT_NUMERIC INSTR_DIV_NUMERIC INSTR_COMP_EQUAL_NUMERIC INSTR_COMP_GREATER_NUMERIC INSTR_COMP_LESS_NUMERIC INSTR_COMP_GREATER_EQUAL_NUMERIC INSTR_COMP_LESS_EQUAL_NUMERIC INSTR_COMP_NOT_EQUAL_NUMERIC INSTR_IS_NULL_NUMERIC INSTR_IS_NOT_NULL_NUMERIC INSTR_IN_LIST_NUMERIC INSTR_NOT_IN_LIST_NUMERIC INSTR_CASE_NUMERIC INSTR_CAST_NUMERIC_VARCHAR INSTR_CAST_NUMERIC_BIT INSTR_CAST_NUMERIC_TINYINT INSTR_CAST_NUMERIC_SMALLINT INSTR_CAST_NUMERIC_INT INSTR_CAST_NUMERIC_BIGINT INSTR_CAST_NUMERIC_MONEY INSTR_CAST_NUMERIC_NUMERIC INSTR_CAST_NUMERIC_FLOAT INSTR_SYSFUNC_ABS_NUMERIC INSTR_SYSFUNC_CEILING_NUMERIC INSTR_SYSFUNC_FLOOR_NUMERIC INSTR_SYSFUNC_SIGN_NUMERIC INSTR_SYSFUNC_POWER_NUMERIC INSTR_SYSFUNC_ROUND_NUMERIC INSTR_SYSFUNC_FORMAT_NUMERIC INSTR_SYSFUNC_ISNUMERIC_NUMERIC INSTR_SYSFUNC_ISNULL_NUMERIC INSTR_SYSFUNC_IIF_NUMERIC INSTR_SYSFUNC_CHOOSE_NUMERIC INSTR_SYSFUNC_COALESCE_NUMERIC INSTR_SYSFUNC_TYPEOF_NUMERIC INSTR_UNARY_MINUS_FLOAT INSTR_ADD_FLOAT INSTR_SUBTRACT_FLOAT INSTR_MULT_FLOAT INSTR_DIV_FLOAT INSTR_COMP_EQUAL_FLOAT INSTR_COMP_GREATER_FLOAT INSTR_COMP_LESS_FLOAT INSTR_COMP_GREATER_EQUAL_FLOAT INSTR_COMP_LESS_EQUAL_FLOAT INSTR_COMP_NOT_EQUAL_FLOAT INSTR_IS_NULL_FLOAT INSTR_IS_NOT_NULL_FLOAT INSTR_IN_LIST_FLOAT INSTR_NOT_IN_LIST_FLOAT INSTR_CASE_FLOAT INSTR_CAST_FLOAT_VARCHAR INSTR_CAST_FLOAT_BIT INSTR_CAST_FLOAT_TINYINT INSTR_CAST_FLOAT_SMALLINT INSTR_CAST_FLOAT_INT INSTR_CAST_FLOAT_BIGINT INSTR_CAST_FLOAT_MONEY INSTR_CAST_FLOAT_NUMERIC INSTR_CAST_FLOAT_FLOAT INSTR_SYSFUNC_ABS_FLOAT INSTR_SYSFUNC_CEILING_FLOAT INSTR_SYSFUNC_FLOOR_FLOAT INSTR_SYSFUNC_SIGN_FLOAT INSTR_SYSFUNC_POWER_FLOAT INSTR_SYSFUNC_ROUND_FLOAT INSTR_SYSFUNC_ACOS_FLOAT INSTR_SYSFUNC_ASIN_FLOAT INSTR_SYSFUNC_ATAN_FLOAT INSTR_SYSFUNC_ATN2_FLOAT INSTR_SYSFUNC_COS_FLOAT INSTR_SYSFUNC_SIN_FLOAT INSTR_SYSFUNC_TAN_FLOAT INSTR_SYSFUNC_COT_FLOAT INSTR_SYSFUNC_EXP_FLOAT INSTR_SYSFUNC_LOG_FLOAT INSTR_SYSFUNC_LOG10_FLOAT INSTR_SYSFUNC_SQRT_FLOAT INSTR_SYSFUNC_SQUARE_FLOAT INSTR_SYSFUNC_PI_FLOAT INSTR_SYSFUNC_DEGREES_FLOAT INSTR_SYSFUNC_RADIANS_FLOAT INSTR_SYSFUNC_RAND_FLOAT INSTR_SYSFUNC_STR_FLOAT INSTR_SYSFUNC_FORMAT_FLOAT INSTR_SYSFUNC_ISNUMERIC_FLOAT INSTR_SYSFUNC_ISNULL_FLOAT INSTR_SYSFUNC_IIF_FLOAT INSTR_SYSFUNC_CHOOSE_FLOAT INSTR_SYSFUNC_COALESCE_FLOAT INSTR_SYSFUNC_TYPEOF_FLOAT INSTR_COMP_EQUAL_DATE INSTR_COMP_GREATER_DATE INSTR_COMP_LESS_DATE INSTR_COMP_GREATER_EQUAL_DATE INSTR_COMP_LESS_EQUAL_DATE INSTR_COMP_NOT_EQUAL_DATE INSTR_IS_NULL_DATE INSTR_IS_NOT_NULL_DATE INSTR_IN_LIST_DATE INSTR_NOT_IN_LIST_DATE INSTR_CASE_DATE INSTR_CAST_DATE_VARCHAR // decorator will replace it by INSTR_SYSFUNC_CONVERT_DATE_TO_VARCHAR INSTR_CAST_DATE_DATE INSTR_CAST_DATE_DATETIME INSTR_SYSFUNC_DATEADD_YEAR_DATE INSTR_SYSFUNC_DATEADD_QUARTER_DATE INSTR_SYSFUNC_DATEADD_MONTH_DATE INSTR_SYSFUNC_DATEADD_DAY_DATE INSTR_SYSFUNC_DATEADD_WEEK_DATE INSTR_SYSFUNC_DATEDIFF_YEAR_DATE INSTR_SYSFUNC_DATEDIFF_QUARTER_DATE INSTR_SYSFUNC_DATEDIFF_MONTH_DATE INSTR_SYSFUNC_DATEDIFF_DAY_DATE INSTR_SYSFUNC_DATEDIFF_WEEK_DATE INSTR_SYSFUNC_DATEDIFF_HOUR_DATE INSTR_SYSFUNC_DATEDIFF_MINUTE_DATE INSTR_SYSFUNC_DATEDIFF_SECOND_DATE INSTR_SYSFUNC_DATEPART_YEAR_DATE INSTR_SYSFUNC_DATEPART_QUARTER_DATE INSTR_SYSFUNC_DATEPART_MONTH_DATE INSTR_SYSFUNC_DATEPART_DAYOFYEAR_DATE INSTR_SYSFUNC_DATEPART_DAY_DATE INSTR_SYSFUNC_DATEPART_WEEK_DATE INSTR_SYSFUNC_DATEPART_WEEKDAY_DATE INSTR_SYSFUNC_DATENAME_YEAR_DATE INSTR_SYSFUNC_DATENAME_QUARTER_DATE INSTR_SYSFUNC_DATENAME_MONTH_DATE INSTR_SYSFUNC_DATENAME_DAYOFYEAR_DATE INSTR_SYSFUNC_DATENAME_DAY_DATE INSTR_SYSFUNC_DATENAME_WEEK_DATE INSTR_SYSFUNC_DATENAME_WEEKDAY_DATE INSTR_SYSFUNC_EOMONTH_DATE INSTR_SYSFUNC_BOMONTH_DATE INSTR_SYSFUNC_FORMAT_DATE INSTR_SYSFUNC_CONVERT_DATE_TO_VARCHAR INSTR_SYSFUNC_DATEFROMPARTS_DATE INSTR_SYSFUNC_ISNULL_DATE INSTR_SYSFUNC_IIF_DATE INSTR_SYSFUNC_CHOOSE_DATE INSTR_SYSFUNC_COALESCE_DATE INSTR_SYSFUNC_TYPEOF_DATE INSTR_COMP_EQUAL_TIME INSTR_COMP_GREATER_TIME INSTR_COMP_LESS_TIME INSTR_COMP_GREATER_EQUAL_TIME INSTR_COMP_LESS_EQUAL_TIME INSTR_COMP_NOT_EQUAL_TIME INSTR_IS_NULL_TIME INSTR_IS_NOT_NULL_TIME INSTR_IN_LIST_TIME INSTR_NOT_IN_LIST_TIME INSTR_CASE_TIME INSTR_CAST_TIME_VARCHAR // decorator will replace it by INSTR_SYSFUNC_CONVERT_TIME_TO_VARCHAR INSTR_CAST_TIME_TIME INSTR_CAST_TIME_DATETIME INSTR_SYSFUNC_DATEADD_HOUR_TIME INSTR_SYSFUNC_DATEADD_MINUTE_TIME INSTR_SYSFUNC_DATEADD_SECOND_TIME INSTR_SYSFUNC_DATEADD_MILLISECOND_TIME INSTR_SYSFUNC_DATEADD_MICROSECOND_TIME INSTR_SYSFUNC_DATEADD_NANOSECOND_TIME INSTR_SYSFUNC_DATEDIFF_HOUR_TIME INSTR_SYSFUNC_DATEDIFF_MINUTE_TIME INSTR_SYSFUNC_DATEDIFF_SECOND_TIME INSTR_SYSFUNC_DATEDIFF_MILLISECOND_TIME INSTR_SYSFUNC_DATEDIFF_MICROSECOND_TIME INSTR_SYSFUNC_DATEDIFF_NANOSECOND_TIME INSTR_SYSFUNC_DATEPART_HOUR_TIME INSTR_SYSFUNC_DATEPART_MINUTE_TIME INSTR_SYSFUNC_DATEPART_SECOND_TIME INSTR_SYSFUNC_DATEPART_MILLISECOND_TIME INSTR_SYSFUNC_DATEPART_MICROSECOND_TIME INSTR_SYSFUNC_DATEPART_NANOSECOND_TIME INSTR_SYSFUNC_DATENAME_HOUR_TIME INSTR_SYSFUNC_DATENAME_MINUTE_TIME INSTR_SYSFUNC_DATENAME_SECOND_TIME INSTR_SYSFUNC_DATENAME_MILLISECOND_TIME INSTR_SYSFUNC_DATENAME_MICROSECOND_TIME INSTR_SYSFUNC_DATENAME_NANOSECOND_TIME INSTR_SYSFUNC_FORMAT_TIME INSTR_SYSFUNC_CONVERT_TIME_TO_VARCHAR INSTR_SYSFUNC_TIMEFROMPARTS_TIME INSTR_SYSFUNC_ISNULL_TIME INSTR_SYSFUNC_IIF_TIME INSTR_SYSFUNC_CHOOSE_TIME INSTR_SYSFUNC_COALESCE_TIME INSTR_SYSFUNC_TYPEOF_TIME INSTR_ADD_DATE_TIME_DATETIME INSTR_ADD_DATETIME_INT INSTR_SUBTRACT_DATETIME_INT INSTR_COMP_EQUAL_DATETIME INSTR_COMP_GREATER_DATETIME INSTR_COMP_LESS_DATETIME INSTR_COMP_GREATER_EQUAL_DATETIME INSTR_COMP_LESS_EQUAL_DATETIME INSTR_COMP_NOT_EQUAL_DATETIME INSTR_IS_NULL_DATETIME INSTR_IS_NOT_NULL_DATETIME INSTR_IN_LIST_DATETIME INSTR_NOT_IN_LIST_DATETIME INSTR_CASE_DATETIME INSTR_CAST_DATETIME_VARCHAR // decorator will replace it by INSTR_SYSFUNC_CONVERT_DATETIME_TO_VARCHAR INSTR_CAST_DATETIME_DATE INSTR_CAST_DATETIME_TIME INSTR_CAST_DATETIME_DATETIME INSTR_SYSFUNC_DATEADD_YEAR_DATETIME INSTR_SYSFUNC_DATEADD_QUARTER_DATETIME INSTR_SYSFUNC_DATEADD_MONTH_DATETIME INSTR_SYSFUNC_DATEADD_DAY_DATETIME INSTR_SYSFUNC_DATEADD_WEEK_DATETIME INSTR_SYSFUNC_DATEADD_HOUR_DATETIME INSTR_SYSFUNC_DATEADD_MINUTE_DATETIME INSTR_SYSFUNC_DATEADD_SECOND_DATETIME INSTR_SYSFUNC_DATEADD_MILLISECOND_DATETIME INSTR_SYSFUNC_DATEADD_MICROSECOND_DATETIME INSTR_SYSFUNC_DATEADD_NANOSECOND_DATETIME INSTR_SYSFUNC_DATEDIFF_YEAR_DATETIME INSTR_SYSFUNC_DATEDIFF_QUARTER_DATETIME INSTR_SYSFUNC_DATEDIFF_MONTH_DATETIME INSTR_SYSFUNC_DATEDIFF_DAY_DATETIME INSTR_SYSFUNC_DATEDIFF_WEEK_DATETIME INSTR_SYSFUNC_DATEDIFF_HOUR_DATETIME INSTR_SYSFUNC_DATEDIFF_MINUTE_DATETIME INSTR_SYSFUNC_DATEDIFF_SECOND_DATETIME INSTR_SYSFUNC_DATEDIFF_MILLISECOND_DATETIME INSTR_SYSFUNC_DATEDIFF_MICROSECOND_DATETIME INSTR_SYSFUNC_DATEDIFF_NANOSECOND_DATETIME INSTR_SYSFUNC_DATEPART_YEAR_DATETIME INSTR_SYSFUNC_DATEPART_QUARTER_DATETIME INSTR_SYSFUNC_DATEPART_MONTH_DATETIME INSTR_SYSFUNC_DATEPART_DAYOFYEAR_DATETIME INSTR_SYSFUNC_DATEPART_DAY_DATETIME INSTR_SYSFUNC_DATEPART_WEEK_DATETIME INSTR_SYSFUNC_DATEPART_WEEKDAY_DATETIME INSTR_SYSFUNC_DATEPART_HOUR_DATETIME INSTR_SYSFUNC_DATEPART_MINUTE_DATETIME INSTR_SYSFUNC_DATEPART_SECOND_DATETIME INSTR_SYSFUNC_DATEPART_MILLISECOND_DATETIME INSTR_SYSFUNC_DATEPART_MICROSECOND_DATETIME INSTR_SYSFUNC_DATEPART_NANOSECOND_DATETIME INSTR_SYSFUNC_DATENAME_YEAR_DATETIME INSTR_SYSFUNC_DATENAME_QUARTER_DATETIME INSTR_SYSFUNC_DATENAME_MONTH_DATETIME INSTR_SYSFUNC_DATENAME_DAYOFYEAR_DATETIME INSTR_SYSFUNC_DATENAME_DAY_DATETIME INSTR_SYSFUNC_DATENAME_WEEK_DATETIME INSTR_SYSFUNC_DATENAME_WEEKDAY_DATETIME INSTR_SYSFUNC_DATENAME_HOUR_DATETIME INSTR_SYSFUNC_DATENAME_MINUTE_DATETIME INSTR_SYSFUNC_DATENAME_SECOND_DATETIME INSTR_SYSFUNC_DATENAME_MILLISECOND_DATETIME INSTR_SYSFUNC_DATENAME_MICROSECOND_DATETIME INSTR_SYSFUNC_DATENAME_NANOSECOND_DATETIME INSTR_SYSFUNC_EOMONTH_DATETIME INSTR_SYSFUNC_BOMONTH_DATETIME INSTR_SYSFUNC_FORMAT_DATETIME INSTR_SYSFUNC_CONVERT_DATETIME_TO_VARCHAR INSTR_SYSFUNC_DATETIMEFROMPARTS_DATETIME INSTR_SYSFUNC_DATETIME2FROMPARTS_DATETIME INSTR_SYSFUNC_GETUTCDATE_DATETIME INSTR_SYSFUNC_UTC_TO_LOCAL_DATETIME INSTR_SYSFUNC_ISNULL_DATETIME INSTR_SYSFUNC_IIF_DATETIME INSTR_SYSFUNC_CHOOSE_DATETIME INSTR_SYSFUNC_COALESCE_DATETIME INSTR_SYSFUNC_TYPEOF_DATETIME INSTR_SYSFUNC_RANDOM_VARCHAR INSTR_SYSFUNC_RANDOM_INT INSTR_SYSFUNC_RANDOM_BIGINT INSTR_SYSFUNC_RANDOM_NUMERIC INSTR_SYSFUNC_RANDOM_FLOAT INSTR_SYSFUNC_RANDOM_DATE INSTR_SYSFUNC_SUSER_NAME_VARCHAR INSTR_SYSFUNC_SUSER_ID_BIGINT INSTR_SYSFUNC_DB_NAME_VARCHAR INSTR_SYSFUNC_DB_ID_BIGINT INSTR_SYSFUNC_SCHEMA_NAME_VARCHAR INSTR_SYSFUNC_SCHEMA_ID_BIGINT INSTR_SYSFUNC_OBJECT_NAME_VARCHAR INSTR_SYSFUNC_OBJECT_ID_BIGINT INSTR_SYSFUNC_USER_NAME_VARCHAR INSTR_SYSFUNC_USER_ID_BIGINT INSTR_SYSFUNC_COUNT_VARBINARY INSTR_SYSFUNC_COUNT_VARCHAR INSTR_SYSFUNC_COUNT_BIT INSTR_SYSFUNC_COUNT_TINYINT INSTR_SYSFUNC_COUNT_SMALLINT INSTR_SYSFUNC_COUNT_INT INSTR_SYSFUNC_COUNT_BIGINT INSTR_SYSFUNC_COUNT_MONEY INSTR_SYSFUNC_COUNT_NUMERIC INSTR_SYSFUNC_COUNT_FLOAT INSTR_SYSFUNC_COUNT_DATE INSTR_SYSFUNC_COUNT_TIME INSTR_SYSFUNC_COUNT_DATETIME INSTR_SYSFUNC_COUNT_BIG_VARBINARY INSTR_SYSFUNC_COUNT_BIG_VARCHAR INSTR_SYSFUNC_COUNT_BIG_BIT INSTR_SYSFUNC_COUNT_BIG_TINYINT INSTR_SYSFUNC_COUNT_BIG_SMALLINT INSTR_SYSFUNC_COUNT_BIG_INT INSTR_SYSFUNC_COUNT_BIG_BIGINT INSTR_SYSFUNC_COUNT_BIG_MONEY INSTR_SYSFUNC_COUNT_BIG_NUMERIC INSTR_SYSFUNC_COUNT_BIG_FLOAT INSTR_SYSFUNC_COUNT_BIG_DATE INSTR_SYSFUNC_COUNT_BIG_TIME INSTR_SYSFUNC_COUNT_BIG_DATETIME INSTR_SYSFUNC_SUM_BIT INSTR_SYSFUNC_SUM_TINYINT INSTR_SYSFUNC_SUM_SMALLINT INSTR_SYSFUNC_SUM_INT INSTR_SYSFUNC_SUM_BIGINT INSTR_SYSFUNC_SUM_MONEY INSTR_SYSFUNC_SUM_NUMERIC INSTR_SYSFUNC_SUM_FLOAT INSTR_SYSFUNC_MIN_VARBINARY INSTR_SYSFUNC_MIN_VARCHAR INSTR_SYSFUNC_MIN_BIT INSTR_SYSFUNC_MIN_TINYINT INSTR_SYSFUNC_MIN_SMALLINT INSTR_SYSFUNC_MIN_INT INSTR_SYSFUNC_MIN_BIGINT INSTR_SYSFUNC_MIN_MONEY INSTR_SYSFUNC_MIN_NUMERIC INSTR_SYSFUNC_MIN_FLOAT INSTR_SYSFUNC_MIN_DATE INSTR_SYSFUNC_MIN_TIME INSTR_SYSFUNC_MIN_DATETIME INSTR_SYSFUNC_MAX_VARBINARY INSTR_SYSFUNC_MAX_VARCHAR INSTR_SYSFUNC_MAX_BIT INSTR_SYSFUNC_MAX_TINYINT INSTR_SYSFUNC_MAX_SMALLINT INSTR_SYSFUNC_MAX_INT INSTR_SYSFUNC_MAX_BIGINT INSTR_SYSFUNC_MAX_MONEY INSTR_SYSFUNC_MAX_NUMERIC INSTR_SYSFUNC_MAX_FLOAT INSTR_SYSFUNC_MAX_DATE INSTR_SYSFUNC_MAX_TIME INSTR_SYSFUNC_MAX_DATETIME INSTR_ARG0_IS_EXPRESSION_RESULT_SENTINEL_xxxxxxxxx //=============== IMPORTANT: not an instruction, just a sentinel. For all instructions above, arg[0] receives the result of the computation =================== INSTR_STMT_USE INSTR_STMT_THROW INSTR_STMT_SET_NOCOUNT INSTR_STMT_PRINT INSTR_STMT_BEGIN_TRANSACTION INSTR_STMT_COMMIT_TRANSACTION INSTR_STMT_ROLLBACK_TRANSACTION INSTR_ASSIGN_SYSLANGUAGE INSTR_ASSIGN_VARBINARY INSTR_ASSIGN_VARCHAR INSTR_ASSIGN_BIT INSTR_ASSIGN_TINYINT INSTR_ASSIGN_SMALLINT INSTR_ASSIGN_INT INSTR_ASSIGN_BIGINT INSTR_ASSIGN_MONEY INSTR_ASSIGN_NUMERIC INSTR_ASSIGN_FLOAT INSTR_ASSIGN_DATE INSTR_ASSIGN_TIME INSTR_ASSIGN_DATETIME INSTR_JUMP_OUT_TRUE_FALSE INSTR_JUMP_OUT INSTR_JUMP_IF_NULL_OR_FALSE INSTR_JUMP_RETURN INSTR_STMT_ASSERT_ // not a MS SQL Server statement. Use it only to test SQL scripts. INSTR_STMT_ASSERT_NULL_ // not a MS SQL Server statement. Use it only to test SQL scripts. INSTR_STMT_ASSERT_ERROR_ // not a MS SQL Server statement. Use it only to test SQL scripts. INSTR_STMT_ALTER_SERVER_PARAMETER INSTR_STMT_CREATE_LOGIN INSTR_STMT_ALTER_LOGIN INSTR_STMT_DROP_LOGIN INSTR_STMT_CREATE_USER INSTR_STMT_ALTER_USER INSTR_STMT_DROP_USER INSTR_STMT_CREATE_ROLE INSTR_STMT_ALTER_ROLE INSTR_STMT_DROP_ROLE INSTR_STMT_GRANT INSTR_STMT_DENY INSTR_STMT_REVOKE INSTR_STMT_CREATE_DATABASE INSTR_STMT_ALTER_DATABASE INSTR_STMT_DROP_DATABASE INSTR_STMT_CREATE_TABLE INSTR_STMT_ALTER_TABLE INSTR_STMT_DROP_TABLE INSTR_STMT_CREATE_INDEX INSTR_STMT_ALTER_INDEX INSTR_STMT_DROP_INDEX INSTR_STMT_ALTER_AUTHORIZATION INSTR_STMT_INSERT_VALUES INSTR_STMT_INSERT_SELECT INSTR_STMT_BULK_INSERT INSTR_STMT_BULK_EXPORT INSTR_STMT_SELECT_OR_UNION INSTR_STMT_DELETE INSTR_STMT_UPDATE INSTR_STMT_TRUNCATE_TABLE INSTR_STMT_SHRINK_TABLE INSTR_STMT_SHOW_COLLATIONS INSTR_STMT_SHOW_LANGUAGES INSTR_STMT_SHOW_LOCKS INSTR_STMT_SHOW_WORKERS INSTR_STMT_SHOW_INFO INSTR_STMT_SHOW_TABLE INSTR_STMT_SHOW_DATABASE INSTR_STMT_SHOW_LOGIN INSTR_STMT_SHOW_PARAMETER INSTR_STMT_SHOW_USER INSTR_STMT_SHOW_ROLE INSTR_STMT_BACKUP INSTR_STMT_RESTORE INSTR_STMT_DUMP_PARAMETERS INSTR_STMT_DUMP_LOGINS INSTR_STMT_DUMP_DATABASE INSTR_STMT_SLEEP INSTR_STMT_SHUTDOWN INSTR_SYSFUNC_atatVERSION INSTR_SYSFUNC_atatSERVERNAME INSTR_SYSFUNC_atatSERVICENAME INSTR_SYSFUNC_atatIDENTITY INSTR_SYSFUNC_atatROWCOUNT INSTR_SYSFUNC_atatERROR INSTR_SYSFUNC_atatTRANCOUNT INSTR_SYSFUNC_SCOPE_IDENTITY )
type Kind_t ¶
type Kind_t uint16
Kind_t is the kind of a dataslot in the AST tree. Dataslots may contain constant value, variable value, column value, or temporary value (result of an operator or function computation).
const ( KIND_RO_LEAF Kind_t = 1 // readonly constant. It is a literal number or string. Or after constfolding, token of any type that contains an immutable value. KIND_VAR_LEAF Kind_t = 2 // variable KIND_COL_LEAF Kind_t = 4 // column of table KIND_TMP Kind_t = 8 // result of operator or function )
Type of the nodes in the AST tree. Power of two.
type Message_id_t ¶
type Message_id_t uint32
Message_t is the message id of an Error.
const ( ERROR_FOR_TESTING Message_id_t = iota + 1000 // used for testing ERROR_GARBAGE // also for testing ERROR_SQLDATA_SYSCOLLATOR_INVALID_LOCALE ERROR_SQLDATA_SYSCOLLATOR_INVALID_SUFFIX ERROR_SQLDATA_SYSLANGUAGE_INVALID_LOCALE ERROR_SQLDATA_SYSLANGUAGE_TO_VARCHAR_OVERFLOW ERROR_SQLDATA_SYSLANGUAGE_CANNOT_BE_NULL ERROR_SQLDATA_SYSLANGUAGE_FIRSTDAYOFWEEK_FAILURE ERROR_SQLDATA_SYSLANGUAGE_FIRSTDAYOFWEEK_BAD_VALUE ERROR_SQLDATA_SYSLANGUAGE_DMY_FAILURE ERROR_SQLDATA_SYSLANGUAGE_DMY_BAD_VALUE ERROR_SQLDATA_VARBINARY_OVERFLOW ERROR_SQLDATA_VARBINARY_CAST_VARBINARY_OVERFLOW ERROR_SQLDATA_VARBINARY_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_VARBINARY_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_VARBINARY_CAST_INT_OVERFLOW ERROR_SQLDATA_VARCHAR_OVERFLOW ERROR_SQLDATA_VARCHAR_SPACE_INVALID_VALUE ERROR_SQLDATA_VARCHAR_LEFT_RIGHT_BAD_ARGUMENT ERROR_SQLDATA_VARCHAR_SUBSTRING_BAD_LENGTH ERROR_SQLDATA_VARCHAR_CONV_REGEXPLIKE_BAD_ESCAPE_CHAR ERROR_SQLDATA_VARCHAR_CONV_REGEXPLIKE_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_BIT_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_TINYINT_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_VARCHAR_CAST_SMALLINT_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_VARCHAR_CAST_INT_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_INT_OVERFLOW ERROR_SQLDATA_VARCHAR_CAST_BIGINT_BAD_STRING ERROR_SQLDATA_VARCHAR_CAST_FLOAT_BAD_STRING ERROR_SQLDATA_VARCHAR_CONVERT_DATE_UNSUPPORTED_STYLE ERROR_SQLDATA_VARCHAR_CONVERT_DATE_WRONG_PARTS_ORDER ERROR_SQLDATA_VARCHAR_CONVERT_DATE_FAILED ERROR_SQLDATA_VARCHAR_CONVERT_TIME_UNSUPPORTED_STYLE ERROR_SQLDATA_VARCHAR_CONVERT_TIME_WRONG_PARTS_ORDER ERROR_SQLDATA_VARCHAR_CONVERT_TIME_FAILED ERROR_SQLDATA_VARCHAR_CONVERT_DATETIME_UNSUPPORTED_STYLE ERROR_SQLDATA_VARCHAR_CONVERT_DATETIME_WRONG_PARTS_ORDER ERROR_SQLDATA_VARCHAR_CONVERT_DATETIME_FAILED ERROR_SQLDATA_VARCHAR_UNICOE_CODEPOINT_INVALID ERROR_SQLDATA_BIT_OVERFLOW ERROR_SQLDATA_BIT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_TINYINT_OVERFLOW ERROR_SQLDATA_TINYINT_DIVIDE_BY_ZERO ERROR_SQLDATA_TINYINT_MODULO_BY_ZERO ERROR_SQLDATA_TINYINT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_SMALLINT_OVERFLOW ERROR_SQLDATA_SMALLINT_DIVIDE_BY_ZERO ERROR_SQLDATA_SMALLINT_MODULO_BY_ZERO ERROR_SQLDATA_SMALLINT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_SMALLINT_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_INT_OVERFLOW ERROR_SQLDATA_INT_DIVIDE_BY_ZERO ERROR_SQLDATA_INT_MODULO_BY_ZERO ERROR_SQLDATA_INT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_INT_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_INT_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_INT_FORMAT ERROR_SQLDATA_INT_FORMAT_OVERFLOW ERROR_SQLDATA_BIGINT_OVERFLOW ERROR_SQLDATA_BIGINT_DIVIDE_BY_ZERO ERROR_SQLDATA_BIGINT_MODULO_BY_ZERO ERROR_SQLDATA_BIGINT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_BIGINT_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_BIGINT_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_BIGINT_CAST_INT_OVERFLOW ERROR_SQLDATA_BIGINT_FORMAT ERROR_SQLDATA_BIGINT_FORMAT_OVERFLOW ERROR_SQLDATA_NUMERIC_INVALID_TEXT_TOO_LONG ERROR_SQLDATA_NUMERIC_INFINITE ERROR_SQLDATA_NUMERIC_NAN ERROR_SQLDATA_NUMERIC_OVERFLOW ERROR_SQLDATA_NUMERIC_OUT_OF_RANGE ERROR_SQLDATA_NUMERIC_DEC_UNLISTED ERROR_SQLDATA_NUMERIC_DEC_INVALID_OPERATION ERROR_SQLDATA_NUMERIC_DEC_DIVISION_BY_ZERO ERROR_SQLDATA_NUMERIC_DEC_OVERFLOW ERROR_SQLDATA_NUMERIC_DEC_UNDERFLOW ERROR_SQLDATA_NUMERIC_DEC_DIVISION_IMPOSSIBLE ERROR_SQLDATA_NUMERIC_DEC_DIVISION_UNDEFINED ERROR_SQLDATA_NUMERIC_DEC_CONVERSION_SYNTAX ERROR_SQLDATA_NUMERIC_DEC_INSUFFICIENT_STORAGE ERROR_SQLDATA_NUMERIC_DEC_INVALID_CONTEXT ERROR_SQLDATA_NUMERIC_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_NUMERIC_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_NUMERIC_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_NUMERIC_CAST_INT_OVERFLOW ERROR_SQLDATA_NUMERIC_CAST_BIGINT_OVERFLOW ERROR_SQLDATA_NUMERIC_CAST_FLOAT_OVERFLOW ERROR_SQLDATA_NUMERIC_FORMAT ERROR_SQLDATA_NUMERIC_FORMAT_OVERFLOW ERROR_SQLDATA_FLOAT_DIVIDE_BY_ZERO ERROR_SQLDATA_FLOAT_INFINITE ERROR_SQLDATA_FLOAT_NAN ERROR_SQLDATA_FLOAT_CAST_VARCHAR_OVERFLOW ERROR_SQLDATA_FLOAT_CAST_TINYINT_OVERFLOW ERROR_SQLDATA_FLOAT_CAST_SMALLINT_OVERFLOW ERROR_SQLDATA_FLOAT_CAST_INT_OVERFLOW ERROR_SQLDATA_FLOAT_CAST_BIGINT_OVERFLOW ERROR_SQLDATA_FLOAT_FORMAT ERROR_SQLDATA_FLOAT_FORMAT_OVERFLOW ERROR_SQLDATA_DATE_CONVERT_VARCHAR_UNSUPPORTED_STYLE ERROR_SQLDATA_DATE_CONVERT_VARCHAR_OVERFLOW ERROR_SQLDATA_DATE_DATEFROMPARTS_ILLEGAL_ARGS ERROR_SQLDATA_TIME_CONVERT_VARCHAR_UNSUPPORTED_STYLE ERROR_SQLDATA_TIME_CONVERT_VARCHAR_OVERFLOW ERROR_SQLDATA_TIME_TIMEFROMPARTS_ILLEGAL_ARGS ERROR_SQLDATA_TIME_TIMEFROMPARTS_NULL_PRECISION ERROR_SQLDATA_DATETIME_OVERFLOW ERROR_SQLDATA_DATETIME_DATENAME_OVERFLOW ERROR_SQLDATA_DATETIME_DATEDIFF_OVERFLOW ERROR_SQLDATA_DATETIME_CONVERT_VARCHAR_UNSUPPORTED_STYLE ERROR_SQLDATA_DATETIME_CONVERT_VARCHAR_OVERFLOW ERROR_SQLDATA_DATETIME_FORMAT_OVERFLOW ERROR_SQLDATA_DATETIME_DATETIMEFROMPARTS_ILLEGAL_ARGS ERROR_SQLDATA_DATETIME_DATETIME2FROMPARTS_ILLEGAL_ARGS ERROR_SQLDATA_DATETIME_DATETIME2FROMPARTS_NULL_PRECISION ERROR_SQLDATA_IDENTITY_xxxINT_COLUMN_OVERFLOW ERROR_SQLDATA_ROWID_COLUMN_OVERFLOW ERROR_SQLDATA_RANDOM_BIGINT_DELTA_TOO_LARGE ERROR_MISSING_END_COMMENT_MARK ERROR_VARIABLE_INVALID_START_CHAR ERROR_VARIABLE_INVALID_TOO_LONG ERROR_ATFUNC_INVALID_START_CHAR ERROR_ATFUNC_INVALID_TOO_LONG ERROR_IDENTPART_INVALID_START_CHAR ERROR_IDENTPART_INVALID_TOO_LONG ERROR_IDENTPART_INVALID_HASHSIGN_ONLY ERROR_IDENTPART_DELIMITED_EMPTY ERROR_IDENTPART_DELIMITED_INVALID_START_CHAR ERROR_IDENTPART_DELIMITED_INVALID_CONTINUE_CHAR ERROR_IDENTPART_DELIMITED_CLOSING_DELIMITER_MISSING ERROR_LITERAL_NUMBER_MONEY_INVALID ERROR_LITERAL_NUMBER_MONEY_SUFFIX_FORBIDDEN ERROR_LITERAL_NUMBER_EXPONENT_PART_MISSING ERROR_LITERAL_NUMBER_INVALID_TOO_LONG ERROR_LITERAL_NUMBER_FOLLOWED_BY_IDENTCHAR ERROR_LITERAL_HEXASTRING_INVALID_TOO_LONG ERROR_LITERAL_HEXASTRING_FOLLOWED_BY_IDENTCHAR ERROR_LITERAL_STRING_UHEXACODE_INVALID ERROR_LITERAL_STRING_ENDING_QUOTE_MISSING ERROR_LITERAL_STRING_INVALID_TOO_LONG ERROR_INVALID_CHARACTER_IN_BATCH ERROR_INVALID_CHARACTER_IN_BATCH_CODEPOINT ERROR_INVALID_SYNTAX_ATFUNC_NOT_FOUND ERROR_INVALID_SYNTAX_IS_NULL ERROR_INVALID_SYNTAX_MISSING_LPAREN ERROR_INVALID_SYNTAX_MISSING_RPAREN ERROR_INVALID_SYNTAX_LPAREN_NOT_EXPECTED ERROR_INVALID_SYNTAX_NOT_BUILTIN_FUNCTION ERROR_INVALID_SYNTAX_UNARY_OP_EXPECTED ERROR_INVALID_SYNTAX_BINARY_OP_EXPECTED ERROR_INVALID_SYNTAX_OPERATOR_EXPECTED ERROR_INVALID_SYNTAX_CASE_WITHOUT_WHEN ERROR_INVALID_SYNTAX_CASE_WHEN_COUNT_EXCEEDED ERROR_INVALID_SYNTAX_CASE_WHEN_WITHOUT_THEN ERROR_INVALID_SYNTAX_CASE_WITHOUT_END ERROR_INVALID_SYNTAX_QUALIFIED_NAME_TOO_MANY_PARTS ERROR_INVALID_SYNTAX_QUALIFIED_NAME_IDENTPART_EXPECTED ERROR_INVALID_SYNTAX_QUALIFIED_NAME_MALFORMED ERROR_INVALID_SYNTAX_UNQUALIFIED_STAR_NOT_ALLOWED ERROR_INVALID_SYNTAX_QUALIFIED_STAR_NOT_ALLOWED ERROR_INVALID_SYNTAX_COLUMN_IDENTIFIER_NOT_ALLOWED ERROR_INVALID_SYNTAX_USER_FUNCTION_MISSING_SCHEMA ERROR_INVALID_SYNTAX_BAD_DATEPARTFIELD ERROR_INVALID_SYNTAX_DATEPARTFIELD_NOT_SUPPORTED_FOR_TYPE ERROR_INVALID_SYNTAX_SYSFUNC_ARGUMENT_EXPECTED ERROR_INVALID_SYNTAX_BAD_CAST_DATATYPE ERROR_INVALID_SYNTAX_MISSING_AS ERROR_INVALID_SYNTAX_UFUNC_TOO_MANY_PARTS ERROR_INVALID_SYNTAX_COLUMN_TOO_MANY_PARTS ERROR_INVALID_SYNTAX_ILLEGAL_QUALIFIED_STAR ERROR_INVALID_SYNTAX_MALFORMED_EXPRESSION ERROR_INVALID_SYNTAX_ILLEGAL_QUESTIONMARK ERROR_INVALID_SYNTAX_EXPRESSION_DEPTH_EXCEEDED ERROR_INVALID_SYNTAX_OPERATOR_MISMATCH ERROR_INVALID_SYNTAX_BETWEEN_MISSING_AND ERROR_INVALID_SYNTAX_OPERATOR_MISMATCH_RESULT_NOT_UNIQUE ERROR_INVALID_SYNTAX_FUNCTION_ARGUMENTS_COUNT_EXCEEDED ERROR_INVALID_SYNTAX_BAD_ARGS_COUNT ERROR_INVALID_SYNTAX_BAD_ARGS_COUNT_RANGE ERROR_INVALID_SYNTAX_BAD_ARGS_COUNT_MINIMAL ERROR_INVALID_SYNTAX_ILLEGAL_SYSFUNC_OPERAND ERROR_INVALID_SYNTAX_TOO_MANY_EXPRESSIONS_IN_LIST ERROR_INVALID_SYNTAX_IDENTPART_EXPECTED ERROR_INVALID_SYNTAX_END_MISSING ERROR_INVALID_SYNTAX_EMPTY_BEGIN_END ERROR_INVALID_SYNTAX_TOO_MANY_NESTED_LOOPS ERROR_INVALID_SYNTAX_BREAK_WITHOUT_LOOP ERROR_INVALID_SYNTAX_CONTINUE_WITHOUT_LOOP ERROR_INVALID_SYNTAX_GOTO_LABEL_EXPECTED ERROR_INVALID_SYNTAX_STATEMENT_EXPECTED ERROR_INVALID_SYNTAX_END_WITHOUT_BEGIN ERROR_INVALID_SYNTAX_ELSE_WITHOUT_IF ERROR_INVALID_SYNTAX_STATEMENT_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_VARIABLE_EXPECTED ERROR_INVALID_SYNTAX_FEATURE_NOT_IMPLEMENTED_YET ERROR_INVALID_SYNTAX_UNION_NOT_IMPLEMENTED_YET ERROR_INVALID_SYNTAX_DATATYPE_USER_DEFINED_NOT_FOUND ERROR_INVALID_SYNTAX_COLLATE_FORBIDDEN ERROR_INVALID_SYNTAX_BAD_ASSIGNMENT_OPERATOR ERROR_INVALID_SYNTAX_ILLEGAL_OPERATOR_OPERANDS ERROR_INVALID_SYNTAX_ILLEGAL_FUNCTION_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_FUNCTION_DATALENGTH_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_SUBQUERIES_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_CAST_NOT_ALLOWED ERROR_INVALID_SYNTAX_VARIABLE_NOT_DECLARED ERROR_INVALID_SYNTAX_VARIABLE_ALREADY_DECLARED ERROR_INVALID_SYNTAX_COLLATIONS_CONFLICT ERROR_INVALID_SYNTAX_SET_LANGUAGE ERROR_INVALID_SYNTAX_SET_DATEFIRST ERROR_INVALID_SYNTAX_SET_DATEFORMAT ERROR_INVALID_SYNTAX_BOOLEAN_EXPECTED ERROR_INVALID_SYNTAX_LABEL_NOT_FOUND ERROR_INVALID_SYNTAX_LABEL_DUPLICATE ERROR_INVALID_SYNTAX_UNQUALIFIED_NAME_EXPECTED ERROR_INVALID_SYNTAX_SHOW_TYPE_UNKNOWN ERROR_INVALID_SYNTAX_SHOW_BAD_TEMPLATE ERROR_INVALID_SYNTAX_SHOW_ALL_NOT_ALLOWED ERROR_INVALID_SYNTAX_DUMP_TYPE_UNKNOWN ERROR_INVALID_SYNTAX_ALTER_DATABASE_ONLINE_OFFLINE ERROR_INVALID_SYNTAX_DATETIME_ADD_BAD_TYPE ERROR_INVALID_SYNTAX_EXIT_NOT_START_OF_LINE ERROR_INVALID_SYNTAX_SUBQUERY_NOT_ALLOWED ERROR_INVALID_SYNTAX_HINT_INDEX_EXPECTED ERROR_INVALID_SYNTAX_RANDOM_NUMERIC_BAD_P_S ERROR_INVALID_SYNTAX_RANDOM_VARCHAR_BAD_LEN_MIN_MAX ERROR_INVALID_SYNTAX_OBJECT_NAME_EXPECTED ERROR_INVALID_SYNTAX_OBJECT_TOO_MANY_PARTS ERROR_INVALID_SYNTAX_LOGIN_NAME_EXPECTED ERROR_INVALID_SYNTAX_WITH_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_NULL_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_KEY_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_SET_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_ON_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_TO_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_JOIN_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_COLUMN_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_VALUES_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_FROM_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_BY_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_TABLE_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_INDEX_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_OPTION_EXPECTED ERROR_INVALID_SYNTAX_OPTION_MISSING_EQUAL ERROR_INVALID_SYNTAX_OPTION_LITERAL_STRING_REQUIRED ERROR_INVALID_SYNTAX_OPTION_IDENTIFIER_REQUIRED ERROR_INVALID_SYNTAX_OPTION_UNKNOWN ERROR_INVALID_SYNTAX_PARAMETER_UNKNOWN ERROR_INVALID_SYNTAX_LOGIN_PASSWORD_EXPECTED ERROR_INVALID_SYNTAX_COMMA_EXPECTED ERROR_INVALID_SYNTAX_COLON_EXPECTED ERROR_INVALID_SYNTAX_VARCHAR_EXPECTED ERROR_INVALID_SYNTAX_IDENTIFIER_EXPECTED ERROR_INVALID_SYNTAX_LITERAL_STRING_EXPECTED ERROR_INVALID_SYNTAX_LITERAL_STRING_OR_IDENTIFIER_EXPECTED ERROR_INVALID_SYNTAX_LITERAL_INTEGER_EXPECTED ERROR_INVALID_SYNTAX_LITERAL_POSITIVE_INTEGER_EXPECTED ERROR_INVALID_SYNTAX_LITERAL_POSITIVE_INTEGER_LIMITS ERROR_INVALID_SYNTAX_LITERAL_POSITIVE_FLOAT_EXPECTED ERROR_INVALID_SYNTAX_KEYWORD_ON_OFF_EXPECTED ERROR_INVALID_SYNTAX_KEYWORD_TRUE_FALSE_EXPECTED ERROR_INVALID_SYNTAX_EQUAL_EXPECTED ERROR_INVALID_SYNTAX_MINUS_EXPECTED ERROR_INVALID_SYNTAX_SET_ANSI_NULLS_OFF_FORBIDDEN ERROR_INVALID_SYNTAX_XXX_AUXWORD_EXPECTED ERROR_INVALID_SYNTAX_TOO_MANY_PRINCIPALS_IN_LIST ERROR_INVALID_SYNTAX_INVALID_GRANT_PERMISSION ERROR_INVALID_SYNTAX_INVALID_DENY_PERMISSION ERROR_INVALID_SYNTAX_INVALID_REVOKE_PERMISSION ERROR_INVALID_SYNTAX_CHECK_OR_NOCHECK_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_DATABASE_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_DISK_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_CREATE_KEYWORD_EXPECTED ERROR_INVALID_SYNTAX_COLUMN_NAME_EXPECTED ERROR_INVALID_SYNTAX_COL_ROWID_FORBIDDEN ERROR_INVALID_SYNTAX_COLNAME_CANNOT_BE_FUNCNAME ERROR_INVALID_SYNTAX_COL_COLLATE_CONSTRAINT_NAME_FOBIDDEN ERROR_INVALID_SYNTAX_COL_COLLATE_IN_EXCESS ERROR_INVALID_SYNTAX_COL_COLLATE_FORBIDDEN ERROR_INVALID_SYNTAX_COL_IDENTITY_CONSTRAINT_NAME_FOBIDDEN ERROR_INVALID_SYNTAX_COL_IDENTITY_IN_EXCESS ERROR_INVALID_SYNTAX_COL_IDENTITY_FORBIDDEN ERROR_INVALID_SYNTAX_COL_IDENTITY_BAD_SEED ERROR_INVALID_SYNTAX_COL_IDENTITY_BAD_INCREMENT_ZERO ERROR_INVALID_SYNTAX_COL_IDENTITY_NOT_NULL_EXPECTED ERROR_INVALID_SYNTAX_COL_INDEXES_IN_EXCESS ERROR_INVALID_SYNTAX_COL_INDEX_CONSTRAINT_NAME_FOBIDDEN ERROR_INVALID_SYNTAX_COL_DEFAULT_CONSTRAINT_NAME_FOBIDDEN ERROR_INVALID_SYNTAX_COL_UNKNOWN_CONSTRAINT ERROR_INVALID_SYNTAX_COL_NULL_CLAUSE_IN_EXCESS ERROR_INVALID_SYNTAX_CHECK_CONSTRAINT_NOT_SUPPORTED ERROR_INVALID_SYNTAX_DEFAULT_CONSTRAINT_NOT_SUPPORTED ERROR_INVALID_SYNTAX_TBL_INDEX_CONSTRAINT_NAME_FOBIDDEN ERROR_INVALID_SYNTAX_TBL_UNKNOWN_CONSTRAINT ERROR_INVALID_SYNTAX_TOO_MANY_COLUMNS_IN_TABLE ERROR_INVALID_SYNTAX_DUPLICATE_COLUMN_NAME_FOUND ERROR_INVALID_SYNTAX_DUPLICATE_INDEX_NAME_FOUND ERROR_INVALID_SYNTAX_TOO_MANY_INDEXES ERROR_INVALID_SYNTAX_TABLE_NO_COLUMN ERROR_INVALID_SYNTAX_TOO_MANY_INDEX_COLUMNS ERROR_INVALID_SYNTAX_INDEX_ROWID_KEY_FORBIDDEN ERROR_INVALID_SYNTAX_INDEX_KEY_NOT_FOUND ERROR_INVALID_SYNTAX_INDEX_DUPLICATE_KEY ERROR_INVALID_SYNTAX_FILE_GROUP_OR_PRIMARY_EXPECTED ERROR_INVALID_SYNTAX_TABLE_WITH_MANY_PRIMARY_KEYS ERROR_INVALID_SYNTAX_TABLE_WITH_MANY_CLUSTERED_INDEXES ERROR_INVALID_SYNTAX_PRIMARY_KEY_COLUMNS_MUST_BE_NOT_NULL ERROR_INVALID_SYNTAX_ALTER_TABLE_CLAUSE_UNKNOWN ERROR_INVALID_SYNTAX_ALTER_COLUMN_CLAUSE_UNKNOWN ERROR_INVALID_SYNTAX_WITH_CHECK_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_ALTER_COLUMN_ROWID_FORBIDDEN ERROR_INVALID_SYNTAX_TOO_MANY_COLUMNS_IN_LIST ERROR_INVALID_SYNTAX_ROWID_FORBIDDEN_IN_LIST ERROR_INVALID_SYNTAX_TOO_MANY_EXPRESSIONS_IN_VALUES ERROR_INVALID_SYNTAX_TOO_MANY_VALUES_FOR_INSERT_INTO ERROR_INVALID_SYNTAX_BAD_VALUES_LISTEXPR_COUNT_FOR_INSERT_INTO ERROR_INVALID_SYNTAX_BAD_SELECT_COL_COUNT_FOR_INSERT_INTO ERROR_INVALID_SYNTAX_INSERT_INTO_SOURCE_MISSING ERROR_INVALID_SYNTAX_MISSING_TABLEALIAS ERROR_INVALID_SYNTAX_TABLE_PAREN_NOT_ALLOWED ERROR_INVALID_SYNTAX_TABLE_TERM_EXPECTED ERROR_INVALID_SYNTAX_TOO_MANY_COLUMNS_IN_SELECT ERROR_INVALID_SYNTAX_INVALID_COL_LABEL ERROR_INVALID_SYNTAX_MISSING_COL_LABEL ERROR_INVALID_SYNTAX_STAR_EXPECTED ERROR_INVALID_SYNTAX_PREFIX_WITHOUT_TABLE_NAME ERROR_INVALID_SYNTAX_SELECT_OR_LPAREN_EXPECTED ERROR_INVALID_SYNTAX_TOO_MANY_ORDER_BY_IN_SELECT ERROR_INVALID_SYNTAX_TOO_MANY_GROUP_BY_IN_SELECT ERROR_INVALID_SYNTAX_ORDER_BY_DESC_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_AMBIGUOUS_COLUMN_NAME ERROR_INVALID_SYNTAX_COLUMN_NAME_NOT_FOUND ERROR_INVALID_SYNTAX_SELECT_EXPRESSION_WITHOUT_COLUMN_NAME ERROR_INVALID_SYNTAX_UNION_EXPRESSION_WITHOUT_COLUMN_NAME ERROR_INVALID_SYNTAX_PLACEHOLDER_TABLE_NOT_FOUND ERROR_INVALID_SYNTAX_UNION_COL_COUNT_MISMATCH ERROR_INVALID_SYNTAX_PLACEHOLDER_WITHOUT_FROM ERROR_INVALID_SYNTAX_ORDER_BY_NOT_ALLOWED_IN_UNION_MEMBER ERROR_INVALID_SYNTAX_ORDER_BY_NOT_ALLOWED_IN_INSERT ERROR_INVALID_SYNTAX_ORDER_BY_NOT_ALLOWED_IN_BULK_EXPORT ERROR_INVALID_SYNTAX_TOP_NOT_ALLOWED_IN_BULK_EXPORT ERROR_INVALID_SYNTAX_ORDER_BY_NOT_ALLOWED ERROR_INVALID_SYNTAX_AMBIGUOUS_TABLE_NAME ERROR_INVALID_SYNTAX_AMBIGUOUS_TARGET_TABLE_NAME ERROR_INVALID_SYNTAX_DATATYPE_ILLEGAL_IN_SELECT ERROR_INVALID_SYNTAX_DATATYPE_ILLEGAL_IN_GROUP_BY ERROR_INVALID_SYNTAX_TARGET_TABLE_NOT_FOUND ERROR_INVALID_SYNTAX_UPDATE_TOO_MANY_SET_CLAUSES ERROR_INVALID_SYNTAX_UPDATE_ROWID_FORBIDDEN ERROR_INVALID_SYNTAX_UPDATE_QUALIFIED_COLUMN_FORBIDDEN ERROR_INVALID_SYNTAX_KEY_DESC_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_AGGREGATE_FUNCTION_NOT_ALLOWED ERROR_INVALID_SYNTAX_COL_NOT_IN_GROUP_BY ERROR_INVALID_SYNTAX_GROUPBY_CONST_VAR_NOT_ALLOWED ERROR_INVALID_SYNTAX_TABLE_TEMPORARY_NOT_IMPLEMENTED ERROR_INVALID_SYNTAX_VARTABLE_WITH_SAME_NAME_EXISTS ERROR_INVALID_SYNTAX_HAVING_WITHOUT_GROUPING ERROR_INVALID_SYNTAX_ILLEGAL_HAVING_TERM ERROR_INVALID_SYNTAX_ORDER_BY_COLUMN_NAME_NOT_FOUND ERROR_INVALID_SYNTAX_ORDER_BY_EXPRESSION_NOT_FOUND ERROR_INVALID_SYNTAX_SELECT_VARIABLE_COUNT_MISMATCH ERROR_INVALID_SYNTAX_SELECT_VARIABLE_STAR_FOUND ERROR_INVALID_SYNTAX_SELECT_VARIABLE_NOT_STATEMENT_LEVEL ERROR_INVALID_SYNTAX_SELECT_TOP_NOT_AT_TOP_LEVEL ERROR_SQL_DATATYPE_UNKNOWN ERROR_SQL_DATATYPE_BAD_SPECIFIER_NATIONAL ERROR_SQL_DATATYPE_BAD_SPECIFIER_VARYING ERROR_SQL_DATATYPE_PRECISION_FORBIDDEN ERROR_SQL_DATATYPE_MAX_PRECISION_FORBIDDEN ERROR_SQL_DATATYPE_BAD_PRECISION ERROR_SQL_DATATYPE_SCALE_FORBIDDEN ERROR_SQL_DATATYPE_BAD_SCALE ERROR_SQL_DATATYPE_BAD_VALUE_FOR_PRECISION_OR_SCALE ERROR_SQL_DATATYPE_BAD_VALUE_FOR_PRECISION ERROR_SQL_DATATYPE_BINARY_NOT_IMPLEMENTED ERROR_SQL_DATATYPE_IMAGE_NOT_IMPLEMENTED ERROR_SQL_DATATYPE_TEXT_NOT_IMPLEMENTED ERROR_LEXEME_TO_UINT16_FAILED ERROR_LOGIN_PASSWORD_INCORRECT_LENGTH ERROR_LOGIN_PASSWORD_HASHING_FAILED ERROR_BAD_LOCALE_FORMAT ERROR_BAD_LOCALE_LANGUAGE_PART ERROR_BAD_LOCALE_SCRIPT_PART ERROR_BAD_LOCALE_REGION_PART ERROR_BAD_COLLATION_LOCALE ERROR_BAD_COLLATION_LOCALE_ATTRIBUTES ERROR_BAD_LOCALE_DATEFORMAT_ATTRIBUTE_FORBIDDEN ERROR_BAD_HEXA_DIGIT ERROR_HEXASTRING_MUST_START_WITH_0x ERROR_HEXASTRING_LENGTH_MUST_BE_EVEN ERROR_HEXASTRING_LENGTH_EXCEEDS_UINT64_SIZE ERROR_CONVERSION_STRING_TO_BOOLEAN_FAILED ERROR_CONVERSION_STRING_TO_BIT_FAILED ERROR_CONVERSION_STRING_TO_TINYINT_FAILED ERROR_CONVERSION_STRING_TO_SMALLINT_FAILED ERROR_CONVERSION_STRING_TO_INT_FAILED ERROR_CONVERSION_STRING_TO_BIGINT_FAILED ERROR_CONVERSION_STRING_TO_FLOAT_FAILED ERROR_CONVERSION_STRING_TO_DATE_FAILED ERROR_CONVERSION_STRING_TO_TIME_FAILED ERROR_CONVERSION_STRING_TO_DATETIME_FAILED ERROR_ASSERT_FAILED ERROR_ASSERT_NULL_FAILED ERROR_ASSERT_ERROR_BAD_SUFFIX ERROR_ASSERT_ERROR_NONE_FOUND ERROR_ASSERT_ERROR_FAILED ERROR_THROW ERROR_THROW_BAD_ERROR_NUMBER ERROR_TOO_MANY_DB_LOCKS ERROR_TOO_MANY_OBJECT_LOCKS ERROR_SQLITE_GENERAL ERROR_DICT_PREPARE_STMT ERROR_DICT_QUERY_STMT ERROR_DICT_SCAN_STMT ERROR_MASTER_LOGIN_NAME_DUPLICATE ERROR_MASTER_LOGIN_NAME_NOT_EXISTS ERROR_MASTER_LOGIN_OPERATION_NOT_ALLOWED ERROR_MASTER_DATABASE_NAME_DUPLICATE ERROR_MASTER_DATABASE_NAME_NOT_EXISTS ERROR_MASTER_DATABASE_OPERATION_NOT_ALLOWED ERROR_MASTER_SCHEMA_NAME_DUPLICATE ERROR_MASTER_SCHEMA_NAME_NOT_EXISTS ERROR_MASTER_OBJECT_NAME_DUPLICATE ERROR_MASTER_OBJECT_NAME_NOT_EXISTS ERROR_MASTER_INDEX_NAME_DUPLICATE ERROR_MASTER_INDEX_NAME_NOT_EXISTS ERROR_MASTER_PRINCIPAL_NAME_DUPLICATE ERROR_MASTER_PRINCIPAL_NAME_NOT_EXISTS ERROR_MASTER_PRINCIPAL_IS_ROLE ERROR_MASTER_PRINCIPAL_IS_USER ERROR_MASTER_PRINCIPAL_GRANT_DENY_TO_DBO_FORBIDDEN ERROR_MASTER_LOGIN_ID_USER_EXISTS ERROR_MASTER_CREATE_USER_LOGIN_ID_DUPLICATE ERROR_MASTER_ALTER_USER_LOGIN_ID_DUPLICATE ERROR_MASTER_ROLE_EXISTS_IN_ROLE_SUBTREE ERROR_MASTER_USER_OPERATION_NOT_ALLOWED ERROR_MASTER_ROLE_OPERATION_NOT_ALLOWED ERROR_MASTER_USER_IS_DB_OWNER ERROR_MASTER_DATABASE_OPERATION_FORBIDDEN_BECAUSE_STATUS ERROR_MASTER_CLUSTERED_INDEX_ALREADY_EXISTS ERROR_MASTER_PRIMARY_KEY_ALREADY_EXISTS ERROR_MASTER_COLUMN_NAME_DUPLICATE ERROR_MASTER_COLUMN_NAME_NOT_EXISTS ERROR_MASTER_PK_COLUMN_MUST_BE_NOT_NULL ERROR_MASTER_OPERATION_FORBIDDEN_ON_INVALID_GTABLE ERROR_MASTER_OPERATION_ALLOWED_ONLY_TO_SA ERROR_MASTER_OPERATION_ALLOWED_ONLY_TO_SA_OR_DBO ERROR_MASTER_OPERATION_ALLOWED_ONLY_TO_SA_OR_ANY_DBO ERROR_MASTER_USER_LOGIN_CANNOT_BE_SET_TO_SA ERROR_MASTER_LOGIN_AUTHENTICATION_FAILED ERROR_MASTER_LOGIN_DISABLED ERROR_MASTER_LOGIN_ID_HAS_BEEN_DROPPED ERROR_MASTER_LOGIN_HAS_NO_USER_FOR_DATABASE ERROR_MASTER_PERMISSION_DENIED ERROR_MASTER_PERMISSION_NOT_GRANTED ERROR_MASTER_PERMISSION_NOT_GRANTED_FOR_MISSING_USER ERROR_WCACHE_ELEMENT_ARRAY_MAX_SIZE_REACHED ERROR_WCACHE_TABLEFILE_MAX_SIZE_REACHED ERROR_TUPLE_TOO_LARGE ERROR_NODE_TUPLE_TOO_LARGE ERROR_DUPLICATE_KEY_FOUND ERROR_FILE_OPEN_FAILED ERROR_ENCODING_NAME_NOT_FOUND ERROR_SCANNER_FAILURE ERROR_BAD_FIELDTERMINATOR ERROR_BAD_ROWTERMINATOR_NO_NL ERROR_BAD_ROWTERMINATOR ERROR_FIRSTROW_CANNOT_BE_ZERO ERROR_KEEPNULLS_IS_MANDATORY ERROR_TOO_MANY_COLUMNS_IN_INPUT_FILE ERROR_BULK_DIR_NOT_INITIALIZED ERROR_DUMP_DIR_NOT_INITIALIZED ERROR_BULK_INSERT_COLUMN_DOESNT_ALLOW_NULL ERROR_BULK_INSERT_MISSING_IDENTITIY_OPTION ERROR_BAD_COLUMNS_COUNT_IN_INPUT_FILE ERROR_LAST_LINE_WITHOUT_ROWTERMINATOR ERROR_TABLE_COLUMN_DOESNT_ALLOW_NULL ERROR_BATCH_TOO_LARGE ERROR_MESSAGEPACK ERROR_CONNECTION_FAILED ERROR_NO_CF_ONLY_FOR_SA ERROR_CANCEL_BY_EOF ERROR_CANCEL_BY_TIMEOUT ERROR_CANCEL_BY_COMMUNICATION_FAILURE ERROR_SERVER_WORKERS_MAX_INVALID ERROR_SERVER_READ_TIMEOUT_INVALID ERROR_SERVER_LOCK_TICKER_INTERVAL_INVALID ERROR_SERVER_LOCK_TIMEOUT_TICKS_COUNT_INVALID ERROR_BULK_EXPORT_IO_ERROR ERROR_DUMP_IO_ERROR ERROR_BACKUP_IO_ERROR ERROR_RESTORE_IO_ERROR ERROR_COPY_IO_ERROR ERROR_SERVER_DEFAULT_COLLATION_CHANGE_NOT_ALLOWED ERROR_EXECUTE_TEMPLATE ERROR_DUMP_DATABASE_DDL_ONLY_MANDATORY ERROR_DB_STATUS_FAILURE ERROR_DB_MODE_FAILURE ERROR_DB_ACCESS_FAILURE_SA_OR_DBO_ONLY ERROR_TRANSACTION_FORBIDDEN_FOR_STMT ERROR_LOCKING_TIMEOUT ERROR_CREATE_CLUSTERED_INDEX_TABLE_NOT_EMPTY ERROR_STATEMENT_INCOMPATIBLE ERROR_COMMIT_WITHOUT_BEGIN_TRAN ERROR_ROLLBACK_WITHOUT_BEGIN_TRAN ERROR_TRANCOUNT_MAX_LIMIT ERROR_SLEEP_TOO_LONG ERROR_COLUMN_CONTAINS_NULL ERROR_INDEX_CORRUPTED ERROR_VOLATILE_FUNCTION_FORBIDDEN_IN_ON_WHERE ERROR_TEMPORARY_TABLE_ALREADY_EXISTS ERROR_TEMPORARY_TABLE_NOT_FOUND ERROR_BULK_EXPORT_FIELD_CONTAINS_FIELDTERMINATOR ERROR_BULK_EXPORT_FIELD_CONTAINS_ROWTERMINATOR ERROR_EMPTY_FILENAME ERROR_SERVER_DIRECTORY ERROR_FILEPATH ERROR_RESTORE_NEED_REPLACE_OPTION ERROR_RESTORE_ATTRIBUTE_MISSING ERROR_RESTORE_SECTION_ERROR ERROR_TOO_MANY_INSERTS_IN_BATCH WARNING_DROP_LOGIN_NOT_FOUND WARNING_DROP_USER_NOT_FOUND WARNING_DROP_ROLE_NOT_FOUND WARNING_DROP_TABLE_NOT_FOUND WARNING_DROP_INDEX_NOT_FOUND WARNING_DROP_CLUSTERED_INDEX_NOT_ALLOWED )
Constants for Message_t.
func (Message_id_t) String ¶
func (message_id Message_id_t) String() string
String returns message string of message_id. If message string is not found, return empty string.
type Object_qname_t ¶
type Object_qname_t struct { Database_name string Schema_name string Object_name string Object_name_original string }
func (Object_qname_t) Is_variable_table ¶
func (objqname Object_qname_t) Is_variable_table() bool
func (Object_qname_t) String ¶
func (objqname Object_qname_t) String() string
type Permission_t ¶
type Permission_t uint16
const ( PERMISSION_SELECT Permission_t = 1 << iota PERMISSION_UPDATE PERMISSION_INSERT PERMISSION_DELETE PERMISSION_MODIFY_DATABASE // this database permission is used to implement database READ_ONLY mode PERMISSION_MODIFY_PRINCIPAL // this database permission is used to implement database READ_ONLY mode PERMISSION_MODIFY_OBJECT // this database permission is used to implement database READ_ONLY mode PERMISSION_MODIFY_PERMISSIONS // this database permission is used to implement database READ_ONLY mode )
const TABLE_PERM_SUID_MASK Permission_t = PERMISSION_SELECT | PERMISSION_UPDATE | PERMISSION_INSERT | PERMISSION_DELETE
func (Permission_t) String ¶
func (perm Permission_t) String() string
func (Permission_t) String_long ¶
func (perm Permission_t) String_long() string
type Response_t ¶
type Response_t uint8
message types sent from server to client
const ( RESTYP_LOGIN_FAILED Response_t = 0 RESTYP_LOGIN_SUCCESS Response_t = 1 RESTYP_RECORD_LAYOUT Response_t = 3 RESTYP_RECORD Response_t = 4 RESTYP_RECORD_FINISHED Response_t = 5 // record count is sent to client RESTYP_EXECUTION_FINISHED Response_t = 7 // only statements that affect records, like INSERT, UPDATE, DELETE, send this response, along with number of rows affected. For the moment, other statements succeed silently without sending any response (perhaps it will change, I don't know. In this case, a value or -1 will mean that information about affected row count is not available). RESTYP_PRINT Response_t = 10 // list of values, from PRINT statement RESTYP_MESSAGE Response_t = 11 // single string RESTYP_ERROR Response_t = 12 // rsql.Error content RESTYP_BATCH_END Response_t = 14 // the return code is sent to client )
func (Response_t) String ¶
func (resp Response_t) String() string
type Restore_params ¶
Params for RESTORE DATABASE statement.
type Row ¶
type Row []IDataslot
Row is a record of IDataslots
When we insert a record into a table, a Row is serialized as a Tuple and written to disk. When we read a record, a Tuple is read from disk and deserialized into the Row.
type Select_params ¶
type Select_params struct { Set_variables_list []IDataslot Set_variables_bb *Basicblock TOP_value int64 }
Params for SELECT statement
type Severity_id_t ¶
type Severity_id_t uint32
Severity_t is the severity id of an Error.
const ( ERROR_IS_WARNING Severity_id_t = 90 // just a warning. Send it to client and continue execution. ERROR_BATCH_ABORT Severity_id_t = 100 // abort the current batch. Most errors have this severity. ERROR_SESSION_ABORT Severity_id_t = 101 // abort and close the connection. ERROR_SERVER_ABORT Severity_id_t = 102 // abort the server. Really serious problem occurred. )
Constants for Severity_t. Higher severities have higher numeric values.
func (Severity_id_t) String ¶
func (severity_id Severity_id_t) String() string
type Sh_output_type_t ¶
type Sh_output_type_t uint8
const ( SH_OUTPUT_NORMAL Sh_output_type_t = 1 << iota SH_OUTPUT_ID SH_OUTPUT_SQL SH_OUTPUT_TEMPLATE )
func (Sh_output_type_t) String ¶
func (output_type Sh_output_type_t) String() string
type Show_info_params ¶
type Show_params ¶
type Show_params struct { Sh_output_type Sh_output_type_t // NOMRAL, ID, SQL, TEMPLATE Sh_template *template.Template Sh_option_ALL bool Sh_option_PERM bool Sh_LIKE bool Sh_database_name string Sh_schema_name string Sh_object_name string Sh_LIKE_pattern string Sh_flag_unique bool Sh_server_default_collation string // sorting order for SHOW output }
Params for SHOW
type State_t ¶
type State_t uint32
State_t is the state of an Error. By default, it is 1. Only THROW can send another value.
type Tabledef ¶
type Tabledef struct { Td_tblid int64 Td_dbid int64 Td_schid int64 Td_base_gtblid int64 // for base table, same as Td_tblid. For index, base table tblid. Td_index_name string Td_index_name_original string Td_file_path string // for permanent table only, not for flashtable Td_durability Durability_t // DURABILITY_PERMANENT, DURABILITY_TEMPORARY, DURABILITY_FLASH Td_type Td_type_t // TD_TYPE_BASE_TABLE, TD_TYPE_INDEX_TABLE Td_index_type Td_index_type_t // TD_UNIQUE, TD_PRIMARY_KEY, TD_INDEX Td_cluster_type Td_cluster_type_t // TD_CLUSTERED, TD_NONCLUSTERED, TD_CLUSTER_TYPE_UNDEFINED (exists only temporarily in parsing stage). After parsing, TD_TYPE_BASE_TABLE is always TD_CLUSTERED, and TD_TYPE_INDEX_TABLE is always TD_NONCLUSTERED. Td_coldefs []*Coldef // list of all columns stored in physical storage, in physical order Td_nk []*Coldef // list of columns making up the native key of this table. If TD_INDEX, the column rowid is appended to make the native key unique. Td_payload []*Coldef // only for TD_TYPE_INDEX_TABLE: list of columns making up the native key of the base table. Td_status Td_status_t // TD_STATUS_BEING_CREATED, TD_STATUS_VALID, TD_STATUS_BEING_DROPPED, TD_STATUS_CORRUPTED }
Description of physical storage, for a table or index.
A nonclustered index is a real index, and is physically like a normal table : - native key is made of columns from the index key list. If not PRIMARY KEY or UNIQUE, ROWID column is included, as native key must be unique. - it is followed by the native key columns of the base table, unless the column already exists in native key of this index. The clustered index is the base table, which contains all columns. Records are physically sorted by the native key. - native key is made of columns from the index key list. If not PRIMARY KEY or UNIQUE, ROWID column is included, as native key must be unique.
PERMANENT TABLES and FLASHTABLES
If Td_tblid >= 0: ordinary table permanent which definition (GTabledef) is stored in master.db. Use wcache.wpc_journal for modifications, which are copied at commit to the table data file. If Td_tblid < 0: flashtable (variable table (DECLARE @a TABLE) or grouptable or sorttable). temporary table, which is created during parsing stage, and deleted when batch terminates. Td_tblid is unique only in the batch. GTabledef for variable table (not grouptable nor sorttable) is put in parser.Temptable_bag during batch duration. Use wcache.wpc_flashjournal, and no table data file. Flashtables are never committed, but only live in the logfile. In GTabledef and Tabledef, Td_dbid is trashdb and Td_schid is dbo. This is because some functions could use these info for display usage, but it should not happen. So, there is no need to lock trashdb nor the flashtable when a flashtable is used.
func New_Tabledef ¶
func (*Tabledef) Nk_is_rowid ¶
type Td_cluster_type_t ¶
type Td_cluster_type_t uint8
const ( TD_CLUSTER_TYPE_UNDEFINED Td_cluster_type_t = 1 + iota // used only during parsing step and for PRIMARY KEY only, but is replaced as soon as possible by TD_CLUSTERED or TD_NONCLUSTERED. TD_CLUSTERED TD_NONCLUSTERED // value of TD_NONCLUSTERED must be > TD_CLUSTERED, because it is used by Show_list_of_indexdefs for sorting clustered index first )
func (Td_cluster_type_t) String ¶
func (cluster_type Td_cluster_type_t) String() string
type Td_index_type_t ¶
type Td_index_type_t uint8
const ( TD_PRIMARY_KEY Td_index_type_t = 1 << iota TD_UNIQUE TD_INDEX // physically, an index of type TD_INDEX is made unique by appending ROWID column )
func (Td_index_type_t) String ¶
func (index_type Td_index_type_t) String() string
type Td_status_t ¶
type Td_status_t uint8
const ( TD_STATUS_BEING_CREATED Td_status_t = iota TD_STATUS_VALID TD_STATUS_BEING_DROPPED TD_STATUS_CORRUPTED )
func (Td_status_t) String ¶
func (status Td_status_t) String() string
type Temptable_bag ¶
type Temptable_bag struct {
// contains filtered or unexported fields
}
GTabledef for variable table (not grouptable nor sorttable) is put in parser.Temptable_bag during batch duration.
func New_Temptable_bag ¶
func New_Temptable_bag() *Temptable_bag
func (*Temptable_bag) Bag ¶
func (tablebag *Temptable_bag) Bag() map[string]*GTabledef
func (*Temptable_bag) Exists ¶
func (tablebag *Temptable_bag) Exists(tblname string) bool
func (*Temptable_bag) Put ¶
func (tablebag *Temptable_bag) Put(tblname string, gtabledef *GTabledef) *Error
func (*Temptable_bag) Remove ¶
func (tablebag *Temptable_bag) Remove(tblname string)
type Tuple ¶
type Tuple []byte
Tuple is a serialized Row, stored on disk as a stream of bytes.
Its structure is: offset of field 0 uint16 number of fields == offset of field 0 / 2 - 1 offset of field 1 uint16 ... offset of field n-1 uint16 offset of sentinel field n uint16 this field n doesn't really exists, This offset value it just one byte past the end of field n-1. It is the length of the tuple, in bytes. serialized value of field 0 bunch of bytes, starting at "offset of field 0" ... bunch of bytes serialized value of field n-1 bunch of bytes, starting at "offset of field n-1" The illustration of the layout is: ======================= header of offsets ==================----------------------------- data ------------------------------------ | offset 0 | offset 1 | ... | offset n-1 | offset sentinel | serialized field 0 | serialized field 1 | ... | serialized field n-1 | ============================================================-----------------------------------------------------------------------
func (Tuple) Field_count ¶
Field_count returns number of fields in tuple.
See data/data_tuple_serialization.go for serialization format.
func (Tuple) Get_field_part ¶
func (Tuple) Get_last_field_uint64 ¶
func (Tuple) Set_last_field_uint64 ¶
type Tuple_type_t ¶
type Tuple_type_t uint8
const ( TUPLE_TYPE_LEAF Tuple_type_t = iota + 1 TUPLE_TYPE_NODE )
type Update_params ¶
type Update_params struct { Ud_insertion_base_row []IDataslot // row to insert. Contains dataslots from target cursor, or SET expressions. Ud_cursor interface{} // always csr.Cursor. But we cannot declare it here, because of circular import. FROM cursor tree. Ud_target_cursor interface{} // always csr.Cursor. But we cannot declare it here, because of circular import. Points to target table cursor, inside Ud_cursor tree. Ud_basicblock *Basicblock // instructions to evaluate SET expressions. Ud_indexes_to_update map[string]*Tabledef // indexes to update, because they contain columns that are updated. If nil, all indexes must be updated. }
Params for UPDATE
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
package btree implements a btree on disk.
|
package btree implements a btree on disk. |
Package cache is the implementation of the page cache of the database server.
|
Package cache is the implementation of the page cache of the database server. |
Package data contains the structures of all SQL datatypes used by rsql.
|
Package data contains the structures of all SQL datatypes used by rsql. |
Package deco contains the decorator of RSQL.
|
Package deco contains the decorator of RSQL. |
Package lex contains the lexer of RSQL.
|
Package lex contains the lexer of RSQL. |
Package like implements functions used by LIKE operator.
|
Package like implements functions used by LIKE operator. |