{"record":{"id":"9d173f6abe5e6f05","repo":"apache/incubator-seata","slug":"the-db-type-dbtype-is-not-supported-yet","errorCode":null,"errorMessage":"\"The DB type :\" + dbType + \" is not supported yet\"","messagePattern":"\"The DB type :\" \\+ dbType \\+ \" is not supported yet\"","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"common/src/main/java/org/apache/seata/common/util/PageUtil.java","lineNumber":200,"sourceCode":"    }\n\n    /**\n     * get sql for time start\n     * @param dbType\n     * @param timeColumnName\n     * @return java.lang.String\n     */\n    public static String getTimeStartSql(String dbType, String timeColumnName) {\n        switch (dbType.toLowerCase()) {\n            case \"mysql\":\n            case \"oracle\":\n            case \"postgresql\":\n            case \"sqlserver\":\n            case \"dm\":\n            case \"oscar\":\n                return \" and FLOOR(\" + timeColumnName + \"/1000) >= ? \";\n            default:\n                throw new IllegalArgumentException(\"The DB type :\" + dbType + \" is not supported yet\");\n        }\n    }\n\n    /**\n     * get sql for time end\n     * @param dbType\n     * @param timeColumnName\n     * @return java.lang.String\n     */\n    public static String getTimeEndSql(String dbType, String timeColumnName) {\n        switch (dbType.toLowerCase()) {\n            case \"mysql\":\n            case \"oracle\":\n            case \"postgresql\":\n            case \"sqlserver\":\n            case \"dm\":\n            case \"oscar\":\n                return \" and FLOOR(\" + timeColumnName + \"/1000) <= ? \";","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/apache/incubator-seata/blob/e01f97c6db397165050caa6764020410c2c8199a/common/src/main/java/org/apache/seata/common/util/PageUtil.java#L182-L218","documentation":"PageUtil.getTimeStartSql builds a 'time >= ?' SQL fragment converting an epoch-seconds bound, currently supporting mysql, oracle, postgresql, sqlserver, dm and oscar (all via FLOOR(col/1000) >= ?). Any other dbType throws IllegalArgumentException(\"The DB type :X is not supported yet\").","triggerScenarios":"Calling getTimeStartSql(dbType, timeColumnName) with a dbType not in {mysql, oracle, postgresql, sqlserver, dm, oscar} — e.g. h2, db2, mariadb spelled as 'maria', or a casing/whitespace variant (the method lowercases dbType itself, so case is tolerated but the name must match exactly).","commonSituations":"Console time-range queries (transaction list filtered by start time) against an unsupported store; custom store implementations reusing PageUtil with their own dbType constant.","solutions":["Use a supported dbType: mysql, oracle, postgresql, sqlserver, dm, or oscar","Correct the store.db.dbType configuration value (exact lowercase name)","Skip time-filter parameters when the dialect is unsupported, or add a dialect case upstream"],"exampleFix":"# before\nstore.db.dbType = h2 // getTimeStartSql throws\n\n# after\nstore.db.dbType = mysql","handlingStrategy":"type-guard","validationCode":"Set<String> TIME_DB = Set.of(\"mysql\", \"oracle\", \"postgresql\", \"sqlserver\", \"dm\", \"oscar\");\nif (!TIME_DB.contains(dbType)) skipTimeFilter = true;","typeGuard":"static boolean supportsEpochTimeFilter(String dbType) { return dbType != null && Set.of(\"mysql\",\"oracle\",\"postgresql\",\"sqlserver\",\"dm\",\"oscar\").contains(dbType.toLowerCase()); }","tryCatchPattern":"try { frag = PageUtil.getTimeStartSql(dbType, col); } catch (IllegalArgumentException e) { throw new ConfigurationException(\"time filters unsupported on \" + dbType, e); }","preventionTips":["Match your store dbType to the six supported dialects when time filters are needed","Gate time-filter request parameters on dialect capability checks","Keep dialect capability sets in one place, versioned with your Seata dependency"],"tags":["database","dialect","time-filter","not-supported"],"backgroundTag":null,"analyzedSha":"e01f97c6db397165050caa6764020410c2c8199a","analyzedAt":"2026-08-14T10:23:53.097Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}