blob: 14bceaafd93c8ed1cc063520e9ea461b4a49d189 [file] [log] [blame]
Release Notes - Phoenix - Version 3.1
** 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-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
** 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
* [PHOENIX-1062] - A SQL Trimmer for log sql execute times
** Sub-task
* [PHOENIX-136] - Support derived tables in from clause
* [PHOENIX-927] - Support derived tables in joins
* [PHOENIX-1038] - Dynamically add INDEX_TYPE column to SYSTEM.CATALOG if not already there
* [PHOENIX-1112] - Atomically rebuild index partially when index update fails
* [PHOENIX-1132] - Merge server side phoenix-hadoop2-compat.jar, phoenix-hadoop-compat.jar and phoenix-<version>.jar
* [PHOENIX-1161] - Prevent necessity of clearing region cache on every access for local indexing
** 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-908] - At MetaDataEndpointImpl createTable, print large of Release unknown lockId: 5
* [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-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-962] - Basic querying fails if the current thread's context classloader is changed
* [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-988] - The result is not expected when select case when case
* [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-993] - Remove/exclude JRuby dependency
* [PHOENIX-997] - Timestamp date type default format with GMT time zone
* [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-1033] - Update HBase version to 0.94.19 to make connection to secure cluster easier
* [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-1053] - UngroupedAggregateRegionObserver make lock unlock
* [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-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-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-1154] - Fix hanging tests because metadata is not cleared up
* [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-1171] - Dropping the index is not verifying the associated table
* [PHOENIX-1172] - Prevent lock contention in ConnectionQueryServicesImpl. Fix exception handling.
* [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-1183] - phoenix-pig does not work with CDH 5.1
* [PHOENIX-1188] - Performance regression for non-aggregate queries
** 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-1056] - A ImportTsv tool for phoenix to build table data and all index data.
** Test
* [PHOENIX-1136] - Add Integration Tests to verify the fix for PHOENIX-1133
Previous release - Version 3.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