Skip to content

Commit 87b2ee4

Browse files
committed
[test](regression) Cover all Paimon JDBC system tables
### What problem does this PR solve? Issue Number: None Related PR: None Problem Summary: The Paimon JDBC regression case only verified schemas and snapshots, which left the other system tables and the row_tracking table unexercised. Extend the regression case to cover every system table exposed through table$system_name syntax, including a separate row-tracking-enabled table. ### Release note None ### Check List (For Author) - Test: Manual test - Manual test: Verified all Paimon JDBC system tables on the local FE/BE cluster, including row_tracking on a row-tracking-enabled table - Behavior changed: No - Does this need documentation: No
1 parent 4958b75 commit 87b2ee4

File tree

1 file changed

+59
-10
lines changed

1 file changed

+59
-10
lines changed

regression-test/suites/external_table_p0/paimon/test_paimon_jdbc_catalog.groovy

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,22 @@ suite("test_paimon_jdbc_catalog", "p0,external") {
124124
executeCommand(command, true)
125125
}
126126

127+
def assertSystemTableReadable = { String tableExpr, List<String> expectedColumns = [], Integer minCount = null ->
128+
def descRows = sql """DESC ${tableExpr}"""
129+
assertTrue(descRows.size() > 0)
130+
expectedColumns.each { col ->
131+
assertTrue(descRows.toString().contains(col))
132+
}
133+
134+
def countRows = sql """SELECT COUNT(*) FROM ${tableExpr}"""
135+
assertEquals(1, countRows.size())
136+
int countValue = countRows[0][0].toString().toInteger()
137+
if (minCount != null) {
138+
assertTrue(countValue >= minCount)
139+
}
140+
return countValue
141+
}
142+
127143
try {
128144
sql """switch internal"""
129145
sql """DROP CATALOG IF EXISTS ${catalogName}"""
@@ -189,22 +205,55 @@ suite("test_paimon_jdbc_catalog", "p0,external") {
189205
assertEquals(1, rowCount.size())
190206
assertEquals("2", rowCount[0][0].toString())
191207

192-
def schemaDesc = sql """DESC paimon_jdbc_tbl\$schemas"""
193-
assertTrue(schemaDesc.toString().contains("schema_id"))
208+
assertSystemTableReadable("paimon_jdbc_tbl\$schemas", ["schema_id"], 1)
209+
assertSystemTableReadable("paimon_jdbc_tbl\$snapshots", ["snapshot_id"], 1)
210+
[
211+
"paimon_jdbc_tbl\$options",
212+
"paimon_jdbc_tbl\$audit_log",
213+
"paimon_jdbc_tbl\$files",
214+
"paimon_jdbc_tbl\$tags",
215+
"paimon_jdbc_tbl\$branches",
216+
"paimon_jdbc_tbl\$consumers",
217+
"paimon_jdbc_tbl\$ro",
218+
"paimon_jdbc_tbl\$aggregation_fields",
219+
"paimon_jdbc_tbl\$binlog",
220+
"paimon_jdbc_tbl\$manifests",
221+
"paimon_jdbc_tbl\$partitions",
222+
"paimon_jdbc_tbl\$buckets",
223+
"paimon_jdbc_tbl\$statistics",
224+
"paimon_jdbc_tbl\$table_indexes"
225+
].each { tableExpr ->
226+
assertSystemTableReadable(tableExpr)
227+
}
194228

195-
def schemaCount = sql """SELECT COUNT(*) FROM paimon_jdbc_tbl\$schemas"""
196-
assertEquals(1, schemaCount.size())
197-
assertTrue(schemaCount[0][0].toString().toInteger() >= 1)
229+
sql """DROP TABLE IF EXISTS paimon_jdbc_row_tracking_tbl"""
230+
sql """
231+
CREATE TABLE ${dbName}.paimon_jdbc_row_tracking_tbl (
232+
id INT,
233+
name STRING,
234+
dt DATE
235+
) ENGINE=paimon
236+
PROPERTIES (
237+
'bucket' = '-1',
238+
'row-tracking.enabled' = 'true'
239+
)
240+
"""
198241

199-
def snapshotsDesc = sql """DESC paimon_jdbc_tbl\$snapshots"""
200-
assertTrue(snapshotsDesc.toString().contains("snapshot_id"))
242+
sparkPaimonJdbc """
243+
INSERT INTO ${sparkSeedCatalogName}.${dbName}.paimon_jdbc_row_tracking_tbl VALUES
244+
(3, 'carol', DATE '2025-01-03'),
245+
(4, 'dave', DATE '2025-01-04')
246+
"""
201247

202-
def snapshotsCount = sql """SELECT COUNT(*) FROM paimon_jdbc_tbl\$snapshots"""
203-
assertEquals(1, snapshotsCount.size())
204-
assertTrue(snapshotsCount[0][0].toString().toInteger() >= 1)
248+
assertSystemTableReadable(
249+
"paimon_jdbc_row_tracking_tbl\$row_tracking",
250+
["_row_id", "_sequence_number"],
251+
1
252+
)
205253
} finally {
206254
try {
207255
sql """SWITCH ${catalogName}"""
256+
sql """DROP TABLE IF EXISTS ${dbName}.paimon_jdbc_row_tracking_tbl"""
208257
sql """DROP TABLE IF EXISTS ${dbName}.paimon_jdbc_tbl"""
209258
sql """DROP DATABASE IF EXISTS ${dbName} FORCE"""
210259
} catch (Exception e) {

0 commit comments

Comments
 (0)