improve get schemas test
This commit is contained in:
parent
269f0ad7cc
commit
efa78a92f1
2
.github/workflows/master.yml
vendored
2
.github/workflows/master.yml
vendored
@ -39,5 +39,5 @@ jobs:
|
||||
- name: Build with Maven
|
||||
run: |
|
||||
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
|
||||
mvn --no-transfer-progress clean install -pl :kyuubi-common,:kyuubi-ha,:kyuubi-main,:kyuubi-spark-sql-engine,:kyuubi-codecov -Dmaven.javadoc.skip=true -B -V
|
||||
mvn --no-transfer-progress clean install -pl :kyuubi-common,:kyuubi-ha,:kyuubi-main,:kyuubi-download,:kyuubi-assembly,:kyuubi-spark-sql-engine,:kyuubi-codecov -Dmaven.javadoc.skip=true -B -V
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
package org.apache.kyuubi.engine.spark.operation
|
||||
|
||||
import java.sql.{Date, SQLException, Timestamp}
|
||||
import java.sql.{Date, ResultSet, SQLException, Timestamp}
|
||||
|
||||
import scala.collection.JavaConverters._
|
||||
|
||||
@ -46,21 +46,39 @@ class SparkOperationSuite extends WithSparkSQLEngine {
|
||||
}
|
||||
|
||||
test("get schemas") {
|
||||
withDatabases("db1", "db2") { statement =>
|
||||
statement.execute("CREATE DATABASE IF NOT EXISTS db1")
|
||||
statement.execute("CREATE DATABASE IF NOT EXISTS db2")
|
||||
def checkResult(rs: ResultSet, dbNames: Seq[String]): Unit = {
|
||||
val expected = dbNames.iterator
|
||||
while(rs.next() || expected.hasNext) {
|
||||
assert(rs.getString("TABLE_SCHEM") === expected.next)
|
||||
assert(rs.getString("TABLE_CATALOG").isEmpty)
|
||||
}
|
||||
// Make sure there are no more elements
|
||||
assert(!rs.next())
|
||||
assert(!expected.hasNext, "All expected schemas should be visited")
|
||||
}
|
||||
|
||||
val dbs = Seq("db1", "db2", "db33", "db44")
|
||||
val dbDflts = Seq("default", "global_temp")
|
||||
|
||||
withDatabases(dbs: _*) { statement =>
|
||||
dbs.foreach(db => statement.execute(s"CREATE DATABASE IF NOT EXISTS $db"))
|
||||
val metaData = statement.getConnection.getMetaData
|
||||
|
||||
Seq("", "%", null, ".*", "db#") foreach { pattern =>
|
||||
val resultSet = metaData.getSchemas(null, pattern)
|
||||
val expected =
|
||||
Seq("db1", "db2", "default", spark.sharedState.globalTempViewManager.database).iterator
|
||||
while(resultSet.next()) {
|
||||
assert(resultSet.getString(TABLE_SCHEM) === expected.next)
|
||||
assert(resultSet.getString(TABLE_CATALOG).isEmpty)
|
||||
}
|
||||
Seq("", "%", null, ".*", "_*", "_%", ".%") foreach { pattern =>
|
||||
checkResult(metaData.getSchemas(null, pattern), dbs ++ dbDflts)
|
||||
}
|
||||
|
||||
Seq("db%", "db*") foreach { pattern =>
|
||||
checkResult(metaData.getSchemas(null, pattern), dbs)
|
||||
}
|
||||
|
||||
Seq("db_", "db.") foreach { pattern =>
|
||||
checkResult(metaData.getSchemas(null, pattern), dbs.take(2))
|
||||
}
|
||||
|
||||
checkResult(metaData.getSchemas(null, "db1"), Seq("db1"))
|
||||
checkResult(metaData.getSchemas(null, "db_not_exist"), Seq.empty)
|
||||
|
||||
val e = intercept[HiveSQLException](metaData.getSchemas(null, "*"))
|
||||
assert(e.getCause.getMessage === "org.apache.kyuubi.KyuubiSQLException:" +
|
||||
"Error operating GET_SCHEMAS: Dangling meta character '*' near index 0\n*\n^")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user