Release Notes - Hive - Version 3.1.0

** Sub-task
    * [HIVE-12192] - Hive should carry out timestamp computations in UTC
    * [HIVE-17227] - Incremental replication load should create tasks in execution phase rather than semantic phase 
    * [HIVE-17657] - export/import for MM tables is broken
    * [HIVE-18193] - Migrate existing ACID tables to use write id per table rather than global transaction id
    * [HIVE-18748] - Rename table impacts the ACID behavior as table names are not updated in meta-tables.
    * [HIVE-18840] - CachedStore: Prioritize loading of recently accessed tables during prewarm
    * [HIVE-18946] - Fix columnstats merge NPE
    * [HIVE-18988] - Support bootstrap replication of ACID tables
    * [HIVE-19009] - Retain and use runtime statistics during hs2 lifetime
    * [HIVE-19096] - query result cache interferes with explain analyze 
    * [HIVE-19126] - CachedStore: Use memory estimation to limit cache size during prewarm
    * [HIVE-19128] - Update golden files for spark perf tests
    * [HIVE-19135] - Need tool to allow admins to create catalogs and move existing dbs to catalog during upgrade
    * [HIVE-19141] - TestNegativeCliDriver insert_into_notnull_constraint, insert_into_acid_notnull failing
    * [HIVE-19159] - TestMTQueries.testMTQueries1 failure
    * [HIVE-19164] - TestMetastoreVersion failures
    * [HIVE-19171] - Persist runtime statistics in metastore
    * [HIVE-19193] - TestActivePassiveHA fails
    * [HIVE-19194] - TestDruidStorageHandler fails
    * [HIVE-19195] - Fix flaky tests and cleanup testconfiguration to run llap specific tests in llap only.
    * [HIVE-19196] - TestTriggersMoveWorkloadManager is flaky
    * [HIVE-19206] - Automatic memory management for open streaming writers
    * [HIVE-19209] - Streaming ingest record writers should accept input stream
    * [HIVE-19210] - Create separate module for streaming ingest
    * [HIVE-19211] - New streaming ingest API and support for dynamic partitioning
    * [HIVE-19214] - High throughput ingest ORC format
    * [HIVE-19222] - TestNegativeCliDriver tests are failing due to "java.lang.OutOfMemoryError: GC overhead limit exceeded"
    * [HIVE-19243] - Upgrade hadoop.version to 3.1.0
    * [HIVE-19274] - Add an OpTreeSignature persistence checker hook
    * [HIVE-19332] - Disable compute.query.using.stats for external table
    * [HIVE-19336] - Disable SMB/Bucketmap join for external tables
    * [HIVE-19340] - Disable timeout of transactions opened by replication task at target cluster
    * [HIVE-19347] - TestTriggersWorkloadManager tests are failing consistently
    * [HIVE-19348] -  org.apache.hadoop.hive.ql.plan.mapping.TestOperatorCmp are failing
    * [HIVE-19366] - Vectorization causing TestStreaming.testStreamBucketingMatchesRegularBucketing to fail
    * [HIVE-19374] - Parse and process ALTER TABLE SET OWNER command syntax
    * [HIVE-19409] - Disable incremental rewriting with outdated materialized views
    * [HIVE-19472] - HiveStreamingConnection swallows exception on partition creation
    * [HIVE-19494] - Accept shade prefix during reflective instantiation of output format
    * [HIVE-19495] - Arrow SerDe itest failure
    * [HIVE-19499] - Bootstrap REPL LOAD shall add tasks to create checkpoints for db/tables/partitions.
    * [HIVE-19500] - Prevent multiple selectivity estimations for the same variable in conjuctions
    * [HIVE-19562] - Flaky test: TestMiniSparkOnYarn FileNotFoundException in spark-submit
    * [HIVE-19598] - Add Acid V1 to V2 upgrade module
    * [HIVE-19637] - Add slow test report script to testutils
    * [HIVE-19688] - Make catalogs updatable
    * [HIVE-19727] - Fix Signature matching of table aliases
    * [HIVE-19739] - Bootstrap REPL LOAD to use checkpoints to validate and skip the loaded data/metadata.
    * [HIVE-19758] - Set hadoop.version=3.1.0 in standalone-metastore
    * [HIVE-19768] - Utility to convert tables to conform to Hive strict managed tables mode
    * [HIVE-19799] - remove jasper dependency
    * [HIVE-19815] - Repl dump should not propagate the checkpoint and repl source properties
    * [HIVE-19851] - upgrade jQuery version
    * [HIVE-19852] - update jackson to latest
    * [HIVE-19868] - Add support for float aggregator
    * [HIVE-19892] - Disable query results cache for for HiveServer2 doAs=true
    * [HIVE-19923] - Follow up of HIVE-19615, use UnaryFunction instead of prefix


** Bug
    * [HIVE-15190] - Field names are not preserved in ORC files written with ACID
    * [HIVE-18434] - Type is not determined correctly for comparison between decimal column and string constant
    * [HIVE-18816] - CREATE TABLE (ACID) doesn't work with TIMESTAMPLOCALTZ column type
    * [HIVE-19016] - Vectorization and Parquet: Disable vectorization for nested complex types
    * [HIVE-19054] - Function replication shall use "hive.repl.replica.functions.root.dir" as root
    * [HIVE-19108] - Vectorization and Parquet: Turning on vectorization in parquet_ppd_decimal.q causes Wrong Query Results
    * [HIVE-19109] - Vectorization: Enabling vectorization causes TestCliDriver delete_orig_table.q to produce Wrong Results
    * [HIVE-19110] - Vectorization: Enabling vectorization causes TestContribCliDriver udf_example_arraymapstruct.q to produce Wrong Results
    * [HIVE-19118] - Vectorization: Turning on vectorization in escape_crlf produces wrong results
    * [HIVE-19120] - catalog not properly set for some tables in SQL upgrade scripts
    * [HIVE-19131] - DecimalColumnStatsMergerTest comparison review
    * [HIVE-19155] - Day time saving cause Druid inserts to fail with org.apache.hive.druid.io.druid.java.util.common.UOE: Cannot add overlapping segments
    * [HIVE-19157] - Assert that Insert into Druid Table fails if the publishing of metadata by HS2 fails
    * [HIVE-19167] - Map data type doesn't keep the order of the key/values pairs as read (Part 2, The Sequel or SQL)   
    * [HIVE-19168] - Ranger changes for llap commands
    * [HIVE-19186] - Multi Table INSERT statements query has a flaw for partitioned table when INSERT INTO and INSERT OVERWRITE are used
    * [HIVE-19200] - Vectorization: Disable vectorization for LLAP I/O when a non-VECTORIZED_INPUT_FILE_FORMAT mode is needed (i.e. rows) and data type conversion is needed
    * [HIVE-19219] - Incremental REPL DUMP should throw error if requested events are cleaned-up.
    * [HIVE-19230] - Schema column width inconsistency in Oracle 
    * [HIVE-19231] - Beeline generates garbled output when using UnsupportedTerminal
    * [HIVE-19237] - Only use an operatorId once in a plan
    * [HIVE-19247] - StatsOptimizer: Missing stats fast-path for Date
    * [HIVE-19248] - REPL LOAD couldn't copy file from source CM path and also doesn't throw error if file copy fails.
    * [HIVE-19258] - add originals support to MM tables (and make the conversion a metadata only operation)
    * [HIVE-19264] - Vectorization: Reenable vectorization in vector_adaptor_usage_mode.q
    * [HIVE-19269] - Vectorization: Turn On by Default
    * [HIVE-19275] - Vectorization: Defer Wrong Results / Execution Failures when Vectorization turned on
    * [HIVE-19277] - Active/Passive HA web endpoints does not allow cross origin requests
    * [HIVE-19312] - MM tables don't work with BucketizedHIF
    * [HIVE-19317] - Handle schema evolution from int like types to decimal
    * [HIVE-19327] - qroupby_rollup_empty.q fails for insert-only transactional tables
    * [HIVE-19331] - Repl load config in "with" clause not pass to Context.getStagingDir
    * [HIVE-19350] - Vectorization: Turn off vectorization for explainuser_1.q / spark_explainuser_1
    * [HIVE-19352] - Vectorization: Disable vectorization for org.apache.hive.jdbc.TestJdbcDriver2.testResultSetMetaData
    * [HIVE-19358] - CBO decorrelation logic should generate Hive operators
    * [HIVE-19365] - Index on COMPLETED_TXN_COMPONENTS in Metastore RDBMS has different names in different scripts
    * [HIVE-19370] - Issue: ADD Months function on timestamp datatype fields in hive
    * [HIVE-19381] - Function replication in cloud fail when download resource from AWS
    * [HIVE-19382] - Acquire locks before generating valid transaction list for some operations
    * [HIVE-19384] - Vectorization: IfExprTimestamp* do not handle NULLs correctly
    * [HIVE-19410] - don't create serde reader in LLAP if there's no cache
    * [HIVE-19418] - add background stats updater similar to compactor
    * [HIVE-19423] - REPL LOAD creates staging directory in source dump directory instead of table data location
    * [HIVE-19433] - HiveJoinPushTransitivePredicatesRule hangs
    * [HIVE-19435] - Incremental replication cause data loss if a table is dropped followed by create and insert-into with different partition type.
    * [HIVE-19454] - Test failure : org.apache.hadoop.hive.ql.TestTxnCommands2.testNonAcidToAcidConversion1 fails with java.lang.AssertionError
    * [HIVE-19460] - Improve stats estimations for NOT IN operator
    * [HIVE-19463] - TezTask - getting groups may fail (PartialGroupNameException in some tests)
    * [HIVE-19467] - Make storage format configurable for temp tables created using LLAP external client
    * [HIVE-19474] - Decimal type should be casted as part of the CTAS or INSERT Clause.
    * [HIVE-19479] - encoded stream seek is incorrect for 0-length RGs in LLAP IO
    * [HIVE-19481] - Tablesample uses incorrect logic to pick files corresponding to buckets.
    * [HIVE-19485] - dump directory for non native tables should not be created
    * [HIVE-19493] - VectorUDFDateDiffColCol copySelected does not handle nulls correctly
    * [HIVE-19496] - Check untar folder
    * [HIVE-19498] - Vectorization: CAST expressions produce wrong results
    * [HIVE-19504] - Change default value for hive.auto.convert.join.shuffle.max.size property
    * [HIVE-19516] - TestNegative merge_negative_5 and mm_concatenate are causing timeouts
    * [HIVE-19529] - Vectorization: Date/Timestamp NULL issues
    * [HIVE-19557] - stats: filters for dates are not taking advantage of min/max values
    * [HIVE-19565] - Vectorization: Fix NULL / Wrong Results issues in STRING Functions
    * [HIVE-19567] - Fix flakiness in TestTriggers
    * [HIVE-19569] - alter table db1.t1 rename db2.t2 generates MetaStoreEventListener.onDropTable()
    * [HIVE-19575] - TestAutoPurgeTables seems flaky
    * [HIVE-19577] - CREATE TEMPORARY TABLE LIKE  and INSERT generate output format mismatch errors
    * [HIVE-19578] - HLL merges tempList on every add
    * [HIVE-19588] - Several invocation of file listing when creating VectorizedOrcAcidRowBatchReader
    * [HIVE-19589] - Disable TestAutoPurge tests and annotate TestTriggersWorkloadManager with retry
    * [HIVE-19590] - mask stats in llap_smb
    * [HIVE-19592] - TestWorkloadManager - add retry for now
    * [HIVE-19594] - Add custom tmp folders to tests to avoid collisions
    * [HIVE-19595] - Regenerate webui port in MiniHS2
    * [HIVE-19604] - Incorrect Handling of Boolean in DruidSerde
    * [HIVE-19605] - TAB_COL_STATS table has no index on db/table name
    * [HIVE-19608] - disable flaky tests 2
    * [HIVE-19613] - GenericUDTFGetSplits should handle fetch task with temp table rewrite
    * [HIVE-19614] - GenericUDTFGetSplits does not honor ORDER BY
    * [HIVE-19615] - Proper handling of is null and not is null predicate when pushed to Druid
    * [HIVE-19619] - Allow comparisons between doubles and bigints
    * [HIVE-19629] - Enable Decimal64 reader after orc version upgrade
    * [HIVE-19631] - reduce epic locking in AbstractService
    * [HIVE-19632] - Remove webapps directory from standalone jar
    * [HIVE-19639] - a transactional Hive table cannot be imported as an external table
    * [HIVE-19643] - MM table conversion doesn't need full ACID structure checks
    * [HIVE-19644] - change WM syntax to avoid conflicts with identifiers starting with a number
    * [HIVE-19646] - Filesystem closed error in HiveProtoLoggingHook
    * [HIVE-19660] - update branch-3 to be version 3.1 and fix storage-api mismatch
    * [HIVE-19675] - Cast to timestamps on Druid time column leads to an exception
    * [HIVE-19677] - Disable sample6.q
    * [HIVE-19680] - Push down limit is not applied for Druid storage handler.
    * [HIVE-19684] - Hive stats optimizer wrongly uses stats against non native tables
    * [HIVE-19687] - Export table on acid partitioned table is failing
    * [HIVE-19690] - multi-insert query with multiple GBY, and distinct in only some branches can produce incorrect results
    * [HIVE-19691] - Start SessionState in materialized views registry
    * [HIVE-19695] - Year Month Day extraction functions need to add an implicit cast for column that are String types
    * [HIVE-19697] - TestReOptimization#testStatCachingMetaStore is flaky
    * [HIVE-19698] - TestAMReporter#testMultipleAM is flaky
    * [HIVE-19700] - Workaround for JLine issue with UnsupportedTerminal
    * [HIVE-19713] - itests/hive-jmh should not reference a concreate storage-api version
    * [HIVE-19723] - Arrow serde: "Unsupported data type: Timestamp(NANOSECOND, null)"
    * [HIVE-19726] - ORC date PPD is broken
    * [HIVE-19728] - beeline with USE_BEELINE_FOR_HIVE_CLI fails when trying to set hive.aux.jars.path
    * [HIVE-19734] - Beeline: When beeline-site.xml is present, beeline does not honor -n (username) and -p (password) arguments
    * [HIVE-19744] - In Beeline if -u is specified the default connection should not be tried at all
    * [HIVE-19750] - Initialize NEXT_WRITE_ID. NWI_NEXT on converting an existing table to full acid
    * [HIVE-19753] - Strict managed tables mode in Hive
    * [HIVE-19754] - vector_decimal_2 failing on branch-3
    * [HIVE-19755] - insertsel_fail.q.out needs to be updated on branch-3
    * [HIVE-19762] - Druid Queries containing Joins gives wrong results. 
    * [HIVE-19771] - allowNullColumnForMissingStats should not be false when column stats are estimated
    * [HIVE-19772] - Streaming ingest V2 API can generate invalid orc file if interrupted
    * [HIVE-19773] - CBO exception while running queries with tables that are not present in materialized views
    * [HIVE-19777] - NPE in TezSessionState
    * [HIVE-19789] - reenable orc_llap test
    * [HIVE-19793] - disable LLAP IO batch-to-row wrapper for ACID deletes/updates
    * [HIVE-19794] - Disable removing order by from subquery in GenericUDTFGetSplits
    * [HIVE-19796] - Push Down TRUNC Fn to Druid Storage Handler
    * [HIVE-19801] - JDBC: Add some missing classes to jdbc standalone jar and remove hbase classes
    * [HIVE-19808] - GenericUDTFGetSplits should support ACID reads in the temp. table read path
    * [HIVE-19810] - StorageHandler fail to ship jars in Tez intermittently
    * [HIVE-19813] - SessionState.start don't have to be synchronized
    * [HIVE-19817] - Hive streaming API + dynamic partitioning + json/regex writer does not work
    * [HIVE-19826] - OrcRawRecordMerger doesn't work for more than one file in non vectorized case
    * [HIVE-19827] - hiveserver2 startup should provide a way to override TEZ_CONF_DIR
    * [HIVE-19833] - reduce LLAP IO min allocation to match ORC variable CB size
    * [HIVE-19837] - Setting to have different default location for external tables
    * [HIVE-19838] - simplify & fix ColumnizedDeleteEventRegistry load loop
    * [HIVE-19853] - Arrow serializer needs to create a TimeStampMicroTZVector instead of TimeStampMicroVector
    * [HIVE-19857] - Set 3.1.0 for sys db version
    * [HIVE-19859] - Inspect lock components for DBHiveLock while verifying whether transaction list is valid
    * [HIVE-19861] - Fix temp table path generation for acid table export
    * [HIVE-19862] - Postgres init script has a glitch around UNIQUE_DATABASE
    * [HIVE-19864] - Address TestTriggersWorkloadManager flakiness
    * [HIVE-19866] - improve LLAP cache purge
    * [HIVE-19869] - Remove double formatting bug followup of HIVE-19382
    * [HIVE-19872] - hive-schema-3.1.0.hive.sql is missing on master and branch-3
    * [HIVE-19873] - Cleanup operation log on query cancellation after some delay
    * [HIVE-19875] - increase LLAP IO queue size for perf
    * [HIVE-19876] - Multiple fixes for Driver.isValidTxnListState
    * [HIVE-19877] - Remove setting hive.execution.engine as mr in HiveStreamingConnection
    * [HIVE-19879] - Remove unused calcite sql operator.
    * [HIVE-19884] - Invalidation cache may throw NPE when there is no data in table used by materialized view
    * [HIVE-19889] - Wrong results due to PPD of non deterministic functions with CBO
    * [HIVE-19890] - ACID: Inherit bucket-id from original ROW_ID for delete deltas
    * [HIVE-19898] - Disable TransactionalValidationListener when the table is not in the Hive catalog
    * [HIVE-19903] - Disable temporary insert-only transactional table
    * [HIVE-19904] - Load data rewrite into Tez job fails for ACID
    * [HIVE-19908] - Block Insert Overwrite with Union All on full CRUD ACID tables using HIVE_UNION_SUBDIR_
    * [HIVE-19912] - Schema evolution checks prints a log line in INFO mode for each vectorized rowbatch, impacts performance
    * [HIVE-19917] - Export of full CRUD transactional table fails if table is not in default database
    * [HIVE-19920] - Schematool fails in embedded mode when auth is on
    * [HIVE-19921] - Fix perf duration and queue name in HiveProtoLoggingHook
    * [HIVE-19938] - Upgrade scripts for information schema
    * [HIVE-19941] - Row based Filters added via Hive Ranger policies are not pushed to druid
    * [HIVE-19946] - VectorizedRowBatchCtx.recordIdColumnVector cannot be shared between different JVMs
    * [HIVE-19951] - Vectorization: Need to disable encoded LLAP I/O for ORC when there is data type conversion  (Schema Evolution)
    * [HIVE-19956] - Include yarn registry classes to jdbc standalone jar
    * [HIVE-19964] - Apply resource plan fails if trigger expression has quotes
    * [HIVE-19965] - Make HiveEndPoint use IMetaStoreClient.add_partition
    * [HIVE-19972] - Followup to HIVE-19928 : Fix the check for managed table
    * [HIVE-19973] - Enable materialized view rewriting by default
    * [HIVE-19980] - GenericUDTFGetSplits fails when order by query returns 0 rows
    * [HIVE-19997] - Batches for TestMiniDruidCliDriver
    * [HIVE-20002] - Shipping jdbd-storage-handler dependency jars in LLAP
    * [HIVE-20010] - Fix create view over literals


** New Feature
    * [HIVE-18739] - Add support for Import/Export from Acid table
    * [HIVE-19307] - Support ArrowOutputStream in LlapOutputFormatService


** Improvement
    * [HIVE-17824] - msck repair table should drop the missing partitions from metastore
    * [HIVE-18079] - Statistics: Allow HyperLogLog to be merged to the lowest-common-denominator bit-size
    * [HIVE-18394] - Materialized view: "Create Materialized View" should default to rewritable ones
    * [HIVE-18410] - [Performance][Avro] Reading flat Avro tables is very expensive in Hive
    * [HIVE-18743] - CREATE TABLE on S3 data can be extremely slow. DO_NOT_UPDATE_STATS workaround is buggy.
    * [HIVE-18792] - Allow standard compliant syntax for insert on partitioned tables
    * [HIVE-18866] - Semijoin and analyze: Implement a Long -> Hash64 vector fast-path
    * [HIVE-19027] - Make materializations invalidation cache work with multiple active remote metastores
    * [HIVE-19161] - Add authorizations to information schema
    * [HIVE-19228] - Remove commons-httpclient 3.x usage
    * [HIVE-19259] - Create view on tables having union all fail with "Table not found"
    * [HIVE-19344] - Change default value of msck.repair.batch.size 
    * [HIVE-19390] - Useless error messages logged for dummy table stats
    * [HIVE-19415] - Support CORS for all HS2 web endpoints
    * [HIVE-19421] - Upgrade version of Jetty to 9.3.20.v20170531
    * [HIVE-19440] - Make StorageBasedAuthorizer work with information schema
    * [HIVE-19462] - Fix mapping for char_length function to enable pushdown to Druid. 
    * [HIVE-19464] - Upgrade Parquet to 1.10.0
    * [HIVE-19465] - Upgrade ORC to 1.5.0
    * [HIVE-19466] - Update constraint violation error message
    * [HIVE-19490] - Locking on Insert into for non native and managed tables.
    * [HIVE-19534] - Allow implementations to access member variables of AbstractRecordWriter
    * [HIVE-19560] - Retry test runner and retry rule for flaky tests
    * [HIVE-19572] - Add option to mask stats and data size in q files
    * [HIVE-19586] - Optimize Count(distinct X) pushdown based on the storage capabilities 
    * [HIVE-19669] - Upgrade ORC to 1.5.1
    * [HIVE-19682] - Provide option for GenericUDTFGetSplits to return only schema metadata
    * [HIVE-19775] - Schematool should use HS2 embedded mode in privileged auth mode
    * [HIVE-19776] - HiveServer2.startHiveServer2 retries of start has concurrency issues
    * [HIVE-19824] - Improve online datasize estimations for MapJoins
    * [HIVE-19885] - Druid Kafka Ingestion - Allow user to set kafka consumer properties via table properties

** Test
    * [HIVE-19271] - TestMiniLlapLocalCliDriver default_constraint and check_constraint failing
    * [HIVE-19515] - TestRpc.testServerPort is consistently failing
    * [HIVE-19555] - Enable TestMiniLlapLocalCliDriver#tez_dynpart_hashjoin_1.q and TestMiniLlapLocalCliDriver#tez_vector_dynpart_hashjoin_1.q
    * [HIVE-19573] - Fix flaky TestMiniLlapLocalCliDriver#explainuser_4.q
    * [HIVE-19612] - Add option to mask lineage in q files
    * [HIVE-19617] - Rename test tables to avoid collisions during execution in batches
    * [HIVE-19620] - Change tmp directory used by PigServer in HCat tests
    * [HIVE-19626] - Change tmp staging mapred directory for CliDriver
    * [HIVE-19654] - Change tmp staging mapred directory for TestBlobstoreCliDriver
    * [HIVE-19655] - Mask stats for TestMiniLlapLocalCliDriver#smb_mapjoin_15
    * [HIVE-19699] - Re-enable TestReOptimization
    * [HIVE-19706] - Disable TestJdbcWithMiniHS2#testHttpRetryOnServerIdleTimeout
    * [HIVE-19731] - Change staging tmp directory used by TestHCatLoaderComplexSchema


** Task
    * [HIVE-18875] - Enable SMB Join by default in Tez
    * [HIVE-19134] - Update copyright NOTICE and fix rat check failures
    * [HIVE-19140] - Update metastore upgrade scripts to prepare for 3.1.0 development
    * [HIVE-19257] - HIVE-19157 commit references wrong jira
    * [HIVE-19306] - Arrow batch serializer
    * [HIVE-19308] - Provide an Arrow stream reader for external LLAP clients 
    * [HIVE-19323] - Create metastore SQL install and upgrade scripts for 3.1
    * [HIVE-19488] - Enable CM root based on db parameter, identifying a db as source of replication.
    * [HIVE-19509] - Disable tests that are failing continuously
    * [HIVE-19512] - If parallel execution is enabled, metastore is throwing out of sequence error.
    * [HIVE-19708] - Repl copy retrying with cm path even if the failure is due to network issue
    * [HIVE-19725] - Add ability to dump non-native tables in replication metadata dump
    * [HIVE-19880] - Repl Load to return recoverable vs non-recoverable error codes
    * [HIVE-19881] - Allow metadata-only dump for database which are not source of replication
    * [HIVE-19928] - Load Data for managed tables should set the owner of loaded files to a configurable user
    * [HIVE-19978] - Backport HIVE-18037 to branch-3


Release Notes - Hive - Version 3.0.0

** Sub-task
    * [HIVE-11133] - Support hive.explain.user for Spark
    * [HIVE-11418] - Dropping a database in an encryption zone with CASCADE and trash enabled fails
    * [HIVE-13567] - Enable auto-gather column stats by default
    * [HIVE-13583] - E061-14: Search Conditions
    * [HIVE-13673] - LLAP: handle case where no service instance is found on the host specified in the input split
    * [HIVE-14412] - Add timestamp with time zone
    * [HIVE-14487] - Add REBUILD statement for materialized views
    * [HIVE-14495] - Add SHOW MATERIALIZED VIEWS statement
    * [HIVE-14498] - Freshness period for query rewriting using materialized views
    * [HIVE-14518] - Support 'having' translation for Druid GroupBy queries
    * [HIVE-14747] - Remove JAVA paths from profiles by sending them from ptest-client
    * [HIVE-14947] - Add support for Acid 2 in Merge
    * [HIVE-15016] - Run tests with Hadoop 3.0.0-beta1
    * [HIVE-15018] - ALTER rewriting flag in materialized view 
    * [HIVE-15051] - Test framework integration with findbugs, rat checks etc.
    * [HIVE-15173] - Allow dec as an alias for decimal
    * [HIVE-15212] - merge branch into master
    * [HIVE-15326] - Hive shims report Unrecognized Hadoop major version number: 3.0.0-alpha2-SNAPSHOT
    * [HIVE-15436] - Enhancing metastore APIs to retrieve only materialized views
    * [HIVE-15490] - REPL LOAD & DUMP support for INSERT events with change management
    * [HIVE-15619] - Column pruner should handle DruidQuery
    * [HIVE-15642] - Replicate Insert Overwrites, Dynamic Partition Inserts and Loads
    * [HIVE-15673] - Allow multiple queries with disjunction
    * [HIVE-15705] - Event replication for constraints
    * [HIVE-15725] - Make it possible to run checkstyle for a specific module
    * [HIVE-15758] - Allow correlated scalar subqueries with aggregates which has non-equi join predicates
    * [HIVE-15834] - Add unit tests for org.json usage on master
    * [HIVE-15899] - Make CTAS with acid target table and insert into acid_tbl select ... union all ... work
    * [HIVE-15939] - Make cast expressions comply more to sql2011
    * [HIVE-15982] - Support the width_bucket function
    * [HIVE-15986] - Support "is [not] distinct from"
    * [HIVE-16171] - Support replication of truncate table
    * [HIVE-16186] - REPL DUMP shows last event ID of the database even if we use LIMIT option.
    * [HIVE-16197] - Incremental insert into a partitioned table doesn't get replicated.
    * [HIVE-16207] - Add support for Complex Types in Fast SerDe
    * [HIVE-16228] - Support subqueries in complex expression in SELECT clause
    * [HIVE-16256] - Flaky test: TestCliDriver.testCliDriver[comments]
    * [HIVE-16266] - Enable function metadata to be written during bootstrap
    * [HIVE-16267] - Enable bootstrap function metadata to be loaded in repl load
    * [HIVE-16268] - enable incremental repl dump to handle functions metadata
    * [HIVE-16269] - enable incremental function dump to be loaded via repl load 
    * [HIVE-16272] - support for drop function in incremental replication 
    * [HIVE-16276] - Fix NoSuchMethodError: com.amazonaws.services.s3.transfer.TransferManagerConfiguration.setMultipartUploadThreshold(I)V
    * [HIVE-16294] - Support snapshot for truncate table
    * [HIVE-16312] - Flaky test: TestHCatClient.testTransportFailure
    * [HIVE-16313] - Flaky test: TestBeeLineDriver[drop_with_concurrency]
    * [HIVE-16320] - Flaky test: TestBeeLineDriver.testCliDriver[escape_comments]
    * [HIVE-16330] - Improve plans for scalar subquery with aggregates
    * [HIVE-16344] - Test and support replication of exchange partition
    * [HIVE-16372] - Enable DDL statement for non-native tables (add/remove table properties)
    * [HIVE-16400] - Fix the MDC reference to use slf4j rather than log4j
    * [HIVE-16416] - Service: move constants out from HiveAuthFactory
    * [HIVE-16467] - Flaky test: TestCliDriver.testCliDriver[vector_order_null]
    * [HIVE-16488] - Support replicating into existing db if the db is empty
    * [HIVE-16493] - Skip column stats when colStats is empty
    * [HIVE-16504] - Addition of binary licenses broke rat check
    * [HIVE-16530] - Add HS2 operation logs and improve logs for REPL commands
    * [HIVE-16532] - HIVE on hadoop 3 build failed due to hdfs client/server jar separation
    * [HIVE-16535] - Hive fails to build from source code tarball
    * [HIVE-16542] - make merge that targets acid 2.0 table fail-fast 
    * [HIVE-16555] - Add a new thrift API call for get_metastore_uuid
    * [HIVE-16556] - Modify schematool scripts to initialize and create METASTORE_DB_PROPERTIES table
    * [HIVE-16566] - Set column stats default as true when creating new tables/partitions
    * [HIVE-16568] - Support complex types in external LLAP InputFormat
    * [HIVE-16579] - CachedStore: improvements to partition col stats caching and cache column stats for unpartitioned table
    * [HIVE-16586] - Fix Unit test failures when CachedStore is enabled
    * [HIVE-16591] - DR for function Binaries on HDFS 
    * [HIVE-16600] - Refactor SetSparkReducerParallelism#needSetParallelism to enable parallel order by in multi_insert cases
    * [HIVE-16601] - Display Session Id and Query Name / Id in Spark UI
    * [HIVE-16617] - Clean up javadoc from errors in module hive-shims
    * [HIVE-16618] - Clean up javadoc from errors in module hive-common
    * [HIVE-16619] - Clean up javadoc from errors in module hive-serde
    * [HIVE-16628] - Fix query25 when it uses a mix of MergeJoin and MapJoin
    * [HIVE-16637] - Improve end-of-data checking for LLAP input format
    * [HIVE-16642] - New Events created as part of replv2 potentially break replv1
    * [HIVE-16644] - Hook Change Manager to Insert Overwrite
    * [HIVE-16647] - Improve the validation output to make the output to stderr and stdout more consistent
    * [HIVE-16651] - LlapProtocolClientProxy stack trace when using llap input format
    * [HIVE-16652] - LlapInputFormat: Seeing "output error" WARN message
    * [HIVE-16653] - Mergejoin should give itself a correct tag
    * [HIVE-16672] - Parquet vectorization doesn't work for tables with partition info
    * [HIVE-16684] - Bootstrap REPL DUMP shouldn't fail when table is dropped after fetching the table names.
    * [HIVE-16686] - repl invocations of distcp needs additional handling
    * [HIVE-16688] - Make sure Alter Table to set transaction=true acquires X lock
    * [HIVE-16691] - Add test for more datatypes for LlapInputFormat
    * [HIVE-16697] - Schema table validator should return a sorted list of missing tables 
    * [HIVE-16702] - Use LazyBinarySerDe for LLAP InputFormat
    * [HIVE-16706] - Bootstrap REPL DUMP shouldn't fail when a partition is dropped/renamed when dump in progress.
    * [HIVE-16714] - make Task Dependency on Repl Load more intuitive
    * [HIVE-16715] - Clean up javadoc from errors in modules llap-client, metastore, spark-client
    * [HIVE-16722] - Converting bucketed non-acid table to acid should perform validation
    * [HIVE-16727] - REPL DUMP for insert event should't fail if the table is already dropped.
    * [HIVE-16729] - Improve location validator to check for blank paths.
    * [HIVE-16747] - Remove YETUS*.sh files after a YETUS release
    * [HIVE-16748] - Integreate YETUS to Pre-Commit
    * [HIVE-16750] - Support change management for rename table/partition.
    * [HIVE-16764] - Support numeric as same as decimal
    * [HIVE-16765] - ParquetFileReader should be closed to avoid resource leak
    * [HIVE-16774] - Support position in ORDER BY when using SELECT *
    * [HIVE-16775] - Fix HiveFilterAggregateTransposeRule when filter is always false
    * [HIVE-16779] - CachedStore leak PersistenceManager resources
    * [HIVE-16782] - Flaky Test: TestMiniLlapLocalCliDriver[subquery_scalar]
    * [HIVE-16785] - Ensure replication actions are idempotent if any series of events are applied again.
    * [HIVE-16797] - Enhance HiveFilterSetOpTransposeRule to remove union branches
    * [HIVE-16813] - Incremental REPL LOAD should load the events in the same sequence as it is dumped.
    * [HIVE-16827] - Merge stats task and column stats task into a single task
    * [HIVE-16837] - MetadataOnly optimizer conflicts with count distinct rewrite
    * [HIVE-16838] - Improve plans for subqueries with non-equi co-related predicates
    * [HIVE-16848] - NPE during CachedStore refresh
    * [HIVE-16892] - Move creation of _files from ReplCopyTask to analysis phase for boostrap replication 
    * [HIVE-16893] - move replication dump related work in semantic analysis phase to execution phase using a task
    * [HIVE-16895] -  Multi-threaded execution of bootstrap dump of partitions
    * [HIVE-16896] - move replication load related work in semantic analysis phase to execution phase using a task
    * [HIVE-16901] - Distcp optimization - One distcp per ReplCopyTask 
    * [HIVE-16912] - Improve table validator's performance against Oracle
    * [HIVE-16926] - LlapTaskUmbilicalExternalClient should not start new umbilical server for every fragment request
    * [HIVE-16974] - Change the sort key for the schema tool validator to be <ID>
    * [HIVE-16981] - hive.optimize.bucketingsorting should compare the schema before removing RS
    * [HIVE-16990] - REPL LOAD should update last repl ID only after successful copy of data files.
    * [HIVE-16992] - LLAP: monitoring and better default lambda for LRFU policy
    * [HIVE-16996] - Add HLL as an alternative to FM sketch to compute stats
    * [HIVE-16997] - Extend object store to store and use bit vectors
    * [HIVE-16998] - Add config to enable HoS DPP only for map-joins
    * [HIVE-17005] - Ensure REPL DUMP and REPL LOAD are authorized properly
    * [HIVE-17021] - Support replication of concatenate operation.
    * [HIVE-17087] - Remove unnecessary HoS DPP trees during map-join conversion
    * [HIVE-17091] - "Timed out getting readerEvents" error from external LLAP client
    * [HIVE-17100] - Improve HS2 operation logs for REPL commands.
    * [HIVE-17112] - Reduce logging in HiveSparkClientFactory and RemoteHiveSparkClient
    * [HIVE-17132] - Add InterfaceAudience and InterfaceStability annotations for UDF APIs
    * [HIVE-17137] - Fix javolution conflict
    * [HIVE-17153] - Flaky test: TestMiniSparkOnYarnCliDriver[spark_dynamic_partition_pruning]
    * [HIVE-17157] - Add InterfaceAudience and InterfaceStability annotations for ObjectInspector APIs
    * [HIVE-17167] - Create metastore specific configuration tool
    * [HIVE-17168] - Create separate module for stand alone metastore
    * [HIVE-17170] - Move thrift generated code to stand alone metastore
    * [HIVE-17178] - Spark Partition Pruning Sink Operator can't target multiple Works
    * [HIVE-17183] - Disable rename operations during bootstrap dump
    * [HIVE-17185] - TestHiveMetaStoreStatsMerge.testStatsMerge is failing
    * [HIVE-17195] - Long chain of tasks created by REPL LOAD shouldn't cause stack corruption.
    * [HIVE-17196] - CM: ReplCopyTask should retain the original file names even if copied from CM path.
    * [HIVE-17205] - add functional support for unbucketed tables
    * [HIVE-17212] - Dynamic add partition by insert shouldn't generate INSERT event.
    * [HIVE-17214] - check/fix conversion of unbucketed non-acid to acid
    * [HIVE-17215] - Streaming Ingest API writing unbucketed tables
    * [HIVE-17216] - Additional qtests for HoS DPP
    * [HIVE-17224] - Move JDO classes to standalone metastore
    * [HIVE-17225] - HoS DPP pruning sink ops can target parallel work objects
    * [HIVE-17241] - Change metastore classes to not use the shims
    * [HIVE-17247] - HoS DPP: UDFs on the partition column side does not evaluate correctly
    * [HIVE-17256] - add a notion of a guaranteed task to LLAP
    * [HIVE-17289] - EXPORT and IMPORT shouldn't perform distcp with doAs privileged user.
    * [HIVE-17292] - Change TestMiniSparkOnYarnCliDriver test configuration to use the configured cores
    * [HIVE-17297] - allow AM to use LLAP guaranteed tasks
    * [HIVE-17307] - Change the metastore to not use the metrics code in hive/common
    * [HIVE-17316] - Use String.startsWith for the hidden configuration variables
    * [HIVE-17318] - Make Hikari CP configurable using hive properties in hive-site.xml
    * [HIVE-17319] - Make BoneCp configurable using hive properties in hive-site.xml
    * [HIVE-17330] - refactor TezSessionPoolManager to separate its multiple functions
    * [HIVE-17346] - TestMiniSparkOnYarnCliDriver[spark_dynamic_partition_pruning] is failing every time
    * [HIVE-17347] - TestMiniSparkOnYarnCliDriver[spark_dynamic_partition_pruning_mapjoin_only] is failing every time
    * [HIVE-17359] - Deal with TypeInfo dependencies in the metastore
    * [HIVE-17371] - Move tokenstores to metastore module
    * [HIVE-17375] - stddev_samp,var_samp standard compliance
    * [HIVE-17380] - refactor LlapProtocolClientProxy to be usable with other protocols
    * [HIVE-17381] - When we enable Parquet Writer Version V2, hive throws an exception: Unsupported encoding: DELTA_BYTE_ARRAY.
    * [HIVE-17382] - Change startsWith relation introduced in HIVE-17316
    * [HIVE-17387] - implement Tez AM registry in Hive
    * [HIVE-17405] - HoS DPP ConstantPropagate should use ConstantPropagateOption.SHORTCUT
    * [HIVE-17409] - refactor LLAP ZK registry to make the ZK-registry part reusable
    * [HIVE-17414] - HoS DPP + Vectorization generates invalid explain plan due to CombineEquivalentWorkResolver
    * [HIVE-17428] - REPL LOAD of ALTER_PARTITION event doesn't create import tasks if the partition doesn't exist during analyze phase.
    * [HIVE-17455] - External LLAP client: connection to HS2 should be kept open until explicitly closed
    * [HIVE-17456] - Set current database for external LLAP interface
    * [HIVE-17473] - implement workload management pools
    * [HIVE-17482] - External LLAP client: acquire locks for tables queried directly by LLAP
    * [HIVE-17488] - Move first set of classes to standalone metastore
    * [HIVE-17494] - Bootstrap REPL DUMP throws exception if a partitioned table is dropped while reading partitions.
    * [HIVE-17495] - CachedStore: prewarm improvement (avoid multiple sql calls to read partition column stats), refactoring and caching some aggregate stats
    * [HIVE-17506] - Fix standalone-metastore pom.xml to not depend on hive's main pom
    * [HIVE-17508] - Implement global execution triggers based on counters
    * [HIVE-17514] - Use SHA-256 for cookie signer to improve security
    * [HIVE-17515] - Use SHA-256 for GenericUDFMaskHash to improve security
    * [HIVE-17527] - Support replication for rename/move table across database
    * [HIVE-17528] - Add more q-tests for Hive-on-Spark with Parquet vectorized reader
    * [HIVE-17534] - Add a config to turn off parquet vectorization
    * [HIVE-17537] - Move Warehouse class to standalone metastore
    * [HIVE-17541] - Move testing related methods from MetaStoreUtils to some testing related utility
    * [HIVE-17566] - Create schema required for workload management.
    * [HIVE-17581] - Replace some calcite dependencies with native ones
    * [HIVE-17607] - remove ColumnStatsDesc usage from columnstatsupdatetask
    * [HIVE-17608] - REPL LOAD should overwrite the data files if exists instead of duplicating it
    * [HIVE-17617] - Rollup of an empty resultset should contain the grouping of the empty grouping set
    * [HIVE-17629] - CachedStore - wait for prewarm at use time, not init time
    * [HIVE-17645] - MM tables patch conflicts with HIVE-17482 (Spark/Acid integration)
    * [HIVE-17647] - DDLTask.generateAddMmTasks(Table tbl) and other random code should not start transactions
    * [HIVE-17651] - TableScanOperator might miss vectorization on flag
    * [HIVE-17652] - retire ANALYZE TABLE ... PARTIALSCAN
    * [HIVE-17661] - DBTxnManager.acquireLocks() - MM tables should use shared lock for Insert
    * [HIVE-17671] - TableScanDesc.isAcidTable is restricted to FullAcid tables
    * [HIVE-17681] - Need to log bootstrap dump progress state property to HS2 logs.
    * [HIVE-17692] - Block HCat on Acid tables
    * [HIVE-17696] - Vectorized reader does not seem to be pushing down projection columns in certain code paths
    * [HIVE-17698] - FileSinkDesk.getMergeInputDirName() uses stmtId=0
    * [HIVE-17708] - Upgrade surefire to 2.20.1
    * [HIVE-17728] - TestHCatClient should use hive.metastore.transactional.event.listeners as per recommendation.
    * [HIVE-17733] - Move RawStore to standalone metastore
    * [HIVE-17743] - Add InterfaceAudience and InterfaceStability annotations for Thrift generated APIs
    * [HIVE-17748] - ReplCopyTask doesn't support multi-file CopyWork
    * [HIVE-17750] - add a flag to automatically create most tables as MM 
    * [HIVE-17756] - Enable subquery related Qtests for Hive on Spark
    * [HIVE-17757] - REPL LOAD need to use customised configurations to execute distcp/remote copy.
    * [HIVE-17771] - Implement commands to manage resource plan
    * [HIVE-17778] - Add support for custom counters in trigger expression
    * [HIVE-17809] - Implement per pool trigger validation and move sessions across pools
    * [HIVE-17812] - Move remaining classes that HiveMetaStore depends on 
    * [HIVE-17835] - HS2 Logs print unnecessary stack trace when HoS query is cancelled
    * [HIVE-17837] - Explicitly check if the HoS Remote Driver has been lost in the RemoteSparkJobMonitor 
    * [HIVE-17841] - implement applying the resource plan
    * [HIVE-17842] - Run checkstyle on ptest2 module with proper configuration
    * [HIVE-17850] - can VectorizedOrcAcidRowReader be removed once HIVE-17458 is done?
    * [HIVE-17856] - MM tables - IOW is not ACID compliant
    * [HIVE-17858] - MM - some union cases are broken
    * [HIVE-17874] - Parquet vectorization fails on tables with complex columns when there are no projected columns
    * [HIVE-17884] - Implement create, alter and drop workload management triggers
    * [HIVE-17887] - Incremental REPL LOAD with Drop partition event on timestamp type partition column fails.
    * [HIVE-17888] - Display the reason for query cancellation
    * [HIVE-17897] - "repl load" in bootstrap phase fails when partitions have whitespace
    * [HIVE-17902] - add notions of default pool and start adding unmanaged mapping
    * [HIVE-17904] - handle internal Tez AM restart in registry and WM
    * [HIVE-17905] - propagate background LLAP cluster changes to WM
    * [HIVE-17906] - use kill query mechanics to kill queries in WM
    * [HIVE-17907] - enable and apply resource plan commands in HS2
    * [HIVE-17913] - Cleanup unused methods in Driver
    * [HIVE-17926] - Support triggers for non-pool sessions
    * [HIVE-17929] - Use sessionId for HoS Remote Driver Client id
    * [HIVE-17931] - Implement Parquet vectorization reader for Array type
    * [HIVE-17933] - make antlr output directory to use a top-level sourceset
    * [HIVE-17934] - Merging Statistics are promoted to COMPLETE (most of the time)
    * [HIVE-17945] - Support column projection for index access when using Parquet Vectorization
    * [HIVE-17950] - Implement resource plan fetching from metastore
    * [HIVE-17954] - Implement pool, user, group and trigger to pool management API's.
    * [HIVE-17961] - NPE during initialization of VectorizedParquetRecordReader when input split is null
    * [HIVE-17967] - Move HiveMetaStore class
    * [HIVE-17970] - MM LOAD DATA with OVERWRITE doesn't use base_n directory concept
    * [HIVE-17972] - Implement Parquet vectorization reader for Map type
    * [HIVE-17980] - Move HiveMetaStoreClient plus a few remaining classes.
    * [HIVE-17981] - Create a set of builders for Thrift classes
    * [HIVE-17982] - Move metastore specific itests
    * [HIVE-17983] - Make the standalone metastore generate tarballs etc.
    * [HIVE-17990] - Add Thrift and DB storage for Schema Registry objects
    * [HIVE-17991] - Remove CommandNeedRetryException
    * [HIVE-17995] - Run checkstyle on standalone-metastore module with proper configuration
    * [HIVE-17996] - Fix ASF headers
    * [HIVE-17997] - Add rat plugin and configuration to standalone metastore pom
    * [HIVE-18002] - add group support for pool mappings
    * [HIVE-18003] - add explicit jdbc connection string args for mappings
    * [HIVE-18004] - investigate deriving app name from JDBC connection for pool mapping
    * [HIVE-18005] - Improve size estimation for array() to be not 0
    * [HIVE-18025] - Push resource plan changes to tez/unmanaged sessions
    * [HIVE-18028] - fix WM based on cluster smoke test; add logging
    * [HIVE-18029] - beeline - support proper usernames based on the URL arg
    * [HIVE-18031] - Support replication for Alter Database operation.
    * [HIVE-18034] - Improving logging with HoS executors spend lots of time in GC
    * [HIVE-18036] - Stats: Remove usage of clone() methods
    * [HIVE-18053] - Support different table types for MVs
    * [HIVE-18056] - CachedStore: Have a whitelist/blacklist config to allow selective caching of tables/partitions and allow read while prewarming
    * [HIVE-18057] - remove PostExecute / PreExecute hook support
    * [HIVE-18063] - Make CommandProcessorResponse an exception instead of a return class
    * [HIVE-18071] - add HS2 jmx information about pools and current resource plan
    * [HIVE-18072] - fix various WM bugs based on cluster testing - part 2
    * [HIVE-18073] - AM may assert when its guaranteed task count is reduced
    * [HIVE-18075] - verify commands on a cluster
    * [HIVE-18076] - killquery doesn't actually work for non-trigger WM kills
    * [HIVE-18078] - WM getSession needs some retry logic
    * [HIVE-18084] - Upgrade checkstyle version to support lambdas
    * [HIVE-18085] - Run checkstyle on storage-api module with proper configuration
    * [HIVE-18088] - Add WM event traces at query level for debugging
    * [HIVE-18092] - Fix exception on tables handled by HBaseHandler if columnsstats are auto-gathered
    * [HIVE-18093] - Improve logging when HoS application is killed
    * [HIVE-18095] - add a unmanaged flag to triggers (applies to container based sessions)
    * [HIVE-18096] - add a user-friendly show plan command
    * [HIVE-18125] - Support arbitrary file names in input to Load Data
    * [HIVE-18133] - Parametrize TestTxnNoBuckets wrt Vectorization
    * [HIVE-18134] - some alter resource plan fixes
    * [HIVE-18138] - Fix columnstats problem in case schema evolution
    * [HIVE-18141] - Fix StatsUtils.combineRange to combine intervals
    * [HIVE-18149] - Stats: rownum estimation from datasize underestimates in most cases
    * [HIVE-18153] - refactor reopen and file management in TezTask
    * [HIVE-18161] - Remove hive.stats.atomic
    * [HIVE-18163] - Stats: create materialized view should also collect stats
    * [HIVE-18170] - User mapping not initialized correctly on start
    * [HIVE-18179] - Implement validate resource plan (part 1)
    * [HIVE-18187] - Add jamon generated-sources as source folder
    * [HIVE-18190] - Consider looking at ORC file schema rather than using _metadata_acid file
    * [HIVE-18192] - Introduce WriteID per table rather than using global transaction ID
    * [HIVE-18193] - Migrate existing ACID tables to use write id per table rather than global transaction id
    * [HIVE-18202] - Automatically migrate hbase.table.name to hbase.mapreduce.hfileoutputformat.table.name for hbase-based table
    * [HIVE-18203] - change the way WM is enabled and allow dropping the last resource plan
    * [HIVE-18209] - Fix API call in VectorizedListColumnReader to get value from BytesColumnVector
    * [HIVE-18211] - Support to read multiple level definition for Map type in Parquet file
    * [HIVE-18212] - Make sure Yetus check always has a full log
    * [HIVE-18214] - Flaky test: TestSparkClient
    * [HIVE-18222] - Update checkstyle rules to be less peeky
    * [HIVE-18224] - Introduce interface above driver
    * [HIVE-18229] - add the unmanaged mapping command
    * [HIVE-18230] - create plan like plan, and replace plan commands for easy modification
    * [HIVE-18235] - Columnstats gather on mm tables: re-enable disabled test
    * [HIVE-18237] - missing results for insert_only table after DP insert
    * [HIVE-18238] - Driver execution may not have configuration changing sideeffects 
    * [HIVE-18245] - clean up acid_vectorization_original.q
    * [HIVE-18257] - implement scheduling policy configuration instead of hardcoding fair scheduling
    * [HIVE-18273] - add LLAP-level counters for WM
    * [HIVE-18274] - add AM level metrics for WM
    * [HIVE-18275] - add HS2-level WM metrics
    * [HIVE-18286] - java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.LongColumnVector
    * [HIVE-18288] - merge/concat not supported on Acid table
    * [HIVE-18294] - add switch to make acid table the default
    * [HIVE-18315] - update tests use non-acid tables
    * [HIVE-18317] - Improve error messages in TransactionalValidationListerner
    * [HIVE-18323] - Vectorization: add the support of timestamp in VectorizedPrimitiveColumnReader for parquet
    * [HIVE-18366] - Update HBaseSerDe to use hbase.mapreduce.hfileoutputformat.table.name instead of hbase.table.name as the table name property
    * [HIVE-18368] - Improve Spark Debug RDD Graph
    * [HIVE-18372] - Create testing infra to test different HMS instances
    * [HIVE-18389] - Print out Spark Web UI URL to the console log
    * [HIVE-18411] - Fix ArrayIndexOutOfBoundsException for VectorizedListColumnReader
    * [HIVE-18418] - clean up plugin between DAGs
    * [HIVE-18437] - use plan parallelism for the default pool if both are present
    * [HIVE-18438] - WM RP: it's impossible to unset things
    * [HIVE-18443] - Ensure git gc finished in ptest prep phase before copying repo
    * [HIVE-18457] - improve show plan output (triggers, mappings)
    * [HIVE-18458] - Workload manager initializes even when interactive queue is not set
    * [HIVE-18468] - Create tests to cover alterPartition and renamePartition methods
    * [HIVE-18478] - Data files deleted from temp table should not be recycled to CM path
    * [HIVE-18479] - Create tests to cover dropPartition methods
    * [HIVE-18480] - Create tests for function related methods
    * [HIVE-18481] - Create tests for table related methods (get, list, exists)
    * [HIVE-18483] - Create tests to cover getPartition(s) methods
    * [HIVE-18484] - Create tests to cover listPartition(s) methods
    * [HIVE-18486] - Create tests to cover add partition methods
    * [HIVE-18489] - Automatically migrate s3n URIs to s3a URIs
    * [HIVE-18495] - JUnit rule to enable Driver level testing
    * [HIVE-18496] - Create tests to cover add/alter/drop index methods
    * [HIVE-18498] - Create tests to cover get and list index methods
    * [HIVE-18509] - Create tests for table manipulation related methods (create, alter, drop)
    * [HIVE-18511] - Fix generated checkstyle errors
    * [HIVE-18536] - IOW + DP is broken for insert-only ACID
    * [HIVE-18541] - Secure HS2 web UI with PAM
    * [HIVE-18542] - Create tests to cover getTableMeta method
    * [HIVE-18544] - Create tests to cover appendPartition methods
    * [HIVE-18550] - Keep the hbase table name property as hbase.table.name
    * [HIVE-18553] - Support schema evolution in Parquet Vectorization reader
    * [HIVE-18566] - Create tests to cover adding partitions from PartitionSpec
    * [HIVE-18580] - Create tests to cover exchange partitions
    * [HIVE-18596] - Synchronize value of hive.spark.client.connect.timeout across unit tests
    * [HIVE-18609] - Results cache invalidation based on ACID table updates
    * [HIVE-18633] - Service discovery for Active/Passive HA mode
    * [HIVE-18635] - Generalize hook dispatch logics in Driver
    * [HIVE-18651] - Expose additional Spark metrics
    * [HIVE-18663] - Logged Spark Job Id contains a UUID instead of the actual id
    * [HIVE-18672] - Printed state in RemoteSparkJobMonitor is ambiguous
    * [HIVE-18673] - ErrorMsg.SPARK_JOB_MONITOR_TIMEOUT isn't formatted correctly
    * [HIVE-18677] - SparkClientImpl usage of SessionState.LogHelper doesn't respect isSilent value
    * [HIVE-18679] - create/replicate open transaction event
    * [HIVE-18703] - Make Operator comparision to be based on some primitive
    * [HIVE-18715] - Remove index support from metastore
    * [HIVE-18720] - Replicate Commit Txn operation (without writes)
    * [HIVE-18745] - Fix MetaStore creation in tests, so multiple MetaStores can be started on the same machine
    * [HIVE-18747] - Cleaner for TXN_TO_WRITE_ID table entries using MIN_HISTORY_LEVEL.
    * [HIVE-18749] - Need to replace transactionId with writeId in RecordIdentifier and other relevant contexts.
    * [HIVE-18750] - Exchange partition should be disabled on ACID/Insert-only tables with per table write ID.
    * [HIVE-18751] - ACID table scan through get_splits UDF doesn't receive ValidWriteIdList configuration.
    * [HIVE-18753] - Correct methods and variables names which uses writeId instead of transactionId.
    * [HIVE-18755] - Modifications to the metastore for catalogs
    * [HIVE-18765] - SparkClientImpl swallows exception messages from the RemoteDriver
    * [HIVE-18771] - Refactor tests, so only 1 MetaStore instance will be started per test class and test configuration
    * [HIVE-18781] - Create/Replicate Open, Commit (without writes) and Abort Txn events
    * [HIVE-18805] - Add ConstantPropagate before stats annotation
    * [HIVE-18824] - ValidWriteIdList config should be defined on tables which has to collect stats after insert
    * [HIVE-18830] - RemoteSparkJobMonitor failures are logged twice
    * [HIVE-18832] - Support change management for trashing data files from ACID tables.
    * [HIVE-18840] - CachedStore: Prioritize loading of recently accessed tables during prewarm
    * [HIVE-18846] - Query results cache: Allow queries to refer to the pending results of a query that has not finished yet
    * [HIVE-18855] - Fix unit test TestMiniLlapLocalCliDriver.testCliDriver[results_cache_1]
    * [HIVE-18861] - druid-hdfs-storage is pulling in hadoop-aws-2.7.x and aws SDK, creating classpath problems on hadoop 3.x
    * [HIVE-18864] - ValidWriteIdList snapshot seems incorrect if obtained after allocating writeId by current transaction.
    * [HIVE-18899] - Separate FetchWork required for each query that uses the results cache
    * [HIVE-18909] - Metrics for results cache
    * [HIVE-18926] - Imporve operator-tree matching
    * [HIVE-18946] - Fix columnstats merge NPE
    * [HIVE-18961] - Error in results cache when query has identifiers with spaces
    * [HIVE-18982] - Provide a CLI option to manually trigger failover
    * [HIVE-18988] - Support bootstrap replication of ACID tables
    * [HIVE-18994] - Handle client connections on failover
    * [HIVE-19009] - Retain and use runtime statistics during hs2 lifetime
    * [HIVE-19031] - Mark duplicate configs in HiveConf as deprecated
    * [HIVE-19083] - Make partition clause optional for INSERT
    * [HIVE-19089] - Create/Replicate Allocate write-id event
    * [HIVE-19112] - Support Analyze table for partitioned tables without partition spec
    * [HIVE-19126] - CachedStore: Use memory estimation to limit cache size during prewarm
    * [HIVE-19127] - Concurrency fixes in QueryResultsCache
    * [HIVE-19128] - Update golden files for spark perf tests
    * [HIVE-19129] - Support DEFAULT keyword with MERGE
    * [HIVE-19135] - Need tool to allow admins to create catalogs and move existing dbs to catalog during upgrade
    * [HIVE-19138] - Results cache: allow queries waiting on pending cache entries to check cache again if pending query fails
    * [HIVE-19141] - TestNegativeCliDriver insert_into_notnull_constraint, insert_into_acid_notnull failing
    * [HIVE-19144] - TestSparkCliDriver:subquery_scalar - golden file needs to be udpated
    * [HIVE-19145] - Stabilize statsoptimizer.q test
    * [HIVE-19146] - Delete dangling q.out 
    * [HIVE-19147] - Fix PerfCliDrivers: Tpcds30T missed CAT_NAME change
    * [HIVE-19153] - Update golden files for few tests
    * [HIVE-19154] - Poll notification events to invalidate the results cache
    * [HIVE-19156] - TestMiniLlapLocalCliDriver.vectorized_dynamic_semijoin_reduction.q is broken
    * [HIVE-19159] - TestMTQueries.testMTQueries1 failure
    * [HIVE-19164] - TestMetastoreVersion failures
    * [HIVE-19171] - Persist runtime statistics in metastore
    * [HIVE-19175] - TestMiniLlapLocalCliDriver.testCliDriver update_access_time_non_current_db failing
    * [HIVE-19178] - TestMiniTezCliDriver.testCliDriver[explainanalyze_5] failure
    * [HIVE-19193] - TestActivePassiveHA fails
    * [HIVE-19194] - TestDruidStorageHandler fails
    * [HIVE-19195] - Fix flaky tests and cleanup testconfiguration to run llap specific tests in llap only.
    * [HIVE-19196] - TestTriggersMoveWorkloadManager is flaky
    * [HIVE-19197] - TestReplicationScenarios is flaky
    * [HIVE-19206] - Automatic memory management for open streaming writers
    * [HIVE-19209] - Streaming ingest record writers should accept input stream
    * [HIVE-19210] - Create separate module for streaming ingest
    * [HIVE-19211] - New streaming ingest API and support for dynamic partitioning
    * [HIVE-19214] - High throughput ingest ORC format
    * [HIVE-19222] - TestNegativeCliDriver tests are failing due to "java.lang.OutOfMemoryError: GC overhead limit exceeded"
    * [HIVE-19232] - results_cache_invalidation2 is failing
    * [HIVE-19274] - Add an OpTreeSignature persistence checker hook
    * [HIVE-19319] - RuntimeStats fixes
    * [HIVE-19322] - broken test: TestNegativeMinimrCliDriver#testCliDriver[minimr_broken_pipe]
    * [HIVE-19335] - Disable runtime filtering (semijoin reduction opt with bloomfilter) for external tables
    * [HIVE-19346] - TestMiniLlapLocalCliDriver.testCliDriver[materialized_view_create_rewrite_5] failling
    * [HIVE-19347] - TestTriggersWorkloadManager tests are failing consistently
    * [HIVE-19348] -  org.apache.hadoop.hive.ql.plan.mapping.TestOperatorCmp are failing
    * [HIVE-19371] - Add table ownerType to HMS thrift API
    * [HIVE-19372] - Add table ownerType to JDO/SQL and ObjectStore
    * [HIVE-19374] - Parse and process ALTER TABLE SET OWNER command syntax
    * [HIVE-19400] - Adjust Hive 1.0 to 2.0 conversion utility to the upgrade
    * [HIVE-19471] - bucket_map_join_tez1 and  bucket_map_join_tez2 are failing
    * [HIVE-19472] - HiveStreamingConnection swallows exception on partition creation
    * [HIVE-19494] - Accept shade prefix during reflective instantiation of output format


