fix(Databricks): Escape catalog and schema names in pre-queries (#31199)
This commit is contained in:
parent
06fb330569
commit
d66ac9f3f4
|
|
@ -464,8 +464,10 @@ class DatabricksNativeEngineSpec(DatabricksDynamicBaseEngineSpec):
|
|||
) -> list[str]:
|
||||
prequeries = []
|
||||
if catalog:
|
||||
catalog = f"`{catalog}`" if not catalog.startswith("`") else catalog
|
||||
prequeries.append(f"USE CATALOG {catalog}")
|
||||
if schema:
|
||||
schema = f"`{schema}`" if not schema.startswith("`") else schema
|
||||
prequeries.append(f"USE SCHEMA {schema}")
|
||||
return prequeries
|
||||
|
||||
|
|
|
|||
|
|
@ -257,14 +257,28 @@ def test_get_prequeries(mocker: MockerFixture) -> None:
|
|||
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(database) == []
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(database, schema="test") == [
|
||||
"USE SCHEMA test",
|
||||
"USE SCHEMA `test`",
|
||||
]
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(database, catalog="test") == [
|
||||
"USE CATALOG test",
|
||||
"USE CATALOG `test`",
|
||||
]
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(
|
||||
database, catalog="foo", schema="bar"
|
||||
) == [
|
||||
"USE CATALOG foo",
|
||||
"USE SCHEMA bar",
|
||||
"USE CATALOG `foo`",
|
||||
"USE SCHEMA `bar`",
|
||||
]
|
||||
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(
|
||||
database, catalog="with-hyphen", schema="hyphen-again"
|
||||
) == [
|
||||
"USE CATALOG `with-hyphen`",
|
||||
"USE SCHEMA `hyphen-again`",
|
||||
]
|
||||
|
||||
assert DatabricksNativeEngineSpec.get_prequeries(
|
||||
database, catalog="`escaped-hyphen`", schema="`hyphen-escaped`"
|
||||
) == [
|
||||
"USE CATALOG `escaped-hyphen`",
|
||||
"USE SCHEMA `hyphen-escaped`",
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue