{"record":{"id":"a0561e8aa8ea7354","repo":"apache/seatunnel","slug":"the-timestamp-tz-column-type-datetime-tz-is","errorCode":null,"errorMessage":"The timestamp_tz column {} type datetime_tz({}) is out of range, which exceeds the maximum scale of {}, it will be converted to datetime_tz({})","messagePattern":"The timestamp_tz column (.+?) type datetime_tz\\((.+?)\\) is out of range, which exceeds the maximum scale of (.+?), it will be converted to datetime_tz\\((.+?)\\)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java","lineNumber":502,"sourceCode":"                                        + \"it will be converted to timestamp({})\",\n                                column.getName(),\n                                column.getScale(),\n                                MAX_TIMESTAMP_SCALE,\n                                timestampScale);\n                    }\n                    builder.columnType(String.format(\"%s(%s)\", DM_TIMESTAMP, timestampScale));\n                    builder.scale(timestampScale);\n                } else {\n                    builder.columnType(DM_TIMESTAMP);\n                }\n                break;\n            case TIMESTAMP_TZ:\n                builder.dataType(DM_DATETIME_WITH_TIME_ZONE);\n                if (column.getScale() != null && column.getScale() > 0) {\n                    Integer timestampTzScale = column.getScale();\n                    if (timestampTzScale > MAX_TIMESTAMP_SCALE) {\n                        timestampTzScale = MAX_TIMESTAMP_SCALE;\n                        log.warn(\n                                \"The timestamp_tz column {} type datetime_tz({}) is out of range, \"\n                                        + \"which exceeds the maximum scale of {}, \"\n                                        + \"it will be converted to datetime_tz({})\",\n                                column.getName(),\n                                column.getScale(),\n                                MAX_TIMESTAMP_SCALE,\n                                timestampTzScale);\n                    }\n                    builder.columnType(\n                            String.format(\"DATETIME(%s) WITH TIME ZONE\", timestampTzScale));\n                    builder.scale(timestampTzScale);\n                } else {\n                    builder.columnType(DM_DATETIME_WITH_TIME_ZONE);\n                }\n                break;\n            default:\n                throw CommonError.convertToConnectorTypeError(\n                        DatabaseIdentifier.DAMENG,","sourceCodeStart":484,"sourceCodeEnd":520,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/dm/DmdbTypeConverter.java#L484-L520","documentation":"A log warning in DmdbTypeConverter.reconvert for TIMESTAMP_TZ columns: the offset-aware timestamp scale exceeds MAX_TIMESTAMP_SCALE, so it is clamped and mapped to Dameng's datetime-with-timezone type (DM_DATETIME_WITH_TIME_ZONE) with reduced sub-second precision.","triggerScenarios":"reconvert() on a column of logical type TIMESTAMP_TZ with scale > MAX_TIMESTAMP_SCALE (e.g. TIMESTAMP(9) WITH TIME ZONE sources).","commonSituations":"Syncing timezone-aware timestamps (Postgres TIMESTAMPTZ(6), Oracle TIMESTAMP WITH TIME ZONE) into Dameng; fractional-second precision loss in the target.","solutions":["Cap the source timestamptz scale within MAX_TIMESTAMP_SCALE","Accept clamped datetime_tz(x) precision","Pre-create the DM column and exclude it from automatic conversion","Normalize timezone handling/precision upstream with a transform"],"exampleFix":"// before\nTIMESTAMP(9) WITH TIME ZONE\n// after\nTIMESTAMP(6) WITH TIME ZONE -- clamped","handlingStrategy":"validation","validationCode":"if (column.getScale() != null && column.getScale() > MAX_TIMESTAMP_SCALE) {\n    // reduce timestamptz precision before sync\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Cap timezone-aware timestamp precision at design time","Be explicit about timezone conversion semantics between source and Dameng"],"tags":["jdbc","dameng","timestamp","timezone","precision"],"backgroundTag":"value-out-of-range","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}