** Bug
    * [HIVE-4577] - hive CLI can't handle hadoop dfs command  with space and quotes.
    * [HIVE-6348] - Order by/Sort by in subquery
    * [HIVE-6590] - Hive does not work properly with boolean partition columns (wrong results and inserts to incorrect HDFS path)
    * [HIVE-6990] - Direct SQL fails when the explicit schema setting is different from the default one
    * [HIVE-8937] - fix description of hive.security.authorization.sqlstd.confwhitelist.* params
    * [HIVE-9815] - Metastore column"SERDE_PARAMS"."PARAM_VALUE"  limited to 4000 bytes
    * [HIVE-10616] - TypeInfoUtils doesn't handle DECIMAL with just precision specified
    * [HIVE-10865] - Beeline needs to support DELIMITER command
    * [HIVE-11064] - ALTER TABLE CASCADE ERROR unbalanced calls to openTransaction/commitTransaction
    * [HIVE-11266] - count(*) wrong result based on table statistics for external tables
    * [HIVE-11297] - Combine op trees for partition info generating tasks
    * [HIVE-11609] - Capability to add a filter to hbase scan via composite key doesn't work
    * [HIVE-12408] - SQLStdAuthorizer should not require external table creator to be owner of directory, in addition to rw permissions
    * [HIVE-12425] - OrcRecordUpdater.close(true) leaves the file open
    * [HIVE-12631] - LLAP IO: support ORC ACID tables
    * [HIVE-12719] - As a hive user, I am facing issues using permanent UDAF's.
    * [HIVE-12734] - Remove redundancy in HiveConfs serialized to UDFContext
    * [HIVE-13000] - Hive returns useless parsing error 
    * [HIVE-13652] - Import table change order of dynamic partitions
    * [HIVE-14032] - INSERT OVERWRITE command failed with case sensitive partition key names
    * [HIVE-14052] - Cleanup structures when external clients use LLAP
    * [HIVE-14077] - add implicit decimal arithmetic q test, fix issues if found 
    * [HIVE-14455] - upgrade httpclient, httpcore to match updated hadoop dependency
    * [HIVE-14560] - Support exchange partition between s3 and hdfs tables
    * [HIVE-14564] - Column Pruning generates out of order columns in SelectOperator which cause ArrayIndexOutOfBoundsException.
    * [HIVE-14678] - Hive-on-MR deprecation warning  is not diplayed when engine is set to capital letter 'MR'
    * [HIVE-14731] - Use Tez cartesian product edge in Hive (unpartitioned case only)
    * [HIVE-14792] - AvroSerde reads the remote schema-file at least once per mapper, per table reference.
    * [HIVE-14813] - Make TransactionBatchImpl.toString() include state of each txn: commit/abort
    * [HIVE-14988] - Support INSERT OVERWRITE into a partition on transactional tables
    * [HIVE-15077] - Acid LockManager is unfair
    * [HIVE-15104] - Hive on Spark generate more shuffle data than hive on mr
    * [HIVE-15144] - JSON.org license is now CatX
    * [HIVE-15160] - Can't order by an unselected column
    * [HIVE-15176] - Small typo in hiveserver2 webui
    * [HIVE-15249] - HIve 2.1.0 is throwing InvalidObjectException(message:Invalid column type name is too long
    * [HIVE-15267] - Make query length calculation logic more accurate in TxnUtils.needNewQuery()
    * [HIVE-15343] - Spelling errors in logging and exceptions for beeline, common, hbase-handler, hcatalog, llap-server, orc, serde and shims
    * [HIVE-15344] - Spelling errors in logging and exceptions for metastore and service directories
    * [HIVE-15442] - Driver.java has a redundancy  code
    * [HIVE-15483] - Database and table name is case sensitive when used in show grant
    * [HIVE-15504] - ArrayIndexOutOfBoundsException in GenericUDFTrunc::initialize
    * [HIVE-15515] - Remove the docs directory
    * [HIVE-15552] - Unable to coalesce DATE and TIMESTAMP types
    * [HIVE-15630] - add operation handle before operation.run instead of after operation.run
    * [HIVE-15632] - Hive/Druid integration: Incorrect result - Limit on timestamp disappears
    * [HIVE-15635] - Hive/Druid integration: timeseries query shows all days, even if no data
    * [HIVE-15636] - Hive/Druid integration: wrong semantics of topN query limit with granularity
    * [HIVE-15637] - Hive/Druid integration: wrong semantics of groupBy query limit with granularity
    * [HIVE-15639] - Hive/Druid integration: wrong semantics for ordering within groupBy queries
    * [HIVE-15680] - Incorrect results when hive.optimize.index.filter=true and same ORC table is referenced twice in query
    * [HIVE-15724] - getPrimaryKeys and getForeignKeys in metastore does not normalize db and table name
    * [HIVE-15739] - Incorrect exception message in PartExprEvalUtils
    * [HIVE-15761] - ObjectStore.getNextNotification could return an empty NotificationEventResponse causing TProtocolException 
    * [HIVE-15767] - Hive On Spark is not working on secure clusters from Oozie
    * [HIVE-15829] - LLAP text cache: disable memory tracking on the writer
    * [HIVE-15883] - HBase mapped table in Hive insert fail for decimal
    * [HIVE-15995] - Syncing metastore table with serde schema
    * [HIVE-16007] - When the query does not complie the LogRunnable never stops
    * [HIVE-16025] - Where IN clause throws exception
    * [HIVE-16026] - Generated query will timeout and/or kill the druid cluster.
    * [HIVE-16027] - <timestamp> BETWEEN <string> AND <string> must cast to TIMESTMAP
    * [HIVE-16044] - LLAP: Shuffle Handler keep-alive connections are closed from the server side
    * [HIVE-16053] - Remove newRatio from llap JAVA_OPTS_BASE
    * [HIVE-16057] - SchemaTool ignores --passWord argument if hadoop.security.credential.provider.path is configured
    * [HIVE-16061] - When hive.async.log.enabled is set to true, some output is not printed to the beeline console
    * [HIVE-16077] - UPDATE/DELETE fails with numBuckets > numReducers
    * [HIVE-16113] - PartitionPruner::removeNonPartCols needs to handle AND/OR cases
    * [HIVE-16117] - SortProjectTransposeRule should check for monotonicity preserving CAST
    * [HIVE-16125] - Split work between reducers.
    * [HIVE-16130] - Remove jackson classes from hive-jdbc standalone jar
    * [HIVE-16147] - Rename a partitioned table should not drop its partition columns stats
    * [HIVE-16174] - Update MetricsConstant.WAITING_COMPILE_OPS metric when we aquire lock failed in Driver
    * [HIVE-16177] - non Acid to acid conversion doesn't handle _copy_N files
    * [HIVE-16188] - beeline should block the connection if given invalid database name.
    * [HIVE-16193] - Hive show compactions not reflecting the status of the application
    * [HIVE-16213] - ObjectStore can leak Queries when rollbackTransaction throws an exception
    * [HIVE-16219] - metastore notification_log contains serialized message with  non functional fields
    * [HIVE-16222] - add a setting to disable row.serde for specific formats; enable for others
    * [HIVE-16225] - Memory leak in webhcat service (FileSystem CACHE entries)
    * [HIVE-16233] - llap: Query failed with AllocatorOutOfMemoryException
    * [HIVE-16254] - metadata for values temporary tables for INSERTs are getting replicated during bootstrap
    * [HIVE-16275] - Vectorization: Add ReduceSink support for TopN (in specialized native classes)
    * [HIVE-16282] - Semijoin: Disable slow-start for the bloom filter aggregate task
    * [HIVE-16287] - Alter table partition rename with location - moves partition back to hive warehouse
    * [HIVE-16290] - Stats: StatsRulesProcFactory::evaluateComparator estimates are wrong when minValue == filterValue
    * [HIVE-16291] - Hive fails when unions a parquet table with itself
    * [HIVE-16296] - use LLAP executor count to configure reducer auto-parallelism
    * [HIVE-16298] - Add config to specify multi-column joins have correlated columns
    * [HIVE-16299] - MSCK REPAIR TABLE should enforce partition key order when adding unknown partitions
    * [HIVE-16302] - Add junit dependency to hive-shims-common to compile with Hadoop 2.8+
    * [HIVE-16305] - Additional Datanucleus ClassLoaderResolverImpl leaks causing HS2 OOM
    * [HIVE-16307] - add IO memory usage report to LLAP UI
    * [HIVE-16308] - PreExecutePrinter and PostExecutePrinter should log to INFO level instead of ERROR
    * [HIVE-16309] - Hive Test Commands failure should be printed in hive.log in addition to stderr
    * [HIVE-16315] - Describe table doesn't show num of partitions
    * [HIVE-16316] - Prepare master branch for 3.0.0 development.
    * [HIVE-16317] - CASE .. NULL in JOIN condition can trigger SemanticException
    * [HIVE-16318] - LLAP cache: address some issues in 2.2/2.3
    * [HIVE-16319] - LLAP: Better handling of an empty wait queue, should try scheduling checks
    * [HIVE-16321] - Possible deadlock in metastore with Acid enabled
    * [HIVE-16323] - HS2 JDOPersistenceManagerFactory.pmCache leaks after HIVE-14204
    * [HIVE-16324] - Truncate table should not work when EXTERNAL property of table is true
    * [HIVE-16325] - Tez session refresh based on a time interval fails
    * [HIVE-16328] - HoS: more aggressive mapjoin optimization when hive.spark.use.ts.stats.for.mapjoin is true
    * [HIVE-16329] - TopN: use local executor info for LLAP memory checks
    * [HIVE-16333] - remove the redundant symbol "\" to appear red in sublime text 3
    * [HIVE-16335] - Beeline user HS2 connection file should use /etc/hive/conf instead of /etc/conf/hive
    * [HIVE-16336] - Rename hive.spark.use.file.size.for.mapjoin to hive.spark.use.ts.stats.for.mapjoin
    * [HIVE-16341] - Tez Task Execution Summary has incorrect input record counts on some operators
    * [HIVE-16347] - HiveMetastoreChecker should skip listing partitions which are not valid when hive.msck.path.validation is set to skip or ignore
    * [HIVE-16353] - Jetty 9 upgrade breaks hive master LLAP
    * [HIVE-16357] - Failed folder creation when creating a new table is reported incorrectly
    * [HIVE-16363] - QueryLifeTimeHooks should catch parse exceptions
    * [HIVE-16368] - Unexpected java.lang.ArrayIndexOutOfBoundsException from query with LaterView Operation for hive on MR.
    * [HIVE-16369] - Vectorization: Support PTF (Part 1: No Custom Window Framing -- Default Only)
    * [HIVE-16380] - removing global test dependency of jsonassert
    * [HIVE-16384] - Remove jdk7 build from travis
    * [HIVE-16385] - StatsNoJobTask could exit early before all partitions have been processed
    * [HIVE-16388] - LLAP: Log rotation for daemon, history and gc files
    * [HIVE-16389] - Allow HookContext to access SQLOperationDisplay
    * [HIVE-16390] - LLAP IO should take job config into account; also LLAP config should load defaults
    * [HIVE-16393] - Fix visibility of CodahaleReporter interface
    * [HIVE-16394] - HoS does not support queue name change in middle of session
    * [HIVE-16396] - Sync storage-api version in pom.xml
    * [HIVE-16399] - create an index for tc_txnid in TXN_COMPONENTS
    * [HIVE-16402] - Upgrade to Hadoop 2.8.0
    * [HIVE-16403] - LLAP UI shows the wrong number of executors
    * [HIVE-16404] - Renaming of public classes in Calcite 12 breeaking druid integration
    * [HIVE-16406] - Remove unwanted interning when creating PartitionDesc
    * [HIVE-16409] - TestEventHandlerFactory  has lacked the ASF header
    * [HIVE-16413] - Create table as select does not check ownership of the location
    * [HIVE-16421] - Runtime filtering breaks user-level explain
    * [HIVE-16422] - Should kill running Spark Jobs when a query is cancelled.
    * [HIVE-16425] - Vectorization: unload old hashtables before reloadHashTable
    * [HIVE-16427] - Fix multi-insert query and write qtests
    * [HIVE-16433] - Not nullify variable "rj" to avoid NPE due to race condition in ExecDriver.
    * [HIVE-16436] - Response times in "Task Execution Summary" at the end of the job is not correct
    * [HIVE-16448] - Vectorization: Vectorized order_null.q fails with deserialize EOF exception below TEZ ReduceRecordSource.processVectorGroup
    * [HIVE-16450] - Some metastore operations are not retried even with desired underlining exceptions
    * [HIVE-16451] - Race condition between HiveStatement.getQueryLog and HiveStatement.runAsyncOnServer
    * [HIVE-16459] - Forward channelInactive to RpcDispatcher
    * [HIVE-16461] - DagUtils checks local resource size on the remote fs
    * [HIVE-16462] - Vectorization: Enabling hybrid grace disables specialization of all reduce side joins
    * [HIVE-16465] - NullPointer Exception when enable vectorization for Parquet file format
    * [HIVE-16468] - BeeLineDriver should be able to run tests against an externally created cluster
    * [HIVE-16471] - Add metrics for "waiting compilation time"
    * [HIVE-16473] - Hive-on-Tez may fail to write to an HBase table
    * [HIVE-16482] - Druid Ser/Des need to use dimension output name
    * [HIVE-16483] - HoS should populate split related configurations to HiveConf
    * [HIVE-16485] - Enable outputName for RS operator in explain formatted
    * [HIVE-16487] - Serious Zookeeper exception is logged when a race condition happens
    * [HIVE-16491] - CBO cant handle join involving complex types in on condition
    * [HIVE-16494] - udaf percentile_approx() may fail on CBO
    * [HIVE-16497] - FileUtils. isActionPermittedForFileHierarchy, isOwnerOfFileHierarchy file system operations should be impersonated
    * [HIVE-16507] - Hive Explain User-Level may print out "Vertex dependency in root stage" twice
    * [HIVE-16510] - Vectorization: Add vectorized PTF tests in preparation for HIVE-16369
    * [HIVE-16511] - CBO looses inner casts on constants of complex type
    * [HIVE-16513] - width_bucket issues
    * [HIVE-16518] - Insert override for druid does not replace all existing segments
    * [HIVE-16519] - Fix exception thrown by checkOutputSpecs
    * [HIVE-16523] - VectorHashKeyWrapper hash code for strings is not so good
    * [HIVE-16524] - Remove the redundant item type in hiveserver2.jsp and QueryProfileTmpl.jamon
    * [HIVE-16533] - Vectorization: Avoid evaluating empty groupby keys
    * [HIVE-16534] - Add capability to tell aborted transactions apart from open transactions in ValidTxnList
    * [HIVE-16538] - TestExecDriver fails if run after TestOperators#testScriptOperator
    * [HIVE-16539] - Add PTF tests for blobstores
    * [HIVE-16545] - LLAP: bug in arena size determination logic
    * [HIVE-16546] - LLAP: Fail map join tasks if hash table memory exceeds threshold
    * [HIVE-16547] - LLAP: may not unlock buffers in some cases
    * [HIVE-16553] - Change default value for hive.tez.bigtable.minsize.semijoin.reduction
    * [HIVE-16554] - ACID: Make HouseKeeperService threads daemon
    * [HIVE-16557] - Vectorization: Specialize ReduceSink empty key case
    * [HIVE-16559] - Parquet schema evolution for partitioned tables may break if table and partition serdes differ
    * [HIVE-16562] - Issues with nullif / fetch task
    * [HIVE-16563] - Alter table partition set location should use fully qualified path for non-default FS
    * [HIVE-16572] - Rename a partition should not drop its column stats
    * [HIVE-16573] - In-place update for HoS can't be disabled
    * [HIVE-16576] - Fix encoding of intervals when fetching select query candidates from druid
    * [HIVE-16577] - Syntax error in the metastore init scripts for mssql
    * [HIVE-16578] - Semijoin Hints should use column name, if provided for partition key check
    * [HIVE-16581] -  a bug in HIVE-16523
    * [HIVE-16584] - Warning messages should use LogHelper.printInfo instead of printing to the infoStream directly
    * [HIVE-16588] - Resource leak by druid http client
    * [HIVE-16589] - Vectorization: Support Complex Types and GroupBy modes PARTIAL2, FINAL, and COMPLETE  for AVG, VARIANCE
    * [HIVE-16590] - Make initializing dag names in SparkWork thread safe for parallel compilation (HIVE-13512)
    * [HIVE-16592] - Vectorization: Long hashCodes should bit-mix into lower bits
    * [HIVE-16593] - SparkClientFactory.stop may prevent JVM from exiting
    * [HIVE-16598] - LlapServiceDriver - create directories and warn of errors
    * [HIVE-16599] - NPE in runtime filtering cost when handling SMB Joins
    * [HIVE-16603] - Enforce foreign keys to refer to primary keys or unique keys
    * [HIVE-16607] - ColumnStatsAutoGatherContext regenerates HiveConf.HIVEQUERYID
    * [HIVE-16609] - col='__HIVE_DEFAULT_PARTITION__' condition in select statement may produce wrong result
    * [HIVE-16610] - Semijoin Hint : Should be able to handle more than one hint per alias
    * [HIVE-16613] - SaslClientHandler.sendHello is eating exceptions
    * [HIVE-16625] - Extra '\0' characters in the output, when SeparatedValuesOutputFormat is used and the quoting is disabled
    * [HIVE-16633] - username for ATS data shall always be the uid who submit the job
    * [HIVE-16634] - LLAP Use a pool of connections to a single AM from a daemon
    * [HIVE-16640] - The ASF Headers have some errors in some class
    * [HIVE-16645] - Commands.java has missed the catch statement and has some code format errors
    * [HIVE-16646] - Alias in transform ... as clause shouldn't be case sensitive
    * [HIVE-16654] - Optimize a combination of avg(), sum(), count(distinct) etc
    * [HIVE-16658] - TestTimestampTZ.java has missed the ASF header
    * [HIVE-16659] - Query plan should reflect hive.spark.use.groupby.shuffle
    * [HIVE-16660] - Not able to add partition for views in hive when sentry is enabled
    * [HIVE-16665] - Race condition in Utilities.GetInputPathsCallable --> createDummyFileForEmptyPartition
    * [HIVE-16667] - PostgreSQL metastore handling of CLOB types for COLUMNS_V2.TYPE_NAME and other field is incorrect
    * [HIVE-16671] - LLAP IO: BufferUnderflowException may happen in very rare(?) cases due to ORC end-of-CB estimation
    * [HIVE-16675] - Fix ConcurrentModificationException in SparkClientImpl#startDriver
    * [HIVE-16677] - CTAS with no data fails in Druid
    * [HIVE-16678] - Truncate on temporary table fails with "table not found" error.
    * [HIVE-16679] - Missing ASF header on properties file in ptest2 project
    * [HIVE-16689] - Correlated scalar subquery with comparison to constant in predicate fails
    * [HIVE-16692] - LLAP: Keep alive connection in shuffle handler should not be closed until entire data is flushed out
    * [HIVE-16693] - beeline "source" command freezes if you have a comment in it?
    * [HIVE-16696] - Fix JoinCondDesc explain string
    * [HIVE-16698] - HoS should avoid mapjoin optimization in case of union and using table stats
    * [HIVE-16703] - Hive may add the same file to the session and vertex in Tez
    * [HIVE-16708] - Exception while renewing a Delegation Token
    * [HIVE-16721] - Inconsistent behavior in dealing with Timestamp stats
    * [HIVE-16724] - increase session timeout for LLAP ZK token manager
    * [HIVE-16730] - Vectorization: Schema Evolution for Text Vectorization / Complex Types
    * [HIVE-16731] - Vectorization: Make "CASE WHEN (day_name='Sunday') THEN column1 ELSE null end" that involves a column name or expression THEN or ELSE vectorize
    * [HIVE-16732] - Transactional tables should block LOAD DATA 
    * [HIVE-16737] - LLAP: Shuffle handler TCP listen queue overflows
    * [HIVE-16738] - Notification ID generation in DBNotification might not be unique across HS2 instances.
    * [HIVE-16742] - cap the number of reducers for LLAP at the configured value
    * [HIVE-16743] - BitSet set() is incorrectly used in TxnUtils.createValidCompactTxnList()
    * [HIVE-16744] - LLAP index update may be broken after ORC switch
    * [HIVE-16745] - Syntax error in 041-HIVE-16556.mysql.sql script
    * [HIVE-16746] - Reduce number of index lookups for same table in IndexWhereTaskDispatcher
    * [HIVE-16751] - Support different types for grouping columns in GroupBy Druid queries
    * [HIVE-16755] - LLAP IO: incorrect assert may trigger in tests
    * [HIVE-16756] - Vectorization: LongColModuloLongColumn throws "java.lang.ArithmeticException: / by zero"
    * [HIVE-16757] - Use of deprecated getRows() instead of new estimateRowCount(RelMetadataQuery..) has serious performance impact
    * [HIVE-16761] - LLAP IO: SMB joins fail elevator 
    * [HIVE-16769] - Possible hive service startup due to the existing file /tmp/stderr
    * [HIVE-16776] - Strange cast behavior for table backed by druid
    * [HIVE-16777] - LLAP: Use separate tokens and UGI instances when an external client is used
    * [HIVE-16778] - LLAP IO: better refcount management
    * [HIVE-16780] - Case "multiple sources, single key" in spark_dynamic_pruning.q fails 
    * [HIVE-16784] - Missing lineage information when hive.blobstore.optimizations.enabled is true
    * [HIVE-16788] - ODBC call SQLForeignKeys leads to NPE if you use PK arguments rather than FK arguments
    * [HIVE-16793] - Scalar sub-query: sq_count_check not required if gby keys are constant
    * [HIVE-16801] - Vectorization: throwExpandError should be an immediate fatal 
    * [HIVE-16803] - Alter table change column comment should not try to get column stats for update
    * [HIVE-16804] - Semijoin hint : Needs support for target table.
    * [HIVE-16808] - WebHCat statusdir parameter doesn't properly handle Unicode characters when using relative path
    * [HIVE-16820] - TezTask may not shut down correctly before submit
    * [HIVE-16821] - Vectorization: support Explain Analyze in vectorized mode
    * [HIVE-16824] - PrimaryToReplicaResourceFunctionTest.java has missed the ASF header
    * [HIVE-16826] - Improvements for SeparatedValuesOutputFormat
    * [HIVE-16828] - With CBO enabled, Query on partitioned views throws IndexOutOfBoundException
    * [HIVE-16832] - duplicate ROW__ID possible in multi insert into transactional table
    * [HIVE-16835] - Addendum to HIVE-16745
    * [HIVE-16844] - Fix Connection leak in ObjectStore when new Conf object is used
    * [HIVE-16845] - INSERT OVERWRITE a table with dynamic partitions on S3 fails with NPE
    * [HIVE-16846] - TestJdbcWithMiniHS2#testHttpHeaderSize test case is not testing in HTTP mode
    * [HIVE-16847] - LLAP queue order issue
    * [HIVE-16851] - Scalar subquery with group by missing sq_count_check UDF
    * [HIVE-16854] - SparkClientFactory is locked too aggressively
    * [HIVE-16864] - add validation to stream position search in LLAP IO
    * [HIVE-16869] - Hive returns wrong result when predicates on non-existing columns are pushed down to Parquet reader
    * [HIVE-16871] - CachedStore.get_aggr_stats_for has side affect
    * [HIVE-16875] - Query against view with partitioned child on HoS fails with privilege exception.
    * [HIVE-16876] - HoS: Make Rpc configs immutable at runtime
    * [HIVE-16877] - NPE when issue query like alter table ... cascade onto non-partitioned table 
    * [HIVE-16886] - HMS log notifications may have duplicated event IDs if multiple HMS are running concurrently
    * [HIVE-16888] - Upgrade Calcite to 1.13 and Avatica to 1.10
    * [HIVE-16898] - Validation of source file after distcp in repl load 
    * [HIVE-16902] - investigate "failed to remove operation log" errors
    * [HIVE-16903] - LLAP: Fix config name issue in SHUFFLE_MANAGE_OS_CACHE
    * [HIVE-16908] - Failures in TestHcatClient due to HIVE-16844
    * [HIVE-16910] - RpcConfiguration - Improper Cast From Long To Int
    * [HIVE-16915] - partition column count is not determined correctly in LLAP IO non-vectorized wrapper
    * [HIVE-16918] - Skip ReplCopyTask distcp for _metadata copying. Also enable -pb for distcp
    * [HIVE-16920] - remove useless uri.getScheme() from EximUtil
    * [HIVE-16922] - Typo in serde.thrift: COLLECTION_DELIM = "colelction.delim"
    * [HIVE-16927] - LLAP: Slider takes down all daemons when some daemons fail repeatedly
    * [HIVE-16930] - HoS should verify the value of Kerberos principal and keytab file before adding them to spark-submit command parameters
    * [HIVE-16935] - Hive should strip comments from input before choosing which CommandProcessor to run.
    * [HIVE-16937] - INFORMATION_SCHEMA usability: everything is currently a string
    * [HIVE-16938] - INFORMATION_SCHEMA usability: difficult to access # of table records
    * [HIVE-16939] - metastore error: 'export: -Dproc_metastore : not a valid identifier'
    * [HIVE-16942] - INFORMATION_SCHEMA: schematool for setting it up is not idempotent
    * [HIVE-16943] - MoveTask should separate src FileSystem from dest FileSystem 
    * [HIVE-16947] - Semijoin Reduction : Task cycle created due to multiple semijoins in conjunction with hashjoin
    * [HIVE-16948] - Invalid explain when running dynamic partition pruning query in Hive On Spark
    * [HIVE-16949] - Leak of threads from Get-Input-Paths and Get-Input-Summary thread pool
    * [HIVE-16954] - LLAP IO: better debugging
    * [HIVE-16958] - Setting hive.merge.sparkfiles=true will retrun an error when generating parquet databases 
    * [HIVE-16960] - Hive throws an ugly error exception when HDFS sticky bit is set
    * [HIVE-16961] - Hive on Spark leaks spark application in case user cancels query and closes session
    * [HIVE-16964] - _orc_acid_version file is missing
    * [HIVE-16965] - SMB join may produce incorrect results
    * [HIVE-16973] - Fetching of Delegation tokens (Kerberos) for AccumuloStorageHandler fails in HS2
    * [HIVE-16975] - Vectorization: Fully vectorize CAST date as TIMESTAMP so VectorUDFAdaptor is now used
    * [HIVE-16978] - HoS: add current thread ID to the log redirector for the RemoteDriver
    * [HIVE-16982] - WebUI "Show Query" tab prints "UNKNOWN" instead of explaining configuration option
    * [HIVE-16985] - LLAP IO: enable SMB join in elevator after the former is fixed
    * [HIVE-16991] - HiveMetaStoreClient needs a 2-arg constructor for backwards compatibility
    * [HIVE-17002] - decimal (binary) is not working when creating external table for hbase
    * [HIVE-17006] - LLAP: Parquet caching v1
    * [HIVE-17007] - NPE introduced by HIVE-16871
    * [HIVE-17008] - Fix boolean flag switchup in DropTableEvent
    * [HIVE-17010] - Fix the overflow problem of Long type in SetSparkReducerParallelism
    * [HIVE-17013] - Delete request with a subquery based on select over a view
    * [HIVE-17050] - Multiline queries that have comment in middle fail when executed via "beeline -e"
    * [HIVE-17052] - Remove logging of predicate filters
    * [HIVE-17066] - Query78 filter wrong estimatation is generating bad plan
    * [HIVE-17067] - LLAP: Add http endpoint to provide system level configurations
    * [HIVE-17069] - Refactor OrcRawRecrodMerger.ReaderPair
    * [HIVE-17070] - remove .orig files from src
    * [HIVE-17073] - Incorrect result with vectorization and SharedWorkOptimizer
    * [HIVE-17076] - typo in itests/src/test/resources/testconfiguration.properties
    * [HIVE-17079] - LLAP: Use FQDN by default for work submission
    * [HIVE-17083] - DagUtils overwrites any credentials already added
    * [HIVE-17085] - ORC file merge/concatenation should do full schema check
    * [HIVE-17086] - LLAP: JMX Metric for max file descriptors used so far
    * [HIVE-17088] - HS2 WebUI throws a NullPointerException when opened
    * [HIVE-17090] - spark.only.query.files are not being run by ptest
    * [HIVE-17093] - LLAP ssl configs need to be localized to talk to a wire encrypted hdfs
    * [HIVE-17095] - Long chain repl loads do not complete in a timely fashion
    * [HIVE-17097] - Fix SemiJoinHint parsing in SemanticAnalyzer
    * [HIVE-17098] - Race condition in Hbase tables
    * [HIVE-17099] - Update golden files for spark.only.query.files
    * [HIVE-17109] - Remove calls to RelMetadataQuery.instance() after Calcite 1.13 upgrade
    * [HIVE-17110] - BucketCodec should enforce value ranges
    * [HIVE-17111] - Add TestLocalSparkCliDriver
    * [HIVE-17113] - Duplicate bucket files can get written to table by runaway task
    * [HIVE-17114] - HoS: Possible skew in shuffling when data is not really skewed
    * [HIVE-17115] - MetaStoreUtils.getDeserializer doesn't catch the java.lang.ClassNotFoundException
    * [HIVE-17116] - Vectorization: Add infrastructure for vectorization of ROW__ID struct
    * [HIVE-17117] - Metalisteners are not notified when threadlocal metaconf is cleanup 
    * [HIVE-17128] - Operation Logging leaks file descriptors as the log4j Appender is never closed
    * [HIVE-17144] - export of temporary tables not working and it seems to be using distcp rather than filesystem copy
    * [HIVE-17147] - Vectorization: Add code for testing MapJoin operator in isolation and measuring its performance with JMH
    * [HIVE-17148] - Incorrect result for Hive join query with COALESCE in WHERE condition
    * [HIVE-17149] - Hdfs directory is not cleared if partition creation failed on HMS
    * [HIVE-17150] - CREATE INDEX execute HMS out-of-transaction listener calls inside a transaction
    * [HIVE-17152] - Improve security of random generator for HS2 cookies
    * [HIVE-17155] - findConfFile() in HiveConf.java has some issues with the conf path
    * [HIVE-17169] - Avoid extra call to KeyProvider::getMetadata()
    * [HIVE-17172] - add ordering checks to DiskRangeList
    * [HIVE-17176] - Add ASF header for LlapAllocatorBuffer.java
    * [HIVE-17177] - move TestSuite.java to the right position
    * [HIVE-17181] - HCatOutputFormat should expose complete output-schema (including partition-keys) for dynamic-partitioning MR jobs
    * [HIVE-17184] - Unexpected new line in beeline output when running with -f option
    * [HIVE-17188] - ObjectStore runs out of memory for large batches of addPartitions().
    * [HIVE-17189] - Fix backwards incompatibility in HiveMetaStoreClient
    * [HIVE-17208] - Repl dump should pass in db/table information to authorization API
    * [HIVE-17209] - ObjectCacheFactory should return null when tez shared object registry is not setup
    * [HIVE-17213] - HoS: file merging doesn't work for union all
    * [HIVE-17217] - SMB Join : Assert if paths are different in TezGroupedSplit in KeyValueInputMerger
    * [HIVE-17218] - Canonical-ize hostnames for Hive metastore, and HS2 servers.
    * [HIVE-17220] - Bloomfilter probing in semijoin reduction is thrashing L1 dcache
    * [HIVE-17222] - Llap: Iotrace throws  java.lang.UnsupportedOperationException with IncompleteCb
    * [HIVE-17228] - Bump tez version to 0.9.0
    * [HIVE-17233] - Set "mapred.input.dir.recursive" for HCatInputFormat-based jobs.
    * [HIVE-17235] - Add ORC Decimal64 Serialization/Deserialization (Part 1)
    * [HIVE-17240] - Function ACOS(2) and ASIN(2) should be null
    * [HIVE-17254] - Skip updating AccessTime of recycled files in ReplChangeManager
    * [HIVE-17257] - Hive should merge empty files
    * [HIVE-17258] - Incorrect log messages in the Hive.java
    * [HIVE-17259] - Hive JDBC does not recognize UNIONTYPE columns
    * [HIVE-17260] - Typo: exception has been created and lost in the ThriftJDBCBinarySerDe
    * [HIVE-17265] - Cache merged column stats from retrieved partitions
    * [HIVE-17267] - Make HMS Notification Listeners typesafe
    * [HIVE-17268] - WebUI / QueryPlan: query plan is sometimes null when explain output conf is on
    * [HIVE-17270] - Qtest results show wrong number of executors
    * [HIVE-17272] - when hive.vectorized.execution.enabled is true, query on empty partitioned table fails with NPE
    * [HIVE-17274] - RowContainer spills for timestamp column throws exception
    * [HIVE-17275] - Auto-merge fails on writes of UNION ALL output to ORC file with dynamic partitioning
    * [HIVE-17276] - Check max shuffle size when converting to dynamically partitioned hash join
    * [HIVE-17277] - HiveMetastoreClient Log name is wrong
    * [HIVE-17280] - Data loss in CONCATENATE ORC created by Spark
    * [HIVE-17281] - LLAP external client not properly handling KILLED notification that occurs when a fragment is rejected
    * [HIVE-17283] - Enable parallel edges of semijoin along with mapjoins
    * [HIVE-17285] - Fixes for bit vector retrievals and merging
    * [HIVE-17286] - Avoid expensive String serialization/deserialization for bitvectors
    * [HIVE-17290] - Should use equals() rather than == to compare strings
    * [HIVE-17298] - export when running distcp for large number of files should not run as privileged user 
    * [HIVE-17301] - Make JSONMessageFactory.getTObj method thread safe
    * [HIVE-17302] - ReduceRecordSource should not add batch string to Exception message
    * [HIVE-17303] - Missmatch between roaring bitmap library used by druid and the one coming from tez
    * [HIVE-17305] - New insert overwrite dynamic partitions qtest need to have the golden file regenerated
    * [HIVE-17309] - alter partition onto a table not in current database throw InvalidOperationException
    * [HIVE-17311] - Numeric overflow in the HiveConf
    * [HIVE-17313] - Potentially possible 'case fall through' in the ObjectInspectorConverters
    * [HIVE-17314] - LazySimpleSerializeWrite.writeString() contains if with an empty body
    * [HIVE-17321] - HoS: analyze ORC table doesn't compute raw data size when noscan/partialscan is not specified
    * [HIVE-17322] - Serialise BeeLine qtest execution to prevent flakyness
    * [HIVE-17327] - LLAP IO: restrict native file ID usage to default FS to avoid hypothetical collisions when HDFS federation is used
    * [HIVE-17331] - Path must be used as key type of the pathToAlises
    * [HIVE-17333] - Schema changes in HIVE-12274 for Oracle may not work for upgrade
    * [HIVE-17336] - Missing class 'org.apache.hadoop.hive.hbase.HiveHBaseTableInputFormat' from Hive on Spark when inserting into hbase based table
    * [HIVE-17338] - Utilities.get*Tasks multiple methods duplicate code
    * [HIVE-17344] - LocalCache element memory usage is not calculated properly.
    * [HIVE-17348] - Remove unnecessary GenSparkUtils.java.orig file
    * [HIVE-17351] - use new slider package installation command in run.sh
    * [HIVE-17352] - HiveSever2 error with "Illegal Operation state transition from CLOSED to FINISHED"
    * [HIVE-17354] - Fix "alter view" for incremental replication
    * [HIVE-17356] - Missing ASF headers 3 classes
    * [HIVE-17357] - Plugin jars are not properly added for LocalHiveSparkClient
    * [HIVE-17360] - Tez session reopen appears to use a wrong conf object
    * [HIVE-17364] - Add unit test to "alter view" replication
    * [HIVE-17365] - Druid CTAS should support CHAR/VARCHAR type
    * [HIVE-17367] - IMPORT table doesn't load from data dump if a metadata-only dump was already imported.
    * [HIVE-17368] - DBTokenStore fails to connect in Kerberos enabled remote HMS environment
    * [HIVE-17372] - update druid dependency to druid 0.10.1
    * [HIVE-17377] - SharedWorkOptimizer might not iterate through TS operators deterministically
    * [HIVE-17378] - CBO: HiveReduceExpressionsWithStatsRule can operate on IS_NULL and IS_NOT_NULL
    * [HIVE-17385] - Fix incremental repl error for non-native tables
    * [HIVE-17389] - Yetus is always failing on rat checks
    * [HIVE-17391] - Compaction fails if there is an empty value in tblproperties
    * [HIVE-17392] - SharedWorkOptimizer might merge TS operators filtered by not equivalent semijoin operators
    * [HIVE-17393] - AMReporter need hearbeat every external 'AM'
    * [HIVE-17394] - AvroSerde is regenerating TypeInfo objects for each nullable Avro field for every row
    * [HIVE-17401] - Hive session idle timeout doesn't function properly
    * [HIVE-17403] - Fail concatenation for unmanaged and transactional tables
    * [HIVE-17410] - repl load task during subsequent DAG generation does not start from the last partition processed
    * [HIVE-17411] - LLAP IO may incorrectly release a refcount in some rare cases
    * [HIVE-17412] - Add "-- SORT_QUERY_RESULTS" for spark_vectorized_dynamic_partition_pruning.q
    * [HIVE-17413] - predicate involving CAST affects value returned by the SELECT statement
    * [HIVE-17415] - Hit error "SemanticException View xxx is corresponding to LIMIT, rather than a SelectOperator." in Hive queries
    * [HIVE-17417] - LazySimple Timestamp is very expensive
    * [HIVE-17419] - ANALYZE TABLE...COMPUTE STATISTICS FOR COLUMNS command shows computed stats for masked tables
    * [HIVE-17420] - bootstrap - get replid before object dump
    * [HIVE-17421] - Clear incorrect stats after replication
    * [HIVE-17429] - Hive JDBC doesn't return rows when querying Impala
    * [HIVE-17450] - rename TestTxnCommandsBase 
    * [HIVE-17452] - HPL/SQL function variable block is not initialized
    * [HIVE-17453] - Missing ASF headers 2 classes
    * [HIVE-17457] - IOW Acid Insert Overwrite when the transaction fails
    * [HIVE-17459] - View deletion operation failed to replicate on target cluster
    * [HIVE-17460] - `insert overwrite` should support table schema evolution (e.g. add columns)
    * [HIVE-17463] - ORC: include orc-shims in hive-exec.jar
    * [HIVE-17464] - Fix to be able to disable max shuffle size DHJ config
    * [HIVE-17465] - Statistics: Drill-down filters don't reduce row-counts progressively
    * [HIVE-17468] - Shade and package appropriate jackson version for druid storage handler
    * [HIVE-17471] - Vectorization: Enable hive.vectorized.row.identifier.enabled to true by default
    * [HIVE-17472] - Drop-partition for multi-level partition fails, if data does not exist.
    * [HIVE-17475] - Disable mapjoin using hint
    * [HIVE-17479] - Staging directories do not get cleaned up for update/delete queries
    * [HIVE-17483] - HS2 kill command to kill queries using query id
    * [HIVE-17485] - Hive-Druid table on indexing for few segments- DruidRecordWriter.pushSegments throws ArrayIndexOutOfBoundsException
    * [HIVE-17489] - Separate client-facing and server-side Kerberos principals, to support HA
    * [HIVE-17496] - Bootstrap repl is not cleaning up staging dirs
    * [HIVE-17504] - Skip ACID table for replication
    * [HIVE-17510] - Make comparison of filter predicates in q files deterministic
    * [HIVE-17512] - Not use doAs if distcp privileged user same as user running hive
    * [HIVE-17522] - cleanup old 'repl dump' dirs
    * [HIVE-17523] - Insert into druid table  hangs Hive server2 in an infinite loop
    * [HIVE-17529] - Bucket Map Join : Sets incorrect edge type causing execution failure
    * [HIVE-17530] - ClassCastException when converting uniontype
    * [HIVE-17535] - Select 1 EXCEPT Select 1 fails with NPE
    * [HIVE-17553] - CBO wrongly type cast decimal literal to int
    * [HIVE-17554] - Occurr java.lang.ArithmeticException: / by zero at hplsql component
    * [HIVE-17556] - The test udf_mask_hash.q is failing
    * [HIVE-17558] - Skip non-native/temporary tables for constraint related scenarios
    * [HIVE-17560] - HiveMetastore doesn't start in secure cluster if repl change manager is enabled
    * [HIVE-17563] - CodahaleMetrics.JsonFileReporter is not updating hive.service.metrics.file.location
    * [HIVE-17568] - HiveJoinPushTransitivePredicatesRule may exchange predicates which are not valid on the other branch
    * [HIVE-17571] - update sql standard authorization config whitelist to include distcp options for replication
    * [HIVE-17576] - Improve progress-reporting in TezProcessor
    * [HIVE-17582] - Followup of HIVE-15708
    * [HIVE-17584] - fix mapred.job.queue.name in sql standard authorization config whitelist
    * [HIVE-17585] - Improve thread safety when loading dynamic partitions in parallel
    * [HIVE-17588] - LlapRowRecordReader doing name-based field lookup for every column of every row
    * [HIVE-17594] - Unit format error in Copy.java
    * [HIVE-17595] - Correct DAG for updating the last.repl.id for a database during bootstrap load
    * [HIVE-17601] - improve error handling in LlapServiceDriver
    * [HIVE-17602] - Explain plan not working
    * [HIVE-17610] - LLAP IO: an exception in exception handling can hide the original exception
    * [HIVE-17613] - remove object pools for short, same-thread allocations
    * [HIVE-17615] - Task.executeTask has to be thread safe for parallel execution
    * [HIVE-17619] - Exclude avatica-core.jar dependency from avatica shaded jar
    * [HIVE-17620] - Use the default MR scratch directory (HDFS) in the only case when hive.blobstore.optimizations.enabled=true AND isFinalJob=true
    * [HIVE-17621] - Hive-site settings are ignored during HCatInputFormat split-calculation
    * [HIVE-17623] - Fix Select query Fix Double column serde and some refactoring
    * [HIVE-17624] - MapredLocakTask running in separate JVM could throw ClassNotFoundException 
    * [HIVE-17625] - Replication: update hive.repl.partitions.dump.parallelism to 100
    * [HIVE-17627] - Use druid scan query instead of the select query.
    * [HIVE-17628] - always use fully qualified path for tables/partitions/etc.
    * [HIVE-17633] - Make it possible to override the query results directory in TestBeeLineDriver
    * [HIVE-17635] - Add unit tests to CompactionTxnHandler and use PreparedStatements for queries
    * [HIVE-17639] - don't reuse planner context when re-parsing the query
    * [HIVE-17643] - recent WM changes broke reopen due to spurious overloads
    * [HIVE-17644] - directSQL errors out on key constraints until the DB is initialized
    * [HIVE-17649] - Export/Import: Move export data write to a task
    * [HIVE-17653] - Druid storage handler CTAS with boolean type columns fails. 
    * [HIVE-17659] - get_token thrift call fails for DBTokenStore in remote HMS mode
    * [HIVE-17664] - Refactor and add new tests
    * [HIVE-17665] - Update netty-all to latest 4.0.x.Final
    * [HIVE-17679] - http-generic-click-jacking for WebHcat server
    * [HIVE-17682] - Vectorization: IF stmt produces wrong results
    * [HIVE-17690] - Add distcp.options.p* in sql standard authorization config whitelist
    * [HIVE-17701] - Added restriction to historic queries on web UI
    * [HIVE-17702] - incorrect isRepeating handling in decimal reader in ORC
    * [HIVE-17706] - Add a possibility to run the BeeLine tests on the default database
    * [HIVE-17715] - Exception when pushing postaggregates into Druid
    * [HIVE-17720] - Bitvectors are not shown in describe statement on beeline
    * [HIVE-17721] - with Postgres rdbms for metastore and dbnotification enabled, hive DDL SQL query fails 
    * [HIVE-17723] - Update Accumulo drive q.out files
    * [HIVE-17725] - Fix misnamed tests which are not run during precommit runs. 
    * [HIVE-17726] - Using exists may lead to incorrect results
    * [HIVE-17731] - add a backward compat option for external users to HIVE-11985
    * [HIVE-17735] - ObjectStore.addNotificationEvent is leaking queries
    * [HIVE-17746] - Regenerate spark_explainuser_1.q.out
    * [HIVE-17749] - Multiple class have missed the ASF header
    * [HIVE-17758] - NOTIFICATION_SEQUENCE_LOCK_RETRY_SLEEP_INTERVAL.defaultLongVal is -1
    * [HIVE-17761] - Deprecate hive.druid.select.distribute property for Druid
    * [HIVE-17762] - Exclude older jackson-annotation.jar from druid-handler shaded jar
    * [HIVE-17764] - alter view fails when hive.metastore.disallow.incompatible.col.type.changes set to true
    * [HIVE-17765] - expose Hive keywords 
    * [HIVE-17777] - Add maven coordinates in itests/pom.xml
    * [HIVE-17781] - Map MR settings to Tez settings via DeprecatedKeys
    * [HIVE-17782] - Inconsistent cast behavior from string to numeric types with regards to leading/trailing spaces
    * [HIVE-17785] - Encription tests are not running
    * [HIVE-17792] - Enable Bucket Map Join when there are extra keys other than bucketed columns
    * [HIVE-17795] - Add distribution management tag in pom
    * [HIVE-17798] - When replacing the src table names in BeeLine testing, the table names shouldn't be changed to lower case
    * [HIVE-17803] - With Pig multi-query, 2 HCatStorers writing to the same table will trample each other's outputs
    * [HIVE-17804] - Vectorization: Bug erroneously causes match for 1st row in batch (SelectStringColLikeStringScalar)
    * [HIVE-17806] - Create directory for metrics file if it doesn't exist
    * [HIVE-17807] - Execute maven commands in batch mode for ptests
    * [HIVE-17813] - hive.exec.move.files.from.source.dir does not work with partitioned tables
    * [HIVE-17815] - prevent OOM with Atlas Hive hook 
    * [HIVE-17817] - Stabilize crossproduct warning message output order
    * [HIVE-17822] - Provide an option to skip shading of jars
    * [HIVE-17825] - Socket not closed when trying to read files to copy over in replication from metadata
    * [HIVE-17826] - Error writing to RandomAccessFile after operation log is closed
    * [HIVE-17828] - Metastore: mysql upgrade scripts to 3.0.0 is broken
    * [HIVE-17829] - ArrayIndexOutOfBoundsException - HBASE-backed tables with Avro schema in Hive2
    * [HIVE-17830] - dbnotification fails to work with rdbms other than postgres
    * [HIVE-17831] - HiveSemanticAnalyzerHookContext does not update the HiveOperation after sem.analyze() is called
    * [HIVE-17832] - Allow hive.metastore.disallow.incompatible.col.type.changes to be changed in metastore
    * [HIVE-17833] - Publish split generation counters
    * [HIVE-17834] - Fix flaky triggers test
    * [HIVE-17836] - Persisting nulls in bit vector field fails for postgres backed metastore
    * [HIVE-17839] - Cannot generate thrift definitions in standalone-metastore
    * [HIVE-17843] - UINT32 Parquet columns are handled as signed INT32-s, silently reading incorrect data
    * [HIVE-17845] - insert fails if target table columns are not lowercase
    * [HIVE-17853] - RetryingMetaStoreClient loses UGI impersonation-context when reconnecting after timeout
    * [HIVE-17864] - PTestClient cannot start during Precommit tests
    * [HIVE-17867] - Exception in windowing functions with TIMESTAMP WITH LOCAL TIME ZONE type
    * [HIVE-17868] - Make queries in spark_local_queries.q have deterministic output
    * [HIVE-17872] - Ignoring schema autostart doesn't work (HIVE-14152 used the wrong setting)
    * [HIVE-17873] - External LLAP client: allow same handleID to be used more than once
    * [HIVE-17882] - Resource plan retrieval looks incorrect
    * [HIVE-17891] - HIVE-13076 uses create table if not exists for the postgres script
    * [HIVE-17900] - analyze stats on columns triggered by Compactor generates malformed SQL with > 1 partition column
    * [HIVE-17908] - LLAP External client not correctly handling killTask for pending requests
    * [HIVE-17918] - NPE during semijoin reduction optimization when LLAP caching disabled
    * [HIVE-17936] - Dynamic Semijoin Reduction : markSemiJoinForDPP marks unwanted semijoin branches
    * [HIVE-17937] - llap_acid_fast test is flaky
    * [HIVE-17939] - Bucket map join not being selected when bucketed tables is missing bucket files
    * [HIVE-17942] - HiveAlterHandler not using conf from HMS Handler
    * [HIVE-17952] - Fix license headers to avoid dangling javadoc warnings
    * [HIVE-17953] - Metrics should move to destination atomically
    * [HIVE-17963] - Fix for HIVE-17113 can be improved for non-blobstore filesystems
    * [HIVE-17966] - org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveArrayInspector - Review
    * [HIVE-17973] - Fix small bug in multi_insert_union_src.q
    * [HIVE-17976] - HoS: don't set output collector if there's no data to process
    * [HIVE-17978] - Shared work optimizer may leave useless operator branches in the plan
    * [HIVE-17994] - Vectorization: Serialization bottlenecked on irrelevant hashmap lookup
    * [HIVE-18001] - InvalidObjectException while creating Primary Key constraint on partition key column
    * [HIVE-18006] - Optimize memory footprint of HLLDenseRegister
    * [HIVE-18007] - Address maven warnings
    * [HIVE-18012] - fix ct_noperm_loc test
    * [HIVE-18016] - org.apache.hadoop.hive.ql.util.ResourceDownloader - Review
    * [HIVE-18017] - HS2 materialized view registry init loading all tables from metastore
    * [HIVE-18026] - Hive webhcat principal configuration optimization
    * [HIVE-18046] - Metastore: default IS_REWRITE_ENABLED=false instead of NULL
    * [HIVE-18050] - LlapServiceDriver shoud split HIVE_AUX_JARS_PATH by ':' instead of ','
    * [HIVE-18054] -  Make Lineage work with concurrent queries on a Session
    * [HIVE-18060] - UpdateInputAccessTimeHook fails for non-current database
    * [HIVE-18067] - Remove extraneous golden files
    * [HIVE-18068] - Upgrade to Calcite 1.15
    * [HIVE-18069] - MetaStoreDirectSql to get tables has misplaced comma
    * [HIVE-18077] - Vectorization: Add string conversion case for UDFToDouble
    * [HIVE-18090] - acid heartbeat fails when metastore is connected via hadoop credential
    * [HIVE-18109] - fix identifier usage in parser
    * [HIVE-18111] - Fix temp path for Spark DPP sink
    * [HIVE-18124] -  clean up isAcidTable() API vs isInsertOnlyTable()
    * [HIVE-18127] - Do not strip '--' comments from shell commands issued from CliDriver
    * [HIVE-18136] - WorkloadManagerMxBean is missing the Apache license header
    * [HIVE-18146] - Vectorization: VectorMapJoinOperator Decimal64ColumnVector key/value cast bug
    * [HIVE-18147] - Tests can fail with java.net.BindException: Address already in use
    * [HIVE-18148] - NPE in SparkDynamicPartitionPruningResolver
    * [HIVE-18150] - Upgrade Spark Version to 2.2.0
    * [HIVE-18151] - LLAP external client: Better error message propagation during submission failures
    * [HIVE-18157] - Vectorization : Insert in bucketed table is broken with vectorization
    * [HIVE-18160] - Jar localization during session initialization is slow
    * [HIVE-18166] - Result of hive.query.string is encoded.
    * [HIVE-18188] - Fix TestSSL failures in master
    * [HIVE-18189] - Order by position does not work when cbo is disabled
    * [HIVE-18191] - Vectorization: Add validation of TableScanOperator (gather statistics) back
    * [HIVE-18194] - Migrate existing ACID tables to use write id per table rather than global transaction id
    * [HIVE-18195] - Hive schema broken on postgres
    * [HIVE-18196] - Druid Mini Cluster to run Qtests integrations tests.
    * [HIVE-18198] - TablePropertyEnrichmentOptimizer.java is missing the Apache license header
    * [HIVE-18207] - Fix the test failure for TestCliDriver#vector_complex_join
    * [HIVE-18208] - SMB Join : Fix the unit tests to run SMB Joins.
    * [HIVE-18210] - create resource plan allows duplicates
    * [HIVE-18213] - Tests: YARN Minicluster times out if the disks are >90% full
    * [HIVE-18220] - Workload Management tables have broken constraints defined on postgres schema
    * [HIVE-18228] - Azure credential properties should be added to the HiveConf hidden list
    * [HIVE-18232] - Packaging: add dfs-init script in package target
    * [HIVE-18240] - support getClientInfo/setClientInfo in JDBC
    * [HIVE-18241] - Query with LEFT SEMI JOIN producing wrong result
    * [HIVE-18248] - Clean up parameters
    * [HIVE-18250] - CBO gets turned off with duplicates in RR error
    * [HIVE-18254] - Use proper AVG Calcite primitive instead of Other_FUNCTION
    * [HIVE-18255] - spark-client jar should be prefixed with hive-
    * [HIVE-18258] - Vectorization: Reduce-Side GROUP BY MERGEPARTIAL with duplicate columns is broken
    * [HIVE-18263] - Ptest execution are multiple times slower sometimes due to dying executor slaves
    * [HIVE-18266] - LLAP: /system references wrong file for THP
    * [HIVE-18269] - LLAP: Fast llap io with slow processing pipeline can lead to OOM
    * [HIVE-18271] - Druid Insert into fails with exception when committing files
    * [HIVE-18290] - hbase backed table creation fails where no column comments present
    * [HIVE-18293] - Hive is failing to compact tables contained within a folder that is not owned by identity running HiveMetaStore
    * [HIVE-18298] - Fix TestReplicationScenarios.testConstraints
    * [HIVE-18299] - DbNotificationListener fail on mysql with "select for update"
    * [HIVE-18306] - Fix spark smb tests
    * [HIVE-18309] - qtests: smb_mapjoin_19.q breaks bucketsortoptimize_insert_2.q
    * [HIVE-18310] - Test 'vector_reduce_groupby_duplicate_cols.q' is misspelled in testconfiguration.properties
    * [HIVE-18311] - Enable smb_mapjoin_8.q for cli driver
    * [HIVE-18314] - qtests: semijoin_hint.q breaks hybridgrace_hashjoin_2.q	
    * [HIVE-18316] - HiveEndPoint should only work with full acid tables
    * [HIVE-18318] - LLAP record reader should check interrupt even when not blocking
    * [HIVE-18321] - Support REBUILD for MVs backed by custom storage handlers
    * [HIVE-18326] - LLAP Tez scheduler - only preempt tasks if there's a dependency between them
    * [HIVE-18330] - Fix TestMsgBusConnection - doesn't test tests the original intention
    * [HIVE-18331] - Renew the Kerberos ticket used by Druid Query runner
    * [HIVE-18335] - Vectorization : Check bounds of array before the allocation in VectorMapJoinFastBytesHashTable
    * [HIVE-18341] - Add repl load support for adding "raw" namespace for TDE with same encryption keys
    * [HIVE-18352] - introduce a METADATAONLY option while doing REPL DUMP to allow integrations of other tools 
    * [HIVE-18353] - CompactorMR should call jobclient.close() to trigger cleanup
    * [HIVE-18355] - Add builder for metastore Thrift classes missed in the first pass - FunctionBuilder
    * [HIVE-18356] - Fixing license headers in checkstyle
    * [HIVE-18359] - Extend grouping set limits from int to long
    * [HIVE-18360] - NPE in TezSessionState
    * [HIVE-18365] - netty-all jar is not present in the llap tarball
    * [HIVE-18367] - Describe Extended output is truncated on a table with an explicit row format containing tabs or newlines.
    * [HIVE-18370] - standalone-metastore gen dir contains two annotation/package-info.java which causes IDEA build fail
    * [HIVE-18379] - ALTER TABLE authorization_part SET PROPERTIES ("PARTITIONL_LEVEL_PRIVILEGE"="TRUE"); fails when authorization_part is MicroManaged table.
    * [HIVE-18380] - ALTER TABLE CONCATENATE is not supported on Micro-managed table
    * [HIVE-18383] - Qtests: running all cases from TestNegativeCliDriver results in OOMs
    * [HIVE-18384] - ConcurrentModificationException in log4j2.x library
    * [HIVE-18385] - mergejoin fails with java.lang.IllegalStateException
    * [HIVE-18390] - IndexOutOfBoundsException when query a  partitioned view in ColumnPruner 
    * [HIVE-18393] - Error returned when some other type is read as string from parquet tables
    * [HIVE-18413] - Grouping of an empty result set may only contain null values
    * [HIVE-18414] - upgrade to tez-0.9.1
    * [HIVE-18416] - Initial support for TABLE function
    * [HIVE-18417] - better error handling in TezSessionState cleanup
    * [HIVE-18419] - CliDriver loads different hive-site.xml into HiveConf and MetastoreConf
    * [HIVE-18420] - LLAP IO: InputStream may return 0 bytes
    * [HIVE-18421] - Vectorized execution handles overflows in a different manner than non-vectorized execution
    * [HIVE-18422] - Vectorized input format should not be used when vectorized input format is excluded and row.serde is enabled
    * [HIVE-18426] - Memory leak in RoutingAppender for every hive operation
    * [HIVE-18429] - Compaction should handle a case when it produces no output
    * [HIVE-18430] - Add new determinism category for runtime constants (current_date, current_timestamp)
    * [HIVE-18442] - HoS: No FileSystem for scheme: nullscan
    * [HIVE-18445] - qtests: auto_join25.q fails permanently
    * [HIVE-18447] - JDBC: Provide a way for JDBC users to pass cookie info via connection string
    * [HIVE-18450] - Support TABLE function in CBO
    * [HIVE-18452] - work around HADOOP-15171
    * [HIVE-18456] - Add some tests for HIVE-18367 to check that the table information contains the query correctly
    * [HIVE-18459] - hive-exec.jar leaks contents fb303.jar into classpath
    * [HIVE-18465] - Hive metastore schema initialization failing on postgres
    * [HIVE-18467] - support whole warehouse dump / load + create/drop database events
    * [HIVE-18472] - Beeline gives log4j warnings
    * [HIVE-18473] - Infer timezone information correctly in DruidSerde
    * [HIVE-18482] - Copy-paste error in the RelOptHiveTable
    * [HIVE-18488] - LLAP ORC readers are missing some null checks
    * [HIVE-18490] - Query with EXISTS and NOT EXISTS with non-equi predicate can produce wrong result
    * [HIVE-18492] - Wrong argument in the WorkloadManager.resetAndQueryKill()
    * [HIVE-18494] - Regression: from HIVE-18069, the metastore directsql is getting disabled
    * [HIVE-18499] - Amend point lookup tests to check for data
    * [HIVE-18500] - annoying exceptions from LLAP Jmx view in the logs
    * [HIVE-18501] - Typo in beeline code
    * [HIVE-18504] - Hive is throwing InvalidObjectException(message:Invalid column type name is too long.
    * [HIVE-18506] - LlapBaseInputFormat - negative array index
    * [HIVE-18507] - AccumuloIndexedOutputFormat.AccumuloRecordWriter.close() - typo in the condition
    * [HIVE-18513] - Query results caching
    * [HIVE-18514] - add service output for ranger to WM DDL operations
    * [HIVE-18517] - Vectorization: Fix VectorMapOperator to accept VRBs and check vectorized flag correctly to support LLAP Caching
    * [HIVE-18518] - Upgrade druid version to 0.11.0
    * [HIVE-18519] - do not create materialized CTEs with ACID/MM
    * [HIVE-18521] - Vectorization: query failing in reducer VectorUDAFAvgDecimalPartial2 java.lang.ClassCastException StructTypeInfo --> DecimalTypeInfo
    * [HIVE-18523] - Fix summary row in case there are no inputs
    * [HIVE-18524] - Vectorization: Execution failure related to non-standard embedding of IfExprConditionalFilter inside VectorUDFAdaptor (Revert HIVE-17139)
    * [HIVE-18529] - Vectorization: Add a debug config option to disable scratch column reuse
    * [HIVE-18530] - Replication should skip MM table (for now)
    * [HIVE-18531] - Vectorization: Vectorized PTF operator should not set the initial type infos
    * [HIVE-18546] - Remove unnecessary code introduced in HIVE-14498
    * [HIVE-18547] - WM: trigger test may fail
    * [HIVE-18548] - Fix log4j import
    * [HIVE-18551] - Vectorization: VectorMapOperator tries to write too many vector columns for Hybrid Grace
    * [HIVE-18554] - Fix false positive test ql.io.parquet.TestHiveSchemaConverter.testMap 
    * [HIVE-18557] - q.outs: fix issues caused by q.out_spark files
    * [HIVE-18558] - Upgrade orc version to 1.4.2
    * [HIVE-18562] - Vectorization: CHAR/VARCHAR conversion in VectorDeserializeRow is broken
    * [HIVE-18567] - ObjectStore.getPartitionNamesNoTxn doesn't handle max param properly
    * [HIVE-18569] - Hive Druid indexing not dealing with decimals in correct way.
    * [HIVE-18571] - stats issues for MM tables; ACID doesn't check state for CTAS
    * [HIVE-18573] - Use proper Calcite operator instead of UDFs
    * [HIVE-18574] - LLAP: Ship netty3 as part of LLAP install tarball
    * [HIVE-18575] - ACID properties usage in jobconf is ambiguous for MM tables
    * [HIVE-18577] - SemanticAnalyzer.validate has some pointless metastore calls
    * [HIVE-18578] - Some class has missed the ASF header
    * [HIVE-18579] - Changes from HIVE-18495 introduced import paths from shaded jars
    * [HIVE-18585] - Return type for udfs should be determined using Hive inference rules instead of Calcite
    * [HIVE-18587] - insert DML event may attempt to calculate a checksum on directories
    * [HIVE-18589] - java.io.IOException: Not enough history available
    * [HIVE-18590] - Assertion error on transitive join inference in the presence of NOT NULL constraint
    * [HIVE-18595] - UNIX_TIMESTAMP  UDF fails when type is Timestamp with local timezone
    * [HIVE-18597] - LLAP: Always package the log4j2 API jar for org.apache.log4j
    * [HIVE-18599] - Transactions: Fix CTAS on Micromanaged tables
    * [HIVE-18600] - Vectorization: Top-Level Vector Expression Scratch Column Deallocation
    * [HIVE-18601] - Support Power platform by updating protoc-jar-maven-plugin version
    * [HIVE-18606] - CTAS on empty table throws NPE from org.apache.hadoop.hive.ql.exec.MoveTask
    * [HIVE-18607] - HBase HFile write does strange things
    * [HIVE-18610] - Performance: ListKeyWrapper does not check for hashcode equals, before comparing members
    * [HIVE-18611] - Avoid memory allocation of aggregation buffer during stats computation 
    * [HIVE-18612] - Build subprocesses under Yetus in Ptest use 1.7 jre instead of 1.8
    * [HIVE-18613] - Extend JsonSerDe to support BINARY type
    * [HIVE-18614] - Fix sys db creation in Hive
    * [HIVE-18616] - work around HADOOP-15171 p2
    * [HIVE-18617] - Workload management Action parser does not generate the correct pool path.
    * [HIVE-18622] - Vectorization: IF Statements, Comparisons, and more do not handle NULLs correctly
    * [HIVE-18626] - Repl load "with" clause does not pass config to tasks
    * [HIVE-18627] - PPD: Handle FLOAT boxing differently for single/double precision constants
    * [HIVE-18628] - Make tez dag status check interval configurable
    * [HIVE-18631] - Hive metastore schema initialization failing on mysql
    * [HIVE-18637] - WorkloadManagent Event Summary leaving subscribedCounters and currentCounters fields empty
    * [HIVE-18638] - Triggers for multi-pool move, failing to initiate the move event
    * [HIVE-18641] - Remove MCreationMetadata from MTable class
    * [HIVE-18642] - incorrect assertion in TezSessionPool for WM
    * [HIVE-18643] - don't check for archived partitions for ACID ops
    * [HIVE-18645] - invalid url address in README.txt from module hbase-handler
    * [HIVE-18646] - Update errata.txt for HIVE-18617
    * [HIVE-18647] - Cannot create table: "message:Exception thrown when executing query : SELECT DISTINCT.."
    * [HIVE-18653] - Fix TestOperators test failure in master
    * [HIVE-18658] - WM: allow not specifying scheduling policy when creating a pool
    * [HIVE-18659] - add acid version marker to acid files/directories
    * [HIVE-18660] - PCR doesn't distinguish between partition and virtual columns
    * [HIVE-18662] - hive.acid.key.index is missing entries
    * [HIVE-18665] - LLAP: Ignore cache-affinity if the LLAP IO elevator is disabled
    * [HIVE-18666] - Materialized view: "create materialized enable rewrite" should fail if rewriting is not possible
    * [HIVE-18667] - Materialized views: rewrites should be triggered without checks if the time.window=-1
    * [HIVE-18671] - lock not released after Hive on Spark query was cancelled
    * [HIVE-18674] - update Hive to use ORC 1.4.3
    * [HIVE-18675] - make HIVE_LOCKS.HL_TXNID NOT NULL
    * [HIVE-18678] - fix exim for MM tables and reinstante the test
    * [HIVE-18680] - FieldTrimmer missing opportunity with SortLimit operators
    * [HIVE-18686] - Installation on Postgres and Oracle broken
    * [HIVE-18688] - Vectorization: Vectorizer Reason shouldn't be part of work-plan
    * [HIVE-18693] - Snapshot Isolation does not work for Micromanaged table when a insert transaction is aborted
    * [HIVE-18695] - fix TestAccumuloCliDriver.testCliDriver[accumulo_queries]
    * [HIVE-18697] - The HiveMetastore.exchange_partitions method throws FileNotFoundException if the given partition doesn't exist in the source table
    * [HIVE-18698] - Fix TestMiniLlapLocalCliDriver#testCliDriver[bucket_map_join_tez1]
    * [HIVE-18699] - Check for duplicate partitions in HiveMetastore.exchange_partitions
    * [HIVE-18708] - Vectorization: Delay out-of-tree fixups till whole work is vectorized
    * [HIVE-18713] - Optimize: Transform IN clauses to = when there's only one element
    * [HIVE-18717] - Avoid transitive dependency on jetty 6.x
    * [HIVE-18733] - Missing break in CommonFastHashTable
    * [HIVE-18737] - add an option to disable LLAP IO ACID for non-original files
    * [HIVE-18738] - LLAP IO ACID - includes handling is broken
    * [HIVE-18742] - Vectorization acid/inputformat check should allow NullRowsInputFormat/OneNullRowInputFormat
    * [HIVE-18757] - LLAP IO for text fails for empty files
    * [HIVE-18759] - Remove unconnected q.out-s
    * [HIVE-18764] - ELAPSED_TIME resource plan setting is not getting honored
    * [HIVE-18775] - HIVE-17983 missed deleting metastore/scripts/upgrade/derby/hive-schema-3.0.0.derby.sql
    * [HIVE-18776] - MaterializationsInvalidationCache loading causes race condition in the metastore
    * [HIVE-18777] - Add Authorization interface to support information_schema integration with external authorization
    * [HIVE-18783] - ALTER TABLE post-commit listener does not include the transactional listener responses 
    * [HIVE-18788] - Clean up inputs in JDBC PreparedStatement
    * [HIVE-18789] - Disallow embedded element in UDFXPathUtil
    * [HIVE-18791] - Fix TestJdbcWithMiniHS2#testHttpHeaderSize
    * [HIVE-18794] - Repl load "with" clause does not pass config to tasks for non-partition tables
    * [HIVE-18796] - fix TestSSL
    * [HIVE-18813] - Fix qtest mapjoin_hook.q
    * [HIVE-18815] - Remove unused feature in HPL/SQL
    * [HIVE-18816] - CREATE TABLE (ACID) doesn't work with TIMESTAMPLOCALTZ column type
    * [HIVE-18817] - ArrayIndexOutOfBounds exception during read of ACID table.
    * [HIVE-18818] - Alter table add constraint unique fails with direct sql set to false
    * [HIVE-18820] - Operation doesn't always clean up log4j for operation log
    * [HIVE-18826] - fix TestEncryptedHDFSCliDriver.testCliDriver[encryption_move_tbl]
    * [HIVE-18828] - improve error handling for codecs in LLAP IO
    * [HIVE-18833] - Auto Merge fails when "insert into directory as orcfile"
    * [HIVE-18837] - add a flag and disable some object pools in LLAP until further testing
    * [HIVE-18858] - System properties in job configuration not resolved when submitting MR job
    * [HIVE-18859] - Incorrect handling of thrift metastore exceptions
    * [HIVE-18863] - trunc() calls itself trunk() in an error message
    * [HIVE-18877] - HiveSchemaTool.validateSchemaTables() should wrap a SQLException when rethrowing
    * [HIVE-18879] - Disallow embedded element in UDFXPathUtil needs to work if xercesImpl.jar in classpath
    * [HIVE-18886] - ACID: NPE on unexplained mysql exceptions 
    * [HIVE-18888] - Replace synchronizedMap with ConcurrentHashMap
    * [HIVE-18889] - update all parts of Hive to use the same Guava version
    * [HIVE-18892] - Fix NPEs in HiveMetastore.exchange_partitions method
    * [HIVE-18898] - Fix NPEs in HiveMetastore.dropPartition method
    * [HIVE-18907] - Create utility to fix acid key index issue from HIVE-18817
    * [HIVE-18918] - Bad error message in CompactorMR.lanuchCompactionJob()
    * [HIVE-18919] - remove separate keytab setting for ZK in LLAP
    * [HIVE-18925] - Hive doesn't work when JVM is America/Bahia_Banderas time zone
    * [HIVE-18933] - disable ORC codec pool for now; remove clone
    * [HIVE-18944] - Groupping sets position is set incorrectly during DPP
    * [HIVE-18950] - DESCRIBE EXTENDED missing details of default constraint
    * [HIVE-18951] - Fix the llapdump usage error in llapdump.sh
    * [HIVE-18955] - HoS: Unable to create Channel from class NioServerSocketChannel
    * [HIVE-18962] - add WM task state to Tez AM heartbeat
    * [HIVE-18963] - JDBC: Provide an option to simplify beeline usage by supporting default and named URL for beeline
    * [HIVE-18965] - HIVE-17990 didn't update derby SQL scripts
    * [HIVE-18967] - Standalone metastore SQL upgrade scripts do not properly set schema version
    * [HIVE-18968] - LLAP: report guaranteed tasks count in AM registry to check for consistency
    * [HIVE-18970] - improve AM WM metrics for use in Grafana and such
    * [HIVE-18971] - add HS2 WM metrics for use in Grafana and such
    * [HIVE-18972] - beeline command suggestion to kill job deprecated
    * [HIVE-18975] - NPE when inserting NULL value in structure and array with HBase table
    * [HIVE-18976] - Add ability to setup Druid Kafka Ingestion from Hive
    * [HIVE-18990] - Hive doesn't close Tez session properly
    * [HIVE-18991] - Drop database cascade doesn't work with materialized views
    * [HIVE-18992] - enable synthetic file IDs by default in LLAP
    * [HIVE-19003] - metastoreconf logs too much on info level
    * [HIVE-19007] - Support REPL LOAD from primary using replica connection configurations received through WITH clause.
    * [HIVE-19012] - Support builds for ARM and PPC arch
    * [HIVE-19014] - utilize YARN-8028 (queue ACL check) in Hive Tez session pool
    * [HIVE-19017] - Add util function to determine if 2 ValidWriteIdLists are at the same committed ID
    * [HIVE-19018] - beeline -e now requires semicolon even when used with query from command line
    * [HIVE-19019] - Vectorization: When vectorized, orc_merge_incompat_schema.q throws HiveException "Not implemented yet" from VectorExpressionWriterMap
    * [HIVE-19021] - WM counters are not properly propagated from LLAP to AM
    * [HIVE-19024] - Vectorization: Disable complex type constants for VectorUDFAdaptor
    * [HIVE-19030] - Update Wiki with new rules for Load Data
    * [HIVE-19032] - Vectorization: Disable GROUP BY aggregations with DISTINCT
    * [HIVE-19035] - Vectorization: Disable exotic STRUCT field reference form
    * [HIVE-19036] - Fix whitespace error in testconfiguration.properties after HIVE-14032
    * [HIVE-19037] - Vectorization: Miscellaneous cleanup
    * [HIVE-19038] - LLAP: Service loader throws "Provider not found" exception if hive-llap-server is in class path while loading tokens
    * [HIVE-19042] - set MALLOC_ARENA_MAX for LLAP
    * [HIVE-19043] - Vectorization: LazySimpleDeserializeRead fewer fields handling is broken for Complex Types
    * [HIVE-19047] - Only the first init file is interpreted
    * [HIVE-19050] - DBNotificationListener does not catch exceptions in the cleaner thread
    * [HIVE-19052] - Vectorization: Disable Vector Pass-Thru SMB MapJoin in the presence of old-style MR FilterMaps
    * [HIVE-19054] - Function replication shall use "hive.repl.replica.functions.root.dir" as root
    * [HIVE-19055] - WM alter may fail if the name is not changed
    * [HIVE-19056] - IllegalArgumentException in FixAcidKeyIndex when ORC file has 0 rows
    * [HIVE-19057] - Query result caching cannot be disabled by client
    * [HIVE-19061] - WM needs to output an event for allocation update
    * [HIVE-19062] - Update constraint_partition_columns.q.out
    * [HIVE-19065] - Metastore client compatibility check should include syncMetaStoreClient
    * [HIVE-19071] - WM: backup resource plans cannot be used without quoted idenitifiers
    * [HIVE-19072] - incorrect token handling for LLAP plugin endpoint
    * [HIVE-19073] - StatsOptimizer may mangle constant columns
    * [HIVE-19074] - Vectorization: Add llap vectorization_div0.q.out Q output file
    * [HIVE-19075] - Fix NPE when trying to drop or get DB with null name
    * [HIVE-19080] - Fix travis build
    * [HIVE-19085] - FastHiveDecimal abs(0) sets sign to +ve
    * [HIVE-19099] - HIVE-18755 forgot to update derby install script in metastore
    * [HIVE-19100] - investigate TestStreaming failures
    * [HIVE-19102] - Vectorization: Suppress known Q file bugs
    * [HIVE-19105] - HIVE-18781 broke WarehouseInstance
    * [HIVE-19108] - Vectorization and Parquet: Turning on vectorization in parquet_ppd_decimal.q causes Wrong Query Results
    * [HIVE-19116] - Vectorization: Vector Map data type doesn't keep the order of the key/values pairs as read
    * [HIVE-19119] - Fix the TestAppendPartitions tests which are failing in the pre-commit runs
    * [HIVE-19120] - catalog not properly set for some tables in SQL upgrade scripts
    * [HIVE-19121] - Fix HiveSchemaTool validation for databases that don't support schema
    * [HIVE-19124] - implement a basic major compactor for MM tables
    * [HIVE-19130] - NPE is thrown when REPL LOAD applied drop partition event.
    * [HIVE-19131] - DecimalColumnStatsMergerTest comparison review
    * [HIVE-19137] - orcfiledump doesn't print hive.acid.version value
    * [HIVE-19151] - Update expected result for some TestNegativeCliDriver tests
    * [HIVE-19155] - Day time saving cause Druid inserts to fail with org.apache.hive.druid.io.druid.java.util.common.UOE: Cannot add overlapping segments
    * [HIVE-19157] - Assert that Insert into Druid Table fails if the publishing of metadata by HS2 fails
    * [HIVE-19167] - Map data type doesn't keep the order of the key/values pairs as read (Part 2, The Sequel or SQL)   
    * [HIVE-19168] - Ranger changes for llap commands
    * [HIVE-19186] - Multi Table INSERT statements query has a flaw for partitioned table when INSERT INTO and INSERT OVERWRITE are used
    * [HIVE-19187] - Update Druid Storage Handler to Druid 0.12.0
    * [HIVE-19191] - Assertion error while running materialized view rewriting
    * [HIVE-19200] - Vectorization: Disable vectorization for LLAP I/O when a non-VECTORIZED_INPUT_FILE_FORMAT mode is needed (i.e. rows) and data type conversion is needed
    * [HIVE-19215] - JavaUtils.AnyIdDirFilter ignores base_n directories
    * [HIVE-19219] - Incremental REPL DUMP should throw error if requested events are cleaned-up.
    * [HIVE-19224] - incorrect token handling for LLAP plugin endpoint - part 2
    * [HIVE-19226] - Extend storage-api to print timestamp values in UTC
    * [HIVE-19230] - Schema column width inconsistency in Oracle 
    * [HIVE-19231] - Beeline generates garbled output when using UnsupportedTerminal
    * [HIVE-19233] - Add utility for acid 1.0 to 2.0 migration
    * [HIVE-19240] - backport HIVE-17645 to 3.0
    * [HIVE-19247] - StatsOptimizer: Missing stats fast-path for Date
    * [HIVE-19248] - REPL LOAD couldn't copy file from source CM path and also doesn't throw error if file copy fails.
    * [HIVE-19249] - Replication: WITH clause is not passing the configuration to Task correctly in all cases
    * [HIVE-19260] - Streaming Ingest API doesn't normalize db.table names
    * [HIVE-19264] - Vectorization: Reenable vectorization in vector_adaptor_usage_mode.q
    * [HIVE-19269] - Vectorization: Turn On by Default
    * [HIVE-19275] - Vectorization: Defer Wrong Results / Execution Failures when Vectorization turned on
    * [HIVE-19277] - Active/Passive HA web endpoints does not allow cross origin requests
    * [HIVE-19280] - Invalid error messages for UPDATE/DELETE on insert-only transactional tables
    * [HIVE-19281] - incorrect protocol name for LLAP AM plugin
    * [HIVE-19282] - don't nest delta directories inside LB directories for ACID tables
    * [HIVE-19298] - Fix operator tree of CTAS for Druid Storage Handler
    * [HIVE-19310] - Metastore: MetaStoreDirectSql.ensureDbInit has some slow DN calls which might need to be run only in test env
    * [HIVE-19315] - Test failure org.apache.hadoop.hive.ql.lockmgr.TestDbTxnManager2#testWriteSetTracking3
    * [HIVE-19324] - improve YARN queue check error message in Tez pool
    * [HIVE-19327] - qroupby_rollup_empty.q fails for insert-only transactional tables
    * [HIVE-19330] - multi_insert_partitioned.q fails with "src table does not exist" message.
    * [HIVE-19331] - Repl load config in "with" clause not pass to Context.getStagingDir
    * [HIVE-19338] - isExplicitAnalyze method may be incorrect in BasicStatsTask
    * [HIVE-19339] - Regenerate alltypesorc file with latest ORC
    * [HIVE-19350] - Vectorization: Turn off vectorization for explainuser_1.q / spark_explainuser_1
    * [HIVE-19352] - Vectorization: Disable vectorization for org.apache.hive.jdbc.TestJdbcDriver2.testResultSetMetaData
    * [HIVE-19361] - Backport HIVE-18910 to branch -3
    * [HIVE-19362] - enable LLAP cache affinity by default
    * [HIVE-19363] - remove cryptic metrics from LLAP IO output
    * [HIVE-19365] - Index on COMPLETED_TXN_COMPONENTS in Metastore RDBMS has different names in different scripts
    * [HIVE-19367] - Load Data should fail for empty Parquet files.
    * [HIVE-19381] - Function replication in cloud fail when download resource from AWS
    * [HIVE-19383] - Add ArrayList$SubList kryo serializer
    * [HIVE-19384] - Vectorization: IfExprTimestamp* do not handle NULLs correctly
    * [HIVE-19386] - Move TABLE_BUCKETING_VERSION to hive_metastore.thrift
    * [HIVE-19394] - WM_TRIGGER trigger creation failed with type cast from Integer to Boolean 
    * [HIVE-19396] - HiveOperation is incorrectly set for analyze statement
    * [HIVE-19410] - don't create serde reader in LLAP if there's no cache
    * [HIVE-19420] - Support LOAD from SeqFile to ORC table
    * [HIVE-19423] - REPL LOAD creates staging directory in source dump directory instead of table data location
    * [HIVE-19433] - HiveJoinPushTransitivePredicatesRule hangs
    * [HIVE-19435] - Incremental replication cause data loss if a table is dropped followed by create and insert-into with different partition type.
    * [HIVE-19446] - QueryCache: Transaction lists needed for pending cache entries
    * [HIVE-19474] - Decimal type should be casted as part of the CTAS or INSERT Clause.
    * [HIVE-19476] - Fix failures in TestReplicationScenariosAcidTables, TestReplicationOnHDFSEncryptedZones and TestCopyUtils
    * [HIVE-19477] - Hiveserver2 in http mode not emitting metric default.General.open_connections
    * [HIVE-19479] - encoded stream seek is incorrect for 0-length RGs in LLAP IO
    * [HIVE-19483] - Metastore cleaner tasks that run periodically are created more than once
    * [HIVE-19506] - Test suites timing out


** New Feature
    * [HIVE-1010] - Implement INFORMATION_SCHEMA in Hive
    * [HIVE-8838] - Support Parquet through HCatalog
    * [HIVE-15229] - 'like any' and 'like all' operators in hive
    * [HIVE-15434] - Add UDF to allow interrogation of uniontype values
    * [HIVE-15571] - Support Insert into for druid storage handler
    * [HIVE-15691] - Create StrictRegexWriter to work with RegexSerializer for Flume Hive Sink
    * [HIVE-15996] - Implement multiargument GROUPING function
    * [HIVE-16281] - Upgrade master branch to JDK8
    * [HIVE-16452] - Database UUID for metastore DB
    * [HIVE-16520] - Cache hive metadata in metastore
    * [HIVE-16575] - Support for 'UNIQUE' and 'NOT NULL' constraints
    * [HIVE-16602] - Implement shared scans with Tez
    * [HIVE-16605] - Enforce NOT NULL constraints
    * [HIVE-16643] - BeeLine tests output should keep the PREHOOK/POSTHOOK Input/Output orderdering
    * [HIVE-16917] - HiveServer2 guard rails - Limit concurrent connections from user
    * [HIVE-17089] - make acid 2.0 the default
    * [HIVE-17160] - Adding kerberos Authorization to the Druid hive integration
    * [HIVE-17361] - Support LOAD DATA for transactional tables
    * [HIVE-17366] - Constraint replication in bootstrap
    * [HIVE-17432] - Enable join and aggregate materialized view rewriting
    * [HIVE-17466] - Metastore API to list unique partition-key-value combinations
    * [HIVE-17481] - LLAP workload management
    * [HIVE-17626] - Query reoptimization using cached runtime statistics
    * [HIVE-17710] - LockManager should only lock Managed tables
    * [HIVE-17717] - Enable rule to push post-aggregations into Druid
    * [HIVE-18281] - HiveServer2 HA for LLAP and Workload Manager
    * [HIVE-18347] - Allow pluggable dynamic lookup of Hive Metastores from HiveServer2
    * [HIVE-18361] - Extend shared work optimizer to reuse computation beyond work boundaries
    * [HIVE-18373] - Make it easier to search for column name in a table
    * [HIVE-18726] - Implement DEFAULT constraint
    * [HIVE-18739] - Add support for Import/Export from Acid table
    * [HIVE-18814] - Support Add Partition For Acid tables
    * [HIVE-18835] - JDBC standalone jar download link in ambari
    * [HIVE-18841] - Support authorization of UDF usage in hive
    * [HIVE-18953] - Implement CHECK constraint
    * [HIVE-19059] - Support DEFAULT keyword with INSERT and UPDATE


** Improvement
    * [HIVE-8472] - Add ALTER DATABASE SET LOCATION
    * [HIVE-9447] - Metastore: inefficient Oracle query for removing unused column descriptors when add/drop table/partition
    * [HIVE-12274] - Increase width of columns used for general configuration in the metastore.
    * [HIVE-12299] - Hive Column Data Type definition in schema limited to 4000 characters - too small
    * [HIVE-12636] - Ensure that all queries (with DbTxnManager) run in a transaction
    * [HIVE-13842] - Expose ability to set number of connections in the pool in TxnHandler
    * [HIVE-14069] - update curator version to 2.12.0 
    * [HIVE-14145] - Too small length of column 'PARAM_VALUE' in table 'SERDE_PARAMS'
    * [HIVE-14389] - Beeline should not output query and prompt to stdout
    * [HIVE-14786] - Beeline displays binary column data as string instead of byte array
    * [HIVE-15053] - Beeline#addlocaldriver - reduce classpath scanning
    * [HIVE-15300] - Reuse table information in SemanticAnalyzer::getMetaData to reduce compilation time
    * [HIVE-15393] - Update Guava version
    * [HIVE-15396] - Basic Stats are not collected when for managed tables with LOCATION specified
    * [HIVE-15433] - setting hive.warehouse.subdir.inherit.perms in HIVE won't overwrite it in hive configuration
    * [HIVE-15616] - Improve contents of qfile test output
    * [HIVE-15631] - Optimize for hive client logs , you can filter the log for each session itself.
    * [HIVE-15665] - LLAP: OrcFileMetadata objects in cache can impact heap usage
    * [HIVE-15726] - Reenable indentation checks to checkstyle
    * [HIVE-15786] - Provide additional information from the llapstatus command
    * [HIVE-15795] - Support Accumulo Index Tables in Hive Accumulo Connector
    * [HIVE-15880] - Allow insert overwrite and truncate table query to use auto.purge table property
    * [HIVE-16049] - upgrade to jetty 9
    * [HIVE-16075] - MetaStore needs to reinitialize log4j to allow log specific settings via hiveconf take effect 
    * [HIVE-16079] - HS2: high memory pressure due to duplicate Properties objects
    * [HIVE-16084] - SHOW COMPACTIONS should display CompactionID
    * [HIVE-16143] - Improve msck repair batching
    * [HIVE-16152] - TestBeeLineDriver logging improvements
    * [HIVE-16164] - Provide mechanism for passing HMS notification ID between transactional and non-transactional listeners.
    * [HIVE-16206] - Make Codahale metrics reporters pluggable
    * [HIVE-16242] - Run BeeLine tests parallel
    * [HIVE-16285] - Servlet for dynamically configuring log levels
    * [HIVE-16297] - Improving hive logging configuration variables
    * [HIVE-16311] - Improve the performance for FastHiveDecimalImpl.fastDivide
    * [HIVE-16334] - Query lock contains the query string, which can cause OOM on ZooKeeper
    * [HIVE-16340] - Allow Kerberos + SSL connections to HMS
    * [HIVE-16343] - LLAP: Publish YARN's ProcFs based memory usage to metrics for monitoring
    * [HIVE-16345] - BeeLineDriver should be able to run qtest files which are using default database tables
    * [HIVE-16356] - Table#validateColumns should avoid checking exhaustively for matches in a list
    * [HIVE-16360] - Improve "No delta files or original files found to compact in" message
    * [HIVE-16371] - Add bitmap selection strategy for druid storage handler
    * [HIVE-16383] - Switch to HikariCP as default connection pooling
    * [HIVE-16386] - Add debug logging to describe why runtime filtering semijoins are removed
    * [HIVE-16423] - Add hint to enforce semi join optimization
    * [HIVE-16426] - Query cancel: improve the way to handle files
    * [HIVE-16429] - Should call invokeFailureHooks in handleInterruption to track failed query execution due to interrupted command.
    * [HIVE-16430] - Add log to show the cancelled query id when cancelOperation is called.
    * [HIVE-16431] - Support Parquet StatsNoJobTask for Spark & Tez engine
    * [HIVE-16441] - De-duplicate semijoin branches in n-way joins
    * [HIVE-16449] - BeeLineDriver should handle query result sorting
    * [HIVE-16456] - Kill spark job when InterruptedException happens or driverContext.isShutdown is true.
    * [HIVE-16460] - In the console output, show vertex list in topological order instead of an alphabetical sort
    * [HIVE-16501] - Add rej/orig to .gitignore ; remove *.orig files
    * [HIVE-16503] - LLAP: Oversubscribe memory for noconditional task size
    * [HIVE-16527] - Support outer and mixed reference aggregates in windowed functions
    * [HIVE-16536] - Various improvements in TestPerfCliDriver
    * [HIVE-16550] - Semijoin Hints should be able to skip the optimization if needed.
    * [HIVE-16552] - Limit the number of tasks a Spark job may contain
    * [HIVE-16571] - HiveServer2: Prefer LIFO over round-robin for Tez session reuse
    * [HIVE-16582] - HashTableLoader should log info about the input, rows, size etc.
    * [HIVE-16594] - Add more tests for BeeLineDriver
    * [HIVE-16595] - fix syntax in Hplsql.g4
    * [HIVE-16604] - Use [NOT] ENFORCED for column constraint characteristics
    * [HIVE-16614] - Support "set local time zone" statement
    * [HIVE-16635] - Progressbar: Use different timeouts for running queries
    * [HIVE-16639] - LLAP: Derive shuffle thread counts and keep-alive connections from instance count
    * [HIVE-16663] - String Caching For Rows
    * [HIVE-16700] - Log ZK discovery info (hostname & port) for HTTP mode when connection is established
    * [HIVE-16711] - Remove property_id column from metastore_db_properties table
    * [HIVE-16712] - StringBuffer v.s. StringBuilder
    * [HIVE-16717] - Extend shared scan optimizer to handle partitions
    * [HIVE-16723] - Enable configurable MetaStoreSchemaInfo 
    * [HIVE-16736] - General Improvements to BufferedRows
    * [HIVE-16754] - LLAP: Print hive version info on llap daemon startup
    * [HIVE-16758] - Better Select Number of Replications
    * [HIVE-16759] - Add table type information to HMS log notifications
    * [HIVE-16771] - Schematool should use MetastoreSchemaInfo to get the metastore schema version from database
    * [HIVE-16799] - Control the max number of task for a stage in a spark job
    * [HIVE-16805] - Utilities isEmptyPath Logging Too Chatty and Uses Bad Format
    * [HIVE-16809] - Improve filter condition for correlated subqueries
    * [HIVE-16811] - Estimate statistics in absence of stats
    * [HIVE-16833] - Review org.apache.hive.jdbc.HiveMetaDataResultSet
    * [HIVE-16834] - Review org.apache.hadoop.hive.serde2.ByteStream
    * [HIVE-16853] - Minor org.apache.hadoop.hive.ql.exec.HashTableSinkOperator Improvement
    * [HIVE-16855] - org.apache.hadoop.hive.ql.exec.mr.HashTableLoader Improvements
    * [HIVE-16856] - Allow For Customization Of Buffer Size In MapJoinTableContainerSerDe
    * [HIVE-16857] - SparkPartitionPruningSinkOperator Buffer Size
    * [HIVE-16858] - Acumulo Utils Improvements
    * [HIVE-16866] - existing available UDF is used in TestReplicationScenariosAcrossInstances#testDropFunctionIncrementalReplication 
    * [HIVE-16867] - Extend shared scan optimizer to reuse computation from other operators
    * [HIVE-16873] - Remove Thread Cache From Logging
    * [HIVE-16880] - Remove ArrayList Instantiation For Empty Arrays
    * [HIVE-16881] - Make extractSqlBoolean More Consistent
    * [HIVE-16885] - Non-equi Joins: Filter clauses should be pushed into the ON clause
    * [HIVE-16890] - org.apache.hadoop.hive.serde2.io.HiveVarcharWritable - Adds Superfluous Wrapper
    * [HIVE-16900] - optimization to give distcp a list of input files to copy to a destination target directory during repl load
    * [HIVE-16911] - Upgrade groovy version to 2.4.11
    * [HIVE-16914] - Change HiveMetaStoreClient to AutoCloseable
    * [HIVE-16933] - ORA-00060: deadlock detected while waiting on commit
    * [HIVE-16934] - Transform COUNT(x) into COUNT() when x is not nullable
    * [HIVE-16945] - Add method to compare Operators 
    * [HIVE-16955] - General Improvements To org.apache.hadoop.hive.metastore.MetaStoreUtils
    * [HIVE-16962] - Better error msg for Hive on Spark in case user cancels query and closes session
    * [HIVE-16969] - Improvement performance of MapOperator for Parquet
    * [HIVE-16970] - General Improvements To org.apache.hadoop.hive.metastore.cache.CacheUtils
    * [HIVE-16989] - Fix some issues identified by lgtm.com
    * [HIVE-17000] - Upgrade Hive to PARQUET 1.9.0
    * [HIVE-17022] - Add mode in lock debug statements
    * [HIVE-17036] - Lineage: Minor CPU/Mem optimization for lineage transform
    * [HIVE-17037] - Use 1-to-1 Tez edge to avoid unnecessary input data shuffle
    * [HIVE-17048] - Pass HiveOperation info to HiveSemanticAnalyzerHook through HiveSemanticAnalyzerHookContext
    * [HIVE-17054] - Expose SQL database constraints to Calcite
    * [HIVE-17072] - Make the parallelized timeout configurable in BeeLine tests
    * [HIVE-17078] - Add more logs to MapredLocalTask
    * [HIVE-17125] - Lineage: Generate lineage information on need basis when atlas hook is enabled
    * [HIVE-17139] - Conditional expressions optimization: skip the expression evaluation if the condition is not satisfied for vectorization engine.
    * [HIVE-17174] - LLAP: ShuffleHandler: optimize fadvise calls for broadcast edge
    * [HIVE-17194] - JDBC: Implement Gzip compression for HTTP mode
    * [HIVE-17229] - HiveMetastore HMSHandler locks during initialization, even though its static variable threadPool is not null
    * [HIVE-17237] - HMS wastes 26.4% of memory due to dup strings in metastore.api.Partition.parameters
    * [HIVE-17251] - Remove usage of org.apache.pig.ResourceStatistics#setmBytes method in HCatLoader
    * [HIVE-17253] - Adding SUMMARY statement to HPL/SQL
    * [HIVE-17263] - Reduce debug logging for S3 tables
    * [HIVE-17288] - LlapOutputFormatService: Increase netty event loop threads
    * [HIVE-17308] - Improvement in join cardinality estimation
    * [HIVE-17329] - ensure acid side file is not overwritten
    * [HIVE-17340] - TxnHandler.checkLock() - reduce number of SQL statements
    * [HIVE-17341] - DbTxnManger.startHeartbeat() - randomize initial delay
    * [HIVE-17362] - The MAX_PREWARM_TIME should be configurable on HoS
    * [HIVE-17376] - Upgrade snappy version to 1.1.4
    * [HIVE-17400] - Estimate stats in absence of stats for complex types
    * [HIVE-17408] - replication distcp should only be invoked if number of files AND file size cross configured limits
    * [HIVE-17422] - Skip non-native/temporary tables for all major table/partition related scenarios
    * [HIVE-17426] - Execution framework in hive to run tasks in parallel
    * [HIVE-17458] - VectorizedOrcAcidRowBatchReader doesn't handle 'original' files
    * [HIVE-17493] - Improve PKFK cardinality estimation in Physical planning
    * [HIVE-17513] - Refactor PathUtils to not contain instance fields
    * [HIVE-17519] - Transpose column stats display
    * [HIVE-17536] - StatsUtil::getBasicStatForTable doesn't distinguish b/w absence of statistics or zero stats
    * [HIVE-17538] - Enhance estimation of stats to estimate even if only one column is missing stats
    * [HIVE-17542] - Make HoS CombineEquivalentWorkResolver Configurable
    * [HIVE-17543] - Enable PerfCliDriver for HoS
    * [HIVE-17550] - Remove unreferenced q.out-s
    * [HIVE-17569] - Compare filtered output files in BeeLine tests
    * [HIVE-17578] - Create a TableRef object for Table/Partition
    * [HIVE-17587] - Remove unnecessary filter from getPartitionsFromPartitionIds call
    * [HIVE-17604] - Add druid properties to conf white list
    * [HIVE-17606] - Improve security for DB notification related APIs
    * [HIVE-17609] - Tool to manipulate delegation tokens
    * [HIVE-17611] - Add new LazyBinary SerDe for faster writes
    * [HIVE-17614] - Notification_sequence initialization using SQL statement which is compatible with Mysql 5.1
    * [HIVE-17631] - upgrade orc to 1.4.1
    * [HIVE-17669] - Cache to optimize SearchArgument deserialization
    * [HIVE-17732] - Minor Improvements - org.apache.hive.hcatalog.data.JsonSerDe.java
    * [HIVE-17740] - HiveConf - Use SLF4J Parameterization  
    * [HIVE-17742] - AccumuloIndexedOutputFormat Use SLF4J
    * [HIVE-17747] - HMS DropTableMessage should include the full table object
    * [HIVE-17766] - Support non-equi LEFT SEMI JOIN
    * [HIVE-17767] - Rewrite correlated EXISTS/IN subqueries into LEFT SEMI JOIN
    * [HIVE-17787] - Apply more filters on the BeeLine test output files (follow-up on HIVE-17569)
    * [HIVE-17793] - Parameterize Logging Messages
    * [HIVE-17799] - Add Ellipsis For Truncated Query In Hive Lock
    * [HIVE-17805] - SchemaTool validate locations should not return exit 1
    * [HIVE-17824] - msck repair table should drop the missing partitions from metastore
    * [HIVE-17847] - Exclude net.hydromatic:aggdesigner-algorithm jar as compile and runtime dependency
    * [HIVE-17870] - Update NoDeleteRollingFileAppender to use Log4j2 api
    * [HIVE-17871] - Add non nullability flag to druid time column
    * [HIVE-17877] - HoS: combine equivalent DPP sink works
    * [HIVE-17898] - Explain plan output enhancement
    * [HIVE-17901] - org.apache.hadoop.hive.ql.exec.Utilities - Use Logging Parameterization and More
    * [HIVE-17911] - org.apache.hadoop.hive.metastore.ObjectStore - Tune Up
    * [HIVE-17912] - org.apache.hadoop.hive.metastore.security.DBTokenStore - Parameterize Logging
    * [HIVE-17932] - Remove option to control partition level basic stats fetching
    * [HIVE-17962] - org.apache.hadoop.hive.metastore.security.MemoryTokenStore - Parameterize Logging
    * [HIVE-17964] - HoS: some spark configs doesn't require re-creating a session
    * [HIVE-17965] - Remove HIVELIMITTABLESCANPARTITION support
    * [HIVE-17969] - Metastore to alter table in batches of partitions when renaming table
    * [HIVE-17988] - Replace patch utility usage with git apply in ptest
    * [HIVE-18008] - Add optimization rule to remove gby from right side of left semi-join
    * [HIVE-18009] - Multiple lateral view query is slow on hive on spark
    * [HIVE-18010] - Update hbase version
    * [HIVE-18023] - Redact the expression in lineage info
    * [HIVE-18043] - Vectorization: Support List type in MapWork
    * [HIVE-18048] - Vectorization: Support Struct type with vectorization
    * [HIVE-18051] - qfiles: dataset support
    * [HIVE-18061] - q.outs: be more selective with masking hdfs paths
    * [HIVE-18123] - Explain formatted improve column expression map display
    * [HIVE-18158] - Remove OrcRawRecordMerger.ReaderPairAcid.statementId
    * [HIVE-18159] - Vectorization: Support Map type in MapWork
    * [HIVE-18173] - Improve plans for correlated subqueries with non-equi predicate
    * [HIVE-18185] - update insert_values_orig_table_use_metadata.q.out
    * [HIVE-18246] - Replace toString with getExprString in AbstractOperatorDesc::getColumnExprMapForExplain
    * [HIVE-18251] - Loosen restriction for some checks
    * [HIVE-18259] - Automatic cleanup of invalidation cache for materialized views
    * [HIVE-18283] - Better error message and error code for HoS exceptions
    * [HIVE-18342] - Remove LinkedList from HiveAlterHandler.java
    * [HIVE-18343] - Remove LinkedList from ColumnStatsSemanticAnalyzer.java
    * [HIVE-18344] - Remove LinkedList from SharedWorkOptimizer.java
    * [HIVE-18386] - Create dummy materialized views registry and make it configurable
    * [HIVE-18387] - Minimize time that REBUILD locks the materialized view
    * [HIVE-18410] - [Performance][Avro] Reading flat Avro tables is very expensive in Hive
    * [HIVE-18423] - Support pushing computation from the optimizer for JDBC storage handler tables
    * [HIVE-18448] - Drop Support For Indexes From Apache Hive
    * [HIVE-18462] - Explain formatted for queries with map join has columnExprMap with unformatted column name
    * [HIVE-18510] - Enable running checkstyle on test sources as well
    * [HIVE-18540] -  remove logic for wide terminal to display in-place updates
    * [HIVE-18543] - Add print sessionid in console
    * [HIVE-18552] - Split hive.strict.checks.large.query into two configs
    * [HIVE-18564] - Add a mapper to make plan transformations more easily understandable
    * [HIVE-18586] - Upgrade Derby to 10.14.1.0
    * [HIVE-18625] - SessionState Not Checking For Directory Creation Result
    * [HIVE-18654] - Add Hiveserver2 specific HADOOP_OPTS environment variable 
    * [HIVE-18706] - Ensure each Yetus execution has its own separate working dir
    * [HIVE-18716] - Delete unnecessary parameters from TaskFactory
    * [HIVE-18718] - Integer like types throws error when there is a mismatch
    * [HIVE-18727] - Update GenericUDFEnforceNotNullConstraint to throw an ERROR instead of Exception on failure
    * [HIVE-18730] - Use LLAP as execution engine for Druid mini Cluster Tests
    * [HIVE-18743] - CREATE TABLE on S3 data can be extremely slow. DO_NOT_UPDATE_STATS workaround is buggy.
    * [HIVE-18770] - Additional tests and fixes for materialized view rewriting
    * [HIVE-18780] - Improve schema discovery For Druid Storage Handler
    * [HIVE-18793] - Round udf should support variable as second argument
    * [HIVE-18797] - ExprConstNodeDesc's getExprString should put appropriate qualifier with literals
    * [HIVE-18808] - Make compaction more robust when stats update fails
    * [HIVE-18825] - Define ValidTxnList before starting query optimization
    * [HIVE-18839] - Implement incremental rebuild for materialized views (only insert operations in source tables)
    * [HIVE-18848] - Improve readability of filter conditions in explain plan when CBO is run
    * [HIVE-18857] - Store default value text instead of default value expression in metastore
    * [HIVE-18878] - Lower MoveTask Lock Logging to Debug
    * [HIVE-18901] - Lower ResourceDownloader Logging to Debug
    * [HIVE-18979] - Enable AggregateReduceFunctionsRule from Calcite
    * [HIVE-18984] - Make time window configurable per materialized view
    * [HIVE-18995] - Vectorization: Add option to suppress "Execution mode: vectorized" for testing purposes
    * [HIVE-19001] - ALTER TABLE ADD CONSTRAINT support for CHECK constraint
    * [HIVE-19033] - Provide an option to purge LLAP IO cache
    * [HIVE-19070] - Add More Test To Druid Mini Cluster  queries.
    * [HIVE-19092] - Somne improvement in bin shell scripts
    * [HIVE-19161] - Add authorizations to information schema
    * [HIVE-19288] - Implement protobuf logging hive hook.
    * [HIVE-19344] - Change default value of msck.repair.batch.size 
    * [HIVE-19415] - Support CORS for all HS2 web endpoints
    * [HIVE-19466] - Update constraint violation error message
    * [HIVE-19534] - Allow implementations to access member variables of AbstractRecordWriter

** Test
    * [HIVE-13843] - Re-enable the HoS tests disabled in HIVE-13402
    * [HIVE-15538] - Test HIVE-13884 with more complex query predicates
    * [HIVE-16288] - Add blobstore tests for ORC and RCFILE file formats
    * [HIVE-16359] - Update golden file for subquery_select.q
    * [HIVE-16415] - Add tests covering single inserts of zero rows
    * [HIVE-16454] - Add blobstore tests for inserting empty into dynamic partition/list bucket tables & inserting cross blobstore tables
    * [HIVE-16540] - dynamic_semijoin_user_level is failing on MiniLlap
    * [HIVE-16636] - TestPerfCli driver is missing query24
    * [HIVE-16664] - Add join related Hive blobstore tests
    * [HIVE-16673] - Test for HIVE-16413
    * [HIVE-16831] - Add unit tests for NPE fixes in HIVE-12054
    * [HIVE-17034] - The spark tar for itests is downloaded every time if md5sum is not installed
    * [HIVE-17190] - Schema changes for bitvectors for unpartitioned tables
    * [HIVE-17246] - Add having related blobstore query test
    * [HIVE-17430] - Add LOAD DATA test for blobstores
    * [HIVE-17636] - Add multiple_agg.q test for blobstores
    * [HIVE-17729] - Add Database & Explain related blobstore tests
    * [HIVE-17789] - Flaky test: TestSessionManagerMetrics.testAbandonedSessionMetrics has timing related problems
    * [HIVE-17820] - Add buckets.q test for blobstores
    * [HIVE-18041] - Add SORT_QUERY_RESULTS to subquery_multi
    * [HIVE-18089] - Update golden files for few tests
    * [HIVE-18100] - Some tests time out
    * [HIVE-18186] - Fix wrong assertion in TestHiveMetaStoreAlterColumnPar test
    * [HIVE-18260] - Add test case scenarios for materialized views invalidation cache and registry
    * [HIVE-18327] - Remove the unnecessary HiveConf dependency for MiniHiveKdc
    * [HIVE-18485] - Add more unit tests for hive.strict.checks.* properties
    * [HIVE-18588] - Add 'checkin' profile that runs slower tests in standalone-metastore
    * [HIVE-18867] - create_with_constraints_duplicate_name and default_constraint_invalid_default_value_length failing 
    * [HIVE-19060] - Fix the TestAppendPartitions.testAppendPartitionNullPartValues
    * [HIVE-19123] - TestNegativeCliDriver nopart_insert failing
    * [HIVE-19143] - Update golden files for negative tests
    * [HIVE-19271] - TestMiniLlapLocalCliDriver default_constraint and check_constraint failing

** Wish
    * [HIVE-17540] - remove feature: describe pretty

** Task
    * [HIVE-15708] - Upgrade calcite version to 1.12
    * [HIVE-16058] - Disable falling back to non-cbo for SemanticException for tests
    * [HIVE-16392] - Remove hive.warehouse.subdir.inherit.perms and all permissions inheritance logic
    * [HIVE-16395] - ConcurrentModificationException on config object in HoS
    * [HIVE-16411] - Revert HIVE-15199
    * [HIVE-16474] - Upgrade Druid version to 0.10
    * [HIVE-17107] - Upgrade Yetus to 0.5.0
    * [HIVE-17234] - Remove HBase metastore from master
    * [HIVE-17425] - Change MetastoreConf.ConfVars internal members to be private
    * [HIVE-17480] - repl dump sub dir should use UUID instead of timestamp
    * [HIVE-17521] - Improve defaults for few runtime configs
    * [HIVE-17544] - Provide classname info for function authorization
    * [HIVE-17672] - Upgrade Calcite version to 1.14
    * [HIVE-17857] - Upgrade to orc 1.4
    * [HIVE-18131] - Truncate table for Acid tables
    * [HIVE-18272] - Fix check-style violations in subquery code
    * [HIVE-18433] - Upgrade version of com.fasterxml.jackson
    * [HIVE-18436] - Upgrade to Spark 2.3.0
    * [HIVE-18560] - qtests: QTestUtil refactor/split - QOutProcessor
    * [HIVE-18598] - Disallow NOT NULL constraints to be ENABLED/ENFORCED with EXTERNAL table
    * [HIVE-18754] - REPL STATUS should support 'with' clause
    * [HIVE-18917] - Add spark.home to hive.conf.restricted.list
    * [HIVE-18957] - Upgrade Calcite version to 1.16.0
    * [HIVE-18959] - Avoid creating extra pool of threads within LLAP
    * [HIVE-18993] - Use Druid Expressions
    * [HIVE-19049] - Add support for Alter table add columns for Druid
    * [HIVE-19091] - [Hive 3.0.0 Release] Rat check failure fixes
    * [HIVE-19134] - Update copyright NOTICE and fix rat check failures
    * [HIVE-19172] - NPE due to null EnvironmentContext in DDLTask
    * [HIVE-19173] - Add Storage Handler runtime information as part of DESCRIBE EXTENDED
    * [HIVE-19184] - Hive 3.0.0 release branch preparation
    * [HIVE-19257] - HIVE-19157 commit references wrong jira
    * [HIVE-19309] - Add Arrow dependencies to LlapServiceDriver
    * [HIVE-19311] - Partition and bucketing support for “load data” statement
    * [HIVE-19451] - Druid Query Execution fails with ClassNotFoundException org.antlr.v4.runtime.CharStream
    * [HIVE-19491] - Branch-3 Start using storage-api 2.6.1 once available.


Release Notes - Hive - Version 2.3.0

** Sub-task
    * [HIVE-14807] - analyze table compute statistics fails due to presence of Infinity value in double column
    * [HIVE-15556] - Replicate views
    * [HIVE-16186] - REPL DUMP shows last event ID of the database even if we use LIMIT option.
    * [HIVE-16249] - With column stats, mergejoin.q throws NPE
    * [HIVE-16293] - Column pruner should continue to work when SEL has more than 1 child
    * [HIVE-16387] - Fix failing test org.apache.hive.jdbc.TestJdbcDriver2.testResultSetMetaData
    * [HIVE-16440] - Fix failing test columnstats_partlvl_invalid_values when autogather column stats is on
    * [HIVE-16504] - Addition of binary licenses broke rat check
    * [HIVE-16535] - Hive fails to build from source code tarball
    * [HIVE-16537] - Add missing AL files







** Bug
    * [HIVE-9815] - Metastore column"SERDE_PARAMS"."PARAM_VALUE"  limited to 4000 bytes
    * [HIVE-14077] - add implicit decimal arithmetic q test, fix issues if found 
    * [HIVE-14801] - improve TestPartitionNameWhitelistValidation stability
    * [HIVE-15035] - Clean up Hive licenses for binary distribution
    * [HIVE-15249] - HIve 2.1.0 is throwing InvalidObjectException(message:Invalid column type name is too long
    * [HIVE-15829] - LLAP text cache: disable memory tracking on the writer
    * [HIVE-15923] - Hive default partition causes errors in get partitions
    * [HIVE-16007] - When the query does not complie the LogRunnable never stops
    * [HIVE-16188] - beeline should block the connection if given invalid database name.
    * [HIVE-16193] - Hive show compactions not reflecting the status of the application
    * [HIVE-16219] - metastore notification_log contains serialized message with  non functional fields
    * [HIVE-16231] - Parquet timestamp may be stored differently since HIVE-12767
    * [HIVE-16274] - Support tuning of NDV of columns using lower/upper bounds
    * [HIVE-16287] - Alter table partition rename with location - moves partition back to hive warehouse
    * [HIVE-16301] - Preparing for 2.3 development.
    * [HIVE-16305] - Additional Datanucleus ClassLoaderResolverImpl leaks causing HS2 OOM
    * [HIVE-16308] - PreExecutePrinter and PostExecutePrinter should log to INFO level instead of ERROR
    * [HIVE-16310] - Get the output operators of Reducesink when vectorization is on
    * [HIVE-16315] - Describe table doesn't show num of partitions
    * [HIVE-16318] - LLAP cache: address some issues in 2.2/2.3
    * [HIVE-16321] - Possible deadlock in metastore with Acid enabled
    * [HIVE-16336] - Rename hive.spark.use.file.size.for.mapjoin to hive.spark.use.ts.stats.for.mapjoin
    * [HIVE-16341] - Tez Task Execution Summary has incorrect input record counts on some operators
    * [HIVE-16366] - Hive 2.3 release planning
    * [HIVE-16380] - removing global test dependency of jsonassert
    * [HIVE-16385] - StatsNoJobTask could exit early before all partitions have been processed
    * [HIVE-16390] - LLAP IO should take job config into account; also LLAP config should load defaults
    * [HIVE-16403] - LLAP UI shows the wrong number of executors
    * [HIVE-16459] - Forward channelInactive to RpcDispatcher
    * [HIVE-16461] - DagUtils checks local resource size on the remote fs
    * [HIVE-16465] - NullPointer Exception when enable vectorization for Parquet file format
    * [HIVE-16473] - Hive-on-Tez may fail to write to an HBase table
    * [HIVE-16519] - Fix exception thrown by checkOutputSpecs
    * [HIVE-16545] - LLAP: bug in arena size determination logic
    * [HIVE-16547] - LLAP: may not unlock buffers in some cases





** Improvement
    * [HIVE-12274] - Increase width of columns used for general configuration in the metastore.
    * [HIVE-12299] - Hive Column Data Type definition in schema limited to 4000 characters - too small
    * [HIVE-14145] - Too small length of column 'PARAM_VALUE' in table 'SERDE_PARAMS'
    * [HIVE-15880] - Allow insert overwrite and truncate table query to use auto.purge table property
    * [HIVE-16115] - Stop printing progress info from operation logs with beeline progress bar
    * [HIVE-16164] - Provide mechanism for passing HMS notification ID between transactional and non-transactional listeners.




** New Feature
    * [HIVE-15434] - Add UDF to allow interrogation of uniontype values
    * [HIVE-15691] - Create StrictRegexWriter to work with RegexSerializer for Flume Hive Sink

















** Test
    * [HIVE-16288] - Add blobstore tests for ORC and RCFILE file formats
    * [HIVE-16415] - Add tests covering single inserts of zero rows
    * [HIVE-16454] - Add blobstore tests for inserting empty into dynamic partition/list bucket tables & inserting cross blobstore tables



