Fixed Issues in Phoenix
Review the list of Phoenix issues that are resolved in Cloudera Runtime 7.1.9.
- PHOENIX-6881 Implement the applicable Date/Time features from JDBC 4.2
- Phoenix now supports setting and retrieving java.time.LocalDate, java.time.LocalDateTime, and java.time.LocalTime objects through the ResultSet.getObject() and PreparedStatement.setObject() APIs, as defined by JDBC 4.2.
Apache patch information
Changes in Phoenix:
- PHOENIX-6959: Server merges are not used for hinted uncovered indexes for wildcard selects on 5.1
- PHOENIX-6984: Fix fallback to skip-join-merge for hinted global indexes
- PHOENIX-6966: UngroupedAggregateRegionScanner.insertEmptyKeyValue() writes wrong qualifier for encoded CQ tables
- PHOENIX-6965: UngroupedAggregateRegionScanner.insertEmptyKeyValue() generates too many cells
- PHOENIX-6969: While using order in some hinted uncovered queries, a ColumnAlreadyExistsException is thrown
- PHOENIX-6953: Creating indexes on a table with old indexing leads to inconsistent co-processors
- PHOENIX-6873: Use cached connection in IndexHalfStoreFileReaderGenerator
- PHOENIX-6874: Support older HBase versions with broken ShortCircuitConnection
- PHOENIX-6872: Use ServerUtil.ConnectionFactory.getConnection() in UngroupedAggregateRegionScanner
- PHOENIX-6395: Reusing connection instance object instead of creating everytime in PhoenixAccessController class
- PHOENIX-5066: The TimeZone is incorrectly used during writing or reading data
- PHOENIX-6823: Calling Joda-based round() function on temporal PK field causes division by zero error
- PHOENIX-6889: Improve extraction of ENCODED_QUALIFIERs
- PHOENIX-6720: CREATE TABLE can not recreate column encoded tables that had columns dropped
- PHOENIX-6855: Upgrade from 4.7 to 5+ fails if any of the local indexes exist
- PHOENIX-6818: Remove dependency on the i18n-util library
- PHOENIX-6841: Depend on omid-codahale-metrics
- PHOENIX-6834: Use pooled HConnection for server side upsert select
- PHOENIX-5894: Table versus Table Full Outer join on Salted tables not working
- PHOENIX-6800: Remove superfluous semicolon for import statement in UncoveredLocalIndexRegionScanner
- PHOENIX-6798: Eliminate unnecessary reversed scan for AggregatePlan
- PHOENIX-6653: Add upgrade tests based on HBase snapshots
- PHOENIX-6721: CSV bulkload tool fails with FileNotFoundException if --output points to the S3 location
- PHOENIX-6646: System tables are not upgraded after namespace migration
- PHOENIX-6611: Fix IndexTool -snap option and set VERIFIED in PhoenixIndexImportDirectReducer
- PHOENIX-6601: Fix IndexTools bugs with namespace mapping
- PHOENIX-6480: SchemaExtractionProcessor does not add IMMUTABLE_STORAGE_SCHEME and COLUMN_ENCODED_BYTES to the generated SQL
- PHOENIX-6509: Forward port PHOENIX-4424 Allow users to create "DEFAULT" and "HBASE" Schema (Uppercase Schema Names)
- PHOENIX-6427: Create sequence fails in lowercase schema
- PHOENIX-6451: Update junit and jcodings versions
- PHOENIX-3067: Phoenix metrics system should not be started in mini-cluster mode
- PHOENIX-6662: Failed to delete rows when PK has one or more DESC column with IN clause
- PHOENIX-6659: RVC with AND clauses return incorrect result
- PHOENIX-6773: PhoenixDatabaseMetadata.getColumns() always returns null COLUMN_DEF
- PHOENIX-6767: Traversing through all the guideposts to prepare parallel scans is not required for salted tables when the query is point lookup
- PHOENIX-6751: Force using range scan vs skip scan when using the IN operator and large number of RVC elements
- PHOENIX-6771: Allow only "squash and merge" from GitHub UI
- PHOENIX-6766: Fix failure of sqlline due to conflicting jline dependency pulled from Hadoop 3.3
- PHOENIX-6758: During HBase 2 upgrade Phoenix Self healing task fails to create server side connection before reading SYSTEM.TASK
- PHOENIX-6753: Update default HBase 2.4 version to 2.4.13
- PHOENIX-6755: SystemCatalogRegionObserver extends BaseRegionObserver which does not exist in hbase-2.4 branch
- PHOENIX-6733: Ref count leaked test failures
- PHOENIX-6725: ConcurrentMutationException when adding column to table view
- PHOENIX-6530: Fix tenantId generation for Sequential and Uniform load generators
- PHOENIX-5534: Cursors with request metrics enabled throws exception
- PHOENIX-6710: Revert PHOENIX-3842 Turn on back default bloomFilter for Phoenix Tables
- PHOENIX-6705: PagedRegionScanner next throws NPE if pagedFilter is not initialized
- PHOENIX-6699: Phoenix metrics overwriting DefaultMetricsSystem in RegionServers
- PHOENIX-6697: log4j-reload4j is missing from phoenix-assembly
- PHOENIX-6679: PHOENIX-6665 changed column name for CURRENT seqence values
- PHOENIX-6616: Alter table command can be used to set normalization_enabled=true on salted tables
- PHOENIX-6665: PreparedStatement#getMetaData() no longer fails on parametrized "select next ? values" sequence operations
- PHOENIX-6658: Replace HRegion.get() calls
- PHOENIX-6661: Sqlline does not work on PowerPC linux
- PHOENIX-6636: Replace bundled log4j libraries with reload4j
- PHOENIX-6656: Reindent NonAggregateRegionScannerFactory
- PHOENIX-6645: Remove unneccessary SCN related properties from SYSTEM tables on upgrade
- PHOENIX-6576: Do not use guava's Files.createTempDir()
- PHOENIX-6441: Remove TSOMockModule reference from OmidTransactionProvider
- PHOENIX-6638: Test suite fails with -Dwithout.tephra
- PHOENIX-6591: Update OWASP plugin to latest
- PHOENIX-6579: ACL check does not honor the namespace mapping for mapped views
- PHOENIX-6596: Schema extraction double quotes expressions, resulting in un-executabe create statements
- PHOENIX-5865: Column that has default value can not be correctly indexed
- PHOENIX-6615: The Tephra transaction processor cannot be loaded anymore
- PHOENIX-6618: Yetus docker image cannot be built as openjdk 11.0.11 is no longer available
- PHOENIX-6604: Allow using indexes for wildcard topN queries on salted tables
- PHOENIX-6600: Replace deprecated getCall with updated getRpcCall
- PHOENIX-6594: Clean up vararg warnings flagged as errors by Eclipse
- PHOENIX-6592: PhoenixStatsCacheLoader uses non-deamon threads
- PHOENIX-6583: Inserting explicit Null into a (fixed length) binary field is stored as an array of zeroes
- PHOENIX-6577: phoenix_sandbox.py incompatible with python3
- PHOENIX-6528: When view index pk has a variable length column, read repair does not work correctly
- PHOENIX-6507: DistinctAggregatingResultIterator should keep original tuple order of the AggregatingResultIterator
- PHOENIX-6498: Fix incorrect Correlated Exists Subquery rewrite when Subquery is aggregate
- PHOENIX-6472: In case of region inconsistency Phoenix should stop gracefully
- PHOENIX-6344: CASCADE on ALTER should NOOP when there are no secondary indexes
- PHOENIX-6555: Wait for permissions to sync in permission tests
- PHOENIX-6578: sqlline.py cannot be started from source tree
- PHOENIX-6574: Executing "DROP TABLE" drops all sequences
- PHOENIX-6568: NullPointerException in phoenix-queryserver-client not in phoenix-client-hbase
- PHOENIX-6548: Race condition when triggering index rebuilds as RegionServer closes
- PHOENIX-6558: Update SpotBugs
- PHOENIX-6563: Unable to use 'UPPER'/'LOWER' together with 'IN'
- PHOENIX-6557: Fix code problems flagged by SpotBugs as high priority
- PHOENIX-6556: Log INPUT_TABLE_CONDITIONS for MR jobs
- PHOENIX-6550: Upgrade jetty, jackson and commons-io
- PHOENIX-6546: BackwardCompatibilityIT testSystemTaskCreationWithIndexAsyncRebuild is flaky
- PHOENIX-6547: BasePermissionsIT is still a bit flaky
- PHOENIX-6543: De-flake AuditLoggingIT
- PHOENIX-5072: Cursor query loops eternally with local index, returns fine without it
- PHOENIX-6542: WALRecoveryRegionPostOpenIT is flaky
- PHOENIX-6534: Upgrades from previous 4.10 versions are broken
- PHOENIX-6486: Phoenix uses inconsistent chronologies internally, breaking pre-Gregorian date handling
- PHOENIX-6519: Make SchemaTool work with lower case table and column names
- PHOENIX-6518: Implement SHOW CREATE TABLE SQL command
- PHOENIX-6506: Tenant Connection is not able to access or validate Global Sequences
- PHOENIX-6454: Add feature to SchemaTool to get the DDL in specification mode
- PHOENIX-6450: Checkstyle check is creating warnings for line length which are greater than 80
- PHOENIX-6413: Having cannot resolve alias
- PHOENIX-6476: Index tool when verifying from index to data does not correctly split page into tasks
- PHOENIX-6515: Phoenix uses hbase-testing-util but does not list it as a dependency
- PHOENIX-6510: Double-checked locking field must be volatile
- PHOENIX-6514: Exception should be thrown
Changes in phoenix-connectors:
- PHOENIX-6683: Surround the OR filters with parentheses while converting Spark filters to Phoenix expressions
- PHOENIX-6694: Avoid unnecessary calls of fetching table meta data to region servers holding the system tables in batch oriented jobs in spark or hive otherwise those RS become hotspot
- PHOENIX-6590: Handle rollbacks in Phoenix Spark connector and add way to control batch wise or task wise transactions
- PHOENIX-6566: Shaded Phoenix connectors include restrictive log4j config files
- PHOENIX-6524: Hive connector returns emtpy AND expression when all children are pushed down
- PHOENIX-6490: Fix shaded Phoenix Hive connector jar name and reduce the size
Changes in phoenix-omid:
- OMID-245: Add dependency management for Guava to use 32.1.1
- OMID-244: Upgrade SnakeYaml version to 2.0
- OMID-241: Add logging to TSO server crash
- OMID-242: Bump Google Guice version to 5.1.0 to support JDK 17
- OMID-239: OMID TLS support
- OMID-214: Upgrade commons-io to 2.11.0
- OMID-208: Pass additional options to omid.sh
- OMID-202: Refactor Omid to use Netty 4
- OMID-191: Fix missing executable permission because of MASSEMBLY-941
- OMID-200: Omid client cannot use kerberos cache when using proxyUser
- OMID-199: Omid client cannot use pre-authenticated UserGroupInformation.getCurrentUser()
- OMID-194: OmidTableManager cannot create commit and timestamp tables in kerberos cluster
- OMID-192: Fix missing jcommander dependency
Changes in phoenix-queryserver:
- PHOENIX-6908: KerberosName$NoMatchingRule exception in QueryServer.PhoenixRemoteUserExtractor
- PHOENIX-6704: sqlline-thin.py does not work with python3
- PHOENIX-6762: Phoenix QueryServer cannot run correctly with python 3.8+
- PHOENIX-6727: get_view_names() returning empty list
- PHOENIX-6654: queryserver.py sets the umask to 0000 when starting PQS in daemon mode