Completions caching
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 55
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
The oracle databases I currently work with unfortunately have a ton of namespaces and tables.
This results in "Refreshing completions" for around a minute every time I start okcli.
I've talked a bit with @icepuma about this issue and we had the idea to add optional completion caching to okcli.
It could work like this:
- entirely opt-in and set by command line flag (eG
--enable-completions-cacheor similar) - if enabled, the completions are serialized into the XDG_CACHE_DIR
- if enabled and there is a completions dump at start, deserialize from file instead of asking the DB
- if disabled, nothing changes
The cache would be per-connection, for example after hashing the connection string.
I don't have any particular preference regarding cache invalidation, maybe simply removing the file manually would be good enough for a first start, or a --force-invalidate-cache option (slightly better especially if the file name is a hash).
A slightly easier variation to avoid dealing with XDG would be to simply support --completion-cache <path> so the user can decide if and when to delete the file. But it also introduces the potential mistake of using a completion cache for a different connection which would be confusing.
What are your thoughts on this and would you accept a pull request implementing this?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at okcli startup and trace the completion-refresh path, then review how command-line flags and XDG_CACHE_DIR are handled. Done means an opt-in, per-connection completion cache can load saved data instead of querying the database, while disabled behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100