Repository: phoenix Updated Branches: refs/heads/encodecolumns2 728829663 -> 315057bf0
PHOENIX-3589 Aggregate query is not blocked when projected columns are not part of group by Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/315057bf Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/315057bf Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/315057bf Branch: refs/heads/encodecolumns2 Commit: 315057bf0a301c5c6836db2dcc3c93633728cee9 Parents: 7288296 Author: Samarth <[email protected]> Authored: Tue Jan 31 11:47:51 2017 -0800 Committer: Samarth <[email protected]> Committed: Tue Jan 31 11:47:51 2017 -0800 ---------------------------------------------------------------------- .../expression/SingleCellColumnExpression.java | 12 +++++++++++- .../phoenix/compile/QueryCompilerTest.java | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/315057bf/phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java index e27f9d0..ba147fe 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java @@ -167,5 +167,15 @@ public class SingleCellColumnExpression extends KeyValueColumnExpression { return super.accept(visitor); } } - + + @Override + public boolean equals(Object obj) { + return keyValueColumnExpression.equals(obj); + } + + @Override + public int hashCode() { + return keyValueColumnExpression.hashCode(); + } + } http://git-wip-us.apache.org/repos/asf/phoenix/blob/315057bf/phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java b/phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java index bc35e22..3179d84 100644 --- a/phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java +++ b/phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java @@ -920,6 +920,25 @@ public class QueryCompilerTest extends BaseConnectionlessQueryTest { } } + @Test + public void testAggregateOnColumnsNotInGroupByForImmutableEncodedTable() throws Exception { + String tableName = generateUniqueName(); + String ddl = "CREATE IMMUTABLE TABLE " + tableName + + " (a_string varchar not null, col1 integer, col2 integer" + + " CONSTRAINT pk PRIMARY KEY (a_string))"; + String query = "SELECT col1, max(a_string) from " + tableName + " group by col2"; + try (Connection conn = DriverManager.getConnection(getUrl())) { + conn.createStatement().execute(ddl); + try { + PreparedStatement statement = conn.prepareStatement(query); + statement.executeQuery(); + fail(); + } catch (SQLException e) { // expected + assertEquals(SQLExceptionCode.AGGREGATE_WITH_NOT_GROUP_BY_COLUMN.getErrorCode(), e.getErrorCode()); + } + } + } + @Test public void testRegexpSubstrSetScanKeys() throws Exception { // First test scan keys are set when the offset is 0 or 1.
