Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-1598

Encode column names to save space and improve performance

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.10.0
    • Labels:
      None

      Description

      when creating table using phoenix DDL replace the column names that the user give with shorter names to save space. the user will still the full name is his select statements and will get them in the result set but under the hood the infra will translate the names to their sorter version.

      example:
      when creating table with my_column_1, my_column_2 ... the table will be created with a as first column , b as the second one etc'

      1. PHOENIX-1598_master.patch
        1.42 MB
        Samarth Jain
      2. PHOENIX-1598-4.x-HBase-0.98.patch
        1.44 MB
        Samarth Jain
      1.
      Support encoded column qualifiers per column family Sub-task Resolved Samarth Jain
       
      2.
      Make joins work with encoded column names Sub-task Resolved Samarth Jain
       
      3.
      Add support for setting a storage scheme at table creation time Sub-task Resolved Samarth Jain
       
      4.
      Support null when columns have default values for immutable tables with encoding scheme COLUMNS_STORED_IN_SINGLE_CELL Sub-task Resolved Thomas D'Silva
       
      5.
      Support different encoding schemes (BYTE, SHORT, INTEGER) for storing encoded column qualifiers Sub-task Resolved Samarth Jain
       
      6.
      Make changes to IndexMaintainer backward compatible Sub-task Resolved Samarth Jain
       
      7.
      Add a CREATE IMMUTABLE TABLE construct to make immutable tables more explicit Sub-task Resolved Thomas D'Silva
       
      8.
      Parameterize tests for different encoding and storage schemes Sub-task Resolved Thomas D'Silva
       
      9.
      Add upgrade code to add the required metadata columns for supporting column encoding Sub-task Resolved Samarth Jain
       
      10.
      Add COLUMN_ENCODED_BYTES table property Sub-task Resolved Thomas D'Silva
       
      11.
      Fix bulkload for StorageScheme - ONE_CELL_PER_KEYVALUE_COLUMN Sub-task Resolved Ankit Singhal
       
      12.
      Data load gets 5-7X slower with mutable sparse columns Sub-task Resolved Samarth Jain
       
      13.
      Filter on value column for mutable encoded table is > 3X slower compared to non encoded table Sub-task Resolved Samarth Jain
       
      14.
      Upgrading from 4.8 or before to encodecolumns2 branch fails Sub-task Resolved Samarth Jain
       
      15.
      Make use of EncodedColumnQualifierCellsList for all column name mapping schemes Sub-task Resolved Samarth Jain
       
      16.
      Add a test case to test out CREATE TABLE IF NOT EXISTS code path Sub-task Resolved Samarth Jain
       
      17.
      Change tests extending BaseQueryIT to use unique table names Sub-task Resolved Samarth Jain
       
      18.
      Optimize BooleanExpressionFilter and ColumnProjectionFilter for tables with encoded columns Sub-task Resolved Samarth Jain
       
      19.
      Backward compatibility fails for immutable tables after column encoding patch Sub-task Resolved Samarth Jain
       
      20.
      Backward compatibility fails for joins Sub-task Resolved Samarth Jain
       
      21.
      Remove testUnfoundSingleColumnCaseStatement from CaseStatementIT Sub-task Resolved Samarth Jain
       

        Activity

        Hide
        jamestaylor James Taylor added a comment -

        A couple of other advantages of controlling the column qualifier names:

        • we could easily support a column rename, as the underlying cq wouldn't change
        • we could optimize the lookup of a Cell in a List<Cell> based on some careful naming (and perhaps some help from HBase). The perf gain would be big for some queries: see PHOENIX-1940.
        Show
        jamestaylor James Taylor added a comment - A couple of other advantages of controlling the column qualifier names: we could easily support a column rename, as the underlying cq wouldn't change we could optimize the lookup of a Cell in a List<Cell> based on some careful naming (and perhaps some help from HBase). The perf gain would be big for some queries: see PHOENIX-1940 .
        Hide
        stack stack added a comment -

        Where is the mapping of short name to long name kept? Is it important that we save space? Will the rewrite of Cells make the queries slower at the cost of our using less space?

        Show
        stack stack added a comment - Where is the mapping of short name to long name kept? Is it important that we save space? Will the rewrite of Cells make the queries slower at the cost of our using less space?
        Hide
        jamestaylor James Taylor added a comment -

        We'd store the mapping in our metadata a table (SYSTEM.CATALOG). We already
        use this during query compilation so there'd be no additional overhead.
        Space savings (disk & memory) could be potentially large, (2-3x) especially
        when values are small and column names are long as the bulk of the space
        used by a KeyValue is from the column qualifier. And the potential
        2.5x performance gain
        (see PHOENIX-1940) if we can know the Cell position in the List<Cell>
        result from a scan without doing a binary search would be the biggest win.

        Show
        jamestaylor James Taylor added a comment - We'd store the mapping in our metadata a table (SYSTEM.CATALOG). We already use this during query compilation so there'd be no additional overhead. Space savings (disk & memory) could be potentially large, (2-3x) especially when values are small and column names are long as the bulk of the space used by a KeyValue is from the column qualifier. And the potential 2.5x performance gain (see PHOENIX-1940 ) if we can know the Cell position in the List<Cell> result from a scan without doing a binary search would be the biggest win.
        Hide
        stack stack added a comment -

        Thanks.

        Show
        stack stack added a comment - Thanks.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        James and I were discussing this on Friday. It would have a lot of advantages and no disadvantages that I am aware of.

        I'd have the column names be 1, 2, 3, ..., rather than a, b, c, ..., but that's cosmetic. Or we can have HEX numbers.
        The key is (for PHOENIX-1940) that we can determine the ordinal of a column from its name, rather than having to do a binary search for it.

        We could transition old table by have this mapping be the identity mapping. I.e. if we already have a column of name "some_column" we'd map "some_column" to "some_column" in the mapping. We'd lose the optimizations but still can rename columns cheaply.

        Not yet sure if we'd need change anything in HBase. HBase is fundamentally sparse, so we can't know ahead of time how many columns will be returned per row, not even how many column we'd expect. Should discuss. A possible solution is do have "dense" columns packed into a single key value. Storage would be much improved so we read performance for cases where we'd want to see most of those columns. Write would suffer for a simple solution (would need to read back the old values, and rewrite with the new value replaced), could store "update" Cells instead that only hold the diff, and that would be combined during the next compaction. It would be important to store data such that does not have be serialized and deserialized from the row (so PB, Avro, probably out, need to check).
        But that's something HBase and/or Phoenix desperately need. I think this should sit on top of HBase as HBase cannot know about optimize storage/packing formats for various problems. Maybe a library.

        Show
        lhofhansl Lars Hofhansl added a comment - James and I were discussing this on Friday. It would have a lot of advantages and no disadvantages that I am aware of. I'd have the column names be 1, 2, 3, ..., rather than a, b, c, ..., but that's cosmetic. Or we can have HEX numbers. The key is (for PHOENIX-1940 ) that we can determine the ordinal of a column from its name, rather than having to do a binary search for it. We could transition old table by have this mapping be the identity mapping. I.e. if we already have a column of name "some_column" we'd map "some_column" to "some_column" in the mapping. We'd lose the optimizations but still can rename columns cheaply. Not yet sure if we'd need change anything in HBase. HBase is fundamentally sparse, so we can't know ahead of time how many columns will be returned per row, not even how many column we'd expect. Should discuss. A possible solution is do have "dense" columns packed into a single key value. Storage would be much improved so we read performance for cases where we'd want to see most of those columns. Write would suffer for a simple solution (would need to read back the old values, and rewrite with the new value replaced), could store "update" Cells instead that only hold the diff, and that would be combined during the next compaction. It would be important to store data such that does not have be serialized and deserialized from the row (so PB, Avro, probably out, need to check). But that's something HBase and/or Phoenix desperately need. I think this should sit on top of HBase as HBase cannot know about optimize storage/packing formats for various problems. Maybe a library.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        So what that means for HBase and Phoenix is that every filter, every coprocessor would need to understand the packed formats, and - for Phoenix - that expressions can be combined, in the sense that we can get a filed value once and then use it in multiple expressions (that's in part what makes the query of PHOENIX-1940 slow, we have to re-retrieve the column value for each expression over that column)

        Show
        lhofhansl Lars Hofhansl added a comment - So what that means for HBase and Phoenix is that every filter, every coprocessor would need to understand the packed formats, and - for Phoenix - that expressions can be combined, in the sense that we can get a filed value once and then use it in multiple expressions (that's in part what makes the query of PHOENIX-1940 slow, we have to re-retrieve the column value for each expression over that column)
        Hide
        jamestaylor James Taylor added a comment -

        IMO, we should separate the dense/sparse discussion from the column name discussion. The former is the STRUCT idea (PHOENIX-477) and the later is this JIRA.

        For the column name optimization, would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell? HBase would just use it's normal/standard implementation, and other clients (like Phoenix) could have an implementation that would leverage the above column qualifier -> position optimization.

        An alternative to the STRUCT idea would be to have a block encoding in HBase that was better for dense data (HBASE-12883).

        I think we need to explore these HBase options, as this will give more bang for the buck by doing it at the lower level. We just don't have the bandwidth in Phoenix to do all of these things there.

        Show
        jamestaylor James Taylor added a comment - IMO, we should separate the dense/sparse discussion from the column name discussion. The former is the STRUCT idea ( PHOENIX-477 ) and the later is this JIRA. For the column name optimization, would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell? HBase would just use it's normal/standard implementation, and other clients (like Phoenix) could have an implementation that would leverage the above column qualifier -> position optimization. An alternative to the STRUCT idea would be to have a block encoding in HBase that was better for dense data ( HBASE-12883 ). I think we need to explore these HBase options, as this will give more bang for the buck by doing it at the lower level. We just don't have the bandwidth in Phoenix to do all of these things there.
        Hide
        stack stack added a comment -

        ... would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell?

        Sure. Would be good to see how much better the ordinal lookup would be than binary search. These are fixed-size keys I presume.

        The STRUCT sounds like C* supercolumns since deprecated http://stackoverflow.com/questions/11915255/why-are-super-columns-in-cassandra-no-longer-favoured

        It should be possible to plug in other block encodings now (We have a bunch of alternate implementations currently)

        Show
        stack stack added a comment - ... would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell? Sure. Would be good to see how much better the ordinal lookup would be than binary search. These are fixed-size keys I presume. The STRUCT sounds like C* supercolumns since deprecated http://stackoverflow.com/questions/11915255/why-are-super-columns-in-cassandra-no-longer-favoured It should be possible to plug in other block encodings now (We have a bunch of alternate implementations currently)
        Hide
        apurtell Andrew Purtell added a comment -

        I'd be concerned about introducing something that existing block encoders, filters, and coprocessors couldn't deal with. Sounds like either a nonstarter or a combinatorial explosion in complexity.

        We should look at existing libraries that use structured encoding for cells like Kiji and maybe Kite before reinventing that wheel.

        Show
        apurtell Andrew Purtell added a comment - I'd be concerned about introducing something that existing block encoders, filters, and coprocessors couldn't deal with. Sounds like either a nonstarter or a combinatorial explosion in complexity. We should look at existing libraries that use structured encoding for cells like Kiji and maybe Kite before reinventing that wheel.
        Hide
        apurtell Andrew Purtell added a comment -

        Given the above, suggest trying something at the Phoenix layer first.

        Show
        apurtell Andrew Purtell added a comment - Given the above, suggest trying something at the Phoenix layer first.
        Hide
        jamestaylor James Taylor added a comment -

        Wasn't suggesting implementing something as complex as structs as a block encoder. Have you seen HBASE-12883, Andrew Purtell? It could be a simple dictionary encoded scheme given that the set of possible KVs is known in advance.

        Show
        jamestaylor James Taylor added a comment - Wasn't suggesting implementing something as complex as structs as a block encoder. Have you seen HBASE-12883 , Andrew Purtell ? It could be a simple dictionary encoded scheme given that the set of possible KVs is known in advance.
        Hide
        apurtell Andrew Purtell added a comment -

        I remember liking the idea of HBASE-12883.

        Show
        apurtell Andrew Purtell added a comment - I remember liking the idea of HBASE-12883 .
        Hide
        lhofhansl Lars Hofhansl added a comment -

        So two things, right?

        1. Phoenix can map longer names to short actual names. The actual names should imply their ordinal position (numbers are nice).
        2. HBase, being told about specific columns could do a better job compressing the HFile or block data.

        I doubt that #2 would win much over FAST_DIFF/PREFIX and/or SNAPPY. Need to try. Maybe we can separate key storage from value storage, index the location of all values, and hence allow for much faster filtering or aggregation.

        #1 is nice at many level: Less storage, free renames, can avoid the binary search (a HashMap of Integers is much cheaper as an Integer's hash is its value, and compare is cheap), can even drop columns this way (map them to null or a to a tomb stone).

        Not trying to avoid work in HBase. Happy to help with #1.

        would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell

        I'm not sure what exactly this would do. If that means that HBase needs to search for the position of the column we haven't gained anything. HBase cannot know ahead of time how many columns will be in a row. Should discuss.

        Show
        lhofhansl Lars Hofhansl added a comment - So two things, right? Phoenix can map longer names to short actual names. The actual names should imply their ordinal position (numbers are nice). HBase, being told about specific columns could do a better job compressing the HFile or block data. I doubt that #2 would win much over FAST_DIFF/PREFIX and/or SNAPPY. Need to try. Maybe we can separate key storage from value storage, index the location of all values, and hence allow for much faster filtering or aggregation. #1 is nice at many level: Less storage, free renames, can avoid the binary search (a HashMap of Integers is much cheaper as an Integer's hash is its value, and compare is cheap), can even drop columns this way (map them to null or a to a tomb stone). Not trying to avoid work in HBase. Happy to help with #1. would it be possible to put an interface in place in HBase that would control the population of the List<Cell> given a Cell I'm not sure what exactly this would do. If that means that HBase needs to search for the position of the column we haven't gained anything. HBase cannot know ahead of time how many columns will be in a row. Should discuss.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        I'm going to try a hack with the query on PHOENIX-1940, where I create the same table, but with numbers as column names, and then changing KeyValueUtil.getColumnLatest to make use the fact that now we numbers.

        Show
        lhofhansl Lars Hofhansl added a comment - I'm going to try a hack with the query on PHOENIX-1940 , where I create the same table, but with numbers as column names, and then changing KeyValueUtil.getColumnLatest to make use the fact that now we numbers.
        Hide
        jamestaylor James Taylor added a comment -

        The interface would allow an application like Phoenix to: create an array sized based on the max(projected-column-qualifier-name). Then as a filter is run, it be populated positionally based on the column qualifier name. This would be instead of just adding to a List<Cell>. The HBase default could still be to append to a List<Cell> with a binary search of it, but Phoenix could implement the interface to be purely positional (based on the column qualifier name).

        Show
        jamestaylor James Taylor added a comment - The interface would allow an application like Phoenix to: create an array sized based on the max(projected-column-qualifier-name). Then as a filter is run, it be populated positionally based on the column qualifier name. This would be instead of just adding to a List<Cell>. The HBase default could still be to append to a List<Cell> with a binary search of it, but Phoenix could implement the interface to be purely positional (based on the column qualifier name).
        Hide
        stack stack added a comment -

        Can you point at where you would insert this Interface? Thanks.

        Show
        stack stack added a comment - Can you point at where you would insert this Interface? Thanks.
        Hide
        stack stack added a comment -

        Nvm, I see the action is over in PHOENIX-1940

        Show
        stack stack added a comment - Nvm, I see the action is over in PHOENIX-1940
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Yeah, sorry, I keep flip flopping between jiras. Maybe do the discussion in one jira only

        Show
        lhofhansl Lars Hofhansl added a comment - Yeah, sorry, I keep flip flopping between jiras. Maybe do the discussion in one jira only
        Hide
        lhofhansl Lars Hofhansl added a comment -

        The point I am not seeing is that how would HBase know the right ordinal position to populate the fixed size array without searching for the column (since any column may or not exist for any given row)

        If the columns have known names (1,2,3,..., or C1,C2,C3, ..., etc), then it can be done... But then I would argue that a client can (and should?) do that at no loss of performance or generality.

        Show
        lhofhansl Lars Hofhansl added a comment - The point I am not seeing is that how would HBase know the right ordinal position to populate the fixed size array without searching for the column (since any column may or not exist for any given row) If the columns have known names (1,2,3,..., or C1,C2,C3, ..., etc), then it can be done... But then I would argue that a client can (and should?) do that at no loss of performance or generality.
        Hide
        jamestaylor James Taylor added a comment -

        HBase couldn't know the right ordinal position. It'd be the typical design pattern:

        • Create new interface that would abstract List<Cell> access (initial creation, adds and searches).
        • Scan would include an optional class name that would be in implementor of new interface.
        • Default implementation would be existing behavior: just add to the list based on the Comparator and use a binary search for getting.
        • Clients could override by setting class name in Scan (or some other config-based mechanism) to allow positional access for clients able to control position through column qualifier name.
        Show
        jamestaylor James Taylor added a comment - HBase couldn't know the right ordinal position. It'd be the typical design pattern: Create new interface that would abstract List<Cell> access (initial creation, adds and searches). Scan would include an optional class name that would be in implementor of new interface. Default implementation would be existing behavior: just add to the list based on the Comparator and use a binary search for getting. Clients could override by setting class name in Scan (or some other config-based mechanism) to allow positional access for clients able to control position through column qualifier name.
        Hide
        lhofhansl Lars Hofhansl added a comment -

        Talked to James Taylor. I get what he wants now.

        We can already pass a List to HRegionScannerImpl.nextRaw. So we could pass a custom implementation of List and either passed in a dense list with all positions pre-populated with null and fill in slots as HBase adds them (with the assumption that a column name can imply its ordinal position) or we could have a List backed by a HashMap (which would be reasonably cheap for Integer keys).

        There are some wrinkles in HBase trunk now, with interesting logic looping over all cells and calling cloneToCell on them, we'd have to implement everything in the passed List implementation to support all of these operations.

        Show
        lhofhansl Lars Hofhansl added a comment - Talked to James Taylor . I get what he wants now. We can already pass a List to HRegionScannerImpl.nextRaw. So we could pass a custom implementation of List and either passed in a dense list with all positions pre-populated with null and fill in slots as HBase adds them (with the assumption that a column name can imply its ordinal position) or we could have a List backed by a HashMap (which would be reasonably cheap for Integer keys). There are some wrinkles in HBase trunk now, with interesting logic looping over all cells and calling cloneToCell on them, we'd have to implement everything in the passed List implementation to support all of these operations.
        Hide
        samarthjain Samarth Jain added a comment -

        Patch that was checked in for 4.x-HBase-0.98 branch.

        Show
        samarthjain Samarth Jain added a comment - Patch that was checked in for 4.x-HBase-0.98 branch.
        Hide
        samarthjain Samarth Jain added a comment -

        Patch for master branch

        Show
        samarthjain Samarth Jain added a comment - Patch for master branch
        Hide
        hudson Hudson added a comment -

        FAILURE: Integrated in Jenkins build Phoenix-master #1564 (See https://builds.apache.org/job/Phoenix-master/1564/)
        PHOENIX-1598 Encode column names to save space and improve performance (samarth: rev 3c7ff99bfb958774c3e2ba5d3714ccfc46bd2367)

        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/JONIPattern.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java
        • (add) phoenix-core/src/it/java/org/apache/phoenix/tx/ParameterizedTransactionIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ClientTimeArithmeticQueryIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CaseStatementIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DerivedTableIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/ColumnProjectionFilter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/MultiKeyValueComparisonFilter.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/UnnestArrayPlanTest.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/EncodedColumnQualiferCellsList.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/CreateTableCompiler.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixTransactionalIndexer.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/TraceQueryPlan.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/filter/EncodedQualifiersColumnProjectionFilter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/query/BaseConnectionlessQueryTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/SelectStatementRewriterTest.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnValueEncoder.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/SortMergeJoinPlan.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/MultiKeyValueTuple.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PointInTimeQueryIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/CloneExpressionVisitor.java
        • (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/MutableQueryIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/LookAheadResultIterator.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ExpressionType.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/HavingCompilerTest.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/util/PhoenixRuntimeTest.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMetaDataCacheFactory.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicColumnIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/PositionBasedResultTuple.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseJoinIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/PostDDLCompiler.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ScanQueryIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexPartialBuildMapper.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/hbase/index/ValueGetter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMetaDataCacheClient.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ServerCachingEndpointImpl.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ListJarsQueryPlan.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/ProjectedColumn.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ProjectionCompiler.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateColumn.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertValuesIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/ScanUtil.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexCodec.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/DelegateTuple.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CastAndCoerceIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/BaseQueryPlan.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ServerCachingProtocol.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnFamily.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayElemRefExpression.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeEncoder.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/BaseTuple.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/TupleProjectionCompiler.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/WhereCompilerTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryServicesOptions.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/QueryOptimizerTest.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/expression/ColumnExpressionTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/SingleCQKeyValueComparisonFilter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/StatelessTraverseAllExpressionVisitor.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/UnnestArrayPlan.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTable.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/expression/ArrayConstructorExpressionTest.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterMultiTenantTableWithViewsIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/FunkyNamesIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/ImmutableIndexIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/schema/types/PDataTypeForArraysTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/hbase/index/util/KeyValueBuilder.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/TenantCacheImpl.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexTestUtil.java
        • (edit) phoenix-protocol/src/main/ServerCachingService.proto
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/RegionScannerResultIterator.java
        • (add) phoenix-core/src/test/java/org/apache/phoenix/util/QualifierEncodingSchemeTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/BaseExpressionVisitor.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/SaltingUtil.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/NativeHBaseTypesIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/WhereCompiler.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/ServerCachingProtos.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellConstructorExpression.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/TupleProjector.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/PositionBasedMultiKeyValueTuple.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/tx/TransactionIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueReducer.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/SingleKeyValueComparisonFilter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/ResultUtil.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/GroupedAggregateRegionObserver.java
        • (edit) pom.xml
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/Tuple.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/join/HashCacheFactory.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctCountIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTableKey.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/cache/TenantCacheTest.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnFamilyImpl.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateTableIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/KeyValueUtil.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/MutationStateTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DefaultColumnValueIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/SysTableNamespaceMappedStatsCollectorIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionlessTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexMetaData.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/StatelessTraverseNoExpressionVisitor.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AggregateQueryIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PhoenixRuntimeIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumn.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnValueDecoder.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/KeyValueColumnExpression.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnImpl.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataType.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/TenantCache.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseQueryIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/MappedByteBufferQueue.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropMetadataIT.java
        • (delete) phoenix-core/src/it/java/org/apache/phoenix/end2end/ImmutableTablePropIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/UnionCompiler.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java
        • (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/ColumnEncodedBytesPropIT.java
        • (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/ImmutableTablePropertiesIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/ExpressionVisitor.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/ResultTuple.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java
        • (add) phoenix-core/src/test/java/org/apache/phoenix/query/EncodedColumnQualifierCellsListTest.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateTable.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/HashJoinRegionScanner.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/CorrelatePlan.java
        • (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsPropIT.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/CloneNonDeterministicExpressionVisitor.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/index/IndexMaintainerTest.java
        • (edit) phoenix-protocol/src/main/PTable.proto
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
        • (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ExtendedQueryExecIT.java
        • (add) phoenix-core/src/main/java/org/apache/phoenix/filter/MultiEncodedCQKeyValueComparisonFilter.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java
        • (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/PostLocalIndexDDLCompiler.java
        • (add) phoenix-core/src/test/java/org/apache/phoenix/schema/ImmutableStorageSchemeTest.java
        • (edit) phoenix-core/src/test/java/org/apache/phoenix/iterate/AggregateResultScannerTest.java
        Show
        hudson Hudson added a comment - FAILURE: Integrated in Jenkins build Phoenix-master #1564 (See https://builds.apache.org/job/Phoenix-master/1564/ ) PHOENIX-1598 Encode column names to save space and improve performance (samarth: rev 3c7ff99bfb958774c3e2ba5d3714ccfc46bd2367) (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/JONIPattern.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/SchemaUtil.java (add) phoenix-core/src/it/java/org/apache/phoenix/tx/ParameterizedTransactionIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/LiteralResultIteratorPlanTest.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ClientTimeArithmeticQueryIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CaseStatementIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DerivedTableIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/ColumnProjectionFilter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ProjectedColumnExpression.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/salted/SaltedTableIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/MultiKeyValueComparisonFilter.java (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/UnnestArrayPlanTest.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/EncodedColumnQualiferCellsList.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/CreateTableCompiler.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixTransactionalIndexer.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/TraceQueryPlan.java (add) phoenix-core/src/main/java/org/apache/phoenix/filter/EncodedQualifiersColumnProjectionFilter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java (edit) phoenix-core/src/test/java/org/apache/phoenix/query/BaseConnectionlessQueryTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnRef.java (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/SelectStatementRewriterTest.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnValueEncoder.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/SortMergeJoinPlan.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/MultiKeyValueTuple.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PointInTimeQueryIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/CloneExpressionVisitor.java (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/MutableQueryIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/LookAheadResultIterator.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/ExpressionType.java (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/HavingCompilerTest.java (edit) phoenix-core/src/test/java/org/apache/phoenix/util/PhoenixRuntimeTest.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMetaDataCacheFactory.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DynamicColumnIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/RowValueConstructorIT.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/PositionBasedResultTuple.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseJoinIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/PhoenixRuntime.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/PostDDLCompiler.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ScanQueryIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixIndexPartialBuildMapper.java (edit) phoenix-core/src/main/java/org/apache/phoenix/hbase/index/ValueGetter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMetaDataCacheClient.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ServerCachingEndpointImpl.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ListJarsQueryPlan.java (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java (edit) phoenix-core/src/it/java/org/apache/phoenix/tx/TxCheckpointIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/ProjectedColumn.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/VariableLengthPKIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/ProjectionCompiler.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateColumn.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertValuesIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/MetaDataUtil.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/ScanUtil.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexCodec.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/DelegateTuple.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CastAndCoerceIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/BaseQueryPlan.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ServerCachingProtocol.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnFamily.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayElemRefExpression.java (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/BaseResultIterators.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeEncoder.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/BaseTuple.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/TupleProjectionCompiler.java (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/WhereCompilerTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryServicesOptions.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java (edit) phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/QueryOptimizerTest.java (edit) phoenix-core/src/test/java/org/apache/phoenix/expression/ColumnExpressionTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/SingleCQKeyValueComparisonFilter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/StatelessTraverseAllExpressionVisitor.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/UnnestArrayPlan.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTable.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java (edit) phoenix-core/src/test/java/org/apache/phoenix/expression/ArrayConstructorExpressionTest.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterMultiTenantTableWithViewsIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/exception/SQLExceptionCode.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/FunkyNamesIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/ImmutableIndexIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToBytesWritableMapper.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/StatsCollectorIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/schema/types/PDataTypeForArraysTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/hbase/index/util/KeyValueBuilder.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/GroupByIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableWithViewsIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/TenantCacheImpl.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexTestUtil.java (edit) phoenix-protocol/src/main/ServerCachingService.proto (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/RegionScannerResultIterator.java (add) phoenix-core/src/test/java/org/apache/phoenix/util/QualifierEncodingSchemeTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/BaseExpressionVisitor.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/SaltingUtil.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/NativeHBaseTypesIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/WhereCompiler.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/IndexExpressionIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/ServerCachingProtos.java (add) phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellConstructorExpression.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/TupleProjector.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/PositionBasedMultiKeyValueTuple.java (edit) phoenix-core/src/it/java/org/apache/phoenix/tx/TransactionIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/compile/QueryCompilerTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueReducer.java (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/ServerCacheClient.java (edit) phoenix-core/src/main/java/org/apache/phoenix/filter/SingleKeyValueComparisonFilter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/ResultUtil.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/GroupedAggregateRegionObserver.java (edit) pom.xml (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java (edit) phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/Tuple.java (edit) phoenix-core/src/main/java/org/apache/phoenix/join/HashCacheFactory.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DistinctCountIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTableKey.java (edit) phoenix-core/src/test/java/org/apache/phoenix/cache/TenantCacheTest.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnFamilyImpl.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CreateTableIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/KeyValueUtil.java (edit) phoenix-core/src/test/java/org/apache/phoenix/execute/MutationStateTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/DefaultColumnValueIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/SysTableNamespaceMappedStatsCollectorIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionlessTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexMetaData.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/StatelessTraverseNoExpressionVisitor.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ArrayIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/AggregateQueryIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PhoenixRuntimeIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/CountDistinctCompressionIT.java (edit) phoenix-core/src/test/java/org/apache/phoenix/util/TestUtil.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumn.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataTypeDecoder.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java (add) phoenix-core/src/main/java/org/apache/phoenix/schema/ColumnValueDecoder.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/KeyValueColumnExpression.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PColumnImpl.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/TopNIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/types/PArrayDataType.java (edit) phoenix-core/src/main/java/org/apache/phoenix/cache/TenantCache.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseQueryIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertSelectIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/MappedByteBufferQueue.java (edit) phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/DropMetadataIT.java (delete) phoenix-core/src/it/java/org/apache/phoenix/end2end/ImmutableTablePropIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/UnionCompiler.java (add) phoenix-core/src/main/java/org/apache/phoenix/expression/SingleCellColumnExpression.java (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/ColumnEncodedBytesPropIT.java (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/ImmutableTablePropertiesIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/ExpressionVisitor.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/tuple/ResultTuple.java (add) phoenix-core/src/main/java/org/apache/phoenix/util/EncodedColumnsUtil.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java (add) phoenix-core/src/test/java/org/apache/phoenix/query/EncodedColumnQualifierCellsListTest.java (edit) phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateTable.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/HashJoinRegionScanner.java (edit) phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixResultSet.java (edit) phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java (edit) phoenix-core/src/main/java/org/apache/phoenix/execute/CorrelatePlan.java (add) phoenix-core/src/it/java/org/apache/phoenix/end2end/StoreNullsPropIT.java (edit) phoenix-core/src/main/java/org/apache/phoenix/expression/visitor/CloneNonDeterministicExpressionVisitor.java (edit) phoenix-core/src/test/java/org/apache/phoenix/index/IndexMaintainerTest.java (edit) phoenix-protocol/src/main/PTable.proto (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/ExtendedQueryExecIT.java (add) phoenix-core/src/main/java/org/apache/phoenix/filter/MultiEncodedCQKeyValueComparisonFilter.java (edit) phoenix-core/src/main/java/org/apache/phoenix/util/IndexUtil.java (edit) phoenix-core/src/main/java/org/apache/phoenix/compile/PostLocalIndexDDLCompiler.java (add) phoenix-core/src/test/java/org/apache/phoenix/schema/ImmutableStorageSchemeTest.java (edit) phoenix-core/src/test/java/org/apache/phoenix/iterate/AggregateResultScannerTest.java
        Hide
        hudson Hudson added a comment -

        FAILURE: Integrated in Jenkins build Phoenix-master #1565 (See https://builds.apache.org/job/Phoenix-master/1565/)
        PHOENIX-1598 Addendum - fix test failures because of mistake in rebase (samarth: rev 81e9325588c82c614403371c99a93b03925d4383)

        • (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
        Show
        hudson Hudson added a comment - FAILURE: Integrated in Jenkins build Phoenix-master #1565 (See https://builds.apache.org/job/Phoenix-master/1565/ ) PHOENIX-1598 Addendum - fix test failures because of mistake in rebase (samarth: rev 81e9325588c82c614403371c99a93b03925d4383) (edit) phoenix-core/src/main/java/org/apache/phoenix/coprocessor/BaseScannerRegionObserver.java
        Hide
        jamestaylor James Taylor added a comment -

        Should we resolve this one and move sub tasks to new JIRA, Samarth Jain?

        Show
        jamestaylor James Taylor added a comment - Should we resolve this one and move sub tasks to new JIRA, Samarth Jain ?
        Hide
        samarthjain Samarth Jain added a comment -

        Done

        Show
        samarthjain Samarth Jain added a comment - Done

          People

          • Assignee:
            samarthjain Samarth Jain
            Reporter:
            noamb noam bulvik
          • Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development