Fixed Issues in Phoenix

Review the list of Phoenix issues that are resolved in Cloudera Runtime 7.2.17.

CDPD-26858: Phoenix timezone handling to be fixed
Phoenix now supports the phoenix.query.applyTimeZoneDisplacement property, which enables a more consistent and standards-compliant handling of java.sql.Date/Time/Timestamp types. The property is set as FALSE by default for backwards compatibility, and it must be set to TRUE explicitly for the new behaviour. Using the java.time.LocalDate/LocalTime types are also directly supported according to the JDBC 4.2 specifications.
See PHOENIX-5066 and PHOENIX-6881 for more details.

Apache Patch Information

  • PHOENIX-5066
Calcite Avatica new features:
  • [CALCITE-4536] Add support for BIT data type (Zeng Rui)
Calcite Avatica improvements:
  • CALCITE-5581 Implement Basic client side load balancing in Avatica Driver
  • CALCITE-5327 Make SSL key-store type configurable
  • CALCITE-5218 Verify HTTP client class before instantiating it
  • CALCITE-4877 Make the exception information more explicit for instantiate plugin.
  • CALCITE-4757 Allow columns of type Null in ResultSet (NobiGo)
  • CALCITE-3401 Assume empty keystore passwords by default (Istvan Toth, Alessandro Solimando)
Calcite Avatica bugfixes:
  • CALCITE-4752 PreparedStatement#SetObject() fails for BigDecimal values
  • CALCITE-4971 Update httpclient and httpcore to latest 5.1 release
  • CALCITE-5009 Transparent JDBC connection re-creation may lead to data loss
  • CALCITE-4962 Protobuf debug does not show request/response type
  • CALCITE-4152 Upgrade Avatica to use the configurable SPNEGO Jetty implementation
  • CALCITE-4828 Standard exception console output
  • CALCITE-4837 FLOOR/CEIL for DECADE, CENTURY, MILLENIUM return wrong results
  • CALCITE-4573 NullPointerException while fetching from a column of type ARRAY
  • CALCITE-4602 ClassCastException retrieving from ARRAY that has mixed INTEGER and DECIMAL elements
  • CALCITE-4600 ClassCastException retrieving from an ARRAY that has DATE, TIME or TIMESTAMP elements
  • CALCITE-4767 Add Quoting.BACK_TICK_BACKSLASH (Jack Scott)
  • CALCITE-4752 PreparedStatement#SetObject() fails for BigDecimal values
  • CALCITE-4676 Avatica client leaks TCP connections
  • CALCITE-4503 Order of fields in records should follow that of the SQL types (Alessandro Solimando)
  • CALCITE-3163 Incorrect mapping of JDBC float/real array types to Java types (Ralph Gasser)
  • CALCITE-3881 DateTimeUtils.addMonths yields incorrect results (Zhenghua Gao)
  • CALCITE-4476 DateTimeUtils.timeStringToUnixDate may produce wrong time (Vladimir Ozerov)
  • CALCITE-4181 Avatica throws exception when select field is a List<Object> (Kent Nguyen)
  • CALCITE-4379 Meta.Frame created with java float values in rows hits a ClassCastException in toProto()
  • CALCITE-4196 Consume all data from client before replying with HTTP/401
  • CALCITE-4138 Metadata operations via Avatica turn empty string args to null
Phoenix improvements:
  • PHOENIX-6944 Randomize mapper task ordering for Index MR tools
  • PHOENIX-6873 Use cached Connection in IndexHalfStoreFileReaderGenerator
  • PHOENIX-6395 Reusing Connection instance object instead of creating everytime in PhoenixAccessController class (addendum: don't close the shared Connection on stop)
  • PHOENIX-6881 Implement the applicable Date/Time features from JDBC 4.2
  • PHOENIX-6834 Use Pooled HConnection for Server Side Upsert Select
Phoenix bugfixes:
  • PHOENIX-6969 Projection bug in hinted uncovered index query with order by
  • PHOENIX-6953 Creating indexes on a table with old indexing leads to inconsistent co-processors
  • PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection
  • PHOENIX-6872 Use ServerUtil.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't 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 to fix CVE
  • PHOENIX-6841 Depend on omid-codahale-metrics
  • PHOENIX-5894 Table versus Table Full Outer join on Salted tables not … (#1395)
Phoenix connectors bugfixes:
  • PHOENIX-6667: Spark3 connector requires that all columns are specified when writing
Phoenix Omid improvements:
  • OMID-239: OMID TLS support (#129)
Phoenix Query Server improvements:
  • PHOENIX-6810 Make SSL key-store type configurable
Phoenix Query Server bugfixes:
  • PHOENIX-6908 KerberosName$NoMatchingRule exception in QueryServer.PhoenixRemoteUserExtractor
  • PHOENIX-6704 sqlline-thin.py doesn't work woth python3
  • PHOENIX-6762 Phoenix QueryServer cannot run correctly with python 3.8+