asyncpg icon indicating copy to clipboard operation
asyncpg copied to clipboard

QuestDB support

Open jerrinot opened this issue 7 months ago • 2 comments

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.

jerrinot avatar May 20 '25 15:05 jerrinot

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.

jerrinot avatar May 20 '25 15:05 jerrinot

It's probably worth looking into possibly adding a simpler variant of the introspection query for implementations that lack recursive CTE support.

elprans avatar Oct 11 '25 05:10 elprans