databricks-sql-python icon indicating copy to clipboard operation
databricks-sql-python copied to clipboard

has_table doesn't work - missing back-quotes around catalog name

Open narquette opened this issue 2 years ago • 4 comments

Issue:

When I attempt to see if a table exists (inspection.has_table(table_name='x', schema='y'), I get an error saying that the catalog name must be surrounded by back-quote.

Recreation Steps:

  1. Build a sqlalchemy connection to databricks
  2. Put sqlalchemy engine into a variable
  3. Put inspection (sqlachemy.inspect) into a variable.

The engine will be an parameter for inspect (e.g. inspect = inspect(engine))

  1. Attempt to use has table

inspect.has_table(table_name='y', schema='x')

Expected: You will get no error message Actual: You get an error message:

[INVALID_IDENTIFIER] The identifier intelli-intelli-curvgh is invalid. Please, consider quoting it with back-quotes as intelli-intelli-curvgh.(line 1, pos 22)

== SQL == DESCRIBE TABLE intelli-intelli-curvgh.dm2_mortality_in.diagnosis_pre

Environment Info:

OS Windows Python = 3.10

Python Libraries:

databricks-sql-connector==2.9.3 sqlalchemy==1.4.49

narquette avatar Sep 27 '23 19:09 narquette

Thanks for the report. We're making a ton of changes to the SQLAlchemy dialect this week. Expect to see this fixed shortly.

susodapop avatar Sep 27 '23 19:09 susodapop

This issue also happens when you try to show the table names in a schema.

inspect.get_table_names('<schema_name>')

Error Message:

[INVALID_IDENTIFIER] The identifier intelli-intelli-curvgh is invalid. Please, consider quoting it with back-quotes as intelli-intelli-curvgh.(line 1, pos 24) == SQL == SHOW TABLES FROM intelli-intelli-curvgh.mortalitystudy_2020_deidentified

narquette avatar Sep 27 '23 19:09 narquette

@susodapop Any update? Has this been put into any branch?

narquette avatar Oct 02 '23 16:10 narquette

The update is the same. I'm re-implementing all of sqlalchemy for compatibility with sqla2. This will be captured in those changes. I haven't touched this specifically yet since we're overhauling everything. If you watch the PR's on this repository in the next few days you'll see it pop through. It won't be released until 3.0.0 later this month.

susodapop avatar Oct 02 '23 16:10 susodapop