[
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)