QuestDB support
Address type introspection failures with QuestDB due to its lack of recursive CTE support. This primarily impacts types not built into asyncpg, such as float8[].
This commit:
- Automatically registers float8[] when connected to QuestDB.
- Disables certain features like advisory locks, which are not supported.
- Notes that JIT, while used by QuestDB, cannot be disabled via its SQL API.
Hello,
This is my first pull request to asyncpg, and I would greatly appreciate any feedback or guidance.
An alternative implementation could involve customizing the introspection queries to avoid recursive CTEs when QuestDB is detected. Since QuestDB's type system is relatively simple and lacks many PostgreSQL concepts, this should be feasible. However, I opted for the current approach as I believe it's not only simpler but also saves a network roundtrip.
It's probably worth looking into possibly adding a simpler variant of the introspection query for implementations that lack recursive CTE support.