You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Thomas Tauber-Marshall (JIRA)" <ji...@apache.org> on 2017/05/11 17:17:04 UTC

[jira] [Resolved] (IMPALA-5294) Kudu INSERT partitioning fails with constants

     [ https://issues.apache.org/jira/browse/IMPALA-5294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Tauber-Marshall resolved IMPALA-5294.
--------------------------------------------
    Resolution: Fixed

commit b8c8fb1b439ceffc6e167089184b14559f03699c
Author: Thomas Tauber-Marshall <tm...@cloudera.com>
Date:   Mon May 8 19:10:37 2017 -0700

    IMPALA-5294: Kudu INSERT partitioning fails with constants
    
    An INSERT into a Kudu table with a constant value being inserted
    into a partition column causes an IllegalStateExcaption. This is
    because DistributedPlanner removes constants from the list of
    partition exprs before creating the KuduPartitionExpr, but
    KuduPartitionExpr expects to get one expr per partition column.
    
    The fix is to pass the full list of partition exprs into the
    KuduPartitionExpr, instead of the list that has had constants
    removed. This preserves the behavior that if all of the partition
    exprs are constant we fall back to UNPARTITIONED.
    
    One complication is that if a partition expr is a NullLiteral, it
    must be cast to a specific type to be passed to the BE. The
    InsertStmt will cast the partition exprs to the partition column
    types, but these casts may be lost from the copies of the partition
    exprs stored by the KuduPartitionExpr during reset(). To fix this,
    the KuduPartitionExpr can store the types of the partition cols and
    recast the partition exprs to those types during analyze().
    
    Change-Id: I12cbb319f9a5c47fdbfee347b47650186b27f8f9
    Reviewed-on: http://gerrit.cloudera.org:8080/6828
    Reviewed-by: Thomas Tauber-Marshall <tm...@cloudera.com>
    Tested-by: Impala Public Jenkins

> Kudu INSERT partitioning fails with constants
> ---------------------------------------------
>
>                 Key: IMPALA-5294
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5294
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>    Affects Versions: Impala 2.9.0
>            Reporter: Thomas Tauber-Marshall
>            Assignee: Thomas Tauber-Marshall
>            Priority: Critical
>              Labels: kudu
>
> A recent change (IMPALA-3742) introduced a bug where INSERTs into Kudu table will fail with an IllegalStateException if they are inserting a constant value into a partition column and a non-constant value into another partition column.
> The reason is that DistributedPlanner removed the constant exprs from the list of partition exprs before creating the KuduPartitionExpr, but the KuduPartitionExpr expects one expr for each partition column, and so a Precondition check is hit (unless all of the values inserted into partition cols are constant, then we fall back to an unpartitioned insert).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)