From db397b78619b7f540473cde9ff444af56403c6f3 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Sun, 22 Nov 2020 15:58:37 -0800 Subject: [PATCH] dolphin: Add function signatures (#796) * dolphin: Add a subset of math func signatures * dolphin: Add FROM_UNIXTIME signature Fixes #655 * dolphin: flow control function signatures * dolphin: Add ISNULL function signature Fixes #630 * dolphin: Add STRCMP function signature * dolphin: Add aggregate function signatures * dolphin: Add all JSON function signatures * dolphin: Add signatures for mathematical functions * dolphin: Add string function signatures * dolphin: Add date and time function signatures * dolphin: Add comparison operator function signatures * dolphin: Add encryption function signatures * dolphin: Add miscellaneous function signatures * dolphin: Add information function signatures * dolphin: Add window function signatures * dolphin: Add performance schema function signatures * dolphin: Add locking function signatures * dolphin: Add regexp function signatures * dolphin: Add XML function signatures * dolphin: Add GTID function signatures * dolphin: Add a few more function signatures * dolphin: Add spatial analysis function signatures * dolphin: Remove two unknown functions --- internal/engine/dolphin/stdlib.go | 5623 ++++++++++++++++++++++++----- 1 file changed, 4620 insertions(+), 1003 deletions(-) diff --git a/internal/engine/dolphin/stdlib.go b/internal/engine/dolphin/stdlib.go index 71a20b1e37..f03e9556a3 100644 --- a/internal/engine/dolphin/stdlib.go +++ b/internal/engine/dolphin/stdlib.go @@ -8,2015 +8,5632 @@ import ( func defaultSchema(name string) *catalog.Schema { s := &catalog.Schema{Name: name} s.Funcs = []*catalog.Function{ - { - Name: "ABS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "tinyint"}, }, { - Name: "ACOS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "smallint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "smallint"}, }, { - Name: "ADDDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "mediumint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "mediumint"}, }, { - Name: "ADDTIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "AES_DECRYPT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "bigint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "AES_ENCRYPT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double"}, }, { - Name: "ANY_VALUE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ABS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ASCII", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ACOS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ASIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ADDDATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "ATAN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ADDTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "ATAN2", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "AES_DECRYPT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "AVG", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "AES_DECRYPT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "BENCHMARK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "AES_ENCRYPT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "BIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "AES_ENCRYPT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "BIN_TO_UUID", - Args: []*catalog.Argument{}, + Name: "ANY_VALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "BIT_AND", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ASCII", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "BIT_COUNT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ASIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "BIT_LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ATAN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "BIT_OR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ATAN2", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "BIT_XOR", - Args: []*catalog.Argument{}, + Name: "AVG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "CAST", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BENCHMARK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "CEIL", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CEILING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BIN_TO_UUID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CHAR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BIN_TO_UUID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CHARACTER_LENGTH", - Args: []*catalog.Argument{}, + Name: "BIT_AND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "CHARSET", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BIT_COUNT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "bigint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "CHAR_LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "BIT_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "COALESCE", - Args: []*catalog.Argument{}, + Name: "BIT_OR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "COERCIBILITY", - Args: []*catalog.Argument{}, + Name: "BIT_XOR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "COLLATION", - Args: []*catalog.Argument{}, + Name: "CAST", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "COMPRESS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CEIL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "CONCAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CEIL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "CONCAT_WS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CEILING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "CONNECTION_ID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CEILING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "CONV", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CHAR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CONVERT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CHARACTER_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "CONVERT_TZ", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CHARSET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "COS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CHAR_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "COT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "COERCIBILITY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "COUNT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "bigint"}, + Name: "COLLATION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "COUNT", + Name: "COMPRESS", Args: []*catalog.Argument{ { - Type: &ast.TypeName{Name: "any"}, + Type: &ast.TypeName{Name: "text"}, }, }, - ReturnType: &ast.TypeName{Name: "bigint"}, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "CRC32", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CONCAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CUME_DIST", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CONCAT_WS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CURDATE", + Name: "CONNECTION_ID", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "CURDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CONV", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "CURRENT_DATE", - Args: []*catalog.Argument{}, + Name: "CONVERT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "CURRENT_ROLE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CONVERT_TZ", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "CURRENT_TIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "COS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "CURRENT_TIMESTAMP", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "COT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "CURRENT_USER", + Name: "COUNT", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "CURTIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "COUNT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "CURTIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CRC32", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "DATABASE", + Name: "CUME_DIST", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "DATE", + Name: "CURDATE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "DATEDIFF", + Name: "CURRENT_DATE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "DATE_ADD", + Name: "CURRENT_ROLE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "DATE_ADD_INTERVAL", + Name: "CURRENT_TIME", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "DATE_FORMAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CURRENT_TIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "DATE_SUB", + Name: "CURRENT_TIMESTAMP", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "DATE_SUB_INTERVAL", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CURRENT_TIMESTAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "DAY", + Name: "CURRENT_USER", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "DAYNAME", + Name: "CURTIME", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "DAYOFMONTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "CURTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "DAYOFWEEK", + Name: "DATABASE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "DAYOFYEAR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "DEFAULT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATEDIFF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "DEGREES", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE_ADD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "DENSE_RANK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE_ADD_INTERVAL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "DISTINCT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE_FORMAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "ELT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE_SUB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "EXP", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DATE_SUB_INTERVAL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "EXPORT_SET", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DAY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "EXTRACT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DAYNAME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "EXTRACT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DAYOFMONTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "EXTRACTVALUE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DAYOFWEEK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "FIELD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DAYOFYEAR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "FIND_IN_SET", - Args: []*catalog.Argument{}, + Name: "DEFAULT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FIRST_VALUE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "DEGREES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "FLOOR", + Name: "DENSE_RANK", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "FORMAT", - Args: []*catalog.Argument{}, + Name: "DISTINCT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FORMAT_BYTES", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ELT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "EXP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, + }, + { + Name: "EXPORT_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "EXPORT_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "EXPORT_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "EXTRACT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "EXTRACTVALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "FIELD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FIND_IN_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "FIRST_VALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "FLOOR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "FORMAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FORMAT_BYTES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FORMAT_PICO_TIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FOUND_ROWS", + Args: []*catalog.Argument{}, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "FROM_BASE64", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FROM_DAYS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, + }, + { + Name: "FROM_UNIXTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "bigint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "FROM_UNIXTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "bigint"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "GEOMCOLLECTION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "GEOMETRYCOLLECTION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "GET_FORMAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "GET_LOCK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "GREATEST", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "GROUPING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "GROUP_CONCAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "GTID_SUBSET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "GTID_SUBTRACT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "HEX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "HEX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "HOUR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "ICU_VERSION", + Args: []*catalog.Argument{}, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "IF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "IFNULL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "INET6_ATON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, + }, + { + Name: "INET6_NTOA", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "INET_ATON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "INET_NTOA", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "INSERT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "INSTR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "INTERVAL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "ISNULL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_FREE_LOCK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_IPV4", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_IPV4_COMPAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_IPV4_MAPPED", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_IPV6", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_USED_LOCK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "IS_UUID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_ARRAY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_ARRAYAGG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_ARRAY_APPEND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_ARRAY_INSERT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_CONTAINS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_CONTAINS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_CONTAINS_PATH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_DEPTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "JSON_EXTRACT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "JSON_INSERT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_KEYS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_KEYS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "JSON_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "JSON_MERGE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_MERGE_PATCH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_MERGE_PRESERVE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_OBJECT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_OBJECTAGG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_OVERLAPS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_PRETTY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "JSON_QUOTE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "JSON_REMOVE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_REPLACE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_SCHEMA_VALID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_SCHEMA_VALIDATION_REPORT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_SEARCH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "JSON_SEARCH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "JSON_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_STORAGE_FREE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "JSON_STORAGE_SIZE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "JSON_TYPE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "JSON_UNQUOTE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, + }, + { + Name: "JSON_VALID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "JSON_VALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FORMAT_PICO_TIME", - Args: []*catalog.Argument{}, + Name: "LAG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "any"}, + HasDefault: true, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FOUND_ROWS", + Name: "LAST_DAY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, + }, + { + Name: "LAST_INSERT_ID", Args: []*catalog.Argument{}, + ReturnType: &ast.TypeName{Name: "bigint"}, + }, + { + Name: "LAST_VALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FROM_BASE64", - Args: []*catalog.Argument{}, + Name: "LCASE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "LEAD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "any"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "LEAST", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "any"}, + }, + { + Name: "LEFT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LINESTRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FROM_DAYS", + Name: "LN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, + }, + { + Name: "LOAD_FILE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "LOCALTIME", + Args: []*catalog.Argument{}, + ReturnType: &ast.TypeName{Name: "datetime"}, + }, + { + Name: "LOCALTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, + }, + + { + Name: "LOCALTIMESTAMP", Args: []*catalog.Argument{}, + ReturnType: &ast.TypeName{Name: "datetime"}, + }, + { + Name: "LOCALTIMESTAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, + }, + { + Name: "LOCATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LOCATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LOG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, + }, + { + Name: "LOG", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LOG10", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LOG2", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "LOWER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "LPAD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "LTRIM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "MAKEDATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, + }, + { + Name: "MAKETIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, + }, + { + Name: "MAKE_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + Mode: ast.FuncParamVariadic, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, + }, + { + Name: "MASTER_POS_WAIT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "MASTER_POS_WAIT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "MASTER_POS_WAIT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "MAX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "FROM_UNIXTIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBRCONTAINS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "MBRCOVEREDBY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, + }, + { + Name: "MBRCOVERS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GEOMCOLLECTION", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBRDISJOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GEOMETRYCOLLECTION", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBREQUALS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GET_FORMAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBRINTERSECTS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GET_LOCK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBROVERLAPS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GREATEST", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBRTOUCHES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GROUPING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MBRWITHIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "GROUP_CONCAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MD5", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "GTID_SUBSET", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MICROSECOND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "GTID_SUBTRACT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "HEX", - Args: []*catalog.Argument{}, + Name: "MIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "HOUR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MINUTE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "ICU_VERSION", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MOD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IF", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MONTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IFNULL", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "MONTHNAME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "INET6_ATON", - Args: []*catalog.Argument{}, + Name: "MULTILINESTRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "INET6_NTOA", - Args: []*catalog.Argument{}, + Name: "MULTIPOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "INET_ATON", - Args: []*catalog.Argument{}, + Name: "MULTIPOLYGON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "INET_NTOA", - Args: []*catalog.Argument{}, + Name: "NAME_CONST", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "INSERT", + Name: "NOW", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "INSTR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "NOW", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "INTERVAL", - Args: []*catalog.Argument{}, + Name: "NTH_VALUE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ISNULL", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "NTILE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IS_FREE_LOCK", - Args: []*catalog.Argument{}, + Name: "NULLIF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "IS_IPV4", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "OCT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "bigint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "IS_IPV4_COMPAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "OCTET_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IS_IPV4_MAPPED", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ORD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IS_IPV6", + Name: "PERCENT_RANK", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "IS_USED_LOCK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "PERIOD_ADD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "IS_UUID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "PERIOD_DIFF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_ARRAY", + Name: "PI", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_ARRAYAGG", - Args: []*catalog.Argument{}, + Name: "POINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "JSON_ARRAY_APPEND", - Args: []*catalog.Argument{}, + Name: "POLYGON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + Mode: ast.FuncParamVariadic, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "JSON_ARRAY_INSERT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "POSITION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_CONTAINS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "POW", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_CONTAINS_PATH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "POWER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_DEPTH", + Name: "PS_CURRENT_THREAD_ID", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_EXTRACT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "PS_THREAD_ID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_INSERT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "QUARTER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_KEYS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "QUOTE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RADIANS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_MERGE", + Name: "RAND", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_MERGE_PATCH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RAND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_MERGE_PRESERVE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RANDOM_BYTES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "JSON_OBJECT", + Name: "RANK", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_OBJECTAGG", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REGEXP_INSTR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "text"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_OVERLAPS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REGEXP_LIKE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "JSON_PRETTY", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REGEXP_REPLACE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "text"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_QUOTE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REGEXP_SUBSTR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "text"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_REMOVE", + Name: "RELEASE_ALL_LOCKS", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_REPLACE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RELEASE_LOCK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "JSON_SCHEMA_VALID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REPEAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_SCHEMA_VALIDATION_REPORT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REPLACE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_SCHEMA_VALIDATION_REPORT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "REVERSE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_SEARCH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RIGHT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_SET", + Name: "ROLES_GRAPHML", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_STORAGE_FREE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ROUND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_STORAGE_SIZE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ROUND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "JSON_TYPE", + Name: "ROW_COUNT", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "JSON_UNQUOTE", + Name: "ROW_NUMBER", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "JSON_VALID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RPAD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "JSON_VALUE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "RTRIM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LAG", + Name: "SCHEMA", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LAST_DAY", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SECOND", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "LAST_INSERT_ID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SEC_TO_TIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "LAST_VALUE", + Name: "SESSION_USER", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LCASE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SHA", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LEAD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SHA1", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LEAST", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SHA2", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LEFT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SIGN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "LIKE_RANGE_MAX", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SLEEP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "LIKE_RANGE_MIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SOUNDEX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LINESTRING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SPACE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SQRT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "LOAD_FILE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "STATEMENT_DIGEST", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LOCALTIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "STATEMENT_DIGEST_TEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "LOCALTIMESTAMP", - Args: []*catalog.Argument{}, + Name: "STD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "LOCATE", - Args: []*catalog.Argument{}, + Name: "STDDEV", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "LOG", - Args: []*catalog.Argument{}, + Name: "STDDEV_POP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "LOG10", - Args: []*catalog.Argument{}, + Name: "STDDEV_SAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "LOG2", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "STRCMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "tinyint"}, }, { - Name: "LOWER", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "STR_TO_DATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "LPAD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_AREA", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "LTRIM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASBINARY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MAKEDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASBINARY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MAKETIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, }, { - Name: "MAKE_SET", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, }, { - Name: "MASTER_POS_WAIT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "json"}, }, { - Name: "MAX", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "MBRCONTAINS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "MBRCOVEREDBY", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MBRCOVERS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MBRDISJOINT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASWKT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "MBREQUALS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ASWKT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "MBRINTERSECTS", - Args: []*catalog.Argument{}, + Name: "ST_BUFFER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MBROVERLAPS", - Args: []*catalog.Argument{}, + Name: "ST_BUFFER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MBRTOUCHES", - Args: []*catalog.Argument{}, + Name: "ST_BUFFER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MBRWITHIN", - Args: []*catalog.Argument{}, + Name: "ST_BUFFER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MD5", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_BUFFER_STRATEGY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MICROSECOND", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_BUFFER_STRATEGY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "MID", - Args: []*catalog.Argument{}, + Name: "ST_CENTROID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_CONTAINS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "MINUTE", - Args: []*catalog.Argument{}, + Name: "ST_CONVEXHULL", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MOD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_CROSSES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "MONTH", - Args: []*catalog.Argument{}, + Name: "ST_DIFFERENCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "MONTHNAME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DIMENSION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "tinyint"}, }, { - Name: "MULTILINESTRING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DISJOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "MULTIPOINT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "MULTIPOLYGON", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "NAME_CONST", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DISTANCE_SPHERE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "NOW", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_DISTANCE_SPHERE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "NTH_VALUE", - Args: []*catalog.Argument{}, + Name: "ST_ENDPOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "NTILE", - Args: []*catalog.Argument{}, + Name: "ST_ENVELOPE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "NULLIF", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_EQUALS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "OCT", - Args: []*catalog.Argument{}, + Name: "ST_EXTERIORRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "OCTET_LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_FRECHET_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ORD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_FRECHET_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "PASSWORD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_GEOHASH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "PERCENT_RANK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_GEOHASH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "PERIOD_ADD", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "PERIOD_DIFF", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "PI", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POINT", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POLYGON", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POSITION", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMTXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POSITION", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POW", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "POWER", - Args: []*catalog.Argument{}, + Name: "ST_GEOMCOLLFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "PS_CURRENT_THREAD_ID", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "PS_THREAD_ID", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "QUARTER", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "QUOTE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RADIANS", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RAND", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYCOLLECTIONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RANDOM_BYTES", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RANK", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REGEXP_INSTR", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REGEXP_LIKE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REGEXP_REPLACE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REGEXP_SUBSTR", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RELEASE_ALL_LOCKS", - Args: []*catalog.Argument{}, + Name: "ST_GEOMETRYN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RELEASE_LOCK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_GEOMETRYTYPE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "REPEAT", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REPLACE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REVERSE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMGEOJSON", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "REVERSE", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RIGHT", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ROLES_GRAPHML", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ROUND", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ROW_COUNT", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ROW_NUMBER", - Args: []*catalog.Argument{}, + Name: "ST_GEOMFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "RPAD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_HAUSDORFF_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "RTRIM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_HAUSDORFF_DISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, + { - Name: "SCHEMA", - Args: []*catalog.Argument{}, + Name: "ST_INTERIORRINGN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "SECOND", - Args: []*catalog.Argument{}, + Name: "ST_INTERSECTION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "SEC_TO_TIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_INTERSECTS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "SESSION_USER", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ISCLOSED", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "SHA", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ISEMPTY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "SHA1", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ISSIMPLE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "SHA2", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_ISVALID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "SIGN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LATFROMGEOHASH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "SIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LATITUDE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "SLEEP", - Args: []*catalog.Argument{}, + Name: "ST_LATITUDE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "SOUNDEX", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "SPACE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "SQRT", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STATEMENT_DIGEST", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STATEMENT_DIGEST_TEXT", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STD", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STDDEV", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STDDEV_POP", - Args: []*catalog.Argument{}, + Name: "ST_LINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STDDEV_SAMP", - Args: []*catalog.Argument{}, + Name: "ST_LINEINTERPOLATEPOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STRCMP", - Args: []*catalog.Argument{}, + Name: "ST_LINEINTERPOLATEPOINTS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "STR_TO_DATE", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_AREA", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ASBINARY", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ASGEOJSON", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ASTEXT", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ASWKB", - Args: []*catalog.Argument{}, + Name: "ST_LINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ASWKT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LONGFROMGEOHASH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ST_BUFFER", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_LONGITUDE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ST_BUFFER_STRATEGY", - Args: []*catalog.Argument{}, + Name: "ST_LONGITUDE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_CENTROID", - Args: []*catalog.Argument{}, + Name: "ST_MAKEENVELOPE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_CONTAINS", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_CONVEXHULL", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_CROSSES", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_DIFFERENCE", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_DIMENSION", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_DISJOINT", - Args: []*catalog.Argument{}, + Name: "ST_MLINEFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_DISTANCE", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_DISTANCE_SPHERE", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ENDPOINT", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ENVELOPE", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_EQUALS", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_EXTERIORRING", - Args: []*catalog.Argument{}, + Name: "ST_MPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOHASH", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMCOLLFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMCOLLFROMTXT", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMCOLLFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYCOLLECTIONFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYCOLLECTIONFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_MPOLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYN", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMETRYTYPE", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMFROMGEOJSON", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_MULTILINESTRINGFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_GEOMFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_INTERIORRINGN", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_INTERSECTION", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_INTERSECTS", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ISCLOSED", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ISEMPTY", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ISSIMPLE", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_ISVALID", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_LATFROMGEOHASH", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_LATITUDE", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_LENGTH", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_LINEFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_MULTIPOLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_LINEFROMWKB", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_NUMGEOMETRIES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "ST_LINESTRINGFROMTEXT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_NUMINTERIORRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "ST_LINESTRINGFROMWKB", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_NUMINTERIORRINGS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "ST_LONGFROMGEOHASH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_NUMPOINTS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "ST_LONGITUDE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_OVERLAPS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "ST_MAKEENVELOPE", - Args: []*catalog.Argument{}, + Name: "ST_POINTATDISTANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MLINEFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMGEOHASH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MLINEFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MPOINTFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MPOINTFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MPOLYFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MPOLYFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTILINESTRINGFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POINTFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTILINESTRINGFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POINTN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTIPOINTFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTIPOINTFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTIPOLYGONFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_MULTIPOLYGONFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_NUMGEOMETRIES", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_NUMINTERIORRING", - Args: []*catalog.Argument{}, + Name: "ST_POLYFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_NUMINTERIORRINGS", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_NUMPOINTS", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_OVERLAPS", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMTEXT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POINTFROMGEOHASH", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POINTFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POINTFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_POLYGONFROMWKB", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POINTN", - Args: []*catalog.Argument{}, + Name: "ST_SIMPLIFY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POLYFROMTEXT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_SRID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "ST_POLYFROMWKB", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_SRID", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "ST_POLYGONFROMTEXT", - Args: []*catalog.Argument{}, + Name: "ST_STARTPOINT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_POLYGONFROMWKB", - Args: []*catalog.Argument{}, + Name: "ST_SWAPXY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_SIMPLIFY", - Args: []*catalog.Argument{}, + Name: "ST_SYMDIFFERENCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_SRID", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_TOUCHES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "ST_STARTPOINT", - Args: []*catalog.Argument{}, + Name: "ST_TRANSFORM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_SWAPXY", - Args: []*catalog.Argument{}, + Name: "ST_UNION", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_SYMDIFFERENCE", - Args: []*catalog.Argument{}, + Name: "ST_VALIDATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_TOUCHES", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_WITHIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "ST_TRANSFORM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_X", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ST_UNION", - Args: []*catalog.Argument{}, + Name: "ST_X", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_VALIDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "ST_Y", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "ST_WITHIN", - Args: []*catalog.Argument{}, + Name: "ST_Y", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "ST_X", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBDATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "any"}, + }, + }, + ReturnType: &ast.TypeName{Name: "date"}, }, { - Name: "ST_Y", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBSTR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SUBDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBSTR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SUBDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBSTRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SUBSTR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBSTRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SUBSTRING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBSTRING_INDEX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SUBSTRING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SUBTIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "SUBSTRING_INDEX", - Args: []*catalog.Argument{}, + Name: "SUM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "SUBTIME", + Name: "SYSDATE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "SUM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "SYSDATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "SYSDATE", + Name: "SYSTEM_USER", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "SYSDATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TAN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + }, + ReturnType: &ast.TypeName{Name: "double precision"}, }, { - Name: "SYSTEM_USER", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIME", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "TAN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIMEDIFF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "time"}, }, { - Name: "TIME", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIMESTAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "TIMEDIFF", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIMESTAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "TIMESTAMP", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIMESTAMPADD", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "TIMESTAMPADD", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIMESTAMPDIFF", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + { + Type: &ast.TypeName{Name: "datetime"}, + }, + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { - Name: "TIMESTAMPDIFF", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIME_FORMAT", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "TIME_FORMAT", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TIME_TO_SEC", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "time"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "TIME_TO_SEC", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TO_BASE64", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "TO_BASE64", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TO_DAYS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "TO_DAYS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TO_SECONDS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "TO_SECONDS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TRIM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "TRIM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TRIM", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "TRIM", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "TRUNCATE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "double precision"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "TRUNCATE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UCASE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "UCASE", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UNCOMPRESS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "UNCOMPRESS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UNCOMPRESSED_LENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "binary"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "UNCOMPRESSED_LENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UNHEX", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, }, { - Name: "UNHEX", + Name: "UNIX_TIMESTAMP", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "UNIX_TIMESTAMP", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UNIX_TIMESTAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "datetime"}, + }, + }, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "UPDATEXML", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UPDATEXML", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "UPPER", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UPPER", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "text"}, }, { Name: "USER", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { Name: "UTC_DATE", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "date"}, }, { Name: "UTC_TIME", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "time"}, }, { Name: "UTC_TIMESTAMP", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "datetime"}, }, { Name: "UUID", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { Name: "UUID_SHORT", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "bigint"}, }, { - Name: "UUID_TO_BIN", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UUID_TO_BIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "VALIDATE_PASSWORD_STRENGTH", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "UUID_TO_BIN", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "tinyint"}, + }, + }, + ReturnType: &ast.TypeName{Name: "binary"}, }, { - Name: "VALUES", - Args: []*catalog.Argument{}, + Name: "VALIDATE_PASSWORD_STRENGTH", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "VALUES", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "VARIANCE", - Args: []*catalog.Argument{}, + Name: "VARIANCE", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "VAR_POP", - Args: []*catalog.Argument{}, + Name: "VAR_POP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "VAR_SAMP", - Args: []*catalog.Argument{}, + Name: "VAR_SAMP", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "any"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { Name: "VERSION", Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + ReturnType: &ast.TypeName{Name: "text"}, }, { - Name: "WAIT_FOR_EXECUTED_GTID_SET", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WAIT_FOR_EXECUTED_GTID_SET", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + HasDefault: true, + }, + { + Type: &ast.TypeName{Name: "text"}, + HasDefault: true, + }, + }, + ReturnType: &ast.TypeName{Name: "bool"}, }, { - Name: "WEEK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WEEK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "WEEKDAY", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WEEK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + { + Type: &ast.TypeName{Name: "int"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "WEEKOFYEAR", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WEEKDAY", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "WEIGHT_STRING", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "WEEKOFYEAR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, { - Name: "YEAR", - Args: []*catalog.Argument{}, + Name: "WEIGHT_STRING", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "text"}, + }, + }, ReturnType: &ast.TypeName{Name: "any"}, }, { - Name: "YEARWEEK", - Args: []*catalog.Argument{}, - ReturnType: &ast.TypeName{Name: "any"}, + Name: "YEAR", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, + }, + { + Name: "YEARWEEK", + Args: []*catalog.Argument{ + { + Type: &ast.TypeName{Name: "date"}, + }, + }, + ReturnType: &ast.TypeName{Name: "int"}, }, } return s