John Bodley
John Bodley
If the ONLY_FULL_GROUP_BY SQL mode is enabled (which it is by default), MySQL rejects queries for which the rORDER BY list refer to non-aggregated columns that are not named in...
The [regex](https://github.com/andialbrecht/sqlparse/blob/master/sqlparse/keywords.py#L69) for determining a `tokens.String.Single` seems incorrect, i.e., it is too greedy, when the SQL contains an escape character: ```python >>> from sqlparse import parse >>> stmt = parse(r"foo...
### SUMMARY This PR remedies a few issues with Trino—which extends the Presto database engine spec. Specifically it adds a few more safeguards when fetching extra metadata as part of...
I was wondering why PyHive doesn't support [complex types](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-ComplexTypes) like ARRAY, MAP, STRUCT, etc?
Add explicit documentation regarding the ordering of Union types for serialization/deserialization
I was wondering whether there was merit in adding more documentation regarding the `Union` type, specifically related to the order of types is relevant—this is somewhat counter intuitive as the...
Even though Mypy is enabled, per [this](https://github.com/trinodb/trino-python-client/blob/master/.pre-commit-config.yaml#L8-L15) pre-commit hook, the default options are fairly loose which allows for untyped methods and calls. This PR aims to slowly start tightening the...
Somewhat of a yak shaving exercise as I was initially going to look into https://github.com/trinodb/trino-python-client/issues/199 though realized that the `trino-python-client` package has no deterministic dependency management. See the Slack discussion...
This PR ensures that all backends use the same protocol (the highest available) for pickling the payload to cache. Some backends currently use the default (4 for Python 3.8) whereas...
I was wondering whether the `timeout`, `default_timeout`, and `CACHE_DEFAULT_TIMEOUT` variables should also support a `datetime.timedelta` object, i.e., `Union[datetime.timedelta, int]`, for specifying (and preferably storing) the timeout. The reason I ask...
For the `@memoize` decorator the wrapped function has the `make_cacke_key` attribute assigned to it per [here](https://github.com/sh4nks/flask-caching/blob/cb6a7a3d61057b07ebdc7a58359b41257fe0af93/flask_caching/__init__.py#L971-L978) which is leveraged when deleting the memoized object, but I'm somewhat perplexed regarding the...