{"record":{"id":"004a5370d0be17c2","repo":"apache/seatunnel","slug":"will-probably-cause-value-overflow","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/sqlite/SqliteTypeMapper.java","lineNumber":129,"sourceCode":"            case SQLITE_INT:\n            case SQLITE_INTEGER:\n                return BasicType.INT_TYPE;\n            case SQLITE_INT_UNSIGNED:\n            case SQLITE_INTEGER_UNSIGNED:\n            case SQLITE_BIGINT:\n            case SQLITE_BIGINT_UNSIGNED:\n            case SQLITE_NUMERIC:\n                return BasicType.LONG_TYPE;\n            case SQLITE_DECIMAL:\n            case SQLITE_DECIMAL_UNSIGNED:\n            case SQLITE_DOUBLE:\n            case SQLITE_DOUBLE_PRECISION:\n            case SQLITE_REAL:\n                return BasicType.DOUBLE_TYPE;\n            case SQLITE_FLOAT:\n                return BasicType.FLOAT_TYPE;\n            case SQLITE_FLOAT_UNSIGNED:\n                log.warn(\"{} will probably cause value overflow.\", SQLITE_FLOAT_UNSIGNED);\n                return BasicType.FLOAT_TYPE;\n            case SQLITE_DOUBLE_UNSIGNED:\n                log.warn(\"{} will probably cause value overflow.\", SQLITE_DOUBLE_UNSIGNED);\n                return BasicType.DOUBLE_TYPE;\n            case SQLITE_CHARACTER:\n            case SQLITE_VARYING_CHARACTER:\n            case SQLITE_NATIVE_CHARACTER:\n            case SQLITE_NVARCHAR:\n            case SQLITE_NCHAR:\n            case SQLITE_LONGNVARCHAR:\n            case SQLITE_LONGVARCHAR:\n            case SQLITE_CLOB:\n            case SQLITE_CHAR:\n            case SQLITE_TINYTEXT:\n            case SQLITE_MEDIUMTEXT:\n            case SQLITE_TEXT:\n            case SQLITE_VARCHAR:\n            case SQLITE_JSON:","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/sqlite/SqliteTypeMapper.java#L111-L147","documentation":"When mapping SQLite's UNSIGNED FLOAT type to SeaTunnel types, the mapper warns that FLOAT cannot represent the full unsigned range, so large values may overflow. The column is still mapped to BasicType.FLOAT_TYPE; no error is raised.","triggerScenarios":"SqliteTypeMapper.mapping() encounters a column whose type name resolves to SQLITE_FLOAT_UNSIGNED; the warning fires every time this mapping runs during schema read for a SQLite source/sink.","commonSituations":"SQLite tables created with 'FLOAT UNSIGNED' (a MySQL-ism that SQLite accepts syntactically) holding values above IEEE float range; migrations from MySQL schemas to SQLite.","solutions":["Change the column type in SQLite to DOUBLE (or plain REAL) so the full range fits.","If values can exceed float range, treat the column as TEXT/DECIMAL in your pipeline.","Clamp/validate values at write time to the FLOAT range.","Ignore the warning if your data values are known to fit in float."],"exampleFix":"-- before\nCREATE TABLE t (v FLOAT UNSIGNED);\n-- after\nCREATE TABLE t (v DOUBLE);","handlingStrategy":"validation","validationCode":"// before reading, check schema types\nif (typeName.equalsIgnoreCase(\"FLOAT UNSIGNED\")) {\n    log.warn(\"Column {} uses FLOAT UNSIGNED; values may overflow FLOAT\", columnName);\n}","typeGuard":"boolean isOverflowSafeFloat(Number v) {\n    return v == null || (v.floatValue() <= Float.MAX_VALUE && v.floatValue() >= -Float.MAX_VALUE);\n}","tryCatchPattern":null,"preventionTips":["Avoid MySQL-style UNSIGNED float types in SQLite schemas","Use DOUBLE or REAL for wide-range numeric columns","Validate numeric ranges after read if FLOAT mapping is retained"],"tags":["jdbc","sqlite","type-mapping","overflow","float"],"backgroundTag":"type-mismatch","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}