ulysses-you commented on code in PR #4081:
URL: https://github.com/apache/kyuubi/pull/4081#discussion_r1062095405


##########
kyuubi-server/src/test/scala/org/apache/kyuubi/parser/trino/KyuubiTrinoFeParserSuite.scala:
##########
@@ -108,4 +108,115 @@ class KyuubiTrinoFeParserSuite extends KyuubiFunSuite {
 
     assert(kyuubiTreeNode.isInstanceOf[GetTypeInfo])
   }
+
+  test("Support GetTables for Trino Fe") {
+    def check(
+        query: String,
+        catalog: String = null,
+        schema: String = null,
+        tableName: String = null,
+        types: List[String] = null,
+        emptyRes: Boolean = false): Unit = {
+      parse(query) match {
+        case GetTables(catalogName, schemaPattern, tableNamePattern, 
tableTypes, emptyResult) =>
+          assert(catalog == catalogName)
+          assert(schema == schemaPattern)
+          assert(tableName == tableNamePattern)
+          assert(types == tableTypes)
+          assert(emptyRes == emptyResult)
+        case _ => fail(s"Query $query parse failed. ")
+      }
+    }
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin)
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT IS NULL
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin)
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog'
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin,
+      catalog = "ykf_catalog")
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog' AND TABLE_SCHEM IS NULL
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin,
+      catalog = "ykf_catalog")
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog' AND TABLE_SCHEM LIKE '%aa' ESCAPE '\'
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin,
+      catalog = "ykf_catalog",
+      "%aa")
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog' AND TABLE_NAME LIKE '%aa' ESCAPE '\'
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin,
+      catalog = "ykf_catalog",
+      tableName = "%aa")
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog' AND TABLE_NAME LIKE '%aa' ESCAPE '\' 
AND FALSE
+        | ORDER BY TABLE_TYPE, TABLE_CAT, TABLE_SCHEM, TABLE_NAME
+        |""".stripMargin,
+      catalog = "ykf_catalog",
+      tableName = "%aa",
+      emptyRes = true)
+
+    check(
+      """
+        | SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS,
+        | TYPE_CAT, TYPE_SCHEM, TYPE_NAME,
+        | SELF_REFERENCING_COL_NAME, REF_GENERATION
+        | FROM system.jdbc.tables
+        | WHERE TABLE_CAT = 'ykf_catalog' AND TABLE_SCHEM LIKE '%aa' ESCAPE 
'\' AND
+        | TABLE_TYPE IN ('ykf_type', 'ykf2_type') ORDER BY TABLE_TYPE, 
TABLE_CAT, TABLE_SCHEM, TABLE_NAME

Review Comment:
   seems `'\'` is strict, how about relaxing it to `stirngInValue` ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to