{"record":{"id":"b654363f7e1ba8eb","repo":"apache/seatunnel","slug":"will-probably-cause-value-overflow-b65436","errorCode":null,"errorMessage":"{} will probably cause value overflow.","messagePattern":"(.+?) will probably cause value overflow\\.","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/vertica/VerticaTypeMapper.java","lineNumber":119,"sourceCode":"            case VERTICA_TINYINT:\n            case VERTICA_TINYINT_UNSIGNED:\n            case VERTICA_SMALLINT:\n            case VERTICA_SMALLINT_UNSIGNED:\n            case VERTICA_MEDIUMINT:\n            case VERTICA_MEDIUMINT_UNSIGNED:\n            case VERTICA_INT:\n            case VERTICA_INTEGER:\n            case VERTICA_YEAR:\n                return BasicType.INT_TYPE;\n            case VERTICA_INT_UNSIGNED:\n            case VERTICA_INTEGER_UNSIGNED:\n            case VERTICA_BIGINT:\n                return BasicType.LONG_TYPE;\n            case VERTICA_BIGINT_UNSIGNED:\n                return new DecimalType(20, 0);\n            case VERTICA_DECIMAL:\n                if (precision > 38) {\n                    LOG.warn(\"{} will probably cause value overflow.\", VERTICA_DECIMAL);\n                    return new DecimalType(38, 18);\n                }\n                return new DecimalType(precision, scale);\n            case VERTICA_DECIMAL_UNSIGNED:\n                return new DecimalType(precision + 1, scale);\n            case VERTICA_FLOAT:\n                return BasicType.FLOAT_TYPE;\n            case VERTICA_FLOAT_UNSIGNED:\n                LOG.warn(\"{} will probably cause value overflow.\", VERTICA_FLOAT_UNSIGNED);\n                return BasicType.FLOAT_TYPE;\n            case VERTICA_DOUBLE:\n                return BasicType.DOUBLE_TYPE;\n            case VERTICA_DOUBLE_UNSIGNED:\n                LOG.warn(\"{} will probably cause value overflow.\", VERTICA_DOUBLE_UNSIGNED);\n                return BasicType.DOUBLE_TYPE;\n            case VERTICA_CHAR:\n            case VERTICA_TINYTEXT:\n            case VERTICA_MEDIUMTEXT:","sourceCodeStart":101,"sourceCodeEnd":137,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/vertica/VerticaTypeMapper.java#L101-L137","documentation":"VerticaTypeMapper.mapping converts VERTICA_DECIMAL columns to SeaTunnel DecimalType. Vertica allows DECIMAL precision above 38, but SeaTunnel's DecimalType is capped at 38, so when precision > 38 the mapper logs this warning and coerces to DECIMAL(38,18). Values with more than 38 significant digits may overflow or lose scale.","triggerScenarios":"Catalog-based (schema evolution) reads where a Vertica table column is DECIMAL/NUMERIC with precision > 38 (e.g. DECIMAL(40,10)); the mapper runs during type conversion from Vertica metadata.","commonSituations":"Vertica tables created with very large precision decimals (Vertica permits up to 1024); migrating Vertica data to engines capped at 38-digit decimals.","solutions":["Alter the Vertica column to DECIMAL(38,s) or lower precision so it maps losslessly","Accept DECIMAL(38,18) and validate that your data fits (integer digits <= 20)","Pre-read the column as VARCHAR and convert manually if full precision is required"],"exampleFix":"// before: Vertica column DECIMAL(45,5) -> warning, coerced to DECIMAL(38,18)\n// after: alter Vertica column to fit\nALTER TABLE t ALTER COLUMN d SET DATA TYPE DECIMAL(38,5);","handlingStrategy":"validation","validationCode":"// Check Vertica decimal precision before running the pipeline:\nSELECT column_name, numeric_precision, numeric_scale\nFROM v_catalog.columns\nWHERE table_name = 't' AND data_type LIKE 'DECIMAL%'\n  AND numeric_precision > 38;","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep Vertica decimal precision at or below 38","Run schema pre-checks on catalog tables before pipeline launch","Cast oversized decimals to STRING for transport","Review DecimalType coercion in logs after schema changes"],"tags":["jdbc","vertica","decimal","precision-overflow"],"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-14T11:17:12.474Z"}