diff --git a/changelog.rst b/changelog.rst index da6c611f1..66e9a6898 100644 --- a/changelog.rst +++ b/changelog.rst @@ -8,6 +8,10 @@ Features: reflects the current editing mode: beam in INSERT, block in NORMAL, underline in REPLACE. Uses prompt_toolkit's ``ModalCursorShapeConfig``. +Bug fixes: +---------- +* Add `VERSION` to built-in function completion so `SELECT VERSION();` is suggested. + 4.4.0 (2025-12-24) ================== diff --git a/pgcli/packages/pgliterals/pgliterals.json b/pgcli/packages/pgliterals/pgliterals.json index 6828a4632..bb9ca0678 100644 --- a/pgcli/packages/pgliterals/pgliterals.json +++ b/pgcli/packages/pgliterals/pgliterals.json @@ -439,6 +439,7 @@ "TRUNC", "UNNEST", "UPPER", + "VERSION", "WIDTH", "WIDTH_BUCKET", "XMLAGG" diff --git a/tests/test_naive_completion.py b/tests/test_naive_completion.py index ec5034e04..3c1f89afb 100644 --- a/tests/test_naive_completion.py +++ b/tests/test_naive_completion.py @@ -49,6 +49,13 @@ def test_function_name_completion(completer, complete_event): ]) +def test_version_function_name_completion(completer, complete_event): + text = "SELECT VE" + position = len(text) + result = completions_to_set(completer.get_completions(Document(text=text, cursor_position=position), complete_event)) + assert result == completions_to_set([Completion(text="VERSION", start_position=-2)]) + + def test_column_name_completion(completer, complete_event): text = "SELECT FROM users" position = len("SELECT ") diff --git a/tests/test_smart_completion_public_schema_only.py b/tests/test_smart_completion_public_schema_only.py index 92bfff765..d607dfae0 100644 --- a/tests/test_smart_completion_public_schema_only.py +++ b/tests/test_smart_completion_public_schema_only.py @@ -160,6 +160,12 @@ def test_builtin_function_name_completion(completer): ]) +@parametrize("completer", completers()) +def test_builtin_version_function_completion(completer): + result = get_result(completer, "SELECT VE") + assert completions_to_set(result) == completions_to_set([function("VERSION", -2)]) + + @parametrize("completer", completers()) def test_builtin_function_matches_only_at_start(completer): text = "SELECT IN"