Release Notes - Phoenix - Version 4.2.2 ** Bug * [PHOENIX-1431] - DELETE using Subqueries * [PHOENIX-1436] - the choice of index by phoneix is not correct where do querying * [PHOENIX-1456] - Incorrect query results caused by reusing buffers in SpoolingResultIterator * [PHOENIX-1463] - phoenix.query.timeoutMs doesn't work as expected * [PHOENIX-1466] - Prevent multiple scans when query run serially * [PHOENIX-1472] - SaltingUtil calculates wrong salt key for Integer.MIN_VALUE hash code * [PHOENIX-1474] - NPE when RVC between combined with key part comparison * [PHOENIX-1476] - Immediately open scanner for parallel queries * [PHOENIX-1477] - Phoenix 4.0 -> 4.2 upgrade doesn't work * [PHOENIX-1480] - Incorrect query results may occur when VIEW uses indexes from physical table * [PHOENIX-1484] - Index creation failed due to specifying DEFAULT_COLUMN_FAMILY option * [PHOENIX-1485] - Date columns should be displayed without timezone offset * [PHOENIX-1486] - Fix SpooledTmpFileDeleteIT by having it use a different directory for spooling files. * [PHOENIX-1500] - Disallow mutations and queries using PhoenixPreparedStatement.executeQuery() and executeUpdate() respectively. * [PHOENIX-1503] - Compilation on Mac OS fails on maven-assembly-plugin ** Improvement * [PHOENIX-1467] - Upgrade to 4.12 Junit and update tests by removing @Category annotation Release Notes - Phoenix - Version 4.2.1 ** Bug * [PHOENIX-1346] - Base exception gets wrapped as incompatible jar exception * [PHOENIX-1387] - Local index is not use when the query like "select * from dataTable where c1 like 'abc%'". * [PHOENIX-1396] - Avoid unnecessary ResultSpooler.bin files creation/deletion every time SpoolingResultIterator is used * [PHOENIX-1397] - RVC combined with OR on first row key column results in NPE * [PHOENIX-1400] - Copy small attribute in ScanUtil * [PHOENIX-1401] - SYSTEM.SEQUENCE table is not pre-split as expected * [PHOENIX-1402] - Don't recalculate stats on split * [PHOENIX-1403] - Race condition can cause ConnectionQueryServicesImpl to be re-initialized * [PHOENIX-1404] - PhoenixResultSet.setFetchSize throws SQLFeatureNotSupportedException * [PHOENIX-1405] - Problem referencing lower-case column names with Phoenix / Pig / Spark * [PHOENIX-1406] - Use preCompact hook instead of preCompactScannerOpen for stats collection * [PHOENIX-1407] - PhoenixStatement.getFetchSize() appears to never be used * [PHOENIX-1413] - Add Phoenix coprocessors with configurable priority * [PHOENIX-1416] - Given a schema name, DatabaseMetadata.getTables and getColumns calls erroneously match tables without schema * [PHOENIX-1418] - Optionally display number of parallel chunks in explain plan * [PHOENIX-1419] - Update eclipse preferences file with correct header information * [PHOENIX-1420] - DatabaseMetaData.getschemas returns incorrect column order * [PHOENIX-1424] - Drop cascade field should be optional * [PHOENIX-1427] - Reduce work in StatsCollector * [PHOENIX-1429] - Cancel queued threads when limit reached * [PHOENIX-1431] - DELETE using Subqueries * [PHOENIX-1432] - Run limit query that has only leading PK column filter serially * [PHOENIX-1434] - Stats are not maintained correctly through splits * [PHOENIX-1442] - Alter Index double normalize Index Table Name * [PHOENIX-1445] - Add unit test for stats not being maintained correctly through splits * [PHOENIX-1446] - Add/fix logging for LIMIT optimization * [PHOENIX-1447] - Increase guidepost width default to take into account FAST_DIFF compression * [PHOENIX-1448] - Fix resource leak when work rejected by thread executor * [PHOENIX-1449] - Fix potential NPE in delete * [PHOENIX-1451] - Queries with limit against tenant views is broken Release Notes - Phoenix - Version 4.2.0 ** New Features and Sub-task * [PHOENIX-167] - Support semi/anti-joins * [PHOENIX-180] - Use stats to guide query parallelization * [PHOENIX-943] - Handle pushed down post-filters for subquery in joins with limit and non-groupby aggregation * [PHOENIX-945] - Support correlated subqueries in comparison without ANY/SOME/ALL * [PHOENIX-1085] - Commonize logic for adding salt byte and adding region start key in ParallelIterators * [PHOENIX-1168] - Support non-correlated sub-queries in where clause having a comparison operator with no modifier or a comparison operator modified by ANY, SOME or ALL * [PHOENIX-1170] - Change status of local index during splitting to prevent usage when slower than query through data table * [PHOENIX-1249] - Support local immutable index * [PHOENIX-1259] - Perform partial scan for ANALYZE when table salted or local index * [PHOENIX-1263] - Only cache guideposts on physical PTable * [PHOENIX-1264] - Add StatisticsCollector to existing tables on first connection to cluster * [PHOENIX-1296] - Scan entire region when tenant-specific table is analyzed * [PHOENIX-1309] - Ensure Phoenix table is created for Local index and view index tables to store guideposts against them * [PHOENIX-1320] - Update stats atomically * [PHOENIX-1321] - Cleanup setting of timestamps when collecting and using stats * [PHOENIX-1322] - Add documentation for UPDATE STATISTICS command * [PHOENIX-1328] - Update ANALYZE syntax to collect stats on index tables and all tables * [PHOENIX-1332] - Support correlated subqueries in comparison with ANY/SOME/ALL * [PHOENIX-1333] - Store statistics guideposts as VARBINARY * [PHOENIX-1371] - Excessive non-Phoenix related tracing continually occurs once tracing is enabled * [PHOENIX-1254] - Add REGEXP_SPLIT function ** Bug * [PHOENIX-105] - Remove org.apache.commons.csv source once available in Maven repo * [PHOENIX-897] - psql command doesn't allow using certain characters in invocation * [PHOENIX-941] - Parallelize within regions to prevent rpc timeout * [PHOENIX-944] - Support derived tables in FROM clause that needs extra steps of client-side aggregation or other processing * [PHOENIX-973] - Lexer skips unexpected characters * [PHOENIX-1044] - Phoenix-Pig: No results returned unless all used columns are selected * [PHOENIX-1095] - Cannot add column to SYSTEM.CATALOG using Alter Table * [PHOENIX-1098] - Support CASCADE option on DROP TABLE that drops all VIEWs * [PHOENIX-1107] - Support mutable indexes over replication * [PHOENIX-1139] - Failed to disable local index when index update fails * [PHOENIX-1163] - Intersect min/max range with scan range during compilation when salted * [PHOENIX-1203] - Uable to work for count (distinct col) queries via phoenix table with secondary indexes * [PHOENIX-1206] - Decimal serialization broken for negative numbers with more than 19 digits of precision * [PHOENIX-1208] - Check for existence of views doesn't take into account the fact that SYSTEM.CATALOG could be split across regions * [PHOENIX-1209] - DROP of system table doesn't correctly look for the right kind of table * [PHOENIX-1211] - Use skip scan when row value constructor uses leading row key columns * [PHOENIX-1214] - SYSTEM.CATALOG cannot be created when first connection to cluster is tenant-specific * [PHOENIX-1219] - Salt the SYSTEM.SEQUENCE table * [PHOENIX-1223] - Support VARBINARY ARRAY * [PHOENIX-1225] - Evaluation of OR between columns in PK and not in PK incorrect * [PHOENIX-1228] - NPE in "select max(c1)" when c1 is a CHAR field * [PHOENIX-1237] - COALESCE Function - type of second parameter * [PHOENIX-1238] - Rollback index region split on any split failure * [PHOENIX-1239] - IN clause (and some others) cannot get moved from HAVING clause to WHERE clause when qualified * [PHOENIX-1242] - ArrayoutofBoundException Phoenix mapping to exisiting Hbase * [PHOENIX-1246] - Region server gets aborted with Phoenix exception * [PHOENIX-1248] - CsvBulkLoadTool is failing with IAE when local index specified for --index-table parameter * [PHOENIX-1250] - guava dependency out-dated causing NoSuchMethod error * [PHOENIX-1251] - Salted queries with range scan become full table scans * [PHOENIX-1252] - Potential lock leak for ungrouped aggregation * [PHOENIX-1253] - Invalid PreparedStatement.setXXX call should throw SQLException * [PHOENIX-1257] - Upserted data seen by SELECT in UPSERT SELECT execution * [PHOENIX-1258] - RegexpSubstrFunction is not useable with group by query * [PHOENIX-1266] - Disallow setting NOT NULL constraint on non PK columns * [PHOENIX-1268] - Misleading exception when attempting to drop system table * [PHOENIX-1271] - Column metadata doesn't hide tenant column on tenant-specific connections. * [PHOENIX-1272] - Avoid pulling in unintended HBase dependencies in phoenix-core * [PHOENIX-1273] - Phoenix should provide ILIKE keyword * [PHOENIX-1275] - SYSTEM.STATS table is not created when SYSTEM.CATALOG is already present * [PHOENIX-1280] - ColumnProjectionFilter creates too many ImmutableBytesPtrs * [PHOENIX-1281] - Each MultiKeyValueTuple.setKeyValues creates a new immutable list object * [PHOENIX-1284] - Override config properties for unit tests not making it to server * [PHOENIX-1285] - Override default for histogram depth in QueryServicesTestImpl * [PHOENIX-1286] - Remove hadoop2 compat modules * [PHOENIX-1288] - Selecting more than 2 array elements via index fails with ArrayIndexOutOfBoundsException * [PHOENIX-1289] - Drop index during upsert may abort RS * [PHOENIX-1298] - Queries on fixed width type columns that have an index declared on them don't use that index * [PHOENIX-1303] - Possible NPE in StatisticCollector#stop * [PHOENIX-1305] - create index throws NPE when dataTable has specified default column family * [PHOENIX-1313] - Investigate why LocalIndexIT.testLocalIndexScanAfterRegionSplit() is failing * [PHOENIX-1314] - Assertion tripped for skip scan with two unit tests * [PHOENIX-1315] - Optimize query for Pig loader * [PHOENIX-1316] - Improve test coverage of stats framework * [PHOENIX-1323] - Use utility method to get HTableInterface for scans from coprocessor * [PHOENIX-1324] - Consolidate code that initializes Scan * [PHOENIX-1325] - Pass in instead of calculate if we've crossed a region boundary in ScanRanges intersect methods * [PHOENIX-1327] - Disallow creating arrays of fixed width base type without the max length being specified * [PHOENIX-1330] - Flag VARBINARY VARBINARY ARRAY declaration in DDL as an error * [PHOENIX-1337] - Unpadded fixed length tenant ID causes erroneous results * [PHOENIX-1338] - Logic to group together parallel scans is incorrect * [PHOENIX-1341] - PhoenixRuntime returns zero exit status on failure * [PHOENIX-1344] - NTH_VALUE function skips duplicit values in order by * [PHOENIX-1349] - VIEWs do not inherit indexes from their parent * [PHOENIX-1353] - CsvBulkLoad doesn't work in secure env * [PHOENIX-1355] - sqlline.py or psql.py may hang if they're not invoked from bin folder * [PHOENIX-1356] - LocalIndexIT.testLocalIndexScanAfterRegionSplit() failed at distributed cluster when getting regions * [PHOENIX-1357] - Salt sequence table to prevent same RS from getting all sequence calls * [PHOENIX-1358] - OOB in SchemaUtil.getTableNameFromFullName * [PHOENIX-1359] - Backward compatibility fails with 4.1 client and current 4.0 branch on server * [PHOENIX-1360] - NPE in SpoolingResultIterator * [PHOENIX-1361] - Sequence value goes backwards if sequence validated before reserved * [PHOENIX-1364] - Close tracing scope to stop excessive tracing * [PHOENIX-1365] - Make sequence salt buckets configurable * [PHOENIX-1366] - ORDINAL_POSITION incorrect for multi-tenant table over tenant-specific connection * [PHOENIX-1368] - Persist link from VIEW back to its child VIEW * [PHOENIX-1369] - Add back encode/decode methods as deprecated * [PHOENIX-1370] - Allow query timeout to differ from RPC timeout * [PHOENIX-1376] - java.lang.NullPointerException occurs in JDBC driver * [PHOENIX-1379] - Wrong MultiIndexWriteFailureException when recovering local index table * [PHOENIX-1381] - NPE in CellUtil.matchingFamily() for IndexedKeyValue * [PHOENIX-1382] - Phoenix 4.2 RC Issue * [PHOENIX-1385] - Adding, dropping and adding columns fails with NPE * [PHOENIX-1386] - ANY function only works with absolute value and doesn't work with other parameters * [PHOENIX-1390] - Stats not updated on client after major compaction * [PHOENIX-1391] - Remove obsolete hint ** Improvement * [PHOENIX-619] - Support DELETE over table with immutable index when possible * [PHOENIX-852] - Optimize child/parent foreign key joins * [PHOENIX-1030] - Change Expression.isDeterministic() to return a enum of values ALWAYS, PER_STATEMENT, PER_ROW * [PHOENIX-1216] - Making spooling directory location configurable * [PHOENIX-1245] - Remove usage of empty KeyValue object BATCH_MARKER from Indexer * [PHOENIX-1262] - Generate phoenix-server jar with and without antlr * [PHOENIX-1300] - Allow sub-queries to choose different execution path other than hash-join ** Task * [PHOENIX-103] - Drop hadoop1.0 specifics from code * [PHOENIX-761] - Implement getKeyPart for round/ceil/floor of a DECIMAL value * [PHOENIX-960] - Don't spin mini cluster up and down between tests * [PHOENIX-1297] - Adding utility methods to get primary key information from the optimized query plan * [PHOENIX-1310] - Spill files filling up /tmp on server Previous release - Phoenix version 4.1 ** New Feature * [PHOENIX-71] - Support sub-joins * [PHOENIX-983] - Add a function for getting the GMT offset for a given timezone and time * [PHOENIX-984] - Add support for DECODE built-in function * [PHOENIX-995] - ADD ENCODE AND LPAD functions * [PHOENIX-1000] - Support FIRST_VALUE, LAST_VALUE, and NTH_VALUE aggregate functions * [PHOENIX-1002] - Add support for % operator * [PHOENIX-1043] - Add function for convert date between timezones ** Improvement * [PHOENIX-19] - Enhance JDBC connection of Phoenix to support connecting to a Secure HBase cluster. * [PHOENIX-890] - Create dev-support script for generating binary and source release tars with hadoop1 and hadoop2 profiles * [PHOENIX-898] - Extend PhoenixHBaseStorage to specify upsert columns * [PHOENIX-939] - Generalize SELECT expressions for Pig Loader * [PHOENIX-950] - Improve Secondary Index Update Failure Handling * [PHOENIX-982] - Avoid spinning up and tearing down mini cluster in tests * [PHOENIX-1007] - Replace getNextKeyHint(KeyValue kv) with getNextCellHint(Cell kv) in Filters * [PHOENIX-1069] - Improve CsvBulkLoadTool to build indexes when loading data. * [PHOENIX-1072] - Fast fail sqlline.py when pass wrong quorum string or hbase cluster hasnt' started yet * [PHOENIX-1101] - Provide a way to create Phoenix Statements on the server side inside a CP * [PHOENIX-1103] - Remove hash join special case for ChunkedResultIterator * [PHOENIX-1175] - Add setReadOnly and setFetchSize options * [PHOENIX-1198] - Add ability to pass custom tags to be added to log lines ** Sub-task * [PHOENIX-136] - Support derived tables in from clause * [PHOENIX-177] - Collect usage and performance metrics * [PHOENIX-927] - Support derived tables in joins * [PHOENIX-934] - Make changes to specify index is local * [PHOENIX-935] - create local index table with the same split keys of user table * [PHOENIX-936] - Custom load balancer to colocate user table regions and index table regions * [PHOENIX-937] - Handle puts on local index table * [PHOENIX-955] - Skip region start key at beginning of local index rows * [PHOENIX-994] - Handle scans on local index table in case any best fit covering local index available * [PHOENIX-1004] - 'drop index' should delete index data from local index table * [PHOENIX-1015] - Support joining back to data table row from local index when query condition involves leading columns in local index * [PHOENIX-1038] - Dynamically add INDEX_TYPE column to SYSTEM.CATALOG if not already there * [PHOENIX-1058] - Support index region split on it's corresponding data region split * [PHOENIX-1086] - Document local indexes * [PHOENIX-1099] - Fix performance issues with unit tests. * [PHOENIX-1112] - Atomically rebuild index partially when index update fails * [PHOENIX-1114] - Add user-level documentation for tracing * [PHOENIX-1129] - NotCompliantMBeanException * [PHOENIX-1132] - Merge server side phoenix-hadoop2-compat.jar, phoenix-hadoop-compat.jar and phoenix-.jar * [PHOENIX-1161] - Prevent necessity of clearing region cache on every access for local indexing * [PHOENIX-1196] - Add ability to add custom tracing tags for connections and/or upserts and selects ** Bug * [PHOENIX-3] - TRUNC method doesn't work on column of datatype timestamp * [PHOENIX-11] - Create Pig Loader * [PHOENIX-41] - HBase restart ConnectionLoss * [PHOENIX-63] - Can't add null value to a secondary indexed table * [PHOENIX-831] - First Connection to Phoenix blows up if it is tenant specific * [PHOENIX-902] - Allow family qualified names in CSVCommonsLoader * [PHOENIX-909] - Handle scan time range for low time resolution OS * [PHOENIX-911] - DDL containing only PK cols in the column list doesn't respect HBase specific attributes * [PHOENIX-915] - Numeric functions ROUND, CEIL, FLOOR return incorrect results for DOUBLE * [PHOENIX-916] - Time clock skew issue when SYSTEM.CATALOG moves between region servers * [PHOENIX-920] - SqlLine shows funky characters when running on Windows * [PHOENIX-924] - Classify PhoenixHBaseStorageTest as an integration test * [PHOENIX-938] - Use higher priority queue for index updates to prevent deadlock * [PHOENIX-948] - Pig integration tests don't get run via Maven * [PHOENIX-951] - Don't push LIMIT as PageFilter for joins * [PHOENIX-952] - Support ANY and ALL built-ins for ARRAYs * [PHOENIX-954] - View index sequences of a non multi tenant table are not getting deleted after main table drop * [PHOENIX-956] - Connection properties ignored * [PHOENIX-965] - Cannot aggregate on index with NULL values * [PHOENIX-966] - Phoenix needs to be on the main classpath of SQL tools * [PHOENIX-969] - java.util.concurrent.TimeoutException while reading the result set * [PHOENIX-979] - DELETE deletes row when WHERE contains PK fields but other than PK conditions are false * [PHOENIX-981] - Joins using Phoenix client on v.3.0.0 and server 3.0 head of branch fails on backward compatibility * [PHOENIX-985] - performance.py script fails to execute queries * [PHOENIX-986] - Improve error message on CSV import if table not found * [PHOENIX-987] - Add missing category information to integration tests * [PHOENIX-989] - problem setting column type of Array to null * [PHOENIX-990] - OOM caused by order by query returning all rows * [PHOENIX-991] - IT tests failed on hadoop2 * [PHOENIX-992] - Replace hTable.getRowOrBefore with ReverseScan to get maxKey in StatsManagerImpl * [PHOENIX-993] - Remove/exclude JRuby dependency * [PHOENIX-1001] - Using NEXT VALUE FOR 'sequence' as an input to a function cause a NPE * [PHOENIX-1005] - upsert data error after drop index * [PHOENIX-1008] - Problem initiating and using FLOAT ARRAY Type * [PHOENIX-1016] - Support MINVALUE, MAXVALUE, and CYCLE options in CREATE SEQUENCE * [PHOENIX-1032] - Don't compile alternate plans if query is a point lookup * [PHOENIX-1034] - Move validate/reserve of sequences into query compile * [PHOENIX-1037] - Implement getResultSetSqlType for UNSIGNED date/time types * [PHOENIX-1039] - PhoenixHBaseLoaderIT fails on hadoop-2 profile * [PHOENIX-1047] - Auto cast - add/sub decimal constant and integer * [PHOENIX-1048] - tables and sequences should be deleted at different times when scn set at BaseConnectedQueryIT#deletePriorTables * [PHOENIX-1049] - Secondary indices can cause "ERROR 203 (22005): Type mismatch" in queries involving joins * [PHOENIX-1052] - Secondary indices can cause "ERROR 504 (42703): Undefined column" in queries involving joins * [PHOENIX-1075] - Mathematical order of operations are improperly evaluated. * [PHOENIX-1076] - Usage of CAST producing syntax error * [PHOENIX-1079] - ConnectionQueryServicesImpl : Close HTable after use * [PHOENIX-1080] - Fix PhoenixRuntime.decodepk for salted tables. Add integration tests. * [PHOENIX-1083] - IN list of RVC combined with AND doesn't return expected rows * [PHOENIX-1088] - Cannot insert data , while Index is empty string * [PHOENIX-1089] - Row value constructors performance issue with multi-tenant views * [PHOENIX-1090] - Fix HTable leak in ServerCacheClient * [PHOENIX-1096] - Duplicate sequence values returned when doing upsert select against a salted table. * [PHOENIX-1097] - ChunkedResultIteratorFactory.newIterator is not closing the passed iterator resulting in HTable leak. * [PHOENIX-1100] - Upsert Select with Sequence and Order By doesn't result in sequence getting assigned based on requested ordering * [PHOENIX-1102] - Query Finds No Rows When Using Multiple Column Families in where clause * [PHOENIX-1104] - Do not shutdown threadpool when initialization fails * [PHOENIX-1105] - TableNotFoundException does not get caught if SYSTEM.TABLE is not present for whitelisted upgrade * [PHOENIX-1109] - PhoenixTestDriver needs to call shutdown on executor * [PHOENIX-1110] - Fix flappy MultiCfQueryExecIT * [PHOENIX-1111] - Fix flapping unit tests by removing inappropriate usage of TestUtil.TEST_PROPERTIES * [PHOENIX-1122] - Ensure TEST_PROPERTIES is not updated to prevent test flapping * [PHOENIX-1125] - SQLException when connection string is of form jdbc:phoenix:localhost:1234:userName * [PHOENIX-1128] - Fix build errors introduced by switch to hadoop2 as default profile * [PHOENIX-1130] - SkipScanFilter gets IndexOutOfBoundsException when intersecting salted tables * [PHOENIX-1131] - PhoenixRuntime.encodePk needs to pad row key values to max column length * [PHOENIX-1133] - Skip scan intersect method not reseting state correctly * [PHOENIX-1137] - SkipScanFilter.intersect not called for aggregate queries * [PHOENIX-1140] - Incorrect padding for row key columns * [PHOENIX-1141] - Fix HTable resource leak in ConnectionQueryServicesImpl.metaDataCoprocessorExec * [PHOENIX-1143] - Prevent race condition between creating phoenix connection and closing phoenix driver/connection query services. * [PHOENIX-1146] - Detect stale client region cache on server and retry scans in split regions * [PHOENIX-1147] - Ensure data table is sent to client if index table changes states * [PHOENIX-1149] - Index mutations should be committed as batches while building local index * [PHOENIX-1150] - scan on local index(index of view) for queries with no where condition should not read other indexes data stored in the shared index table * [PHOENIX-1152] - Prepend seek next hint of skip scan with region start key for local indexing * [PHOENIX-1153] - Fix failing PhoenixTracingEndToEndIT test * [PHOENIX-1154] - Fix hanging tests because metadata is not cleared up * [PHOENIX-1155] - Rename tracing test classes for consistency * [PHOENIX-1156] - Don't throw TableNotFoundException when table not found in cache * [PHOENIX-1157] - Improve abstraction for meta data cache * [PHOENIX-1162] - Use physical name instead of logical name when recovering from stale region cache * [PHOENIX-1166] - Avoid HTable creation in coprocessors to write into local index table * [PHOENIX-1171] - Dropping the index is not verifying the associated table * [PHOENIX-1172] - Prevent lock contention in ConnectionQueryServicesImpl. Fix exception handling. * [PHOENIX-1174] - Rename and move properties using existing convention * [PHOENIX-1176] - Allow tracing to be turned on globally through config * [PHOENIX-1180] - Rename test classes so they are properly picked up by the test runner * [PHOENIX-1181] - client cache fails to update itself after a table was altered from a diff client * [PHOENIX-1187] - Enable tracing on server * [PHOENIX-1188] - Performance regression for non-aggregate queries * [PHOENIX-1183] - phoenix-pig does not work with CDH 5.1 * [PHOENIX-1184] - Phoenix 4.0 will not compile agaist CDH HBase 5.1 * [PHOENIX-1192] - Re-enable reverse scan to prevent order by ** Task * [PHOENIX-539] - Implement parallel scanner that does not spool to disk * [PHOENIX-674] - Run unit tests in parallel * [PHOENIX-681] - Enhance JDBC connection of Phoenix to support connecting to a Secure HBase cluster. * [PHOENIX-788] - Support cast from/to DATE/TIME/TIMESTAMP to/from LONG/UNSIGNED_LONG * [PHOENIX-828] - Detect if split occurs while ORDER BY query is in progress * [PHOENIX-949] - Replace Filter#filterRow(List) with Filter#filterRowCells(List) ** Test * [PHOENIX-1136] - Add Integration Tests to verify the fix for PHOENIX-1133 Previous release - Version 4.0.0-incubating ** New Feature * [PHOENIX-21] - Support indexes on VIEWs including tenant-specific views * [PHOENIX-92] - Hive StorageHandler * [PHOENIX-149] - Support SEQUENCE creation and usage * [PHOENIX-427] - Allow creating VIEWs on the same physical HBase table * [PHOENIX-632] - Support equi-joins through broadcast hash join * [PHOENIX-749] - Support JDBC ARRAY type ** Improvement * [PHOENIX-10] - Push projection of a single ARRAY element to the server * [PHOENIX-13] - Provide a "nocache" hint to a query * [PHOENIX-15] - Allow forcing a memstore flush for a table * [PHOENIX-16] - Where clause optimization in join queries * [PHOENIX-17] - Support to make use of partial covered indexes in scan * [PHOENIX-19] - Enhance JDBC connection of Phoenix to support connecting to a Secure HBase cluster. * [PHOENIX-31] - Add encode/decode methods for PK values * [PHOENIX-33] - Support table-wildcard select in join queries * [PHOENIX-40] - Add support for batching * [PHOENIX-42] - Provide end2end test command line utility * [PHOENIX-50] - Convert shell scripts under bin to python script so same scripts can run in unix & windows * [PHOENIX-68] - Add hint "NO_STAR_JOIN" to indicate if star join optimization should be avoided for multi inner join queries * [PHOENIX-85] - Refine error handling in HashJoinPlan execution and add warnings * [PHOENIX-129] - Improve MapReduce-based import * [PHOENIX-130] - Separate execution of slow (integration) tests from fast unit tests * [PHOENIX-853] - Support CAST(x as varchar(length)) syntax * [PHOENIX-856] - Allow phoenix driver reuse after being closed ** Bug * [PHOENIX-7] - after Connection close, there are still 10 phoenix threads alive * [PHOENIX-12] - snappy error on osx 64bit * [PHOENIX-18] - Distinct based aggregations not working correctly when query contains ORDER BY * [PHOENIX-20] - Single Key(s) not recognized by optimizer when table is salted * [PHOENIX-22] - Explicitly declare views as read-only or updatable * [PHOENIX-26] - Unit test ArithmeticQueryTest#testDecimalUpsertSelect fails on HBase 0.94.15 * [PHOENIX-29] - Add custom filter to more efficiently navigate KeyValues in row * [PHOENIX-30] - NPE on PTable.getColumn(String) if column with same name used in the PK and non PK * [PHOENIX-32] - Replace generic ColumnModifier with specific SortOrder * [PHOENIX-34] - Insufficient memory exception on join when RHS rows count > 250K * [PHOENIX-35] - Perf test memory usage for indexes * [PHOENIX-37] - Prevent deserialize and re-serialize all array elements in construction of array * [PHOENIX-38] - Data load time with mutable index is 5X slower than Phoenix 2.2.2, 2.2.3 * [PHOENIX-44] - Cannot create index on tables with case-sensitive schema names * [PHOENIX-49] - ArrayIndexOutOfBoundsException when creating index * [PHOENIX-53] - Replace CSV loader with Apache Commons CSV loader * [PHOENIX-54] - PhoenixSink references jboss channel exception * [PHOENIX-57] - ClientKeyValue doesn't work in debug mode * [PHOENIX-58] - Client jars are missing phoenix code * [PHOENIX-60] - UPSERT SELECT does not increment sequences * [PHOENIX-61] - Indexing on columns of Date/Timestamp type would lead to ArgumentTypeMismatchException in optimize() * [PHOENIX-62] - Precision loss for decimal type (no scale specified) when creation of index happens after the record insertion * [PHOENIX-65] - Timeout in running E2E tests after PHOENIX-42 commit * [PHOENIX-66] - Support array creation from CSV file * [PHOENIX-67] - Lazy initialize QueryServices in PhoenixDriver * [PHOENIX-70] - Add doc for client jar being for a specific Hadoop version * [PHOENIX-72] - SkipScanFilter intersect may be incorrect for ranges * [PHOENIX-75] - Add documentation on website describing ARRAY support * [PHOENIX-76] - Fix perf regression due to PHOENIX-29 * [PHOENIX-77] - Indexes and salting on views is broken * [PHOENIX-78] - MetaDataUtil must respect ClientKeyValue usage * [PHOENIX-80] - Improve handing of TableNotFoundException in ConnectionQueryServicesImpl#getTable * [PHOENIX-82] - Allow ARRAY to be compared and used at end of PK * [PHOENIX-83] - select with left join when the where condition has right tables, the result is not expected * [PHOENIX-84] - explain the query plan is not the actually order * [PHOENIX-89] - Statements are not closed using PhoenixConnection.executeStatements() * [PHOENIX-90] - MemoryChunk objects might be orphaned when creating new caches in TenantCacheImpl * [PHOENIX-93] - Add shutdown hook to free any straggling resources * [PHOENIX-94] - Memory leak in running unit tests on Mac perhaps mini-cluster related * [PHOENIX-95] - Use catalog argument for tenant in JDBC metadata APIs * [PHOENIX-96] - Enable use of ClientKeyValueBuilder to reduce memory footprint * [PHOENIX-97] - Sort columns by COLUMN_NAME for metaData.getPrimaryKey() as dictated by spec * [PHOENIX-99] - Automatic white list based upgrade from 2.2 to 3.0 * [PHOENIX-100] - Relax compatibility check to only check that the major version matches between the client and server jars * [PHOENIX-106] - NPE when adding dynamic columns to a salted table * [PHOENIX-107] - Pass through already normalized strings to CSVLoader * [PHOENIX-108] - Add testing around multi-tenancy * [PHOENIX-110] - Indexes with tenant-specific views appear to be broken * [PHOENIX-113] - Enable usage of ClientKeyValue on for indexing on server * [PHOENIX-114] - Add Hints so that user can select whether to use "avoid seek optimization" or not * [PHOENIX-116] - Phoenix array integer types overlap with existing java.sql.Types * [PHOENIX-118] - Type mismatch error on upsert for unsigned_date and date * [PHOENIX-119] - Removed unnecessary Expression.getByteSize() method * [PHOENIX-121] - Metadata query on 2.X fails after upgrade to Phoenix 3.0 * [PHOENIX-122] - SELECT * FROM TABLE ORDER BY NONPK COLUMN doesn't return values for all the columns * [PHOENIX-123] - Fixed with array should not write any footer * [PHOENIX-124] - Add one page documentation in markdown for ARRAY support * [PHOENIX-126] - Use of BOOLEAN in index and/or group by causes exception * [PHOENIX-127] - Query with pk IS NULL OR pk IN (1,2) return incorrect results * [PHOENIX-128] - Support coercion and descending sort order for ARRAY * [PHOENIX-131] - Incorrect determination of total available memory * [PHOENIX-829] - Uppercase file name if none supplied for CSV import * [PHOENIX-830] - Add DISCLAIMER file along side NOTICE file * [PHOENIX-832] - Drop the ".txt" extension on the NOTICE, LICENSE, CHANGES, and README files * [PHOENIX-834] - Unit tests fail if default locale is not en_US * [PHOENIX-835] - Datatype statements in CAST operations are case-sensitive * [PHOENIX-841] - Upserting into tenant-specific view with no where clause fails with an NPE * [PHOENIX-842] - Use better namespace for maven artifacts * [PHOENIX-843] - Incorrect java.sql.Types value returned for array types in result set * [PHOENIX-845] - log4j setting is wrong * [PHOENIX-846] - Select DISTINCT with LIMIT does full scans * [PHOENIX-847] - Tenant metadata isolation broken in Connection.getMetaData() * [PHOENIX-849] - Test StatsManagerIT#testStatsManager is flaky * [PHOENIX-850] - Optimize ORDER BY and GROUP BY for tenant specific indexes * [PHOENIX-857] - Duplicate dependency on phoenix-core in phoenix-flume * [PHOENIX-858] - Disallow null primary key * [PHOENIX-861] - MapReduce import doesn't use a default array separator * [PHOENIX-863] - Relax delete check for immutable secondary indexes * [PHOENIX-865] - Bump utility logging level from INFO to WARN because of too much logging info * [PHOENIX-871] - Mutable Secondary Indexing can cause a deadlock on exception * [PHOENIX-872] - getConnection() sometimes fails with a ConcurrentModificationException * [PHOENIX-875] - NPE when running end2end tests against a live cluster * [PHOENIX-876] - Remove unnecessary phoenix-*-mapreduce.jar * [PHOENIX-881] - end2end test fails to run against a live cluster using end2endtest.py * [PHOENIX-882] - Updatable view should check view condition upon upsert * [PHOENIX-885] - Metadata ORDINAL_POSITION is off by one if table is salted * [PHOENIX-887] - Fix upgrade when wildcard used to upgrade everything * [PHOENIX-891] - Multi-tenant - Upserting values without specifying columns names upserts values in wrong columns * [PHOENIX-892] - Multi-tenant - Creating index throws NoSuchColumnFamilyException when CF is specified in base table * [PHOENIX-901] - Ensure ConnectionQueryServices only initialized once * [PHOENIX-904] - Connection leak during running of upgrade ** Task * [PHOENIX-25] - Remove @author tags * [PHOENIX-45] - Insure all source files include the ASF preamble * [PHOENIX-46] - Use Apache Rat for release compliance checking * [PHOENIX-622] - Support multi-tenant tables as views * [PHOENIX-873] - Add missing license headers as discovered by Apache Rat * [PHOENIX-874] - Update NOTICE file based on http://apache.org/legal/src-headers.html#notice