snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled

This commit is contained in:
upstream-mirror
2026-09-16 02:17:34 +05:00
commit 0f4df23290
7340 changed files with 238743 additions and 0 deletions

View File

@@ -0,0 +1,225 @@
# Dolphin Engine (MySQL) - Claude Code Guide
The dolphin engine handles MySQL parsing and AST conversion using the Marino parser
(a sqlc-maintained fork of the TiDB / pingcap parser).
## Architecture
### Parser Flow
```
SQL String → Marino Parser → Marino AST → sqlc AST → Analysis/Codegen
```
### Key Files
- `convert.go` - Converts Marino AST nodes to sqlc AST nodes
- `format.go` - MySQL-specific formatting (identifiers, types, parameters)
- `parse.go` - Entry point for parsing MySQL SQL
## Marino Parser
The Marino parser (`github.com/sqlc-dev/marino`) is used for MySQL parsing. It is a
hard fork of `github.com/pingcap/tidb/pkg/parser` with a flatter package layout
(no `pkg/parser/...` prefix) and the former `test_driver` types merged into the
`ast` package as `ValueExprBase` / `ParamMarkerExprBase`.
```go
import (
pcast "github.com/sqlc-dev/marino/ast"
"github.com/sqlc-dev/marino/mysql"
"github.com/sqlc-dev/marino/types"
)
```
### Common Marino Types
- `pcast.SelectStmt`, `pcast.InsertStmt`, etc. - Statement types
- `pcast.ColumnNameExpr` - Column reference
- `pcast.FuncCallExpr` - Function call
- `pcast.BinaryOperationExpr` - Binary expression
- `pcast.VariableExpr` - MySQL user variable (@var)
- `pcast.Join` - JOIN clause with Left, Right, On, Using
## Conversion Pattern
Each TiDB node type has a corresponding converter method:
```go
func (c *cc) convertSelectStmt(n *pcast.SelectStmt) *ast.SelectStmt {
return &ast.SelectStmt{
FromClause: c.convertTableRefsClause(n.From),
WhereClause: c.convert(n.Where),
// ...
}
}
```
The main `convert()` method dispatches to specific converters:
```go
func (c *cc) convert(node pcast.Node) ast.Node {
switch n := node.(type) {
case *pcast.SelectStmt:
return c.convertSelectStmt(n)
case *pcast.InsertStmt:
return c.convertInsertStmt(n)
// ...
}
}
```
## Key Conversions
### Column References
```go
func (c *cc) convertColumnNameExpr(n *pcast.ColumnNameExpr) *ast.ColumnRef {
var items []ast.Node
if schema := n.Name.Schema.String(); schema != "" {
items = append(items, NewIdentifier(schema))
}
if table := n.Name.Table.String(); table != "" {
items = append(items, NewIdentifier(table))
}
items = append(items, NewIdentifier(n.Name.Name.String()))
return &ast.ColumnRef{Fields: &ast.List{Items: items}}
}
```
### JOINs
```go
func (c *cc) convertJoin(n *pcast.Join) *ast.List {
if n.Right != nil && n.Left != nil {
return &ast.List{
Items: []ast.Node{&ast.JoinExpr{
Jointype: ast.JoinType(n.Tp),
Larg: c.convert(n.Left),
Rarg: c.convert(n.Right),
Quals: c.convert(n.On),
UsingClause: convertUsing(n.Using),
}},
}
}
// No join - just return tables
// ...
}
```
### MySQL User Variables
MySQL user variables (`@var`) are different from sqlc's `@param` syntax:
```go
func (c *cc) convertVariableExpr(n *pcast.VariableExpr) ast.Node {
// Use VariableExpr to preserve as-is (NOT A_Expr which would be treated as sqlc param)
return &ast.VariableExpr{
Name: n.Name,
Location: n.OriginTextPosition(),
}
}
```
### Type Casts (CAST AS)
```go
func (c *cc) convertFuncCastExpr(n *pcast.FuncCastExpr) ast.Node {
typeName := types.TypeStr(n.Tp.GetType())
// Handle UNSIGNED/SIGNED specially
if typeName == "bigint" {
if mysql.HasUnsignedFlag(n.Tp.GetFlag()) {
typeName = "bigint unsigned"
} else {
typeName = "bigint signed"
}
}
return &ast.TypeCast{
Arg: c.convert(n.Expr),
TypeName: &ast.TypeName{Name: typeName},
}
}
```
### Column Definitions
```go
func convertColumnDef(def *pcast.ColumnDef) *ast.ColumnDef {
typeName := &ast.TypeName{Name: types.TypeToStr(def.Tp.GetType(), def.Tp.GetCharset())}
// Only add Typmods for types where length is meaningful
tp := def.Tp.GetType()
flen := def.Tp.GetFlen()
switch tp {
case mysql.TypeVarchar, mysql.TypeString, mysql.TypeVarString:
if flen >= 0 {
typeName.Typmods = &ast.List{
Items: []ast.Node{&ast.Integer{Ival: int64(flen)}},
}
}
// Don't add for DATETIME, TIMESTAMP - internal flen is not user-specified
}
// ...
}
```
### Multi-Table DELETE
MySQL supports `DELETE t1, t2 FROM t1 JOIN t2 ...`:
```go
func (c *cc) convertDeleteStmt(n *pcast.DeleteStmt) *ast.DeleteStmt {
if n.IsMultiTable && n.Tables != nil {
// Convert targets (t1.*, t2.*)
targets := &ast.List{}
for _, table := range n.Tables.Tables {
// Build ColumnRef for each target
}
stmt.Targets = targets
// Preserve JOINs in FromClause
stmt.FromClause = c.convertTableRefsClause(n.TableRefs).Items[0]
} else {
// Single-table DELETE
stmt.Relations = c.convertTableRefsClause(n.TableRefs)
}
}
```
## MySQL-Specific Formatting
### format.go
```go
func (p *Parser) TypeName(ns, name string) string {
switch name {
case "bigint unsigned":
return "UNSIGNED"
case "bigint signed":
return "SIGNED"
}
return name
}
func (p *Parser) Param(n int) string {
return "?" // MySQL uses ? for all parameters
}
```
## Common Issues and Solutions
### Issue: Panic in Walk/Apply
**Cause**: New AST node type not handled in `astutils/walk.go` or `astutils/rewrite.go`
**Solution**: Add case for the node type in both files
### Issue: MySQL @variable being treated as parameter
**Cause**: The preprocessor's dialect said `@name` is sqlc syntax
**Solution**: MySQL sets `AtSign: false` in `internal/sql/preprocess/dialect.go`, so
`@user_id` is left alone before the parser ever sees it
### Issue: Type length appearing incorrectly (e.g., datetime(39))
**Cause**: Using internal `flen` for all types
**Solution**: Only populate `Typmods` for types where length is user-specified (varchar, char, etc.)
## Testing
### TestFormat
Tests that SQL can be:
1. Parsed
2. Formatted back to SQL
3. Re-parsed
4. Re-formatted to match
### TestReplay
Tests the full sqlc pipeline:
1. Parse schema and queries
2. Analyze
3. Generate code
4. Compare with expected output

View File

