Gabriel39 commented on code in PR #69171:
URL: https://github.com/apache/doris/pull/69171#discussion_r4296114767
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcOracleClient.java:
##########
@@ -208,6 +208,10 @@ protected Type jdbcTypeToDoris(JdbcFieldSchema
fieldSchema) {
precision = scale;
}
return createDecimalOrStringType(precision, scale);
+ // Oracle binary floating-point types retain IEEE precision
instead of becoming unsupported.
+ case "BINARY_FLOAT":
+ return Type.FLOAT;
+ case "BINARY_DOUBLE":
Review Comment:
Fixed by setting Oracle’s SetFloatAndDoubleUseBinary connection property
before Hikari opens connections. This keeps FLOAT/DOUBLE inserts on the binary
IEEE binding path rather than converting them through NUMBER. Added
driver-contract/unit coverage and an INSERT/readback regression for large and
small doubles, signed floats, and NULLs. Verified against a real Oracle
database: the previous executor fails on setDouble(1e200) with Overflow; the
fixed executor passes all five Java tests and the Doris JDBC regression block.
##########
fe/fe-core/src/main/java/org/apache/doris/tablefunction/ExternalFileTableValuedFunction.java:
##########
@@ -253,12 +253,9 @@ && getTFileType() != TFileType.FILE_S3) {
throw new AnalysisException("Lance format is supported only by
local() and s3() TVFs");
}
- // The catalog property was removed, but this TVF-only option must
remain explicit because
- // changing an ad-hoc TVF result schema also breaks CTAS type
inference.
- String enableMappingVarbinaryStr = getOrDefaultAndRemove(copiedProps,
- FileFormatConstants.PROP_ENABLE_MAPPING_VARBINARY, "false");
- fileFormatProperties.enableMappingVarbinary =
Boolean.parseBoolean(enableMappingVarbinaryStr);
-
+ // Binary file fields must preserve bytes even when a legacy opt-out
is supplied.
+ copiedProps.remove(FileFormatConstants.PROP_ENABLE_MAPPING_VARBINARY);
+ fileFormatProperties.enableMappingVarbinary = true;
Review Comment:
Fixed shared Parquet schema inference for both modern ENUM logical
annotations and legacy ConvertedType::ENUM: both remain STRING independently of
the raw-binary option. Added a schema unit matrix and an ENUM-only
CTAS/readback regression with the option set to both false and true. The
focused schema test fails against the old implementation and passes with the
fix; the HDFS regression suite also passes. Logical UUID annotations now take
precedence over the raw-binary default as well, addressing the related CI
regressions without changing the V1 decoder chain.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]