Pain Sun created IMPALA-14335:
---------------------------------

             Summary: Error when using merge into iceberg table:Illegal 
reference to non-materialized tuple: tid=2
                 Key: IMPALA-14335
                 URL: https://issues.apache.org/jira/browse/IMPALA-14335
             Project: IMPALA
          Issue Type: Bug
          Components: Backend
    Affects Versions: Impala 4.5.0
         Environment: rocky linux 8
            Reporter: Pain Sun


When using the MERGE operation in an Iceberg table, an error will occur if the 
source table contains window functions.




MERGE INTO test111.icebergtest t USING (
    select
        updatetime_day,
        mainsellernick,
        code,
        num_channelid,
        tid
    from
        (
            select
                updatetime_day,
                mainsellernick,
                code,
                num_channelid,
                tid,
                row_number() over(
                    partition by updatetime_day,
                    mainsellernick,
                    code,
                    tid
                    order by
                        updatetime desc
                ) as rk
            from
                (
                    select
                        20250709 as updatetime_day,
                        'sjztest' as mainsellernick,
                        'code1' as code,
                        'tid1' as tid,
                        6 as num_channelid,
                        cast('2025-08-21 00:00:00' as timestamp) as updatetime
                    union
                    all
                    select
                        20250709 as updatetime_day,
                        'sjztest' as mainsellernick,
                        'code1' as code,
                        'tid1' as tid,
                        6 as num_channelid,
                        cast('2025-08-22 00:00:00' as timestamp) as updatetime
                    union
                    all
                    select
                        20250709 as updatetime_day,
                        'sjztest' as mainsellernick,
                        'code3' as code,
                        'tid3' as tid,
                        6 as num_channelid,
                        cast('2025-08-21 00:00:00' as timestamp) as updatetime
                    union
                    all
                    select
                        20250709 as updatetime_day,
                        'sjztest' as mainsellernick,
                        'code5' as code,
                        'tid5' as tid,
                        6 as num_channelid,
                        cast('2025-08-21 00:00:00' as timestamp) as updatetime
                ) as a
        ) as a
    where
        rk = 1
) s ON t.updatetime_day = s.updatetime_day
and t.mainsellernick = s.mainsellernick
and t.code = s.code
WHEN MATCHED THEN
UPDATE
SET
    t.tid = s.tid,
    t.num_channelid = s.num_channelid
    WHEN NOT MATCHED THEN
INSERT
    (
        updatetime_day,
        mainsellernick,
        code,
        tid,
        num_channelid
    )
VALUES
    (
        s.updatetime_day,
        s.mainsellernick,
        s.code,
        s.tid,
        s.num_channelid
    );

IllegalStateException: Illegal reference to non-materialized tuple: tid=3

I0821 14:02:16.392138 134791 jni-util.cc:321] 
a844461a0a7aa168:55012b5200000000] java.lang.IllegalStateException: Illegal 
reference to non-materialized tuple: tid=3
        at 
com.google.common.base.Preconditions.checkState(Preconditions.java:512)
        at 
org.apache.impala.analysis.TupleIsNullPredicate.toThrift(TupleIsNullPredicate.java:94)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:905)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at 
org.apache.impala.analysis.CastExpr.treeToThriftHelper(CastExpr.java:273)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at 
org.apache.impala.analysis.CastExpr.treeToThriftHelper(CastExpr.java:273)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at 
org.apache.impala.analysis.CastExpr.treeToThriftHelper(CastExpr.java:273)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at org.apache.impala.analysis.Expr.treeToThriftHelper(Expr.java:908)
        at 
org.apache.impala.analysis.CastExpr.treeToThriftHelper(CastExpr.java:273)
        at org.apache.impala.analysis.Expr.treeToThrift(Expr.java:883)
        at org.apache.impala.analysis.Expr.treeToThrift(Expr.java:869)
        at 
org.apache.impala.planner.IcebergMergeNode.toThrift(IcebergMergeNode.java:79)
        at org.apache.impala.planner.PlanNode.toThrift(PlanNode.java:878)
        at 
org.apache.impala.planner.PlanNode.treeToThriftHelper(PlanNode.java:585)
        at org.apache.impala.planner.PlanNode.treeToThrift(PlanNode.java:516)
        at 
org.apache.impala.planner.PlanFragment.toThrift(PlanFragment.java:638)
        at 
org.apache.impala.service.Frontend.createPlanExecInfo(Frontend.java:1958)
        at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1988)
        at 
org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:3015)
        at 
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2773)
        at 
org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2291)
        at 
org.apache.impala.service.Frontend.createExecRequest(Frontend.java:2032)
        at 
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:171)
I0821 14:02:16.392177 134791 status.cc:129] a844461a0a7aa168:55012b5200000000] 
IllegalStateException: Illegal reference to non-materialized tuple: tid=3
    @          0x10a31d4
    @          0x1c1a17a
    @          0x17ce990
    @          0x24ab806
    @          0x24aba44
    @          0x19185ca
    @          0x19254ba
    @          0x18a1495
    @          0x1a1db81
    @          0x19e8653
    @           0xf8b7fb
    @          0x14a8a42
    @          0x1cff659
    @          0x264d407
    @     0x1503959ce1ca
    @     0x1503928778d3



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to