@@ -0,0 +1,16 @@
package dolphin
import (
"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)
func NewCatalog() *catalog.Catalog {
def := "public" // TODO: What is the default database for MySQL?
return &catalog.Catalog{
DefaultSchema: def,
Schemas: []*catalog.Schema{
defaultSchema(def),
},
Extensions: map[string]struct{}{},
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,50 @@
{
"dialect": "mysql",
"const": {
"integer": "int",
"float": "decimal",
"string": "text",
"bool": "bool"
},
"bool": "bool",
"comparison": ["=", "<>", "!=", "<", "<=", ">", ">=", "<=>"],
"comparison_categories": "BNSDU",
"arithmetic": ["+", "-", "*", "/", "%", "DIV"],
"arithmetic_categories": "N",
"cast_categories": "NSD",
"rewrites": [
{
"from": "boolean",
"to": "tinyint(1)"
},
{
"from": "bool",
"to": "tinyint(1)"
},
{
"from": "decimal",
"to": "decimal(10, 0)"
},
{
"from": "decimal($1)",
"to": "decimal($1, 0)"
},
{
"from": "decimal unsigned",
"to": "decimal unsigned(10, 0)"
},
{
"from": "decimal unsigned($1)",
"to": "decimal unsigned($1, 0)"
},
{
"from": "float($1)",
"to": "float",
"where": "$1 <= 24"
},
{
"from": "float($1)",
"to": "double"
}
]
}

View File

@@ -0,0 +1,520 @@
{"name":"ABS","args":[{"type":"tinyint"}],"returns":"tinyint"}
{"name":"ABS","args":[{"type":"smallint"}],"returns":"smallint"}
{"name":"ABS","args":[{"type":"mediumint"}],"returns":"mediumint"}
{"name":"ABS","args":[{"type":"int"}],"returns":"int"}
{"name":"ABS","args":[{"type":"bigint"}],"returns":"bigint"}
{"name":"ABS","args":[{"type":"double"}],"returns":"double"}
{"name":"ABS","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"ACOS","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"ADDDATE","args":[{"type":"date"},{"type":"int"}],"returns":"date"}
{"name":"ADDTIME","args":[{"type":"time"},{"type":"time"}],"returns":"time"}
{"name":"AES_DECRYPT","args":[{"type":"binary"},{"type":"text"}],"returns":"text"}
{"name":"AES_DECRYPT","args":[{"type":"binary"},{"type":"text"},{"type":"binary"}],"returns":"text"}
{"name":"AES_ENCRYPT","args":[{"type":"text"},{"type":"text"}],"returns":"binary"}
{"name":"AES_ENCRYPT","args":[{"type":"text"},{"type":"text"},{"type":"binary"}],"returns":"binary"}
{"name":"ANY_VALUE","args":[{"type":"any"}],"returns":"any"}
{"name":"ASCII","args":[{"type":"text"}],"returns":"int"}
{"name":"ASIN","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"ATAN","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"ATAN2","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"AVG","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"BENCHMARK","args":[{"type":"int"},{"type":"any"}],"returns":"int"}
{"name":"BIN","args":[{"type":"int"}],"returns":"text"}
{"name":"BIN_TO_UUID","args":[{"type":"binary"}],"returns":"text"}
{"name":"BIN_TO_UUID","args":[{"type":"binary"},{"type":"tinyint"}],"returns":"text"}
{"name":"BIT_AND","args":[{"type":"any"}],"returns":"any"}
{"name":"BIT_COUNT","args":[{"type":"bigint"}],"returns":"bigint"}
{"name":"BIT_LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"BIT_OR","args":[{"type":"any"}],"returns":"any"}
{"name":"BIT_XOR","args":[{"type":"any"}],"returns":"any"}
{"name":"CAST","args":[{"type":"any"}],"returns":"any"}
{"name":"CEIL","args":[{"type":"int"}],"returns":"int"}
{"name":"CEIL","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"CEILING","args":[{"type":"int"}],"returns":"int"}
{"name":"CEILING","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"CHAR","args":[{"type":"int"},{"type":"int","mode":"v"}],"returns":"text"}
{"name":"CHARACTER_LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"CHARSET","args":[{"type":"text"}],"returns":"text"}
{"name":"CHAR_LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"COERCIBILITY","args":[{"type":"text"}],"returns":"int"}
{"name":"COLLATION","args":[{"type":"text"}],"returns":"text"}
{"name":"COMPRESS","args":[{"type":"text"}],"returns":"binary"}
{"name":"CONCAT","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"text"}
{"name":"CONCAT_WS","args":[{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"text"}
{"name":"CONNECTION_ID","returns":"int"}
{"name":"CONV","args":[{"type":"int"},{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"CONVERT","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"CONVERT_TZ","args":[{"type":"datetime"},{"type":"text"},{"type":"text"}],"returns":"datetime"}
{"name":"COS","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"COT","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"COUNT","returns":"bigint"}
{"name":"COUNT","args":[{"type":"any"}],"returns":"bigint"}
{"name":"CRC32","args":[{"type":"text"}],"returns":"int"}
{"name":"CUME_DIST","returns":"double precision"}
{"name":"CURDATE","returns":"date"}
{"name":"CURRENT_DATE","returns":"date"}
{"name":"CURRENT_ROLE","returns":"text"}
{"name":"CURRENT_TIME","returns":"time"}
{"name":"CURRENT_TIME","args":[{"type":"int"}],"returns":"time"}
{"name":"CURRENT_TIMESTAMP","returns":"datetime"}
{"name":"CURRENT_TIMESTAMP","args":[{"type":"int"}],"returns":"datetime"}
{"name":"CURRENT_USER","returns":"text"}
{"name":"CURTIME","returns":"time"}
{"name":"CURTIME","args":[{"type":"int"}],"returns":"time"}
{"name":"DATABASE","returns":"text"}
{"name":"DATE","args":[{"type":"datetime"}],"returns":"date"}
{"name":"DATEDIFF","args":[{"type":"datetime"},{"type":"datetime"}],"returns":"int"}
{"name":"DATE_ADD","args":[{"type":"date"},{"type":"any"},{"type":"any"}],"returns":"date"}
{"name":"DATE_ADD","args":[{"type":"date"},{"type":"interval"}],"returns":"date"}
{"name":"DATE_ADD_INTERVAL","args":[{"type":"date"},{"type":"any"}],"returns":"date"}
{"name":"DATE_FORMAT","args":[{"type":"date"},{"type":"text"}],"returns":"text"}
{"name":"DATE_SUB","args":[{"type":"date"},{"type":"any"},{"type":"any"}],"returns":"date"}
{"name":"DATE_SUB","args":[{"type":"date"},{"type":"interval"}],"returns":"date"}
{"name":"DATE_SUB_INTERVAL","args":[{"type":"date"},{"type":"any"}],"returns":"date"}
{"name":"DAY","args":[{"type":"date"}],"returns":"int"}
{"name":"DAYNAME","args":[{"type":"date"}],"returns":"text"}
{"name":"DAYOFMONTH","args":[{"type":"date"}],"returns":"int"}
{"name":"DAYOFWEEK","args":[{"type":"date"}],"returns":"int"}
{"name":"DAYOFYEAR","args":[{"type":"date"}],"returns":"int"}
{"name":"DEFAULT","args":[{"type":"any"}],"returns":"any"}
{"name":"DEGREES","args":[{"type":"double precision"}],"returns":"int"}
{"name":"DENSE_RANK","returns":"int"}
{"name":"DISTINCT","args":[{"type":"any"}],"returns":"any"}
{"name":"ELT","args":[{"type":"int"},{"type":"text","mode":"v"}],"returns":"text"}
{"name":"EXP","args":[{"type":"int"}],"returns":"double precision"}
{"name":"EXPORT_SET","args":[{"type":"int"},{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"EXPORT_SET","args":[{"type":"int"},{"type":"text"},{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"EXPORT_SET","args":[{"type":"int"},{"type":"text"},{"type":"text"},{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"EXTRACT","args":[{"type":"date"},{"type":"any"}],"returns":"int"}
{"name":"EXTRACTVALUE","args":[{"type":"text"},{"type":"text"}],"returns":"any"}
{"name":"FIELD","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"text"}
{"name":"FIND_IN_SET","args":[{"type":"text"},{"type":"text"}],"returns":"int"}
{"name":"FIRST_VALUE","args":[{"type":"any"}],"returns":"any"}
{"name":"FLOOR","args":[{"type":"double precision"}],"returns":"int"}
{"name":"FORMAT","args":[{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"FORMAT_BYTES","args":[{"type":"int"}],"returns":"text"}
{"name":"FORMAT_PICO_TIME","args":[{"type":"time"}],"returns":"text"}
{"name":"FOUND_ROWS","returns":"int"}
{"name":"FROM_BASE64","args":[{"type":"text"}],"returns":"text"}
{"name":"FROM_DAYS","args":[{"type":"int"}],"returns":"date"}
{"name":"FROM_UNIXTIME","args":[{"type":"bigint"}],"returns":"text"}
{"name":"FROM_UNIXTIME","args":[{"type":"bigint"},{"type":"text"}],"returns":"text"}
{"name":"GEOMCOLLECTION","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"GEOMETRYCOLLECTION","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"GET_FORMAT","args":[{"type":"any"},{"type":"text"}],"returns":"text"}
{"name":"GET_LOCK","args":[{"type":"text"},{"type":"int"}],"returns":"bool"}
{"name":"GREATEST","args":[{"type":"any"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"GROUPING","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"GROUP_CONCAT","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"text","nullable":true}
{"name":"GTID_SUBSET","args":[{"type":"text"},{"type":"text"}],"returns":"bool"}
{"name":"GTID_SUBTRACT","args":[{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"HEX","args":[{"type":"int"}],"returns":"text"}
{"name":"HEX","args":[{"type":"text"}],"returns":"int"}
{"name":"HOUR","args":[{"type":"time"}],"returns":"int"}
{"name":"ICU_VERSION","returns":"text"}
{"name":"IF","args":[{"type":"any"},{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"IFNULL","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"INET6_ATON","args":[{"type":"text"}],"returns":"binary"}
{"name":"INET6_NTOA","args":[{"type":"binary"}],"returns":"text"}
{"name":"INET_ATON","args":[{"type":"text"}],"returns":"int"}
{"name":"INET_NTOA","args":[{"type":"int"}],"returns":"text"}
{"name":"INSERT","args":[{"type":"text"},{"type":"int"},{"type":"int"},{"type":"text"}],"returns":"text"}
{"name":"INSTR","args":[{"type":"text"},{"type":"text"}],"returns":"int"}
{"name":"INTERVAL","args":[{"type":"any"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"ISNULL","args":[{"type":"any"}],"returns":"bool"}
{"name":"IS_FREE_LOCK","args":[{"type":"text"}],"returns":"bool"}
{"name":"IS_IPV4","args":[{"type":"text"}],"returns":"bool"}
{"name":"IS_IPV4_COMPAT","args":[{"type":"binary"}],"returns":"bool"}
{"name":"IS_IPV4_MAPPED","args":[{"type":"binary"}],"returns":"bool"}
{"name":"IS_IPV6","args":[{"type":"text"}],"returns":"bool"}
{"name":"IS_USED_LOCK","args":[{"type":"text"}],"returns":"bool"}
{"name":"IS_UUID","args":[{"type":"text"}],"returns":"bool"}
{"name":"JSON_ARRAY","args":[{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_ARRAYAGG","args":[{"type":"any"}],"returns":"json","nullable":true}
{"name":"JSON_ARRAY_APPEND","args":[{"type":"text"},{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_ARRAY_INSERT","args":[{"type":"text"},{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_CONTAINS","args":[{"type":"text"},{"type":"text"}],"returns":"bool"}
{"name":"JSON_CONTAINS","args":[{"type":"text"},{"type":"text"},{"type":"text"}],"returns":"bool"}
{"name":"JSON_CONTAINS_PATH","args":[{"type":"text"},{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"bool"}
{"name":"JSON_DEPTH","args":[{"type":"text"}],"returns":"int"}
{"name":"JSON_EXTRACT","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"any"}
{"name":"JSON_INSERT","args":[{"type":"text"},{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_KEYS","args":[{"type":"text"}],"returns":"json"}
{"name":"JSON_KEYS","args":[{"type":"text"},{"type":"text"}],"returns":"json"}
{"name":"JSON_LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"JSON_LENGTH","args":[{"type":"text"},{"type":"text"}],"returns":"int"}
{"name":"JSON_MERGE","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"json"}
{"name":"JSON_MERGE_PATCH","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"json"}
{"name":"JSON_MERGE_PRESERVE","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"json"}
{"name":"JSON_OBJECT","args":[{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_OBJECTAGG","args":[{"type":"any"},{"type":"any"}],"returns":"json","nullable":true}
{"name":"JSON_OVERLAPS","args":[{"type":"text"},{"type":"text"}],"returns":"bool"}
{"name":"JSON_PRETTY","args":[{"type":"text"}],"returns":"any"}
{"name":"JSON_QUOTE","args":[{"type":"text"}],"returns":"text"}
{"name":"JSON_REMOVE","args":[{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"json"}
{"name":"JSON_REPLACE","args":[{"type":"text"},{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_SCHEMA_VALID","args":[{"type":"text"},{"type":"text"}],"returns":"bool"}
{"name":"JSON_SCHEMA_VALIDATION_REPORT","args":[{"type":"text"},{"type":"text"}],"returns":"json"}
{"name":"JSON_SEARCH","args":[{"type":"text"},{"type":"text"},{"type":"text"}],"returns":"any"}
{"name":"JSON_SEARCH","args":[{"type":"text"},{"type":"text"},{"type":"text"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"any"}
{"name":"JSON_SET","args":[{"type":"text"},{"type":"text"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"json"}
{"name":"JSON_STORAGE_FREE","args":[{"type":"text"}],"returns":"int"}
{"name":"JSON_STORAGE_SIZE","args":[{"type":"text"}],"returns":"int"}
{"name":"JSON_TYPE","args":[{"type":"text"}],"returns":"any"}
{"name":"JSON_UNQUOTE","args":[{"type":"text"}],"returns":"json"}
{"name":"JSON_VALID","args":[{"type":"text"}],"returns":"bool"}
{"name":"JSON_VALUE","args":[{"type":"text"},{"type":"text"}],"returns":"any"}
{"name":"LAG","args":[{"type":"any"},{"type":"int","has_default":true},{"type":"any","has_default":true}],"returns":"any"}
{"name":"LAST_DAY","args":[{"type":"date"}],"returns":"date"}
{"name":"LAST_INSERT_ID","returns":"bigint"}
{"name":"LAST_INSERT_ID","args":[{"type":"any"}],"returns":"bigint"}
{"name":"LAST_VALUE","args":[{"type":"any"}],"returns":"any"}
{"name":"LCASE","args":[{"type":"text"}],"returns":"text"}
{"name":"LEAD","args":[{"type":"any"},{"type":"int","has_default":true},{"type":"any","has_default":true}],"returns":"any"}
{"name":"LEAST","args":[{"type":"any"},{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"LEFT","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"LINESTRING","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"LN","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"LOAD_FILE","args":[{"type":"text"}],"returns":"text"}
{"name":"LOCALTIME","returns":"datetime"}
{"name":"LOCALTIME","args":[{"type":"int"}],"returns":"datetime"}
{"name":"LOCALTIMESTAMP","returns":"datetime"}
{"name":"LOCALTIMESTAMP","args":[{"type":"int"}],"returns":"datetime"}
{"name":"LOCATE","args":[{"type":"text"},{"type":"text"}],"returns":"int"}
{"name":"LOCATE","args":[{"type":"text"},{"type":"text"},{"type":"int"}],"returns":"int"}
{"name":"LOG","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"LOG","args":[{"type":"double precision"},{"type":"int"}],"returns":"int"}
{"name":"LOG10","args":[{"type":"double precision"}],"returns":"int"}
{"name":"LOG2","args":[{"type":"double precision"}],"returns":"int"}
{"name":"LOWER","args":[{"type":"text"}],"returns":"text"}
{"name":"LPAD","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"text"}
{"name":"LTRIM","args":[{"type":"text"}],"returns":"text"}
{"name":"MAKEDATE","args":[{"type":"int"},{"type":"int"}],"returns":"date"}
{"name":"MAKETIME","args":[{"type":"int"},{"type":"int"},{"type":"int"}],"returns":"time"}
{"name":"MAKE_SET","args":[{"type":"int"},{"type":"text"},{"type":"text","mode":"v"}],"returns":"text"}
{"name":"MASTER_POS_WAIT","args":[{"type":"text"},{"type":"int"}],"returns":"int"}
{"name":"MASTER_POS_WAIT","args":[{"type":"text"},{"type":"int"},{"type":"int"}],"returns":"int"}
{"name":"MASTER_POS_WAIT","args":[{"type":"text"},{"type":"int"},{"type":"int"},{"type":"text"}],"returns":"int"}
{"name":"MAX","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"MBRCONTAINS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRCOVEREDBY","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRCOVERS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRDISJOINT","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBREQUALS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRINTERSECTS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBROVERLAPS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRTOUCHES","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MBRWITHIN","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"MD5","args":[{"type":"text"}],"returns":"text"}
{"name":"MICROSECOND","args":[{"type":"time"}],"returns":"int"}
{"name":"MID","args":[{"type":"text"},{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"MIN","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"MINUTE","args":[{"type":"time"}],"returns":"int"}
{"name":"MOD","args":[{"type":"int"},{"type":"int"}],"returns":"int"}
{"name":"MONTH","args":[{"type":"date"}],"returns":"int"}
{"name":"MONTHNAME","args":[{"type":"date"}],"returns":"text"}
{"name":"MULTILINESTRING","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"MULTIPOINT","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"MULTIPOLYGON","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"NAME_CONST","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"NOW","returns":"datetime"}
{"name":"NEXTVAL","args":[{"type":"any"}],"returns":"int"}
{"name":"NOW","args":[{"type":"int"}],"returns":"datetime"}
{"name":"NTH_VALUE","args":[{"type":"any"},{"type":"int"}],"returns":"any"}
{"name":"NTILE","args":[{"type":"int"}],"returns":"int"}
{"name":"NULLIF","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"OCT","args":[{"type":"bigint"}],"returns":"text"}
{"name":"OCTET_LENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"ORD","args":[{"type":"text"}],"returns":"int"}
{"name":"PERCENT_RANK","returns":"double precision"}
{"name":"PERIOD_ADD","args":[{"type":"int"},{"type":"int"}],"returns":"int"}
{"name":"PERIOD_DIFF","args":[{"type":"int"},{"type":"int"}],"returns":"int"}
{"name":"PI","returns":"double precision"}
{"name":"POINT","args":[{"type":"double precision"},{"type":"double precision"}],"returns":"any"}
{"name":"POLYGON","args":[{"type":"any"},{"type":"any","mode":"v"}],"returns":"any"}
{"name":"POSITION","args":[{"type":"text"},{"type":"text"}],"returns":"int"}
{"name":"POW","args":[{"type":"double precision"},{"type":"double precision"}],"returns":"double precision"}
{"name":"POWER","args":[{"type":"double precision"},{"type":"double precision"}],"returns":"double precision"}
{"name":"PS_CURRENT_THREAD_ID","returns":"int"}
{"name":"PS_THREAD_ID","args":[{"type":"int"}],"returns":"int"}
{"name":"QUARTER","args":[{"type":"date"}],"returns":"int"}
{"name":"QUOTE","args":[{"type":"text"}],"returns":"text"}
{"name":"RADIANS","args":[{"type":"int"}],"returns":"double precision"}
{"name":"RAND","returns":"double precision"}
{"name":"RAND","args":[{"type":"int"}],"returns":"double precision"}
{"name":"RANDOM_BYTES","args":[{"type":"int"}],"returns":"binary"}
{"name":"RANK","returns":"int"}
{"name":"REGEXP_INSTR","args":[{"type":"text"},{"type":"text"},{"type":"int","has_default":true},{"type":"int","has_default":true},{"type":"int","has_default":true},{"type":"text","has_default":true}],"returns":"int"}
{"name":"REGEXP_LIKE","args":[{"type":"text"},{"type":"text"},{"type":"text","has_default":true}],"returns":"bool"}
{"name":"REGEXP_REPLACE","args":[{"type":"text"},{"type":"text"},{"type":"text"},{"type":"int","has_default":true},{"type":"int","has_default":true},{"type":"text","has_default":true}],"returns":"text"}
{"name":"REGEXP_SUBSTR","args":[{"type":"text"},{"type":"text"},{"type":"int","has_default":true},{"type":"int","has_default":true},{"type":"text","has_default":true}],"returns":"text"}
{"name":"RELEASE_ALL_LOCKS","returns":"int"}
{"name":"RELEASE_LOCK","args":[{"type":"text"}],"returns":"bool"}
{"name":"REPEAT","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"REPLACE","args":[{"type":"text"},{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"REVERSE","args":[{"type":"text"}],"returns":"text"}
{"name":"RIGHT","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"ROLES_GRAPHML","returns":"text"}
{"name":"ROUND","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"ROUND","args":[{"type":"double precision"},{"type":"double precision"}],"returns":"double precision"}
{"name":"ROW_COUNT","returns":"bigint"}
{"name":"ROW_NUMBER","returns":"int"}
{"name":"RPAD","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"text"}
{"name":"RTRIM","args":[{"type":"text"}],"returns":"text"}
{"name":"SCHEMA","returns":"text"}
{"name":"SECOND","args":[{"type":"time"}],"returns":"int"}
{"name":"SEC_TO_TIME","args":[{"type":"int"}],"returns":"time"}
{"name":"SESSION_USER","returns":"text"}
{"name":"SHA","args":[{"type":"text"}],"returns":"text"}
{"name":"SHA1","args":[{"type":"text"}],"returns":"text"}
{"name":"SHA2","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"SIGN","args":[{"type":"double precision"}],"returns":"int"}
{"name":"SIN","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"SLEEP","args":[{"type":"int"}],"returns":"int"}
{"name":"SOUNDEX","args":[{"type":"text"}],"returns":"text"}
{"name":"SPACE","args":[{"type":"int"}],"returns":"text"}
{"name":"SQRT","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"STATEMENT_DIGEST","args":[{"type":"text"}],"returns":"text"}
{"name":"STATEMENT_DIGEST_TEXT","args":[{"type":"text"}],"returns":"text"}
{"name":"STD","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"STDDEV","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"STDDEV_POP","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"STDDEV_SAMP","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"STRCMP","args":[{"type":"text"},{"type":"text"}],"returns":"tinyint"}
{"name":"STR_TO_DATE","args":[{"type":"text"},{"type":"text"}],"returns":"datetime"}
{"name":"ST_AREA","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_ASBINARY","args":[{"type":"any"}],"returns":"binary"}
{"name":"ST_ASBINARY","args":[{"type":"any"},{"type":"text"}],"returns":"binary"}
{"name":"ST_ASGEOJSON","args":[{"type":"any"}],"returns":"json"}
{"name":"ST_ASGEOJSON","args":[{"type":"any"},{"type":"int"}],"returns":"json"}
{"name":"ST_ASGEOJSON","args":[{"type":"any"},{"type":"int"},{"type":"tinyint"}],"returns":"json"}
{"name":"ST_ASTEXT","args":[{"type":"any"}],"returns":"text"}
{"name":"ST_ASTEXT","args":[{"type":"any"},{"type":"text"}],"returns":"text"}
{"name":"ST_ASWKB","args":[{"type":"any"}],"returns":"binary"}
{"name":"ST_ASWKB","args":[{"type":"any"},{"type":"text"}],"returns":"binary"}
{"name":"ST_ASWKT","args":[{"type":"any"}],"returns":"text"}
{"name":"ST_ASWKT","args":[{"type":"any"},{"type":"text"}],"returns":"text"}
{"name":"ST_BUFFER","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_BUFFER","args":[{"type":"any"},{"type":"double precision"},{"type":"binary"}],"returns":"any"}
{"name":"ST_BUFFER","args":[{"type":"any"},{"type":"double precision"},{"type":"binary"},{"type":"binary"}],"returns":"any"}
{"name":"ST_BUFFER","args":[{"type":"any"},{"type":"double precision"},{"type":"binary"},{"type":"binary"},{"type":"binary"}],"returns":"any"}
{"name":"ST_BUFFER_STRATEGY","args":[{"type":"text"}],"returns":"binary"}
{"name":"ST_BUFFER_STRATEGY","args":[{"type":"text"},{"type":"int"}],"returns":"binary"}
{"name":"ST_CENTROID","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_CONTAINS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_CONVEXHULL","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_CROSSES","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_DIFFERENCE","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"ST_DIMENSION","args":[{"type":"any"}],"returns":"tinyint"}
{"name":"ST_DISJOINT","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_DISTANCE","args":[{"type":"any"},{"type":"any"}],"returns":"double precision"}
{"name":"ST_DISTANCE","args":[{"type":"any"},{"type":"any"},{"type":"text"}],"returns":"double precision"}
{"name":"ST_DISTANCE_SPHERE","args":[{"type":"any"},{"type":"any"}],"returns":"double precision"}
{"name":"ST_DISTANCE_SPHERE","args":[{"type":"any"},{"type":"any"},{"type":"int"}],"returns":"double precision"}
{"name":"ST_ENDPOINT","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_ENVELOPE","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_EQUALS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_EXTERIORRING","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_FRECHET_DISTANCE","args":[{"type":"any"},{"type":"any"}],"returns":"double precision"}
{"name":"ST_FRECHET_DISTANCE","args":[{"type":"any"},{"type":"any"},{"type":"text"}],"returns":"double precision"}
{"name":"ST_GEOHASH","args":[{"type":"double precision"},{"type":"double precision"},{"type":"int"}],"returns":"text"}
{"name":"ST_GEOHASH","args":[{"type":"any"},{"type":"int"}],"returns":"text"}
{"name":"ST_GEOMCOLLFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMTXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMTXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMTXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMCOLLFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMETRYCOLLECTIONFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMETRYFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMETRYN","args":[{"type":"any"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMETRYTYPE","args":[{"type":"any"}],"returns":"text"}
{"name":"ST_GEOMFROMGEOJSON","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMFROMGEOJSON","args":[{"type":"text"},{"type":"tinyint"}],"returns":"any"}
{"name":"ST_GEOMFROMGEOJSON","args":[{"type":"text"},{"type":"tinyint"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_GEOMFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_GEOMFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_GEOMFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_HAUSDORFF_DISTANCE","args":[{"type":"any"},{"type":"any"}],"returns":"double precision"}
{"name":"ST_HAUSDORFF_DISTANCE","args":[{"type":"any"},{"type":"any"},{"type":"text"}],"returns":"double precision"}
{"name":"ST_INTERIORRINGN","args":[{"type":"any"},{"type":"int"}],"returns":"any"}
{"name":"ST_INTERSECTION","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"ST_INTERSECTS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_ISCLOSED","args":[{"type":"any"}],"returns":"bool"}
{"name":"ST_ISEMPTY","args":[{"type":"any"}],"returns":"bool"}
{"name":"ST_ISSIMPLE","args":[{"type":"any"}],"returns":"bool"}
{"name":"ST_ISVALID","args":[{"type":"any"}],"returns":"bool"}
{"name":"ST_LATFROMGEOHASH","args":[{"type":"text"}],"returns":"double precision"}
{"name":"ST_LATITUDE","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_LATITUDE","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_LENGTH","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_LENGTH","args":[{"type":"any"},{"type":"text"}],"returns":"double precision"}
{"name":"ST_LINEFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_LINEFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_LINEFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_LINEFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_LINEFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_LINEFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_LINEINTERPOLATEPOINT","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_LINEINTERPOLATEPOINTS","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_LINESTRINGFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_LONGFROMGEOHASH","args":[{"type":"text"}],"returns":"double precision"}
{"name":"ST_LONGITUDE","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_LONGITUDE","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_MAKEENVELOPE","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"ST_MLINEFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MLINEFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MLINEFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MLINEFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MLINEFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MLINEFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MPOINTFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MPOINTFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MPOINTFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MPOINTFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MPOINTFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MPOINTFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MPOLYFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MPOLYFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MPOLYFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MPOLYFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MPOLYFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MPOLYFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTILINESTRINGFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTIPOINTFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_MULTIPOLYGONFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_NUMGEOMETRIES","args":[{"type":"any"}],"returns":"bigint"}
{"name":"ST_NUMINTERIORRING","args":[{"type":"any"}],"returns":"int"}
{"name":"ST_NUMINTERIORRINGS","args":[{"type":"any"}],"returns":"int"}
{"name":"ST_NUMPOINTS","args":[{"type":"any"}],"returns":"bigint"}
{"name":"ST_OVERLAPS","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_POINTATDISTANCE","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_POINTFROMGEOHASH","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_POINTFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_POINTFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_POINTFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_POINTFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_POINTFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_POINTFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_POINTN","args":[{"type":"any"},{"type":"int"}],"returns":"any"}
{"name":"ST_POLYFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_POLYFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_POLYFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_POLYFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_POLYFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_POLYFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_POLYGONFROMTEXT","args":[{"type":"text"}],"returns":"any"}
{"name":"ST_POLYGONFROMTEXT","args":[{"type":"text"},{"type":"int"}],"returns":"any"}
{"name":"ST_POLYGONFROMTEXT","args":[{"type":"text"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_POLYGONFROMWKB","args":[{"type":"binary"}],"returns":"any"}
{"name":"ST_POLYGONFROMWKB","args":[{"type":"binary"},{"type":"int"}],"returns":"any"}
{"name":"ST_POLYGONFROMWKB","args":[{"type":"binary"},{"type":"int"},{"type":"text"}],"returns":"any"}
{"name":"ST_SIMPLIFY","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_SRID","args":[{"type":"any"}],"returns":"int"}
{"name":"ST_SRID","args":[{"type":"any"},{"type":"int"}],"returns":"int"}
{"name":"ST_STARTPOINT","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_SWAPXY","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_SYMDIFFERENCE","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"ST_TOUCHES","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_TRANSFORM","args":[{"type":"any"},{"type":"int"}],"returns":"any"}
{"name":"ST_UNION","args":[{"type":"any"},{"type":"any"}],"returns":"any"}
{"name":"ST_VALIDATE","args":[{"type":"any"}],"returns":"any"}
{"name":"ST_WITHIN","args":[{"type":"any"},{"type":"any"}],"returns":"bool"}
{"name":"ST_X","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_X","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"ST_Y","args":[{"type":"any"}],"returns":"double precision"}
{"name":"ST_Y","args":[{"type":"any"},{"type":"double precision"}],"returns":"any"}
{"name":"SUBDATE","args":[{"type":"date"},{"type":"any"}],"returns":"date"}
{"name":"SUBSTR","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"SUBSTR","args":[{"type":"text"},{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"SUBSTRING","args":[{"type":"text"},{"type":"int"}],"returns":"text"}
{"name":"SUBSTRING","args":[{"type":"text"},{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"SUBSTRING_INDEX","args":[{"type":"text"},{"type":"int"},{"type":"int"}],"returns":"text"}
{"name":"SUBTIME","args":[{"type":"time"},{"type":"time"}],"returns":"time"}
{"name":"SUM","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"SYSDATE","returns":"datetime"}
{"name":"SYSDATE","args":[{"type":"int"}],"returns":"datetime"}
{"name":"SYSTEM_USER","returns":"text"}
{"name":"TAN","args":[{"type":"double precision"}],"returns":"double precision"}
{"name":"TIME","args":[{"type":"datetime"}],"returns":"time"}
{"name":"TIMEDIFF","args":[{"type":"time"},{"type":"time"}],"returns":"time"}
{"name":"TIMESTAMP","args":[{"type":"datetime"}],"returns":"datetime"}
{"name":"TIMESTAMP","args":[{"type":"datetime"},{"type":"datetime"}],"returns":"datetime"}
{"name":"TIMESTAMPADD","args":[{"type":"any"},{"type":"int"},{"type":"datetime"}],"returns":"datetime"}
{"name":"TIMESTAMPDIFF","args":[{"type":"any"},{"type":"datetime"},{"type":"datetime"}],"returns":"int"}
{"name":"TIME_FORMAT","args":[{"type":"time"},{"type":"text"}],"returns":"text"}
{"name":"TIME_TO_SEC","args":[{"type":"time"}],"returns":"int"}
{"name":"TO_BASE64","args":[{"type":"text"}],"returns":"text"}
{"name":"TO_DAYS","args":[{"type":"date"}],"returns":"int"}
{"name":"TO_SECONDS","args":[{"type":"datetime"}],"returns":"bigint"}
{"name":"TRIM","args":[{"type":"text"}],"returns":"text"}
{"name":"TRIM","args":[{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"TRUNCATE","args":[{"type":"double precision"},{"type":"int"}],"returns":"int"}
{"name":"UCASE","args":[{"type":"text"}],"returns":"text"}
{"name":"UNCOMPRESS","args":[{"type":"binary"}],"returns":"text"}
{"name":"UNCOMPRESSED_LENGTH","args":[{"type":"binary"}],"returns":"int"}
{"name":"UNHEX","args":[{"type":"text"}],"returns":""}
{"name":"UNIX_TIMESTAMP","returns":"bigint"}
{"name":"UNIX_TIMESTAMP","args":[{"type":"datetime"}],"returns":"bigint"}
{"name":"UPDATEXML","args":[{"type":"text"},{"type":"text"},{"type":"text"}],"returns":"text"}
{"name":"UPPER","args":[{"type":"text"}],"returns":"text"}
{"name":"USER","returns":"text"}
{"name":"UTC_DATE","returns":"date"}
{"name":"UTC_TIME","returns":"time"}
{"name":"UTC_TIMESTAMP","returns":"datetime"}
{"name":"UUID","returns":"text"}
{"name":"UUID_SHORT","returns":"bigint"}
{"name":"UUID_TO_BIN","args":[{"type":"text"}],"returns":"binary"}
{"name":"UUID_TO_BIN","args":[{"type":"text"},{"type":"tinyint"}],"returns":"binary"}
{"name":"VALIDATE_PASSWORD_STRENGTH","args":[{"type":"text"}],"returns":"int"}
{"name":"VALUES","args":[{"type":"any"}],"returns":"any"}
{"name":"VARIANCE","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"VAR_POP","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"VAR_SAMP","args":[{"type":"any"}],"returns":"any","nullable":true}
{"name":"VERSION","returns":"text"}
{"name":"WAIT_FOR_EXECUTED_GTID_SET","args":[{"type":"text"},{"type":"int","has_default":true}],"returns":"bool"}
{"name":"WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","args":[{"type":"text"},{"type":"int","has_default":true},{"type":"text","has_default":true}],"returns":"bool"}
{"name":"WEEK","args":[{"type":"date"}],"returns":"int"}
{"name":"WEEK","args":[{"type":"date"},{"type":"int"}],"returns":"int"}
{"name":"WEEKDAY","args":[{"type":"date"}],"returns":"int"}
{"name":"WEEKOFYEAR","args":[{"type":"date"}],"returns":"int"}
{"name":"WEIGHT_STRING","args":[{"type":"text"}],"returns":"any"}
{"name":"YEAR","args":[{"type":"date"}],"returns":"int"}
{"name":"YEARWEEK","args":[{"type":"date"}],"returns":"int"}

View File

@@ -0,0 +1,3 @@
{"name": "~~", "left": "text", "right": "text", "result": "bool"}
{"name": "!~~", "left": "text", "right": "text", "result": "bool"}
{"name": "REGEXP", "left": "text", "right": "text", "result": "bool"}

View File

@@ -0,0 +1,84 @@
{"catalog":"def","schema":"information_schema","name":"administrable_role_authorizations","kind":"v","columns":[{"name":"user","type":"varchar(97)"},{"name":"host","type":"varchar(256)"},{"name":"grantee","type":"varchar(97)"},{"name":"grantee_host","type":"varchar(256)"},{"name":"role_name","type":"varchar(255)"},{"name":"role_host","type":"varchar(256)"},{"name":"is_grantable","type":"varchar(3)","not_null":true},{"name":"is_default","type":"varchar(3)"},{"name":"is_mandatory","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"applicable_roles","kind":"v","columns":[{"name":"user","type":"varchar(97)"},{"name":"host","type":"varchar(256)"},{"name":"grantee","type":"varchar(97)"},{"name":"grantee_host","type":"varchar(256)"},{"name":"role_name","type":"varchar(255)"},{"name":"role_host","type":"varchar(256)"},{"name":"is_grantable","type":"varchar(3)","not_null":true},{"name":"is_default","type":"varchar(3)"},{"name":"is_mandatory","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"character_sets","kind":"v","columns":[{"name":"character_set_name","type":"varchar(64)","not_null":true},{"name":"default_collate_name","type":"varchar(64)","not_null":true},{"name":"description","type":"varchar(2048)","not_null":true},{"name":"maxlen","type":"int unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"check_constraints","kind":"v","columns":[{"name":"constraint_catalog","type":"varchar(64)","not_null":true},{"name":"constraint_schema","type":"varchar(64)","not_null":true},{"name":"constraint_name","type":"varchar(64)","not_null":true},{"name":"check_clause","type":"longtext","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"collations","kind":"v","columns":[{"name":"collation_name","type":"varchar(64)","not_null":true},{"name":"character_set_name","type":"varchar(64)","not_null":true},{"name":"id","type":"bigint unsigned","not_null":true},{"name":"is_default","type":"varchar(3)","not_null":true},{"name":"is_compiled","type":"varchar(3)","not_null":true},{"name":"sortlen","type":"int unsigned","not_null":true},{"name":"pad_attribute","type":"enum('PAD SPACE','NO PAD')","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"collation_character_set_applicability","kind":"v","columns":[{"name":"collation_name","type":"varchar(64)","not_null":true},{"name":"character_set_name","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"columns","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)"},{"name":"ordinal_position","type":"int unsigned","not_null":true},{"name":"column_default","type":"text"},{"name":"is_nullable","type":"varchar(3)","not_null":true},{"name":"data_type","type":"longtext"},{"name":"character_maximum_length","type":"bigint"},{"name":"character_octet_length","type":"bigint"},{"name":"numeric_precision","type":"bigint unsigned"},{"name":"numeric_scale","type":"bigint unsigned"},{"name":"datetime_precision","type":"int unsigned"},{"name":"character_set_name","type":"varchar(64)"},{"name":"collation_name","type":"varchar(64)"},{"name":"column_type","type":"mediumtext","not_null":true},{"name":"column_key","type":"enum('','PRI','UNI','MUL')","not_null":true},{"name":"extra","type":"varchar(256)"},{"name":"privileges","type":"varchar(154)"},{"name":"column_comment","type":"text","not_null":true},{"name":"generation_expression","type":"longtext","not_null":true},{"name":"srs_id","type":"int unsigned"}]}
{"catalog":"def","schema":"information_schema","name":"columns_extensions","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)"},{"name":"engine_attribute","type":"json"},{"name":"secondary_engine_attribute","type":"json"}]}
{"catalog":"def","schema":"information_schema","name":"column_privileges","kind":"v","columns":[{"name":"grantee","type":"varchar(292)","not_null":true},{"name":"table_catalog","type":"varchar(512)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)","not_null":true},{"name":"privilege_type","type":"varchar(64)","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"column_statistics","kind":"v","columns":[{"name":"schema_name","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)","not_null":true},{"name":"histogram","type":"json","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"enabled_roles","kind":"v","columns":[{"name":"role_name","type":"varchar(255)"},{"name":"role_host","type":"varchar(255)"},{"name":"is_default","type":"varchar(3)"},{"name":"is_mandatory","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"engines","kind":"v","columns":[{"name":"engine","type":"varchar(64)","not_null":true},{"name":"support","type":"varchar(8)","not_null":true},{"name":"comment","type":"varchar(80)","not_null":true},{"name":"transactions","type":"varchar(3)"},{"name":"xa","type":"varchar(3)"},{"name":"savepoints","type":"varchar(3)"}]}
{"catalog":"def","schema":"information_schema","name":"events","kind":"v","columns":[{"name":"event_catalog","type":"varchar(64)","not_null":true},{"name":"event_schema","type":"varchar(64)","not_null":true},{"name":"event_name","type":"varchar(64)","not_null":true},{"name":"definer","type":"varchar(288)","not_null":true},{"name":"time_zone","type":"varchar(64)","not_null":true},{"name":"event_body","type":"varchar(3)","not_null":true},{"name":"event_definition","type":"longtext","not_null":true},{"name":"event_type","type":"varchar(9)","not_null":true},{"name":"execute_at","type":"datetime"},{"name":"interval_value","type":"varchar(256)"},{"name":"interval_field","type":"enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND')"},{"name":"sql_mode","type":"set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','NOT_USED_9','NOT_USED_10','NOT_USED_11','NOT_USED_12','NOT_USED_13','NOT_USED_14','NOT_USED_15','NOT_USED_16','NOT_USED_17','NOT_USED_18','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','ALLOW_INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NOT_USED_29','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','TIME_TRUNCATE_FRACTIONAL','INTERPRET_UTF8_AS_UTF8MB4')","not_null":true},{"name":"starts","type":"datetime"},{"name":"ends","type":"datetime"},{"name":"status","type":"varchar(21)","not_null":true},{"name":"on_completion","type":"varchar(12)","not_null":true},{"name":"created","type":"timestamp","not_null":true},{"name":"last_altered","type":"timestamp","not_null":true},{"name":"last_executed","type":"datetime"},{"name":"event_comment","type":"varchar(2048)","not_null":true},{"name":"originator","type":"int unsigned","not_null":true},{"name":"character_set_client","type":"varchar(64)","not_null":true},{"name":"collation_connection","type":"varchar(64)","not_null":true},{"name":"database_collation","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"files","kind":"v","columns":[{"name":"file_id","type":"bigint"},{"name":"file_name","type":"text"},{"name":"file_type","type":"varchar(256)"},{"name":"tablespace_name","type":"varchar(268)","not_null":true},{"name":"table_catalog","type":"varchar(0)","not_null":true},{"name":"table_schema","type":"varbinary(0)"},{"name":"table_name","type":"varbinary(0)"},{"name":"logfile_group_name","type":"varchar(256)"},{"name":"logfile_group_number","type":"bigint"},{"name":"engine","type":"varchar(64)","not_null":true},{"name":"fulltext_keys","type":"varbinary(0)"},{"name":"deleted_rows","type":"varbinary(0)"},{"name":"update_count","type":"varbinary(0)"},{"name":"free_extents","type":"bigint"},{"name":"total_extents","type":"bigint"},{"name":"extent_size","type":"bigint"},{"name":"initial_size","type":"bigint"},{"name":"maximum_size","type":"bigint"},{"name":"autoextend_size","type":"bigint"},{"name":"creation_time","type":"varbinary(0)"},{"name":"last_update_time","type":"varbinary(0)"},{"name":"last_access_time","type":"varbinary(0)"},{"name":"recover_time","type":"varbinary(0)"},{"name":"transaction_counter","type":"varbinary(0)"},{"name":"version","type":"bigint"},{"name":"row_format","type":"varchar(256)"},{"name":"table_rows","type":"varbinary(0)"},{"name":"avg_row_length","type":"varbinary(0)"},{"name":"data_length","type":"varbinary(0)"},{"name":"max_data_length","type":"varbinary(0)"},{"name":"index_length","type":"varbinary(0)"},{"name":"data_free","type":"bigint"},{"name":"create_time","type":"varbinary(0)"},{"name":"update_time","type":"varbinary(0)"},{"name":"check_time","type":"varbinary(0)"},{"name":"checksum","type":"varbinary(0)"},{"name":"status","type":"varchar(256)"},{"name":"extra","type":"varchar(256)"}]}
{"catalog":"def","schema":"information_schema","name":"innodb_buffer_page","kind":"v","columns":[{"name":"pool_id","type":"bigint unsigned","not_null":true},{"name":"block_id","type":"bigint unsigned","not_null":true},{"name":"space","type":"bigint unsigned","not_null":true},{"name":"page_number","type":"bigint unsigned","not_null":true},{"name":"page_type","type":"varchar(64)"},{"name":"flush_type","type":"bigint unsigned","not_null":true},{"name":"fix_count","type":"bigint unsigned","not_null":true},{"name":"is_hashed","type":"varchar(3)"},{"name":"newest_modification","type":"bigint unsigned","not_null":true},{"name":"oldest_modification","type":"bigint unsigned","not_null":true},{"name":"access_time","type":"bigint unsigned","not_null":true},{"name":"table_name","type":"varchar(1024)"},{"name":"index_name","type":"varchar(1024)"},{"name":"number_records","type":"bigint unsigned","not_null":true},{"name":"data_size","type":"bigint unsigned","not_null":true},{"name":"compressed_size","type":"bigint unsigned","not_null":true},{"name":"page_state","type":"varchar(64)"},{"name":"io_fix","type":"varchar(64)"},{"name":"is_old","type":"varchar(3)"},{"name":"free_page_clock","type":"bigint unsigned","not_null":true},{"name":"is_stale","type":"varchar(3)"}]}
{"catalog":"def","schema":"information_schema","name":"innodb_buffer_page_lru","kind":"v","columns":[{"name":"pool_id","type":"bigint unsigned","not_null":true},{"name":"lru_position","type":"bigint unsigned","not_null":true},{"name":"space","type":"bigint unsigned","not_null":true},{"name":"page_number","type":"bigint unsigned","not_null":true},{"name":"page_type","type":"varchar(64)"},{"name":"flush_type","type":"bigint unsigned","not_null":true},{"name":"fix_count","type":"bigint unsigned","not_null":true},{"name":"is_hashed","type":"varchar(3)"},{"name":"newest_modification","type":"bigint unsigned","not_null":true},{"name":"oldest_modification","type":"bigint unsigned","not_null":true},{"name":"access_time","type":"bigint unsigned","not_null":true},{"name":"table_name","type":"varchar(1024)"},{"name":"index_name","type":"varchar(1024)"},{"name":"number_records","type":"bigint unsigned","not_null":true},{"name":"data_size","type":"bigint unsigned","not_null":true},{"name":"compressed_size","type":"bigint unsigned","not_null":true},{"name":"compressed","type":"varchar(3)"},{"name":"io_fix","type":"varchar(64)"},{"name":"is_old","type":"varchar(3)"},{"name":"free_page_clock","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_buffer_pool_stats","kind":"v","columns":[{"name":"pool_id","type":"bigint unsigned","not_null":true},{"name":"pool_size","type":"bigint unsigned","not_null":true},{"name":"free_buffers","type":"bigint unsigned","not_null":true},{"name":"database_pages","type":"bigint unsigned","not_null":true},{"name":"old_database_pages","type":"bigint unsigned","not_null":true},{"name":"modified_database_pages","type":"bigint unsigned","not_null":true},{"name":"pending_decompress","type":"bigint unsigned","not_null":true},{"name":"pending_reads","type":"bigint unsigned","not_null":true},{"name":"pending_flush_lru","type":"bigint unsigned","not_null":true},{"name":"pending_flush_list","type":"bigint unsigned","not_null":true},{"name":"pages_made_young","type":"bigint unsigned","not_null":true},{"name":"pages_not_made_young","type":"bigint unsigned","not_null":true},{"name":"pages_made_young_rate","type":"float(12,0)","not_null":true},{"name":"pages_made_not_young_rate","type":"float(12,0)","not_null":true},{"name":"number_pages_read","type":"bigint unsigned","not_null":true},{"name":"number_pages_created","type":"bigint unsigned","not_null":true},{"name":"number_pages_written","type":"bigint unsigned","not_null":true},{"name":"pages_read_rate","type":"float(12,0)","not_null":true},{"name":"pages_create_rate","type":"float(12,0)","not_null":true},{"name":"pages_written_rate","type":"float(12,0)","not_null":true},{"name":"number_pages_get","type":"bigint unsigned","not_null":true},{"name":"hit_rate","type":"bigint unsigned","not_null":true},{"name":"young_make_per_thousand_gets","type":"bigint unsigned","not_null":true},{"name":"not_young_make_per_thousand_gets","type":"bigint unsigned","not_null":true},{"name":"number_pages_read_ahead","type":"bigint unsigned","not_null":true},{"name":"number_read_ahead_evicted","type":"bigint unsigned","not_null":true},{"name":"read_ahead_rate","type":"float(12,0)","not_null":true},{"name":"read_ahead_evicted_rate","type":"float(12,0)","not_null":true},{"name":"lru_io_total","type":"bigint unsigned","not_null":true},{"name":"lru_io_current","type":"bigint unsigned","not_null":true},{"name":"uncompress_total","type":"bigint unsigned","not_null":true},{"name":"uncompress_current","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cached_indexes","kind":"v","columns":[{"name":"space_id","type":"int unsigned","not_null":true},{"name":"index_id","type":"bigint unsigned","not_null":true},{"name":"n_cached_pages","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmp","kind":"v","columns":[{"name":"page_size","type":"int","not_null":true},{"name":"compress_ops","type":"int","not_null":true},{"name":"compress_ops_ok","type":"int","not_null":true},{"name":"compress_time","type":"int","not_null":true},{"name":"uncompress_ops","type":"int","not_null":true},{"name":"uncompress_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmpmem","kind":"v","columns":[{"name":"page_size","type":"int","not_null":true},{"name":"buffer_pool_instance","type":"int","not_null":true},{"name":"pages_used","type":"int","not_null":true},{"name":"pages_free","type":"int","not_null":true},{"name":"relocation_ops","type":"bigint","not_null":true},{"name":"relocation_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmpmem_reset","kind":"v","columns":[{"name":"page_size","type":"int","not_null":true},{"name":"buffer_pool_instance","type":"int","not_null":true},{"name":"pages_used","type":"int","not_null":true},{"name":"pages_free","type":"int","not_null":true},{"name":"relocation_ops","type":"bigint","not_null":true},{"name":"relocation_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmp_per_index","kind":"v","columns":[{"name":"database_name","type":"varchar(192)","not_null":true},{"name":"table_name","type":"varchar(192)","not_null":true},{"name":"index_name","type":"varchar(192)","not_null":true},{"name":"compress_ops","type":"int","not_null":true},{"name":"compress_ops_ok","type":"int","not_null":true},{"name":"compress_time","type":"int","not_null":true},{"name":"uncompress_ops","type":"int","not_null":true},{"name":"uncompress_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmp_per_index_reset","kind":"v","columns":[{"name":"database_name","type":"varchar(192)","not_null":true},{"name":"table_name","type":"varchar(192)","not_null":true},{"name":"index_name","type":"varchar(192)","not_null":true},{"name":"compress_ops","type":"int","not_null":true},{"name":"compress_ops_ok","type":"int","not_null":true},{"name":"compress_time","type":"int","not_null":true},{"name":"uncompress_ops","type":"int","not_null":true},{"name":"uncompress_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_cmp_reset","kind":"v","columns":[{"name":"page_size","type":"int","not_null":true},{"name":"compress_ops","type":"int","not_null":true},{"name":"compress_ops_ok","type":"int","not_null":true},{"name":"compress_time","type":"int","not_null":true},{"name":"uncompress_ops","type":"int","not_null":true},{"name":"uncompress_time","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_columns","kind":"v","columns":[{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"name","type":"varchar(193)","not_null":true},{"name":"pos","type":"bigint unsigned","not_null":true},{"name":"mtype","type":"int","not_null":true},{"name":"prtype","type":"int","not_null":true},{"name":"len","type":"int","not_null":true},{"name":"has_default","type":"int","not_null":true},{"name":"default_value","type":"text"}]}
{"catalog":"def","schema":"information_schema","name":"innodb_datafiles","kind":"v","columns":[{"name":"space","type":"varbinary(256)"},{"name":"path","type":"varchar(512)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_fields","kind":"v","columns":[{"name":"index_id","type":"varbinary(256)"},{"name":"name","type":"varchar(64)","not_null":true},{"name":"pos","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_foreign","kind":"v","columns":[{"name":"id","type":"varchar(129)"},{"name":"for_name","type":"varchar(129)"},{"name":"ref_name","type":"varchar(129)"},{"name":"n_cols","type":"bigint","not_null":true},{"name":"type","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_foreign_cols","kind":"v","columns":[{"name":"id","type":"varchar(129)"},{"name":"for_col_name","type":"varchar(64)","not_null":true},{"name":"ref_col_name","type":"varchar(64)","not_null":true},{"name":"pos","type":"int unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_being_deleted","kind":"v","columns":[{"name":"doc_id","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_config","kind":"v","columns":[{"name":"key","type":"varchar(193)","not_null":true},{"name":"value","type":"varchar(193)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_default_stopword","kind":"v","columns":[{"name":"value","type":"varchar(18)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_deleted","kind":"v","columns":[{"name":"doc_id","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_index_cache","kind":"v","columns":[{"name":"word","type":"varchar(337)","not_null":true},{"name":"first_doc_id","type":"bigint unsigned","not_null":true},{"name":"last_doc_id","type":"bigint unsigned","not_null":true},{"name":"doc_count","type":"bigint unsigned","not_null":true},{"name":"doc_id","type":"bigint unsigned","not_null":true},{"name":"position","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_ft_index_table","kind":"v","columns":[{"name":"word","type":"varchar(337)","not_null":true},{"name":"first_doc_id","type":"bigint unsigned","not_null":true},{"name":"last_doc_id","type":"bigint unsigned","not_null":true},{"name":"doc_count","type":"bigint unsigned","not_null":true},{"name":"doc_id","type":"bigint unsigned","not_null":true},{"name":"position","type":"bigint unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_indexes","kind":"v","columns":[{"name":"index_id","type":"bigint unsigned","not_null":true},{"name":"name","type":"varchar(193)","not_null":true},{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"type","type":"int","not_null":true},{"name":"n_fields","type":"int","not_null":true},{"name":"page_no","type":"int","not_null":true},{"name":"space","type":"int","not_null":true},{"name":"merge_threshold","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_metrics","kind":"v","columns":[{"name":"name","type":"varchar(193)","not_null":true},{"name":"subsystem","type":"varchar(193)","not_null":true},{"name":"count","type":"bigint","not_null":true},{"name":"max_count","type":"bigint"},{"name":"min_count","type":"bigint"},{"name":"avg_count","type":"float(12,0)"},{"name":"count_reset","type":"bigint","not_null":true},{"name":"max_count_reset","type":"bigint"},{"name":"min_count_reset","type":"bigint"},{"name":"avg_count_reset","type":"float(12,0)"},{"name":"time_enabled","type":"datetime"},{"name":"time_disabled","type":"datetime"},{"name":"time_elapsed","type":"bigint"},{"name":"time_reset","type":"datetime"},{"name":"status","type":"varchar(193)","not_null":true},{"name":"type","type":"varchar(193)","not_null":true},{"name":"comment","type":"varchar(193)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_session_temp_tablespaces","kind":"v","columns":[{"name":"id","type":"int unsigned","not_null":true},{"name":"space","type":"int unsigned","not_null":true},{"name":"path","type":"varchar(4001)","not_null":true},{"name":"size","type":"bigint unsigned","not_null":true},{"name":"state","type":"varchar(192)","not_null":true},{"name":"purpose","type":"varchar(192)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_tables","kind":"v","columns":[{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"name","type":"varchar(655)","not_null":true},{"name":"flag","type":"int","not_null":true},{"name":"n_cols","type":"int","not_null":true},{"name":"space","type":"bigint","not_null":true},{"name":"row_format","type":"varchar(12)"},{"name":"zip_page_size","type":"int unsigned","not_null":true},{"name":"space_type","type":"varchar(10)"},{"name":"instant_cols","type":"int","not_null":true},{"name":"total_row_versions","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_tablespaces","kind":"v","columns":[{"name":"space","type":"int unsigned","not_null":true},{"name":"name","type":"varchar(655)","not_null":true},{"name":"flag","type":"int unsigned","not_null":true},{"name":"row_format","type":"varchar(22)"},{"name":"page_size","type":"int unsigned","not_null":true},{"name":"zip_page_size","type":"int unsigned","not_null":true},{"name":"space_type","type":"varchar(10)"},{"name":"fs_block_size","type":"int unsigned","not_null":true},{"name":"file_size","type":"bigint unsigned","not_null":true},{"name":"allocated_size","type":"bigint unsigned","not_null":true},{"name":"autoextend_size","type":"bigint unsigned","not_null":true},{"name":"server_version","type":"varchar(10)"},{"name":"space_version","type":"int unsigned","not_null":true},{"name":"encryption","type":"varchar(1)"},{"name":"state","type":"varchar(10)"}]}
{"catalog":"def","schema":"information_schema","name":"innodb_tablespaces_brief","kind":"v","columns":[{"name":"space","type":"varbinary(256)"},{"name":"name","type":"varchar(268)","not_null":true},{"name":"path","type":"varchar(512)","not_null":true},{"name":"flag","type":"varbinary(256)"},{"name":"space_type","type":"varchar(7)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_tablestats","kind":"v","columns":[{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"name","type":"varchar(193)","not_null":true},{"name":"stats_initialized","type":"varchar(193)","not_null":true},{"name":"num_rows","type":"bigint unsigned","not_null":true},{"name":"clust_index_size","type":"bigint unsigned","not_null":true},{"name":"other_index_size","type":"bigint unsigned","not_null":true},{"name":"modified_counter","type":"bigint unsigned","not_null":true},{"name":"autoinc","type":"bigint unsigned","not_null":true},{"name":"ref_count","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_temp_table_info","kind":"v","columns":[{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"name","type":"varchar(64)"},{"name":"n_cols","type":"int unsigned","not_null":true},{"name":"space","type":"int unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"innodb_trx","kind":"v","columns":[{"name":"trx_id","type":"bigint unsigned","not_null":true},{"name":"trx_state","type":"varchar(13)","not_null":true},{"name":"trx_started","type":"datetime","not_null":true},{"name":"trx_requested_lock_id","type":"varchar(126)"},{"name":"trx_wait_started","type":"datetime"},{"name":"trx_weight","type":"bigint unsigned","not_null":true},{"name":"trx_mysql_thread_id","type":"bigint unsigned","not_null":true},{"name":"trx_query","type":"varchar(1024)"},{"name":"trx_operation_state","type":"varchar(64)"},{"name":"trx_tables_in_use","type":"bigint unsigned","not_null":true},{"name":"trx_tables_locked","type":"bigint unsigned","not_null":true},{"name":"trx_lock_structs","type":"bigint unsigned","not_null":true},{"name":"trx_lock_memory_bytes","type":"bigint unsigned","not_null":true},{"name":"trx_rows_locked","type":"bigint unsigned","not_null":true},{"name":"trx_rows_modified","type":"bigint unsigned","not_null":true},{"name":"trx_concurrency_tickets","type":"bigint unsigned","not_null":true},{"name":"trx_isolation_level","type":"varchar(16)","not_null":true},{"name":"trx_unique_checks","type":"int","not_null":true},{"name":"trx_foreign_key_checks","type":"int","not_null":true},{"name":"trx_last_foreign_key_error","type":"varchar(256)"},{"name":"trx_adaptive_hash_latched","type":"int","not_null":true},{"name":"trx_adaptive_hash_timeout","type":"bigint unsigned","not_null":true},{"name":"trx_is_read_only","type":"int","not_null":true},{"name":"trx_autocommit_non_locking","type":"int","not_null":true},{"name":"trx_schedule_weight","type":"bigint unsigned"}]}
{"catalog":"def","schema":"information_schema","name":"innodb_virtual","kind":"v","columns":[{"name":"table_id","type":"bigint unsigned","not_null":true},{"name":"pos","type":"int unsigned","not_null":true},{"name":"base_pos","type":"int unsigned","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"json_duality_views","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"definer","type":"varchar(288)"},{"name":"security_type","type":"varchar(7)"},{"name":"json_column_name","type":"varchar(64)","not_null":true},{"name":"root_table_catalog","type":"varchar(64)"},{"name":"root_table_schema","type":"varchar(64)"},{"name":"root_table_name","type":"varchar(64)"},{"name":"allow_insert","type":"varchar(4)"},{"name":"allow_update","type":"varchar(4)"},{"name":"allow_delete","type":"varchar(4)"},{"name":"read_only","type":"varchar(4)"},{"name":"status","type":"varchar(7)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"json_duality_view_columns","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"referenced_table_catalog","type":"varchar(64)"},{"name":"referenced_table_schema","type":"varchar(64)"},{"name":"referenced_table_name","type":"varchar(64)"},{"name":"is_root_table","type":"tinyint"},{"name":"referenced_table_id","type":"int"},{"name":"referenced_column_name","type":"varchar(64)"},{"name":"json_key_name","type":"varchar(64)"},{"name":"allow_insert","type":"tinyint"},{"name":"allow_update","type":"tinyint"},{"name":"allow_delete","type":"tinyint"},{"name":"read_only","type":"tinyint"}]}
{"catalog":"def","schema":"information_schema","name":"json_duality_view_links","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"parent_table_catalog","type":"varchar(64)"},{"name":"parent_table_schema","type":"varchar(64)"},{"name":"parent_table_name","type":"varchar(64)"},{"name":"child_table_catalog","type":"varchar(64)"},{"name":"child_table_schema","type":"varchar(64)"},{"name":"child_table_name","type":"varchar(64)"},{"name":"parent_column_name","type":"varchar(64)"},{"name":"child_column_name","type":"varchar(64)"},{"name":"join_type","type":"varchar(64)"},{"name":"json_key_name","type":"varchar(64)"}]}
{"catalog":"def","schema":"information_schema","name":"json_duality_view_tables","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"referenced_table_catalog","type":"varchar(64)"},{"name":"referenced_table_schema","type":"varchar(64)"},{"name":"referenced_table_name","type":"varchar(64)"},{"name":"where_clause","type":"varchar(64)"},{"name":"allow_insert","type":"tinyint"},{"name":"allow_update","type":"tinyint"},{"name":"allow_delete","type":"tinyint"},{"name":"read_only","type":"tinyint"},{"name":"is_root_table","type":"tinyint"},{"name":"referenced_table_id","type":"int"},{"name":"referenced_table_parent_id","type":"int"},{"name":"referenced_table_parent_relationship","type":"varchar(64)"}]}
{"catalog":"def","schema":"information_schema","name":"keywords","kind":"v","columns":[{"name":"word","type":"varchar(128)"},{"name":"reserved","type":"int"}]}
{"catalog":"def","schema":"information_schema","name":"key_column_usage","kind":"v","columns":[{"name":"constraint_catalog","type":"varchar(64)","not_null":true},{"name":"constraint_schema","type":"varchar(64)","not_null":true},{"name":"constraint_name","type":"varchar(64)"},{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)"},{"name":"ordinal_position","type":"int unsigned","not_null":true},{"name":"position_in_unique_constraint","type":"int unsigned"},{"name":"referenced_table_schema","type":"varchar(64)"},{"name":"referenced_table_name","type":"varchar(64)"},{"name":"referenced_column_name","type":"varchar(64)"}]}
{"catalog":"def","schema":"information_schema","name":"libraries","kind":"v","columns":[{"name":"library_catalog","type":"varchar(64)","not_null":true},{"name":"library_schema","type":"varchar(64)","not_null":true},{"name":"library_name","type":"varchar(64)","not_null":true},{"name":"library_definition","type":"longtext"},{"name":"language","type":"varchar(64)","not_null":true},{"name":"created","type":"timestamp","not_null":true},{"name":"last_altered","type":"timestamp","not_null":true},{"name":"sql_mode","type":"set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','NOT_USED_9','NOT_USED_10','NOT_USED_11','NOT_USED_12','NOT_USED_13','NOT_USED_14','NOT_USED_15','NOT_USED_16','NOT_USED_17','NOT_USED_18','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','ALLOW_INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NOT_USED_29','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','TIME_TRUNCATE_FRACTIONAL','INTERPRET_UTF8_AS_UTF8MB4')","not_null":true},{"name":"library_comment","type":"text","not_null":true},{"name":"creator","type":"varchar(288)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"optimizer_trace","kind":"v","columns":[{"name":"query","type":"varchar(65535)","not_null":true},{"name":"trace","type":"varchar(65535)","not_null":true},{"name":"missing_bytes_beyond_max_mem_size","type":"int","not_null":true},{"name":"insufficient_privileges","type":"tinyint(1)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"parameters","kind":"v","columns":[{"name":"specific_catalog","type":"varchar(64)","not_null":true},{"name":"specific_schema","type":"varchar(64)","not_null":true},{"name":"specific_name","type":"varchar(64)","not_null":true},{"name":"ordinal_position","type":"bigint unsigned","not_null":true},{"name":"parameter_mode","type":"varchar(5)"},{"name":"parameter_name","type":"varchar(64)"},{"name":"data_type","type":"longtext"},{"name":"character_maximum_length","type":"bigint"},{"name":"character_octet_length","type":"bigint"},{"name":"numeric_precision","type":"int unsigned"},{"name":"numeric_scale","type":"bigint"},{"name":"datetime_precision","type":"int unsigned"},{"name":"character_set_name","type":"varchar(64)"},{"name":"collation_name","type":"varchar(64)"},{"name":"dtd_identifier","type":"mediumtext","not_null":true},{"name":"routine_type","type":"enum('FUNCTION','PROCEDURE','LIBRARY')","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"partitions","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"partition_name","type":"varchar(64)"},{"name":"subpartition_name","type":"varchar(64)"},{"name":"partition_ordinal_position","type":"int unsigned"},{"name":"subpartition_ordinal_position","type":"int unsigned"},{"name":"secondary_load","type":"varchar(1)"},{"name":"partition_method","type":"varchar(13)"},{"name":"subpartition_method","type":"varchar(13)"},{"name":"partition_expression","type":"varchar(2048)"},{"name":"subpartition_expression","type":"varchar(2048)"},{"name":"partition_description","type":"text"},{"name":"table_rows","type":"bigint unsigned"},{"name":"avg_row_length","type":"bigint unsigned"},{"name":"data_length","type":"bigint unsigned"},{"name":"max_data_length","type":"bigint unsigned"},{"name":"index_length","type":"bigint unsigned"},{"name":"data_free","type":"bigint unsigned"},{"name":"create_time","type":"timestamp","not_null":true},{"name":"update_time","type":"datetime"},{"name":"check_time","type":"datetime"},{"name":"checksum","type":"bigint"},{"name":"partition_comment","type":"text","not_null":true},{"name":"nodegroup","type":"varchar(256)"},{"name":"tablespace_name","type":"varchar(268)"}]}
{"catalog":"def","schema":"information_schema","name":"plugins","kind":"v","columns":[{"name":"plugin_name","type":"varchar(64)","not_null":true},{"name":"plugin_version","type":"varchar(20)","not_null":true},{"name":"plugin_status","type":"varchar(10)","not_null":true},{"name":"plugin_type","type":"varchar(80)","not_null":true},{"name":"plugin_type_version","type":"varchar(20)","not_null":true},{"name":"plugin_library","type":"varchar(64)"},{"name":"plugin_library_version","type":"varchar(20)"},{"name":"plugin_author","type":"varchar(64)"},{"name":"plugin_description","type":"varchar(65535)"},{"name":"plugin_license","type":"varchar(80)"},{"name":"load_option","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"processlist","kind":"v","columns":[{"name":"id","type":"bigint unsigned","not_null":true},{"name":"user","type":"varchar(32)","not_null":true},{"name":"host","type":"varchar(261)","not_null":true},{"name":"db","type":"varchar(64)"},{"name":"command","type":"varchar(16)","not_null":true},{"name":"time","type":"int","not_null":true},{"name":"state","type":"varchar(64)"},{"name":"info","type":"varchar(65535)"}]}
{"catalog":"def","schema":"information_schema","name":"profiling","kind":"v","columns":[{"name":"query_id","type":"int","not_null":true},{"name":"seq","type":"int","not_null":true},{"name":"state","type":"varchar(30)","not_null":true},{"name":"duration","type":"decimal(905,0)","not_null":true},{"name":"cpu_user","type":"decimal(905,0)"},{"name":"cpu_system","type":"decimal(905,0)"},{"name":"context_voluntary","type":"int"},{"name":"context_involuntary","type":"int"},{"name":"block_ops_in","type":"int"},{"name":"block_ops_out","type":"int"},{"name":"messages_sent","type":"int"},{"name":"messages_received","type":"int"},{"name":"page_faults_major","type":"int"},{"name":"page_faults_minor","type":"int"},{"name":"swaps","type":"int"},{"name":"source_function","type":"varchar(30)"},{"name":"source_file","type":"varchar(20)"},{"name":"source_line","type":"int"}]}
{"catalog":"def","schema":"information_schema","name":"referential_constraints","kind":"v","columns":[{"name":"constraint_catalog","type":"varchar(64)","not_null":true},{"name":"constraint_schema","type":"varchar(64)","not_null":true},{"name":"constraint_name","type":"varchar(64)"},{"name":"unique_constraint_catalog","type":"varchar(64)","not_null":true},{"name":"unique_constraint_schema","type":"varchar(64)","not_null":true},{"name":"unique_constraint_name","type":"varchar(64)"},{"name":"match_option","type":"enum('NONE','PARTIAL','FULL')","not_null":true},{"name":"update_rule","type":"enum('NO ACTION','RESTRICT','CASCADE','SET NULL','SET DEFAULT')","not_null":true},{"name":"delete_rule","type":"enum('NO ACTION','RESTRICT','CASCADE','SET NULL','SET DEFAULT')","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"referenced_table_name","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"resource_groups","kind":"v","columns":[{"name":"resource_group_name","type":"varchar(64)","not_null":true},{"name":"resource_group_type","type":"enum('SYSTEM','USER')","not_null":true},{"name":"resource_group_enabled","type":"tinyint(1)","not_null":true},{"name":"vcpu_ids","type":"blob"},{"name":"thread_priority","type":"int","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"role_column_grants","kind":"v","columns":[{"name":"grantor","type":"varchar(97)"},{"name":"grantor_host","type":"varchar(256)"},{"name":"grantee","type":"char(32)","not_null":true},{"name":"grantee_host","type":"char(255)","not_null":true},{"name":"table_catalog","type":"varchar(3)","not_null":true},{"name":"table_schema","type":"char(64)","not_null":true},{"name":"table_name","type":"char(64)","not_null":true},{"name":"column_name","type":"char(64)","not_null":true},{"name":"privilege_type","type":"set('Select','Insert','Update','References')","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"role_routine_grants","kind":"v","columns":[{"name":"grantor","type":"varchar(97)"},{"name":"grantor_host","type":"varchar(256)"},{"name":"grantee","type":"char(32)","not_null":true},{"name":"grantee_host","type":"char(255)","not_null":true},{"name":"specific_catalog","type":"varchar(3)","not_null":true},{"name":"specific_schema","type":"char(64)","not_null":true},{"name":"specific_name","type":"char(64)","not_null":true},{"name":"routine_catalog","type":"varchar(3)","not_null":true},{"name":"routine_schema","type":"char(64)","not_null":true},{"name":"routine_name","type":"char(64)","not_null":true},{"name":"privilege_type","type":"set('Execute','Alter Routine','Grant')","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"role_table_grants","kind":"v","columns":[{"name":"grantor","type":"varchar(97)"},{"name":"grantor_host","type":"varchar(256)"},{"name":"grantee","type":"char(32)","not_null":true},{"name":"grantee_host","type":"char(255)","not_null":true},{"name":"table_catalog","type":"varchar(3)","not_null":true},{"name":"table_schema","type":"char(64)","not_null":true},{"name":"table_name","type":"char(64)","not_null":true},{"name":"privilege_type","type":"set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"routines","kind":"v","columns":[{"name":"specific_name","type":"varchar(64)","not_null":true},{"name":"routine_catalog","type":"varchar(64)","not_null":true},{"name":"routine_schema","type":"varchar(64)","not_null":true},{"name":"routine_name","type":"varchar(64)","not_null":true},{"name":"routine_type","type":"enum('FUNCTION','PROCEDURE','LIBRARY')","not_null":true},{"name":"data_type","type":"longtext"},{"name":"character_maximum_length","type":"bigint"},{"name":"character_octet_length","type":"bigint"},{"name":"numeric_precision","type":"int unsigned"},{"name":"numeric_scale","type":"int unsigned"},{"name":"datetime_precision","type":"int unsigned"},{"name":"character_set_name","type":"varchar(64)"},{"name":"collation_name","type":"varchar(64)"},{"name":"dtd_identifier","type":"longtext"},{"name":"routine_body","type":"varchar(8)","not_null":true},{"name":"routine_definition","type":"longtext"},{"name":"external_name","type":"varbinary(0)"},{"name":"external_language","type":"varchar(64)","not_null":true},{"name":"parameter_style","type":"varchar(3)","not_null":true},{"name":"is_deterministic","type":"varchar(3)","not_null":true},{"name":"sql_data_access","type":"enum('CONTAINS SQL','NO SQL','READS SQL DATA','MODIFIES SQL DATA')","not_null":true},{"name":"sql_path","type":"varbinary(0)"},{"name":"security_type","type":"enum('DEFAULT','INVOKER','DEFINER')","not_null":true},{"name":"created","type":"timestamp","not_null":true},{"name":"last_altered","type":"timestamp","not_null":true},{"name":"sql_mode","type":"set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','NOT_USED_9','NOT_USED_10','NOT_USED_11','NOT_USED_12','NOT_USED_13','NOT_USED_14','NOT_USED_15','NOT_USED_16','NOT_USED_17','NOT_USED_18','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','ALLOW_INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NOT_USED_29','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','TIME_TRUNCATE_FRACTIONAL','INTERPRET_UTF8_AS_UTF8MB4')","not_null":true},{"name":"routine_comment","type":"text","not_null":true},{"name":"definer","type":"varchar(288)","not_null":true},{"name":"character_set_client","type":"varchar(64)","not_null":true},{"name":"collation_connection","type":"varchar(64)","not_null":true},{"name":"database_collation","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"routine_libraries","kind":"v","columns":[{"name":"routine_catalog","type":"varchar(64)","not_null":true},{"name":"routine_schema","type":"varchar(64)","not_null":true},{"name":"routine_name","type":"varchar(64)","not_null":true},{"name":"routine_type","type":"enum('FUNCTION','PROCEDURE','LIBRARY')","not_null":true},{"name":"library_catalog","type":"varchar(64)"},{"name":"library_schema","type":"varchar(100)"},{"name":"library_name","type":"varchar(100)"},{"name":"library_version","type":"varchar(100)"}]}
{"catalog":"def","schema":"information_schema","name":"schemata","kind":"v","columns":[{"name":"catalog_name","type":"varchar(64)","not_null":true},{"name":"schema_name","type":"varchar(64)","not_null":true},{"name":"default_character_set_name","type":"varchar(64)","not_null":true},{"name":"default_collation_name","type":"varchar(64)","not_null":true},{"name":"sql_path","type":"varbinary(0)"},{"name":"default_encryption","type":"enum('NO','YES')","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"schemata_extensions","kind":"v","columns":[{"name":"catalog_name","type":"varchar(64)","not_null":true},{"name":"schema_name","type":"varchar(64)","not_null":true},{"name":"options","type":"varchar(256)"}]}
{"catalog":"def","schema":"information_schema","name":"schema_privileges","kind":"v","columns":[{"name":"grantee","type":"varchar(292)","not_null":true},{"name":"table_catalog","type":"varchar(512)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"privilege_type","type":"varchar(64)","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"statistics","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"non_unique","type":"int","not_null":true},{"name":"index_schema","type":"varchar(64)","not_null":true},{"name":"index_name","type":"varchar(64)"},{"name":"seq_in_index","type":"int unsigned","not_null":true},{"name":"column_name","type":"varchar(64)"},{"name":"collation","type":"varchar(1)"},{"name":"cardinality","type":"bigint"},{"name":"sub_part","type":"bigint"},{"name":"packed","type":"varbinary(0)"},{"name":"nullable","type":"varchar(3)","not_null":true},{"name":"index_type","type":"varchar(11)","not_null":true},{"name":"comment","type":"varchar(8)","not_null":true},{"name":"index_comment","type":"varchar(2048)","not_null":true},{"name":"is_visible","type":"varchar(3)","not_null":true},{"name":"expression","type":"longtext"}]}
{"catalog":"def","schema":"information_schema","name":"st_geometry_columns","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"column_name","type":"varchar(64)"},{"name":"srs_name","type":"varchar(80)"},{"name":"srs_id","type":"int unsigned"},{"name":"geometry_type_name","type":"longtext"}]}
{"catalog":"def","schema":"information_schema","name":"st_spatial_reference_systems","kind":"v","columns":[{"name":"srs_name","type":"varchar(80)","not_null":true},{"name":"srs_id","type":"int unsigned","not_null":true},{"name":"organization","type":"varchar(256)"},{"name":"organization_coordsys_id","type":"int unsigned"},{"name":"definition","type":"varchar(4096)","not_null":true},{"name":"description","type":"varchar(2048)"}]}
{"catalog":"def","schema":"information_schema","name":"st_units_of_measure","kind":"v","columns":[{"name":"unit_name","type":"varchar(255)"},{"name":"unit_type","type":"varchar(7)"},{"name":"conversion_factor","type":"double"},{"name":"description","type":"varchar(255)"}]}
{"catalog":"def","schema":"information_schema","name":"tables","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"table_type","type":"enum('BASE TABLE','VIEW','SYSTEM VIEW')","not_null":true},{"name":"engine","type":"varchar(64)"},{"name":"version","type":"int"},{"name":"row_format","type":"enum('Fixed','Dynamic','Compressed','Redundant','Compact','Paged')"},{"name":"table_rows","type":"bigint unsigned"},{"name":"avg_row_length","type":"bigint unsigned"},{"name":"data_length","type":"bigint unsigned"},{"name":"max_data_length","type":"bigint unsigned"},{"name":"index_length","type":"bigint unsigned"},{"name":"data_free","type":"bigint unsigned"},{"name":"auto_increment","type":"bigint unsigned"},{"name":"create_time","type":"timestamp","not_null":true},{"name":"update_time","type":"datetime"},{"name":"check_time","type":"datetime"},{"name":"table_collation","type":"varchar(64)"},{"name":"checksum","type":"bigint"},{"name":"create_options","type":"varchar(256)"},{"name":"table_comment","type":"text"}]}
{"catalog":"def","schema":"information_schema","name":"tablespaces_extensions","kind":"v","columns":[{"name":"tablespace_name","type":"varchar(268)","not_null":true},{"name":"engine_attribute","type":"json"}]}
{"catalog":"def","schema":"information_schema","name":"tables_extensions","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"engine_attribute","type":"json"},{"name":"secondary_engine_attribute","type":"json"}]}
{"catalog":"def","schema":"information_schema","name":"table_constraints","kind":"v","columns":[{"name":"constraint_catalog","type":"varchar(64)","not_null":true},{"name":"constraint_schema","type":"varchar(64)","not_null":true},{"name":"constraint_name","type":"varchar(64)"},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"constraint_type","type":"varchar(11)","not_null":true},{"name":"enforced","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"table_constraints_extensions","kind":"v","columns":[{"name":"constraint_catalog","type":"varchar(64)","not_null":true},{"name":"constraint_schema","type":"varchar(64)","not_null":true},{"name":"constraint_name","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"engine_attribute","type":"json"},{"name":"secondary_engine_attribute","type":"json"}]}
{"catalog":"def","schema":"information_schema","name":"table_privileges","kind":"v","columns":[{"name":"grantee","type":"varchar(292)","not_null":true},{"name":"table_catalog","type":"varchar(512)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"privilege_type","type":"varchar(64)","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"triggers","kind":"v","columns":[{"name":"trigger_catalog","type":"varchar(64)","not_null":true},{"name":"trigger_schema","type":"varchar(64)","not_null":true},{"name":"trigger_name","type":"varchar(64)","not_null":true},{"name":"event_manipulation","type":"enum('INSERT','UPDATE','DELETE')","not_null":true},{"name":"event_object_catalog","type":"varchar(64)","not_null":true},{"name":"event_object_schema","type":"varchar(64)","not_null":true},{"name":"event_object_table","type":"varchar(64)","not_null":true},{"name":"action_order","type":"int unsigned","not_null":true},{"name":"action_condition","type":"varbinary(0)"},{"name":"action_statement","type":"longtext","not_null":true},{"name":"action_orientation","type":"varchar(3)","not_null":true},{"name":"action_timing","type":"enum('BEFORE','AFTER')","not_null":true},{"name":"action_reference_old_table","type":"varbinary(0)"},{"name":"action_reference_new_table","type":"varbinary(0)"},{"name":"action_reference_old_row","type":"varchar(3)","not_null":true},{"name":"action_reference_new_row","type":"varchar(3)","not_null":true},{"name":"created","type":"timestamp(2)","not_null":true},{"name":"sql_mode","type":"set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','NOT_USED_9','NOT_USED_10','NOT_USED_11','NOT_USED_12','NOT_USED_13','NOT_USED_14','NOT_USED_15','NOT_USED_16','NOT_USED_17','NOT_USED_18','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','ALLOW_INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NOT_USED_29','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','TIME_TRUNCATE_FRACTIONAL','INTERPRET_UTF8_AS_UTF8MB4')","not_null":true},{"name":"definer","type":"varchar(288)","not_null":true},{"name":"character_set_client","type":"varchar(64)","not_null":true},{"name":"collation_connection","type":"varchar(64)","not_null":true},{"name":"database_collation","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"user_attributes","kind":"v","columns":[{"name":"user","type":"char(32)","not_null":true},{"name":"host","type":"char(255)","not_null":true},{"name":"attribute","type":"longtext"}]}
{"catalog":"def","schema":"information_schema","name":"user_privileges","kind":"v","columns":[{"name":"grantee","type":"varchar(292)","not_null":true},{"name":"table_catalog","type":"varchar(512)","not_null":true},{"name":"privilege_type","type":"varchar(64)","not_null":true},{"name":"is_grantable","type":"varchar(3)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"views","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"view_definition","type":"longtext"},{"name":"check_option","type":"enum('NONE','LOCAL','CASCADED')"},{"name":"is_updatable","type":"enum('NO','YES')"},{"name":"definer","type":"varchar(288)"},{"name":"security_type","type":"varchar(7)"},{"name":"character_set_client","type":"varchar(64)","not_null":true},{"name":"collation_connection","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"view_routine_usage","kind":"v","columns":[{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true},{"name":"specific_catalog","type":"varchar(64)","not_null":true},{"name":"specific_schema","type":"varchar(64)","not_null":true},{"name":"specific_name","type":"varchar(64)","not_null":true}]}
{"catalog":"def","schema":"information_schema","name":"view_table_usage","kind":"v","columns":[{"name":"view_catalog","type":"varchar(64)","not_null":true},{"name":"view_schema","type":"varchar(64)","not_null":true},{"name":"view_name","type":"varchar(64)","not_null":true},{"name":"table_catalog","type":"varchar(64)","not_null":true},{"name":"table_schema","type":"varchar(64)","not_null":true},{"name":"table_name","type":"varchar(64)","not_null":true}]}

View File

@@ -0,0 +1,39 @@
{"name": "bool", "category": "B", "aliases": ["boolean"]}
{"name": "tinyint", "category": "N"}
{"name": "tinyint unsigned", "category": "N", "base": "tinyint"}
{"name": "smallint", "category": "N"}
{"name": "smallint unsigned", "category": "N", "base": "smallint"}
{"name": "mediumint", "category": "N"}
{"name": "mediumint unsigned", "category": "N", "base": "mediumint"}
{"name": "int", "category": "N", "aliases": ["integer"]}
{"name": "int unsigned", "category": "N", "base": "int", "aliases": ["integer unsigned"]}
{"name": "bigint", "category": "N", "aliases": ["signed", "bigint signed"]}
{"name": "bigint unsigned", "category": "N", "base": "bigint", "aliases": ["unsigned"]}
{"name": "float", "category": "N"}
{"name": "float unsigned", "category": "N", "base": "float"}
{"name": "double", "category": "N", "aliases": ["double precision", "real"]}
{"name": "double unsigned", "category": "N", "base": "double", "aliases": ["double precision unsigned", "real unsigned"]}
{"name": "decimal", "category": "N", "aliases": ["numeric", "dec", "fixed"]}
{"name": "decimal unsigned", "category": "N", "base": "decimal", "aliases": ["numeric unsigned", "dec unsigned", "fixed unsigned"]}
{"name": "bit", "category": "N"}
{"name": "char", "category": "S"}
{"name": "varchar", "category": "S"}
{"name": "tinytext", "category": "S"}
{"name": "text", "category": "S"}
{"name": "mediumtext", "category": "S"}
{"name": "longtext", "category": "S"}
{"name": "enum", "category": "S"}
{"name": "set", "category": "S"}
{"name": "binary", "category": "U"}
{"name": "varbinary", "category": "U"}
{"name": "tinyblob", "category": "U"}
{"name": "blob", "category": "U"}
{"name": "mediumblob", "category": "U"}
{"name": "longblob", "category": "U"}
{"name": "json", "category": "U"}
{"name": "geometry", "category": "U"}
{"name": "date", "category": "D"}
{"name": "datetime", "category": "D"}
{"name": "timestamp", "category": "D"}
{"name": "time", "category": "D"}
{"name": "year", "category": "D"}

View File

@@ -0,0 +1,55 @@
package dolphin
import (
"fmt"
"strings"
pcast "github.com/sqlc-dev/marino/ast"
"github.com/sqlc-dev/marino/format"
"github.com/sqlc-dev/marino/parser"
)
// deparen unwraps parenthesized expressions so a redundant pair of
// parentheses added or dropped by formatting does not change the
// fingerprint. Everything else about the tree survives untouched.
type deparen struct{}
func (v deparen) Enter(n pcast.Node) (pcast.Node, bool) { return n, false }
func (v deparen) Leave(n pcast.Node) (pcast.Node, bool) {
if p, ok := n.(*pcast.ParenthesesExpr); ok {
return p.Expr, true
}
return n, true
}
// Fingerprint reduces a statement to a canonical form that survives changes
// in whitespace, keyword case, quoting style and redundant parentheses —
// and nothing else. Identifier case is preserved: MySQL table names are
// case-sensitive on most servers, so a formatting pass that changes one is
// a semantic change and must not fingerprint equal. fmt uses this as its
// proof that a formatted statement still means what the author wrote; a
// statement whose fingerprint it cannot match is left exactly as written.
func (p *Parser) Fingerprint(sql string) (string, error) {
// A fresh parser: p.pingcap carries per-parse comment state that
// ParseFile is still using.
stmts, _, err := parser.New().Parse(sql, "", "")
if err != nil {
return "", normalizeErr(err)
}
flags := format.RestoreStringSingleQuotes |
format.RestoreKeyWordUppercase |
format.RestoreNameBackQuotes
parts := make([]string, 0, len(stmts))
for _, s := range stmts {
n, ok := s.Accept(deparen{})
if !ok {
return "", fmt.Errorf("fingerprint: rewrite failed")
}
var sb strings.Builder
if err := n.Restore(format.NewRestoreCtx(flags, &sb)); err != nil {
return "", fmt.Errorf("fingerprint: %w", err)
}
parts = append(parts, sb.String())
}
return strings.Join(parts, "; "), nil
}

View File

@@ -0,0 +1,36 @@
package dolphin
// QuoteIdent returns a quoted identifier if it needs quoting.
// MySQL uses backticks for quoting identifiers.
func (p *Parser) QuoteIdent(s string) string {
// For now, don't quote - MySQL is less strict about quoting
return s
}
// TypeName returns the SQL type name for the given namespace and name.
// Handles MySQL-specific type name mappings for formatting.
func (p *Parser) TypeName(ns, name string) string {
if ns != "" {
return ns + "." + name
}
// Map internal type names to MySQL CAST-compatible names for formatting
switch name {
case "bigint unsigned":
return "UNSIGNED"
case "bigint signed":
return "SIGNED"
}
return name
}
// Param returns the parameter placeholder for the given number.
// MySQL uses ? for all parameters (positional).
func (p *Parser) Param(n int, numbered bool) string {
return "?"
}
// Cast returns a type cast expression.
// MySQL uses CAST(expr AS type) syntax.
func (p *Parser) Cast(arg, typeName string) string {
return "CAST(" + arg + " AS " + typeName + ")"
}

View File

@@ -0,0 +1,162 @@
package dolphin
import (
"errors"
"fmt"
"io"
"regexp"
"strconv"
"strings"
"github.com/sqlc-dev/marino/parser"
"github.com/sqlc-dev/sqlc/internal/source"
"github.com/sqlc-dev/sqlc/internal/sql/ast"
"github.com/sqlc-dev/sqlc/internal/sql/sqlerr"
)
func NewParser() *Parser {
return &Parser{pingcap: parser.New()}
}
// NewFormatParser returns the parser sqlc fmt uses. It differs from the
// compiler's parser in one way: identifiers keep the case the author wrote.
// The compiler lowercases them so catalog lookups are case-insensitive, but
// a formatter that prints `Event` as `event` renames a table on the many
// servers where table names are case-sensitive.
func NewFormatParser() *Parser {
return &Parser{pingcap: parser.New(), preserveCase: true}
}
type Parser struct {
pingcap *parser.Parser
preserveCase bool
}
var lineColumn = regexp.MustCompile(`^line (\d+) column (\d+) (.*)`)
func normalizeErr(err error) error {
if err == nil {
return err
}
parts := strings.Split(err.Error(), "\n")
msg := strings.TrimSpace(parts[0] + "\"")
out := lineColumn.FindStringSubmatch(msg)
if len(out) == 4 {
line, lineErr := strconv.Atoi(out[1])
col, colErr := strconv.Atoi(out[2])
if lineErr != nil || colErr != nil {
return errors.New(msg)
}
return &sqlerr.Error{
Message: "syntax error",
Err: errors.New(out[3]),
Line: line,
Column: col,
}
}
return errors.New(msg)
}
func (p *Parser) Parse(r io.Reader) ([]ast.Statement, error) {
f, err := p.ParseFile(r)
if err != nil {
return nil, err
}
// The compiler skips statements sqlc has no node for; the formatter
// must see them, so the filter lives here, not in ParseFile.
var stmts []ast.Statement
for _, stmt := range f.Stmts {
if _, ok := stmt.Raw.Stmt.(*ast.TODO); ok {
continue
}
stmts = append(stmts, stmt)
}
return stmts, nil
}
// ParseFile parses like Parse and also carries the file's comments, which
// marino's lexer records as it scans.
func (p *Parser) ParseFile(r io.Reader) (*ast.File, error) {
blob, err := io.ReadAll(r)
if err != nil {
return nil, err
}
src := string(blob)
stmtNodes, _, err := p.pingcap.Parse(src, "", "")
if err != nil {
return nil, normalizeErr(err)
}
var stmts []ast.Statement
// A statement's text spans from the end of the previous statement
// through its terminator, so it carries the comments written above it
// (that's where the "-- name:" annotation lives). Each text is a
// contiguous slice of src laid down after the one before it, so
// searching from the previous statement's end pins every text to its
// own occurrence even when two statements read the same.
searchFrom := 0
for i := range stmtNodes {
converter := &cc{preserveCase: p.preserveCase}
// A statement sqlc has no node for converts to a TODO and stays in
// the list: the formatter needs its extent to keep it as written,
// and Parse filters it out for the compiler.
out := converter.convert(stmtNodes[i])
text := stmtNodes[i].Text()
idx := strings.Index(src[searchFrom:], text)
if idx < 0 {
return nil, fmt.Errorf("could not locate statement %d in source", i)
}
loc := searchFrom + idx
searchFrom = loc + len(text)
stmtLen := len(text)
if stmtLen > 0 && text[stmtLen-1] == ';' {
stmtLen -= 1 // Subtract one to remove semicolon
}
stmts = append(stmts, ast.Statement{
Raw: &ast.RawStmt{
Stmt: out,
StmtLocation: loc,
StmtLen: stmtLen,
},
})
}
var comments []ast.Comment
for _, c := range p.pingcap.Comments() {
comments = append(comments, ast.Comment{
Text: strings.TrimRight(src[c.Begin:c.End], " \t\r\n"),
Start: c.Begin,
End: c.End,
OwnLine: ownLine(src, c.Begin),
})
}
return &ast.File{Stmts: stmts, Comments: comments}, nil
}
// ownLine reports that only blank space sits between the preceding line
// break and pos.
func ownLine(src string, pos int) bool {
for j := pos - 1; j >= 0; j-- {
switch src[j] {
case '\n':
return true
case ' ', '\t', '\r':
continue
default:
return false
}
}
return true
}
// https://dev.mysql.com/doc/refman/8.0/en/comments.html
func (p *Parser) CommentSyntax() source.CommentSyntax {
return source.CommentSyntax{
Dash: true,
SlashStar: true,
Hash: true,
}
}

View File

@@ -0,0 +1,273 @@
package dolphin
import "strings"
// https://dev.mysql.com/doc/refman/8.0/en/keywords.html
func (p *Parser) IsReservedKeyword(s string) bool {
switch strings.ToLower(s) {
case "accessible":
case "add":
case "all":
case "alter":
case "analyze":
case "and":
case "as":
case "asc":
case "asensitive":
case "before":
case "between":
case "bigint":
case "binary":
case "blob":
case "both":
case "by":
case "call":
case "cascade":
case "case":
case "change":
case "char":
case "character":
case "check":
case "collate":
case "column":
case "condition":
case "constraint":
case "continue":
case "convert":
case "create":
case "cross":
case "cube":
case "cume_dist":
case "current_date":
case "current_time":
case "current_timestamp":
case "current_user":
case "cursor":
case "database":
case "databases":
case "day_hour":
case "day_microsecond":
case "day_minute":
case "day_second":
case "dec":
case "decimal":
case "declare":
case "default":
case "delayed":
case "delete":
case "dense_rank":
case "desc":
case "describe":
case "deterministic":
case "distinct":
case "distinctrow":
case "div":
case "double":
case "drop":
case "dual":
case "each":
case "else":
case "elseif":
case "empty":
case "enclosed":
case "escaped":
case "except":
case "exists":
case "exit":
case "explain":
case "false":
case "fetch":
case "first_value":
case "float":
case "float4":
case "float8":
case "for":
case "force":
case "foreign":
case "from":
case "fulltext":
case "function":
case "generated":
case "get":
case "grant":
case "group":
case "grouping":
case "groups":
case "having":
case "high_priority":
case "hour_microsecond":
case "hour_minute":
case "hour_second":
case "if":
case "ignore":
case "in":
case "index":
case "infile":
case "inner":
case "inout":
case "insensitive":
case "insert":
case "int":
case "int1":
case "int2":
case "int3":
case "int4":
case "int8":
case "integer":
case "interval":
case "into":
case "io_after_gtids":
case "io_before_gtids":
case "is":
case "iterate":
case "join":
case "json_table":
case "key":
case "keys":
case "kill":
case "lag":
case "last_value":
case "lateral":
case "lead":
case "leading":
case "leave":
case "left":
case "like":
case "limit":
case "linear":
case "lines":
case "load":
case "localtime":
case "localtimestamp":
case "lock":
case "long":
case "longblob":
case "longtext":
case "loop":
case "low_priority":
case "master_bind":
case "master_ssl_verify_server_cert":
case "match":
case "maxvalue":
case "mediumblob":
case "mediumint":
case "mediumtext":
case "middleint":
case "minute_microsecond":
case "minute_second":
case "mod":
case "modifies":
case "natural":
case "not":
case "no_write_to_binlog":
case "nth_value":
case "ntile":
case "null":
case "numeric":
case "of":
case "on":
case "optimize":
case "optimizer_costs":
case "option":
case "optionally":
case "or":
case "order":
case "out":
case "outer":
case "outfile":
case "over":
case "partition":
case "percent_rank":
case "precision":
case "primary":
case "procedure":
case "purge":
case "range":
case "rank":
case "read":
case "reads":
case "read_write":
case "real":
case "recursive":
case "references":
case "regexp":
case "release":
case "rename":
case "repeat":
case "replace":
case "require":
case "resignal":
case "restrict":
case "return":
case "revoke":
case "right":
case "rlike":
case "row":
case "rows":
case "row_number":
case "schema":
case "schemas":
case "second_microsecond":
case "select":
case "sensitive":
case "separator":
case "set":
case "show":
case "signal":
case "smallint":
case "spatial":
case "specific":
case "sql":
case "sqlexception":
case "sqlstate":
case "sqlwarning":
case "sql_big_result":
case "sql_calc_found_rows":
case "sql_small_result":
case "ssl":
case "starting":
case "stored":
case "straight_join":
case "system":
case "table":
case "terminated":
case "then":
case "tinyblob":
case "tinyint":
case "tinytext":
case "to":
case "trailing":
case "trigger":
case "true":
case "undo":
case "union":
case "unique":
case "unlock":
case "unsigned":
case "update":
case "usage":
case "use":
case "using":
case "utc_date":
case "utc_time":
case "utc_timestamp":
case "values":
case "varbinary":
case "varchar":
case "varcharacter":
case "varying":
case "virtual":
case "when":
case "where":
case "while":
case "window":
case "with":
case "write":
case "xor":
case "year_month":
case "zerofill":
default:
return false
}
return true
}

View File

@@ -0,0 +1,34 @@
package dolphin
import (
"embed"
"sync"
"github.com/sqlc-dev/sqlc/internal/core"
"github.com/sqlc-dev/sqlc/internal/core/seed"
"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)
// The dialect directory describes MySQL's type system, and functions.jsonl is
// its standard library. Both the analysis core and the catalog the legacy
// compiler builds read them.
//
//go:embed dialect
var dialectFS embed.FS
// Dialect returns the catalog option that seeds MySQL's type system.
func Dialect() core.Option {
return seed.Dialect(dialectFS, "dialect")
}
// stdlib is MySQL's functions in the form the catalog uses. They are embedded
// in the binary and never change within a run, so they are read once.
var stdlib = sync.OnceValue(func() []*catalog.Function {
funcs, err := seed.Functions(dialectFS, "dialect")
if err != nil {
// A failure here means sqlc was built from a broken tree, which no
// caller can do anything about.
panic(err)
}
return funcs
})

View File

@@ -0,0 +1,11 @@
package dolphin
import (
"github.com/sqlc-dev/sqlc/internal/sql/catalog"
)
// defaultSchema is MySQL's standard library, read from the dialect directory's
// functions.jsonl.
func defaultSchema(name string) *catalog.Schema {
return &catalog.Schema{Name: name, Funcs: stdlib()}
}

View File

@@ -0,0 +1,94 @@
package dolphin
import (
pcast "github.com/sqlc-dev/marino/ast"
"github.com/sqlc-dev/marino/mysql"
"github.com/sqlc-dev/sqlc/internal/sql/ast"
)
func (c *cc) parseTableName(n *pcast.TableName) *ast.TableName {
return &ast.TableName{
Schema: c.identifier(n.Schema.String()),
Name: c.identifier(n.Name.String()),
}
}
func (c *cc) toList(node pcast.Node) *ast.List {
var items []ast.Node
switch n := node.(type) {
case *pcast.TableName:
if schema := n.Schema.String(); schema != "" {
items = append(items, c.NewIdentifier(schema))
}
items = append(items, c.NewIdentifier(n.Name.String()))
default:
return nil
}
return &ast.List{Items: items}
}
func isNotNull(n *pcast.ColumnDef) bool {
for i := range n.Options {
if n.Options[i].Tp == pcast.ColumnOptionNotNull {
return true
}
if n.Options[i].Tp == pcast.ColumnOptionPrimaryKey {
return true
}
}
return false
}
func convertToRangeVarList(list *ast.List, result *ast.List) {
if len(list.Items) == 0 {
return
}
switch rel := list.Items[0].(type) {
// Special case for joins in updates
case *ast.JoinExpr:
left, ok := rel.Larg.(*ast.RangeVar)
if !ok {
if list, check := rel.Larg.(*ast.List); check {
convertToRangeVarList(list, result)
} else if subselect, check := rel.Larg.(*ast.RangeSubselect); check {
// Handle subqueries in JOIN clauses
result.Items = append(result.Items, subselect)
} else {
panic("expected range var")
}
}
if left != nil {
result.Items = append(result.Items, left)
}
right, ok := rel.Rarg.(*ast.RangeVar)
if !ok {
if list, check := rel.Rarg.(*ast.List); check {
convertToRangeVarList(list, result)
} else if subselect, check := rel.Rarg.(*ast.RangeSubselect); check {
// Handle subqueries in JOIN clauses
result.Items = append(result.Items, subselect)
} else {
panic("expected range var")
}
}
if right != nil {
result.Items = append(result.Items, right)
}
case *ast.RangeVar:
result.Items = append(result.Items, rel)
case *ast.RangeSubselect:
result.Items = append(result.Items, rel)
default:
panic("expected range var")
}
}
func isUnsigned(n *pcast.ColumnDef) bool {
return mysql.HasUnsignedFlag(n.Tp.GetFlag())
}