Gabriel39 commented on code in PR #67784:
URL: https://github.com/apache/doris/pull/67784#discussion_r4002001030
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcPostgreSQLClient.java:
##########
@@ -188,8 +188,7 @@ protected Type jdbcTypeToDoris(JdbcFieldSchema fieldSchema)
{
case "jsonb":
return ScalarType.createStringType();
case "bytea": //
https://www.postgresql.org/docs/12/datatype-binary.html#DATATYPE-BINARY-TABLE
- return enableMappingVarbinary ?
ScalarType.createVarbinaryType(fieldSchema.requiredColumnSize())
- : ScalarType.createStringType();
+ return
ScalarType.createVarbinaryType(fieldSchema.requiredColumnSize());
Review Comment:
Fixed in 1b0ef9bfb9. JDBC conjuncts containing VARBINARY literals remain
local for PostgreSQL, Oracle, and SQL Server; compatible MySQL pushdown is
unchanged. Tests cover IN, NOT IN, nested OR, empty/binary literals, and
non-binary predicates. The related FE tests pass.
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/FileQueryScanNode.java:
##########
@@ -247,9 +249,15 @@ protected void initSchemaParams() throws UserException {
setColumnPositionMapping();
// For query, set src tuple id to -1.
params.setSrcTupleId(-1);
- // Set enable_mapping_varbinary from catalog or TVF
params.setEnableMappingVarbinary(getEnableMappingVarbinary());
params.setEnableMappingTimestampTz(getEnableMappingTimestampTz());
+ // The marker makes an omitted timezone an explicit wall-clock choice
while old FE plans
+ // remain distinguishable during a BE-first rolling upgrade.
+
params.setParquetTimestampSemanticsVersion(FileFormatUtils.PARQUET_TIMESTAMP_SEMANTICS_VERSION);
Review Comment:
Fixed in 1b0ef9bfb9. External timestamp columns, including timestamp leaves
in arrays/maps/structs, now stay in phase one rather than reaching the legacy
phase-two row fetch. Other eligible columns can still be deferred, and Lance
search keeps its separate fetch path. Added planner unit tests and a
cross-timezone INT96 TopN regression covering both scanner-toggle settings. The
related FE tests pass; the external integration regression is pending CI.
##########
fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java:
##########
@@ -2514,12 +2520,11 @@ private boolean
isPositionDeletesPartitionColumnRequested() {
private String getPartitionDataObjectJson(PartitionData partitionData,
PartitionSpec partitionSpec,
List<NestedField> outputPartitionFields) throws UserException {
List<NestedField> partitionTypes =
partitionData.getPartitionType().asNestedType().fields();
- boolean enableMappingVarbinary = getEnableMappingVarbinary();
for (int i = 0; i < partitionTypes.size(); i++) {
Type type = partitionTypes.get(i).type();
if (partitionData.get(i) != null && (type.typeId() ==
Type.TypeID.BINARY
|| type.typeId() == Type.TypeID.FIXED
- || (type.typeId() == Type.TypeID.UUID &&
enableMappingVarbinary))) {
+ || type.typeId() == Type.TypeID.UUID)) {
Review Comment:
Fixed in 1b0ef9bfb9. Position-delete partition metadata now transports
UUID/fixed/binary values as hexadecimal bytes, with Iceberg conversion
preserving UUID byte order and buffer positions. The VARBINARY SerDe decodes
this representation without altering the existing raw JSON deserialization
path. FE tests cover UUID, binary, fixed, empty, null, and sliced buffers; BE
tests verify the actual 16 UUID bytes through both V1 and V2 partition readers,
including cached values. The new failure reproductions and related suites pass.
--
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]