crate / crash

Crash is an interactive CrateDB command line interface (CLI) SQL shell with autocompletion.
Apache License 2.0
48 stars 13 forks source link

Keyword completion: Inquire `pg_catalog.pg_proc` table for scalar functions #401

Open amotl opened 1 year ago

amotl commented 1 year ago

About

CrateDB offers a PostgreSQL-compatible pg_catalog.pg_proc database system table. It could be used to inquire all scalar function symbols, to add them to the list of keywords provided by the crate.crash.repl.SQLCompleter, similar to how the pg_catalog.pg_get_keywords() function is used to inquire the list of non-function keywords.

Outlook

At GH-360, we also reported:

Some scalar functions like floor or ceil are included within the documentation, but are not part of either pg_catalog.pg_get_keywords() nor the list of fallback keywords [4]. [4] https://github.com/crate/crash/blob/0.27.0/crate/crash/repl.py#L115-L151

In this spirit, other than using pg_catalog.pg_proc, the list of "fallback keywords", or maybe a list of "additional keywords", would probably still need to be maintained, in order to accompany for any gaps.