[
https://issues.apache.org/jira/browse/PHOENIX-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Taylor updated PHOENIX-1616:
----------------------------------
Attachment: PHOENIX-1616_v2.patch
+1 on the patch. I've confirmed that the "." is part of the column name for the
join queries, so the explain plan changes make sense. I've also augmented one
of your tests to make sure case sensitive non PK view columns and column
families roundtrip correctly.
> Creating a View with a case sensitive column name does not work
> ---------------------------------------------------------------
>
> Key: PHOENIX-1616
> URL: https://issues.apache.org/jira/browse/PHOENIX-1616
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0, 4.0.0, 5.0.0
> Reporter: Thomas D'Silva
> Assignee: Thomas D'Silva
> Fix For: 3.0.0, 4.0.0, 5.0.0
>
> Attachments: PHOENIX-1616.patch, PHOENIX-1616_v2.patch
>
>
> If I create a view that refers to a case sensitive column, the case
> sensitivity is not respected.
> Example
> CREATE TABLE t (\"k\" INTEGER NOT NULL PRIMARY KEY, v1 DATE)
> CREATE VIEW v (v VARCHAR) AS SELECT * FROM t WHERE \"k\" > 5
> "SELECT \"k\" FROM v"
> Throws the following exception
> org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703):
> Undefined column. columnName=K
> at org.apache.phoenix.schema.PTableImpl.getColumn(PTableImpl.java:571)
> at
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:305)
> at
> org.apache.phoenix.compile.ExpressionCompiler.resolveColumn(ExpressionCompiler.java:344)
> at
> org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.resolveColumn(WhereCompiler.java:181)
> at
> org.apache.phoenix.compile.WhereCompiler$WhereExpressionCompiler.visit(WhereCompiler.java:169)
> at
> org.apache.phoenix.compile.ExpressionCompiler.visit(ExpressionCompiler.java:1)
> at
> org.apache.phoenix.parse.ColumnParseNode.accept(ColumnParseNode.java:50)
> at
> org.apache.phoenix.parse.CompoundParseNode.acceptChildren(CompoundParseNode.java:63)
> at
> org.apache.phoenix.parse.ComparisonParseNode.accept(ComparisonParseNode.java:43)
> at
> org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:139)
> at
> org.apache.phoenix.compile.WhereCompiler.compile(WhereCompiler.java:100)
> at
> org.apache.phoenix.compile.QueryCompiler.compileSingleFlatQuery(QueryCompiler.java:487)
> at
> org.apache.phoenix.compile.QueryCompiler.compileSingleQuery(QueryCompiler.java:447)
> at
> org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:154)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:330)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:1)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:229)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:1)
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)