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


##########
be/src/format/table/es/es_scroll_parser.cpp:
##########
@@ -723,15 +890,24 @@ Status ScrollParser::fill_columns(const 
std::vector<SlotDescriptor*>& slots,
             }
         }
 
-        const rapidjson::Value& col = (*line)[col_name];

Review Comment:
   [P2] Preserve valid epoch-millis dates when source fallback is selected
   
   The new scan-wide source mode reaches this unchanged date decoder for every 
sibling. A default ES `date` (`strict_date_optional_time||epoch_millis`) can 
retain source values such as `"0"` or `"1.5"` (and JSON numbers with fractional 
milliseconds), but `get_date_value_int` only treats a 13-character positive 
string as epoch millis; shorter values fall through `CastToDatetimeV2`, a 
13-digit zero is rejected by `time_long > 0`, and numeric fractions take the 
`GetInt64()` path even when RapidJSON stored a double. With a normalized 
keyword sibling removing its docvalue context, `useDocValueScan` forces this 
path for the whole projection, so a valid indexed document now fails while the 
prior docvalue projection was readable. Parse source dates with the ES 
epoch-millis grammar (including zero/fractional values) and use a checked 
numeric conversion; add controls for both legacy and v2 readers.



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