FR: support environment variables in (favourite) queries
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 95
- PR merge metrics
- No merged PRs in 30d
Description
I'd love to see support for using environment variables in favourite queries, or even in all queries.
The use case is that I have several very similar databases where favourite queries all need to take a parameter to indicate what 'variant' of the database I'm currently using, _or_ I have to copy configuration files for each database file and alter one value in each query filter.
Say, the different values are `'foo'` and `'bar'`, and I have to either do:
```ini
favquery1 = '''select ...
from some_table
where parameter='$1'
and other_paramater='$2'
'''
favquery2 = '''select ...
from some_other_table sot inner join a_third_table att on sot.id = att.sot_id
where sot.parameter='$1'
and att.column_name ='$2'
'''
```
and then run `\f favquery1 foo 42` and `\f favquery2 bar 45`, **or** I copy the configuration file multiple times and hardcode the parameter in each.
If, instead, I could use environment variables (syntax suggestion, feel free to come up with better syntax, this is based on bash):
```ini
favquery1 = '''select ...
from some_table
where parameter='${PARAMETER}'
and other_paramater='$1'
'''
favquery2 = '''select ...
from some_other_table sot inner join a_third_table att on sot.id = att.sot_id
where sot.parameter='${PARAMETER}'
and att.column_name ='$1'
'''
```
and then start each `litecli` instance with a different environment variable and use the exact same favourites for each database:
```sh
$ PARAMETER=foo litecli foo_database.sqlite
foo_database.sqlite> \f favquery1 42
```
and
```sh
$ PARAMETER=bar litecli bar_database.sqlite
bar_database.sqlite> \f favquery1 42
```
Contributor guide
Assessment
This issue has not been assessed yet.