github-actions[bot] commented on code in PR #68161:
URL: https://github.com/apache/doris/pull/68161#discussion_r4055834955
##########
fe/be-java-extensions/paimon-scanner/src/main/java/org/apache/doris/paimon/PaimonColumnValue.java:
##########
@@ -167,7 +168,8 @@ public LocalDate getDate() {
@Override
public LocalDateTime getDateTime() {
- Timestamp ts = record.getTimestamp(idx, dorisType.getPrecision());
+ Timestamp ts = truncateTimestampPrecision(
Review Comment:
[P1] Keep the JNI residual out of this pre-repair window. This is distinct
from the existing getter-value thread: Paimon 1.3.1 first schema-casts old rows
and then executeFilter() tests the current-schema predicate before
PaimonColumnValue. Its leading-zero bug can leave old p6 .000001 unchanged for
p4, so equality with the current p4 second rejects the row; without the
predicate this helper would have fixed it to .0000. The raw ORC/Parquet
pushdown is correctly dropped, but this later residual still loses the row.
Please withhold affected predicates from executeFilter while retaining the
Doris residual, or perform fixed-width correction before it, and add a
forced-JNI boundary predicate case.
##########
be/src/format/column_type_convert.h:
##########
@@ -152,6 +162,37 @@ class ConsistentConverter : public ColumnTypeConverter {
bool is_consistent() override { return true; }
};
+class DateTimeV2PrecisionConverter : public ColumnTypeConverter {
+public:
+ explicit DateTimeV2PrecisionConverter(UInt32 to_scale) :
_to_scale(to_scale) {}
+
+ // NOLINTNEXTLINE(readability-make-member-function-const): base virtual
method is non-const.
+ Status convert(ColumnPtr& src_col, MutableColumnPtr& dst_col) override {
+ using ColumnType = typename
PrimitiveTypeTraits<TYPE_DATETIMEV2>::ColumnType;
Review Comment:
[P1] Dispatch this converter by the actual timestamp primitive. The new
predicate selects it for TYPE_TIMESTAMPTZ too, but ColumnType is fixed to
ColumnDateTimeV2 and the unchecked casts below therefore access the
ColumnTimeStampTz objects produced by both V1 Parquet and ORC as an unrelated
final ColumnVector specialization. That is undefined behavior even though the
current wrappers are both 64-bit. Please branch/template on the primitive and
operate on ColumnTimeStampTz/TimestampTzValue for TIMESTAMPTZ (as the V2 path
does), with V1 LTZ coverage.
--
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]