Skip to content

Commit 8822ede

Browse files
update
Co-authored-by: Thomas Chow <[email protected]>
1 parent eb08cb1 commit 8822ede

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

cloud_gcp/src/main/scala/ai/chronon/integrations/cloud_gcp/GcpFormatProvider.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ class GcpFormatProvider(override val sparkSession: SparkSession) extends Default
4747
}
4848
}
4949

50-
private def getCatalog(tableName: String): String = {
50+
private[cloud_gcp] def getCatalog(tableName: String): String = {
5151
logger.info(s"Retrieving read format for table: ${tableName}")
5252
val parsed = sparkSession.sessionState.sqlParser.parseMultipartIdentifier(tableName)
53-
val parsedCatalog = parsed match {
53+
val parsedCatalog = parsed.toList match {
5454
case catalog :: namespace :: tableName :: Nil => catalog
5555
case namespace :: tableName :: Nil => sparkSession.catalog.currentCatalog()
5656
case tableName :: Nil => sparkSession.catalog.currentCatalog()
@@ -59,7 +59,7 @@ class GcpFormatProvider(override val sparkSession: SparkSession) extends Default
5959
parsedCatalog
6060
}
6161

62-
private def isBigQueryCatalog(catalog: String): Boolean = {
62+
private[cloud_gcp] def isBigQueryCatalog(catalog: String): Boolean = {
6363
val cat = sparkSession.sessionState.catalogManager.catalog(catalog)
6464
cat.isInstanceOf[DelegatingBigQueryMetastoreCatalog] || cat
6565
.isInstanceOf[BigQueryCatalog] || (cat.isInstanceOf[SparkCatalog] && cat

cloud_gcp/src/test/scala/ai/chronon/integrations/cloud_gcp/BigQueryCatalogTest.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ class BigQueryCatalogTest extends AnyFlatSpec with MockitoSugar {
6161
assertCompiles("classOf[GoogleHadoopFS]")
6262
}
6363

64+
it should "test catalog detection" in {
65+
val fp = FormatProvider.from(spark).asInstanceOf[GcpFormatProvider]
66+
assertEquals("catalogA", fp.getCatalog("catalogA.foo.bar"))
67+
assertEquals("catalogA", fp.getCatalog("`catalogA`.foo.bar"))
68+
assertEquals("spark_catalog", fp.getCatalog("`catalogA.foo`.bar"))
69+
assertEquals("spark_catalog", fp.getCatalog("`catalogA.foo.bar`"))
70+
assertEquals("spark_catalog", fp.getCatalog("foo.bar"))
71+
assertEquals("spark_catalog", fp.getCatalog("bar"))
72+
assertThrows[ParseException](fp.getCatalog(""))
73+
}
74+
6475
it should "verify dynamic classloading of GCP providers" in {
6576
assertEquals("thrift://localhost:9083", spark.sqlContext.getConf("hive.metastore.uris"))
6677
assertTrue(FormatProvider.from(spark).isInstanceOf[GcpFormatProvider])

0 commit comments

Comments
 (0)