Support for common SQL data analysis tools
See original GitHub issueRef #4729
Metabase
Result: “Suspended cursor is not supported” Error at: https://github.com/edgedb/edgedb/blob/60380fd7ae75b0230234315ad897405061ac08f3/edb/server/protocol/pg_ext.pyx#L626-L628
I had to add support for parsing SET statement and resolving it to an empty relation. They are using:
SET extra_float_digits TO 3
I think we are probably save for ignore this specific SET statement.
Reproduce with local instance of edgedb and:
$ docker run -d -p 3000:3000 --name metabase --net=host metabase/metabase
Cluvio
Error: ERROR: suspended cursor is not supported
To reproduce: I used their cloud to connect to my VPS with edgedb development env and a public IP.
Dbt-cloud
Result:
Runtime Error
dbt was unable to connect to the specified database.
The database returned the following error:
>Database Error
unsupported SQL construct: unknown enum: {'TransactionStmt': {'kind': 'TRANS_STMT_BEGIN'}}
Check your database credentials and try again. For more information, visit:
https://docs.getdbt.com/docs/configure-your-profile
To reproduce: I used their cloud to connect to my VPS with edgedb development env and a public IP.
This means that we need transactions.
Redash
I gave up trying to deploy an instance and connect to plain Postgres.
Tablau
Result:
Can’t connect to PostgreSQL
Detailed Error Message
An error occurred while communicating with PostgreSQL
ERROR: unsupported SQL construct: unknown enum: {'TransactionStmt': {'kind': 'TRANS_STMT_BEGIN'}}
To reproduce: I used their cloud to connect to my VPS with edgedb development env and a public IP.
TODO:
- process SET and TRANSACTION statements and save them to the context of the client connection
- Suspended cursor
@fantix I’ll prepare pg-parser for parsing all these statements but I won’t implement the resolver - they should be processed before that and not even hit resolver or be queried in postgres.
I’ll also prepare ResolverOptions
which will contain search_path
.
Issue Analytics
- State:
- Created 9 months ago
- Comments:10 (10 by maintainers)
Top GitHub Comments
We need to add proper tracking of session configuration. Some config options alter the behavior significantly, most importantly the text I/O of data, and we must support that. To properly support this, we must track configuration values set in a session and prefix each query with a
set_config(..., is_local := true)
Let’s ban
set_config
for now and see what breaks.