[ https://issues.apache.org/jira/browse/PHOENIX-514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14278344#comment-14278344 ]
ASF GitHub Bot commented on PHOENIX-514: ---------------------------------------- Github user JamesRTaylor commented on a diff in the pull request: https://github.com/apache/phoenix/pull/34#discussion_r22993260 --- Diff: phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java --- @@ -388,23 +426,21 @@ private IndexMaintainer(PTable dataTable, PTable index) { } } BitSet descIndexColumnBitSet = rowKeyMetaData.getDescIndexColumnBitSet(); - int j = 0; - Iterator<ColumnReference> iterator = indexedColumns.iterator(); + Iterator<Expression> expressionIterator = indexedExpressions.iterator(); for (int i = 0; i < nIndexedColumns; i++) { PDataType dataColumnType; boolean isNullable = true; boolean isDataColumnInverted = false; SortOrder dataSortOrder = SortOrder.getDefault(); - if (dataPkPosition[i] == -1) { - dataColumnType = indexedColumnTypes.get(j); - ImmutableBytesPtr value = valueGetter.getLatestValue(iterator.next()); - if (value == null) { - ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); - } else { - ptr.set(value.copyBytesIfNecessary()); - } - j++; - } else { + if (dataPkPosition[i] == EXPRESSION_NOT_PRESENT) { + Expression expression = expressionIterator.next(); + dataColumnType = expression.getDataType(); + // expressions are stored using default sort order --- End diff -- We should be able to invert a function expression (any expression in the ON list for an index definition) > Support functional indexes > -------------------------- > > Key: PHOENIX-514 > URL: https://issues.apache.org/jira/browse/PHOENIX-514 > Project: Phoenix > Issue Type: Task > Reporter: James Taylor > Assignee: Thomas D'Silva > Labels: enhancement > > Instead of only defining the set of columns from the data table that make up > an index, you should be able to use expressions. For example: > CREATE INDEX upper_last_name_idx ON person (UPPER(last_name)) > Then in queries that use UPPER(last_name), we can replace them with column > references to the index table. -- This message was sent by Atlassian JIRA (v6.3.4#6332)