Skip to content

Databricks runs fail to execute on 0.235.4 with thrift error #5841

Closed

Description

@davem-bis

Summary

When running with SQLMesh 0.235.4 and Databricks SQL Connector, existing environments fail to run in Databricks with the error:

ERROR:databricks.sql.thrift_backend:ThriftBackend.attempt_request: Exception: encoding without a string argument.

Downgrading to 0.235.3 resolves this issue.

Root Cause

The underlying model SQL I can see being executed successfully against a Databricks Warehouse, the failure occurs when acquiring the built tables' column types.

I believe that this has been caused by PRs #5783 and #5816, as when I remove the DatabricksEngineAdapter.columns method added by those PRs to sqlmesh/core/engine_adapter/databricks.py this error does not occur.

Potentially the fix would be to change line 434 from:

self.cursor.execute(query)

to:

self.cursor.execute(query.sql(dialect="databricks"))

Environment Tested

Environments:

  1. Type: Databricks Cluster 17.3 LTS
    Connection mode: Databricks SQL Connector
    Python: 3.12.3
  2. Type: Windows 11
    Connection mode: Databricks SQL Connector
    Python: 3.12.3

The Databricks SQL Connector and thrift versions do not make a difference in success, it's purely whether version 0.235.3 or 0.235.4 is running.

Activity

  1. cschanhniem commented on Jun 19, 2026

    @cschanhniem

    Opened PR #5849 to fix this. The issue is that self.cursor.execute(query) passes a sqlglot expression object to the Databricks SQL Connector's thrift cursor, which expects a string. Fixed by using query.sql(dialect=self.dialect) to render the SQL string first.

  2. davem-bis commented on Jun 19, 2026

    @davem-bis
    ContributorAuthor

    Opened PR #5849 to fix this. The issue is that self.cursor.execute(query) passes a sqlglot expression object to the Databricks SQL Connector's thrift cursor, which expects a string. Fixed by using query.sql(dialect=self.dialect) to render the SQL string first.

    Thanks @cschanhniem - I came to the same conclusion and had opened PR #5848 as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions