github-actions[bot] commented on code in PR #68441:
URL: https://github.com/apache/doris/pull/68441#discussion_r4110075124


##########
be/test/format_v2/table_reader_test.cpp:
##########
@@ -69,8 +71,47 @@
 #include "runtime/runtime_profile.h"
 #include "runtime/runtime_state.h"
 #include "storage/segment/condition_cache.h"
+#include "util/timezone_utils.h"
 
 namespace doris::format {
+
+TEST(TableReaderTest, Int96TimezoneOverridePreservesIntermediateSchemas) {
+    TFileScanRangeParams params;
+    
EXPECT_FALSE(TableReader::_get_int96_timezone_override(nullptr).has_value());
+    
EXPECT_FALSE(TableReader::_get_int96_timezone_override(&params).has_value());

Review Comment:
   [P1] The added test calls the private 
TableReader::_get_int96_timezone_override directly, but the declaration is 
under private: in table_reader.h:2073-2075 and this TU has no 
friend/test-access shim. The table_reader test target will fail C++ 
access-control compilation before running. Expose a test-only/public wrapper or 
move the helper to an accessible free function, then keep the test coverage.



##########
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:
   [P1] This unconditional v1 marker changes old Hive INT96 reads when 
hive.parquet.time-zone is unset. The BE interprets version=1 plus no field as 
an explicit empty override, so native INT96 decoding uses UTC wall-clock 
instead of the session zone. A pre-change file written in an Asia/Shanghai 
session (midnight encoded as 16:00 UTC) will now return 16:00, silently 
shifting existing data. Preserve the legacy session interpretation unless an 
explicit catalog contract is present, or add a migration/capability gate and a 
non-UTC legacy-file regression.



-- 
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]

Reply via email to