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)