1
0
Fork 0

Update suggestion literals (#1195)

* Updated all data types literals

* Updated sql functions literals

* Updated changelog and auther

* Updated test code

* Added datatype test case
This commit is contained in:
Sky.G.Uieen 2020-08-01 02:21:58 +09:00 committed by GitHub
parent 8f7e314508
commit df1b40ca22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 283 additions and 8 deletions

View File

@ -9,6 +9,7 @@ Features:
* Update python version in Dockerfile
* Support setting color for null, string, number, keyword value
* Support Prompt Toolkit 2
* Update functions, datatypes literals for auto-suggestion field
Bug fixes:
----------

View File

@ -260,35 +260,269 @@
"WITH": []
},
"functions": [
"ABBREV",
"ABS",
"AGE",
"AREA",
"ARRAY_AGG",
"ARRAY_APPEND",
"ARRAY_CAT",
"ARRAY_DIMS",
"ARRAY_FILL",
"ARRAY_LENGTH",
"ARRAY_LOWER",
"ARRAY_NDIMS",
"ARRAY_POSITION",
"ARRAY_POSITIONS",
"ARRAY_PREPEND",
"ARRAY_REMOVE",
"ARRAY_REPLACE",
"ARRAY_TO_STRING",
"ARRAY_UPPER",
"ASCII",
"AVG",
"BIT_AND",
"BIT_LENGTH",
"BIT_OR",
"BOOL_AND",
"BOOL_OR",
"BOUND_BOX",
"BOX",
"BROADCAST",
"BTRIM",
"CARDINALITY",
"CBRT",
"CEIL",
"CEILING",
"CENTER",
"CHAR_LENGTH",
"CHR",
"CIRCLE",
"CLOCK_TIMESTAMP",
"CONCAT",
"CONCAT_WS",
"CONVERT",
"CONVERT_FROM",
"CONVERT_TO",
"COUNT",
"FIRST",
"CUME_DIST",
"CURRENT_DATE",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"DATE_PART",
"DATE_TRUNC",
"DECODE",
"DEGREES",
"DENSE_RANK",
"DIAMETER",
"DIV",
"ENCODE",
"ENUM_FIRST",
"ENUM_LAST",
"ENUM_RANGE",
"EVERY",
"EXP",
"EXTRACT",
"FAMILY",
"FIRST_VALUE",
"FLOOR",
"FORMAT",
"LAST",
"LCASE",
"LEN",
"GET_BIT",
"GET_BYTE",
"HEIGHT",
"HOST",
"HOSTMASK",
"INET_MERGE",
"INET_SAME_FAMILY",
"INITCAP",
"ISCLOSED",
"ISFINITE",
"ISOPEN",
"JUSTIFY_DAYS",
"JUSTIFY_HOURS",
"JUSTIFY_INTERVAL",
"LAG",
"LAST_VALUE",
"LEAD",
"LEFT",
"LENGTH",
"LINE",
"LN",
"LOCALTIME",
"LOCALTIMESTAMP",
"LOG",
"LOG10",
"LOWER",
"LPAD",
"LSEG",
"LTRIM",
"MAKE_DATE",
"MAKE_INTERVAL",
"MAKE_TIME",
"MAKE_TIMESTAMP",
"MAKE_TIMESTAMPTZ",
"MASKLEN",
"MAX",
"MD5",
"MIN",
"MID",
"MOD",
"NETMASK",
"NETWORK",
"NOW",
"NPOINTS",
"NTH_VALUE",
"NTILE",
"NUM_NONNULLS",
"NUM_NULLS",
"OCTET_LENGTH",
"OVERLAY",
"PARSE_IDENT",
"PATH",
"PCLOSE",
"PERCENT_RANK",
"PG_CLIENT_ENCODING",
"PI",
"POINT",
"POLYGON",
"POPEN",
"POSITION",
"POWER",
"QUOTE_IDENT",
"QUOTE_LITERAL",
"QUOTE_NULLABLE",
"RADIANS",
"RADIUS",
"RANK",
"REGEXP_MATCH",
"REGEXP_MATCHES",
"REGEXP_REPLACE",
"REGEXP_SPLIT_TO_ARRAY",
"REGEXP_SPLIT_TO_TABLE",
"REPEAT",
"REPLACE",
"REVERSE",
"RIGHT",
"ROUND",
"ROW_NUMBER",
"RPAD",
"RTRIM",
"SCALE",
"SET_BIT",
"SET_BYTE",
"SET_MASKLEN",
"SHA224",
"SHA256",
"SHA384",
"SHA512",
"SIGN",
"SPLIT_PART",
"SQRT",
"STARTS_WITH",
"STATEMENT_TIMESTAMP",
"STRING_TO_ARRAY",
"STRPOS",
"SUBSTR",
"SUBSTRING",
"SUM",
"TOP",
"UCASE"
"TEXT",
"TIMEOFDAY",
"TO_ASCII",
"TO_CHAR",
"TO_DATE",
"TO_HEX",
"TO_NUMBER",
"TO_TIMESTAMP",
"TRANSACTION_TIMESTAMP",
"TRANSLATE",
"TRIM",
"TRUNC",
"UNNEST",
"UPPER",
"WIDTH",
"WIDTH_BUCKET",
"XMLAGG"
],
"datatypes": [
"ANY",
"ANYARRAY",
"ANYELEMENT",
"ANYENUM",
"ANYNONARRAY",
"ANYRANGE",
"BIGINT",
"BIGSERIAL",
"BIT",
"BIT VARYING",
"BOOL",
"BOOLEAN",
"BOX",
"BYTEA",
"CHAR",
"CHARACTER",
"CHARACTER VARYING",
"CIDR",
"CIRCLE",
"CSTRING",
"DATE",
"DECIMAL",
"DOUBLE PRECISION",
"EVENT_TRIGGER",
"FDW_HANDLER",
"FLOAT4",
"FLOAT8",
"INET",
"INT",
"INT2",
"INT4",
"INT8",
"INTEGER",
"INTERNAL",
"INTERVAL",
"JSON",
"JSONB",
"LANGUAGE_HANDLER",
"LINE",
"LSEG",
"MACADDR",
"MACADDR8",
"MONEY",
"NUMERIC",
"OID",
"OPAQUE",
"PATH",
"PG_LSN",
"POINT",
"POLYGON",
"REAL",
"RECORD",
"REGCLASS",
"REGCONFIG",
"REGDICTIONARY",
"REGNAMESPACE",
"REGOPER",
"REGOPERATOR",
"REGPROC",
"REGPROCEDURE",
"REGROLE",
"REGTYPE",
"SERIAL",
"SERIAL2",
"SERIAL4",
"SERIAL8",
"SMALLINT",
"SMALLSERIAL",
"TEXT",
"TIME",
"TIMESTAMP",
"TRIGGER",
"TSQUERY",
"TSVECTOR",
"TXID_SNAPSHOT",
"UUID",
"VARBIT",
"VARCHAR",
"VOID"
"VOID",
"XML"
],
"reserved": [
"ALL",

View File

@ -53,6 +53,12 @@ def test_function_name_completion(completer, complete_event):
Completion(text="MATERIALIZED VIEW", start_position=-2),
Completion(text="MAX", start_position=-2),
Completion(text="MAXEXTENTS", start_position=-2),
Completion(text="MAKE_DATE", start_position=-2),
Completion(text="MAKE_TIME", start_position=-2),
Completion(text="MAKE_TIMESTAMPTZ", start_position=-2),
Completion(text="MAKE_INTERVAL", start_position=-2),
Completion(text="MASKLEN", start_position=-2),
Completion(text="MAKE_TIMESTAMP", start_position=-2),
]
)
@ -101,3 +107,27 @@ def test_special_name_completion(completer, complete_event):
)
# Special commands will NOT be suggested during naive completion mode.
assert result == completions_to_set([])
def test_datatype_name_completion(completer, complete_event):
text = "SELECT price::IN"
position = len("SELECT price::IN")
result = completions_to_set(
completer.get_completions(
Document(text=text, cursor_position=position),
complete_event,
smart_completion=True,
)
)
assert result == completions_to_set(
[
Completion(text="INET", display_meta="datatype"),
Completion(text="INT", display_meta="datatype"),
Completion(text="INT2", display_meta="datatype"),
Completion(text="INT4", display_meta="datatype"),
Completion(text="INT8", display_meta="datatype"),
Completion(text="INTEGER", display_meta="datatype"),
Completion(text="INTERNAL", display_meta="datatype"),
Completion(text="INTERVAL", display_meta="datatype"),
]
)

View File

@ -164,6 +164,12 @@ def test_builtin_function_name_completion(completer):
result = get_result(completer, "SELECT MA")
assert completions_to_set(result) == completions_to_set(
[
function("MAKE_DATE", -2),
function("MAKE_INTERVAL", -2),
function("MAKE_TIME", -2),
function("MAKE_TIMESTAMP", -2),
function("MAKE_TIMESTAMPTZ", -2),
function("MASKLEN", -2),
function("MAX", -2),
keyword("MAXEXTENTS", -2),
keyword("MATERIALIZED VIEW", -2),
@ -189,6 +195,10 @@ def test_user_function_name_completion(completer):
function("_custom_fun()", -2),
function("custom_func1()", -2),
function("custom_func2()", -2),
function("CURRENT_DATE", -2),
function("CURRENT_TIMESTAMP", -2),
function("CUME_DIST", -2),
function("CURRENT_TIME", -2),
keyword("CURRENT", -2),
]
)