You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by we...@apache.org on 2017/05/08 20:43:40 UTC

[50/51] [partial] hive git commit: Revert "HIVE-14671 : merge master into hive-14535 (Wei Zheng)"

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 8578a64..47c59da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,5 +29,3 @@ hcatalog/webhcat/svr/target
 conf/hive-default.xml.template
 itests/hive-blobstore/src/test/resources/blobstore-conf.xml
 .DS_Store
-*.rej
-*.orig

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index f392338..d0e1568 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,8 +23,10 @@ dist: trusty
 # that requires full git history, enable this
 # before_install: git fetch --unshallow
 
+# parallel builds on jdk7 and jdk8
 language: java
 jdk:
+  - oraclejdk7
   - oraclejdk8
 
 cache:
@@ -33,7 +35,7 @@ cache:
 
 env:
   MAVEN_SKIP_RC=true
-  MAVEN_OPTS="-Xmx2g"
+  MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M"
 
 # workaround added: https://github.com/travis-ci/travis-ci/issues/4629
 before_install:

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/RELEASE_NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index d8e527b..ec6b579 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,17 +1,77 @@
 
-Release Notes - Hive - Version 2.3.0
+Release Notes - Hive - Version 2.1.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
+    * [HIVE-9774] - Print yarn application id to console [Spark Branch]
+    * [HIVE-10280] - LLAP: Handle errors while sending source state updates to the daemons
+    * [HIVE-11107] - Support for Performance regression test suite with TPCDS
+    * [HIVE-11417] - Create shims for the row by row read path that is backed by VectorizedRowBatch
+    * [HIVE-11526] - LLAP: implement LLAP UI as a separate service - part 1
+    * [HIVE-11766] - LLAP: Remove MiniLlapCluster from shim layer after hadoop-1 removal
+    * [HIVE-11927] - Implement/Enable constant related optimization rules in Calcite: enable HiveReduceExpressionsRule to fold constants
+    * [HIVE-12049] - HiveServer2: Provide an option to write serialized thrift objects in final tasks
+    * [HIVE-12159] - Create vectorized readers for the complex types
+    * [HIVE-12442] - HiveServer2: Refactor/repackage HiveServer2's Thrift code so that it can be used in the tasks
+    * [HIVE-12499] - Add HMS metrics for number of tables and partitions
+    * [HIVE-12543] - Disable Hive ConstantPropagate optimizer when CBO has optimized the plan
+    * [HIVE-12550] - Cache and display last N completed queries in HS2 WebUI 
+    * [HIVE-12709] - further improve user level explain
+    * [HIVE-12733] - UX improvements for HIVE-12499
+    * [HIVE-12781] - Temporarily disable authorization tests that always fail on Jenkins
+    * [HIVE-12782] - update the golden files for some tests that fail
+    * [HIVE-12793] - Address TestSparkCliDriver.testCliDriver_order2 failure due to HIVE-12782
+    * [HIVE-12802] - CBO: Calcite Operator To Hive Operator (Calcite Return Path): MiniTezCliDriver.vector_join_filters.q failure
+    * [HIVE-12805] - CBO: Calcite Operator To Hive Operator (Calcite Return Path): MiniTezCliDriver skewjoin.q failure
+    * [HIVE-12853] - LLAP: localize permanent UDF jars to daemon and add them to classloader
+    * [HIVE-12855] - LLAP: add checks when resolving UDFs to enforce whitelist
+    * [HIVE-12857] - LLAP: modify the decider to allow using LLAP with whitelisted UDFs
+    * [HIVE-12868] - Fix empty operation-pool metrics
+    * [HIVE-12889] - Support COUNT(DISTINCT) for partitioning query.
+    * [HIVE-12910] - HBaseStore: initial null value of aggregateData can not call compareTo
+    * [HIVE-12918] - LLAP should never create embedded metastore when localizing functions
+    * [HIVE-12944] - Support SUM(DISTINCT) for partitioning query.
+    * [HIVE-12952] - Show query sub-pages on webui
+    * [HIVE-12960] - Migrate Column Stats Extrapolation and UniformDistribution to HBaseStore
+    * [HIVE-12961] - Migrate Column Stats UniformDistribution to HBaseStore
+    * [HIVE-13005] - CBO: Calcite Operator To Hive Operator (Calcite Return Path): RexNode convert(ExprNodeConstantDesc literal)  decimal support bug
+    * [HIVE-13068] - Disable Hive ConstantPropagate optimizer when CBO has optimized the plan II
+    * [HIVE-13129] - CliService leaks HMS connection
+    * [HIVE-13130] -  HS2 changes : API calls for retrieving primary keys and foreign keys information
+    * [HIVE-13198] - Authorization issues with cascading views
+    * [HIVE-13290] - Support primary keys/foreign keys constraint as part of create table command in Hive
+    * [HIVE-13318] - Cache the result of getTable from metastore
+    * [HIVE-13341] - Stats state is not captured correctly: differentiate load table and create table
+    * [HIVE-13349] - Metastore Changes : API calls for retrieving primary keys and foreign keys information
+    * [HIVE-13350] - Support Alter commands for Rely/NoRely  novalidate for PK/FK constraints
+    * [HIVE-13351] - Support drop Primary Key/Foreign Key constraints
+    * [HIVE-13358] - Stats state is not captured correctly: turn off stats optimizer for sampled table
+    * [HIVE-13360] - Refactoring Hive Authorization
+    * [HIVE-13362] - Commit binary file required for HIVE-13361
+    * [HIVE-13420] - Clarify HS2 WebUI Query 'Elapsed TIme'
+    * [HIVE-13424] - Refactoring the code to pass a QueryState object rather than HiveConf object
+    * [HIVE-13442] - LLAP: refactor submit API to be amenable to signing
+    * [HIVE-13444] - LLAP: add HMAC signatures to LLAP; verify them on LLAP side
+    * [HIVE-13477] - Set HivePrivilegeObjectType to TABLE_OR_VIEW
+    * [HIVE-13486] - Cast the column type for column masking
+    * [HIVE-13505] - Skip running TestDummy where possibe during precommit builds
+    * [HIVE-13507] - Improved logging for ptest
+    * [HIVE-13511] - Run clidriver tests from within the qtest dir for the precommit tests
+    * [HIVE-13520] - Don't allow any test to run for longer than 60minutes in the ptest setup
+    * [HIVE-13541] - Pass view's ColumnAccessInfo to HiveAuthorizer
+    * [HIVE-13565] - thrift change
+    * [HIVE-13566] - Auto-gather column stats - phase 1
+    * [HIVE-13620] - Merge llap branch work to master
+    * [HIVE-13637] - Fold CASE into NVL when CBO optimized the plan
+    * [HIVE-13638] - CBO rule to pull up constants through Sort/Limit
+    * [HIVE-13639] - CBO rule to pull up constants through Union
+    * [HIVE-13654] - Add JAVA8_URL to jenkins-submit-build.sh
+    * [HIVE-13722] - Add flag to detect constants to CBO pull up rules
+    * [HIVE-13758] - "Create table like" command should initialize the basic stats for the table
+    * [HIVE-13786] - Fix the unit test failure org.apache.hive.service.cli.session.TestHiveSessionImpl.testLeakOperationHandle
+    * [HIVE-13794] - HIVE_RPC_QUERY_PLAN should always be set when generating LLAP splits
+    * [HIVE-13807] - Extend metadata provider to pull up predicates through Union
+    * [HIVE-13808] - Use constant expressions to backtrack when we create ReduceSink
+    * [HIVE-13852] - NPE in TaskLocationHints during LLAP GetSplits request
 
 
 
@@ -20,61 +80,501 @@ Release Notes - Hive - Version 2.3.0
 
 
 ** 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
+    * [HIVE-1608] - use sequencefile as the default for storing intermediate results
+    * [HIVE-4662] - first_value can't have more than one order by column
+    * [HIVE-8343] - Return value from BlockingQueue.offer() is not checked in DynamicPartitionPruner
+    * [HIVE-9144] - Beeline + Kerberos shouldn't prompt for unused username + password
+    * [HIVE-9457] - Fix obsolete parameter name in HiveConf description of hive.hashtable.initialCapacity
+    * [HIVE-9499] - hive.limit.query.max.table.partition makes queries fail on non-partitioned tables
+    * [HIVE-9534] - incorrect result set for query that projects a windowed aggregate
+    * [HIVE-9862] - Vectorized execution corrupts timestamp values
+    * [HIVE-10171] - Create a storage-api module
+    * [HIVE-10187] - Avro backed tables don't handle cyclical or recursive records
+    * [HIVE-10632] - Make sure TXN_COMPONENTS gets cleaned up if table is dropped before compaction.
+    * [HIVE-10729] - Query failed when select complex columns from joinned table (tez map join only)
+    * [HIVE-11097] - HiveInputFormat uses String.startsWith to compare splitPath and PathToAliases
+    * [HIVE-11388] - Allow ACID Compactor components to run in multiple metastores
+    * [HIVE-11427] - Location of temporary table for CREATE TABLE  SELECT broken by HIVE-7079
+    * [HIVE-11484] - Fix ObjectInspector for Char and VarChar
+    * [HIVE-11550] - ACID queries pollute HiveConf
+    * [HIVE-11675] - make use of file footer PPD API in ETL strategy or separate strategy
+    * [HIVE-11716] - Reading ACID table from non-acid session should raise an error
+    * [HIVE-11806] - Create test for HIVE-11174
+    * [HIVE-11828] - beeline -f fails on scripts with tabs between column type and comment
+    * [HIVE-11848] - tables in subqueries don't get locked
+    * [HIVE-11866] - Add framework to enable testing using LDAPServer using LDAP protocol
+    * [HIVE-11935] - Race condition in  HiveMetaStoreClient: isCompatibleWith and close
+    * [HIVE-11959] - add simple test case for TestTableIterable
+    * [HIVE-12039] - Temporarily disable TestSSL#testSSLVersion 
+    * [HIVE-12045] - ClassNotFoundException for GenericUDF [Spark Branch]
+    * [HIVE-12064] - prevent transactional=false
+    * [HIVE-12075] - add analyze command to explictly cache file metadata in HBase metastore
+    * [HIVE-12165] - wrong result when hive.optimize.sampling.orderby=true with some aggregate functions
+    * [HIVE-12367] - Lock/unlock database should add current database to inputs and outputs of authz hook
+    * [HIVE-12395] - Turn off CBO for hive.support.special.characters.tablename tests until feature is complete
+    * [HIVE-12441] - Driver.acquireLocksAndOpenTxn() should only call recordValidTxns() when needed
+    * [HIVE-12466] - SparkCounter not initialized error
+    * [HIVE-12478] - Improve Hive/Calcite Transitive Predicate inference
+    * [HIVE-12502] - to_date UDF cannot accept NULLs of VOID type
+    * [HIVE-12528] - don't start HS2 Tez sessions in a single thread
+    * [HIVE-12529] - HiveTxnManager.acquireLocks() should not block forever
+    * [HIVE-12538] - After set spark related config, SparkSession never get reused
+    * [HIVE-12552] - Wrong number of reducer estimation causing job to fail
+    * [HIVE-12554] - Fix Spark branch build after merge [Spark Branch]
+    * [HIVE-12558] - LLAP: output QueryFragmentCounters somewhere
+    * [HIVE-12567] - Enhance TxnHandler retry logic to handle ORA-08176
+    * [HIVE-12568] - Provide an option to specify network interface used by Spark remote client [Spark Branch]
+    * [HIVE-12570] - Incorrect error message Expression not in GROUP BY key thrown instead of Invalid function
+    * [HIVE-12608] - Parquet Schema Evolution doesn't work when a column is dropped from array<struct<>>
+    * [HIVE-12612] - beeline always exits with 0 status when reading query from standard input
+    * [HIVE-12616] - NullPointerException when spark session is reused to run a mapjoin
+    * [HIVE-12619] - Switching the field order within an array of structs causes the query to fail
+    * [HIVE-12620] - Misc improvement to Acid module
+    * [HIVE-12635] - Hive should return the latest hbase cell timestamp as the row timestamp value
+    * [HIVE-12643] - For self describing InputFormat don't replicate schema information in partitions
+    * [HIVE-12650] - Improve error messages for Hive on Spark in case the cluster has no resources available
+    * [HIVE-12673] - Orcfiledump throws NPE when no files are available
+    * [HIVE-12708] - Hive on Spark doesn't work with Kerboresed HBase [Spark Branch]
+    * [HIVE-12723] - stats_filemetadata test was added to the wrong driver
+    * [HIVE-12725] - CompactionTxnHandler.findNextToCompact() may produce "Operation not allowed after ResultSet closed"
+    * [HIVE-12749] - Constant propagate returns string values in incorrect format
+    * [HIVE-12752] - Change the schema version to 2.1.0 
+    * [HIVE-12757] - Fix TestCodahaleMetrics#testFileReporting
+    * [HIVE-12780] - Fix the output of the history command in Beeline
+    * [HIVE-12784] - Group by SemanticException: Invalid column reference
+    * [HIVE-12789] - Fix output twice in the history command of Beeline
+    * [HIVE-12792] - HIVE-12075 didn't update operation type for plugins
+    * [HIVE-12795] - Vectorized execution causes ClassCastException
+    * [HIVE-12799] - Always use Schema Evolution for ACID
+    * [HIVE-12808] - Logical PPD: Push filter clauses through PTF(Windowing) into TS
+    * [HIVE-12834] - Fix to accept the arrow keys in BeeLine CLI
+    * [HIVE-12837] - Better memory estimation/allocation for hybrid grace hash join during hash table loading
+    * [HIVE-12848] - Change derby scripts, for HMS upgrade tests, to accomodate 32-bit VM.
+    * [HIVE-12862] - Fix pom.xml to package hiveserver2.jsp
+    * [HIVE-12865] - Exchange partition does not show inputs field for post/pre execute hooks
+    * [HIVE-12867] - Semantic Exception Error Msg should be with in the range of "10000 to 19999"
+    * [HIVE-12880] - spark-assembly causes Hive class version problems
+    * [HIVE-12885] - LDAP Authenticator improvements
+    * [HIVE-12886] - invalid column reference error on grouping by constant
+    * [HIVE-12887] - Handle ORC schema on read with fewer columns than file schema (after Schema Evolution changes)
+    * [HIVE-12888] - TestSparkNegativeCliDriver does not run in Spark mode[Spark Branch]
+    * [HIVE-12894] - Detect whether ORC is reading from ACID table correctly for Schema Evolution
+    * [HIVE-12909] - Some encryption q-tests fail because trash is disabled in encryption_with_trash.q
+    * [HIVE-12927] - HBase metastore: sequences should be one per row, not all in one row
+    * [HIVE-12933] - Beeline will hang when authenticating with PAM when libjpam.so is missing
+    * [HIVE-12937] - DbNotificationListener unable to clean up old notification events
+    * [HIVE-12941] - Unexpected result when using MIN() on struct with NULL in first field
+    * [HIVE-12951] - Reduce Spark executor prewarm timeout to 5s
+    * [HIVE-12963] - LIMIT statement with SORT BY creates additional MR job with hardcoded only one reducer
+    * [HIVE-12965] - Insert overwrite local directory should perserve the overwritten directory permission
+    * [HIVE-12966] - Change some ZooKeeperHiveLockManager logs to debug
+    * [HIVE-12969] - Fix Javadoc for PredicatePushDown class
+    * [HIVE-12976] - MetaStoreDirectSql doesn't batch IN lists in all cases
+    * [HIVE-12981] - ThriftCLIService uses incompatible getShortName() implementation
+    * [HIVE-12990] - LLAP: ORC cache NPE without FileID support
+    * [HIVE-12992] - Hive on tez: Bucket map join plan is incorrect
+    * [HIVE-12993] - user and password supplied from URL is overwritten by the empty user and password of the JDBC connection string when it's calling from beeline
+    * [HIVE-12995] - LLAP: Synthetic file ids need collision checks
+    * [HIVE-12996] - Temp tables shouldn't be locked
+    * [HIVE-12998] - ORC FileDump.printJsonData() does not close RecordReader
+    * [HIVE-12999] - Tez: Vertex creation reduce NN IPCs
+    * [HIVE-13002] - Hive object is not thread safe, is shared via a threadlocal and thus should not be passed around too much - part 1
+    * [HIVE-13008] - WebHcat DDL commands in secure mode NPE when default FileSystem doesn't support delegation tokens
+    * [HIVE-13009] - Fix add_jar_file.q on Windows
+    * [HIVE-13013] - Further Improve concurrency in TxnHandler
+    * [HIVE-13015] - Bundle Log4j2 jars with hive-exec
+    * [HIVE-13016] - ORC FileDump recovery utility fails in Windows
+    * [HIVE-13017] - Child process of HiveServer2 fails to get delegation token from non default FileSystem
+    * [HIVE-13020] - Hive Metastore and HiveServer2 to Zookeeper fails with IBM JDK
+    * [HIVE-13021] - GenericUDAFEvaluator.isEstimable(agg) always returns false
+    * [HIVE-13036] - Split hive.root.logger separately to make it compatible with log4j1.x (for remaining services)
+    * [HIVE-13038] - LLAP needs service class registration for token identifier
+    * [HIVE-13039] - BETWEEN predicate is not functioning correctly with predicate pushdown on Parquet table
+    * [HIVE-13042] - OrcFiledump runs into an ArrayIndexOutOfBoundsException when running against old versions of ORC files
+    * [HIVE-13043] - Reload function has no impact to function registry
+    * [HIVE-13045] - move guava dependency back to 14 after HIVE-12952
+    * [HIVE-13047] - Disabling Web UI leads to NullPointerException
+    * [HIVE-13048] - Rogue SQL statement in an upgrade SQL file for oracle.
+    * [HIVE-13051] - Deadline class has numerous issues
+    * [HIVE-13052] - Allow tests to start MiniHS2 for manual testing
+    * [HIVE-13056] - delegation tokens do not work with HS2 when used with http transport and kerberos
+    * [HIVE-13057] - Remove duplicate copies of TableDesc property values in PartitionDesc
+    * [HIVE-13062] - Hive metastore test failing
+    * [HIVE-13064] - Serde properties are not working while expecting output in a directory
+    * [HIVE-13065] - Hive throws NPE when writing map type data to a HBase backed table
+    * [HIVE-13070] - Precommit HMS tests should run in addition to precommit normal tests, not instead of
+    * [HIVE-13077] - LLAP: Scrub daemon-site.xml from client configs
+    * [HIVE-13079] - LLAP: Allow reading log4j properties from default JAR resources
+    * [HIVE-13082] - Enable constant propagation optimization in query with left semi join
+    * [HIVE-13083] - Writing HiveDecimal to ORC can wrongly suppress present stream
+    * [HIVE-13084] - Vectorization add support for PROJECTION Multi-AND/OR
+    * [HIVE-13086] - LLAP: Programmatically initialize log4j2 to print out the properties location
+    * [HIVE-13087] - LLAP: Print STW pause time and useful application time
+    * [HIVE-13089] - Rounding in Stats for equality expressions
+    * [HIVE-13090] - Hive metastore crashes on NPE with ZooKeeperTokenStore
+    * [HIVE-13093] - hive metastore does not exit on start failure
+    * [HIVE-13094] - CBO: Assertion error  in Case expression
+    * [HIVE-13096] - Cost to choose side table in MapJoin conversion based on cumulative cardinality
+    * [HIVE-13099] - Non-SQLOperations lead to Web UI NPE
+    * [HIVE-13100] - Revert HIVE-13015 that bundles log4j2 jars in hive-exec.jar
+    * [HIVE-13101] - NullPointerException in HiveLexer.g
+    * [HIVE-13105] - LLAP token hashCode and equals methods are incorrect
+    * [HIVE-13108] - Operators: SORT BY randomness is not safe with network partitions
+    * [HIVE-13110] - LLAP: Package log4j2 jars into Slider pkg
+    * [HIVE-13111] - Fix timestamp / interval_day_time wrong results with HIVE-9862 
+    * [HIVE-13112] - Expose Lineage information in case of CTAS
+    * [HIVE-13115] - MetaStore Direct SQL getPartitions call fail when the columns schemas for a partition are null
+    * [HIVE-13126] - Clean up MapJoinOperator properly to avoid object cache reuse with unintentional states
+    * [HIVE-13128] - NullScan fails on a secure setup
+    * [HIVE-13131] - TezWork queryName can be null after HIVE-12523
+    * [HIVE-13134] - JDBC: JDBC Standalone should not be in the lib dir by default
+    * [HIVE-13135] - LLAP: HTTPS Webservices needs trusted keystore configs
+    * [HIVE-13141] - Hive on Spark over HBase should accept parameters starting with "zookeeper.znode"
+    * [HIVE-13144] - HS2 can leak ZK ACL objects when curator retries to create the persistent ephemeral node
+    * [HIVE-13146] - OrcFile table property values are case sensitive
+    * [HIVE-13151] - Clean up UGI objects in FileSystem cache for transactions
+    * [HIVE-13153] - SessionID is appended to thread name twice
+    * [HIVE-13160] - HS2 unable to load UDFs on startup when HMS is not ready
+    * [HIVE-13163] - ORC MemoryManager thread checks are fatal, should WARN 
+    * [HIVE-13169] - HiveServer2: Support delegation token based connection when using http transport
+    * [HIVE-13174] - Remove Vectorizer noise in logs
+    * [HIVE-13175] - Disallow making external tables transactional
+    * [HIVE-13178] - Enhance ORC Schema Evolution to handle more standard data type conversions
+    * [HIVE-13184] - LLAP: DAG credentials (e.g. HBase tokens) are not passed to the tasks in Tez plugin
+    * [HIVE-13185] - orc.ReaderImp.ensureOrcFooter() method fails on small text files with IndexOutOfBoundsException
+    * [HIVE-13186] - ALTER TABLE RENAME should lowercase table name and hdfs location
+    * [HIVE-13197] - Add adapted constprog2.q and constprog_partitioner.q tests back
+    * [HIVE-13199] - NDC stopped working in LLAP logging
+    * [HIVE-13200] - Aggregation functions returning empty rows on partitioned columns
+    * [HIVE-13201] - Compaction shouldn't be allowed on non-ACID table
+    * [HIVE-13209] - metastore get_delegation_token fails with null ip address
+    * [HIVE-13210] - Revert changes in HIVE-12994 related to metastore
+    * [HIVE-13211] - normalize Hive.get overloads to go thru one path
+    * [HIVE-13213] - make DbLockManger work for non-acid resources
+    * [HIVE-13216] - ORC Reader will leave file open until GC when opening a malformed ORC file
+    * [HIVE-13217] - Replication for HoS mapjoin small file needs to respect dfs.replication.max
+    * [HIVE-13218] - LLAP: better configs part 1
+    * [HIVE-13223] - HoS  may hang for queries that run on 0 splits 
+    * [HIVE-13227] - LLAP: Change daemon initialization logs from INFO to WARN
+    * [HIVE-13232] - Aggressively drop compression buffers in ORC OutStreams
+    * [HIVE-13233] - Use min and max values to estimate better stats for comparison operators
+    * [HIVE-13236] - LLAP: token renewal interval needs to be set
+    * [HIVE-13237] - Select parquet struct field with upper case throws NPE
+    * [HIVE-13240] - GroupByOperator: Drop the hash aggregates when closing operator
+    * [HIVE-13241] - LLAP: Incremental Caching marks some small chunks as "incomplete CB"
+    * [HIVE-13242] - DISTINCT keyword is dropped by the parser for windowing
+    * [HIVE-13243] - Hive drop table on encyption zone fails for external tables
+    * [HIVE-13246] - Add log line to ORC writer to print out the file path
+    * [HIVE-13251] - hive can't read the decimal in AVRO file generated from previous version
+    * [HIVE-13255] - FloatTreeReader.nextVector is expensive 
+    * [HIVE-13260] - ReduceSinkDeDuplication throws exception when pRS key is empty
+    * [HIVE-13261] - Can not compute column stats for partition when schema evolves
+    * [HIVE-13262] - LLAP: Remove log levels from DebugUtils
+    * [HIVE-13263] - Vectorization: Unable to vectorize regexp_extract/regexp_replace " Udf: GenericUDFBridge, is not supported"
+    * [HIVE-13267] - Vectorization: Add SelectLikeStringColScalar for non-filter operations
+    * [HIVE-13269] - Simplify comparison expressions using column stats
+    * [HIVE-13283] - LLAP: make sure IO elevator is enabled by default in the daemons
+    * [HIVE-13285] - Orc concatenation may drop old files from moving to final path
+    * [HIVE-13286] - Query ID is being reused across queries
+    * [HIVE-13287] - Add logic to estimate stats for IN operator
+    * [HIVE-13291] - ORC BI Split strategy should consider block size instead of file size
+    * [HIVE-13293] - Query occurs performance degradation after enabling parallel order by for Hive on Spark
+    * [HIVE-13294] - AvroSerde leaks the connection in a case when reading schema from a url
+    * [HIVE-13296] - Add vectorized Q test with complex types showing count(*) etc work correctly
+    * [HIVE-13298] - nested join support causes undecipherable errors in SemanticAnalyzer
+    * [HIVE-13299] - Column Names trimmed of leading and trailing spaces
+    * [HIVE-13300] - Hive on spark throws exception for multi-insert with join
+    * [HIVE-13302] - direct SQL: cast to date doesn't work on Oracle
+    * [HIVE-13303] - spill to YARN directories, not tmp, when available
+    * [HIVE-13310] - Vectorized Projection Comparison Number Column to Scalar broken for !noNulls and selectedInUse
+    * [HIVE-13311] - MetaDataFormatUtils throws NPE when HiveDecimal.create is null
+    * [HIVE-13313] - TABLESAMPLE ROWS feature broken for Vectorization
+    * [HIVE-13320] - Apply HIVE-11544 to explicit conversions as well as implicit ones
+    * [HIVE-13322] - LLAP: ZK registry throws at shutdown due to slf4j trying to initialize a log4j logger
+    * [HIVE-13324] - LLAP: history log for FRAGMENT_START doesn't log DagId correctly
+    * [HIVE-13325] - Excessive logging when ORC PPD fails type conversions
+    * [HIVE-13326] - HiveServer2: Make ZK config publishing configurable
+    * [HIVE-13327] - SessionID added to HS2 threadname does not trim spaces
+    * [HIVE-13330] - ORC vectorized string dictionary reader does not differentiate null vs empty string dictionary
+    * [HIVE-13332] - support dumping all row indexes in ORC FileDump
+    * [HIVE-13333] - StatsOptimizer throws ClassCastException
+    * [HIVE-13338] - Differences in vectorized_casts.q output for vectorized and non-vectorized runs
+    * [HIVE-13339] - Vectorization: GenericUDFBetween in Projection mode 
+    * [HIVE-13340] - Vectorization: from_unixtime UDF shim
+    * [HIVE-13342] - Improve logging in llap decider and throw exception in case llap mode is all but we cannot run in llap.
+    * [HIVE-13343] - Need to disable hybrid grace hash join in llap mode except for dynamically partitioned hash join
+    * [HIVE-13346] - LLAP doesn't update metadata priority when reusing from cache; some tweaks in LRFU policy
+    * [HIVE-13361] - Orc concatenation should enforce the compression buffer size
+    * [HIVE-13372] - Hive Macro overwritten when multiple macros are used in one column
+    * [HIVE-13373] - Use most specific type for numerical constants
+    * [HIVE-13378] - LLAP help formatter is too narrow
+    * [HIVE-13379] - HIVE-12851 args do not work (slider-keytab-dir, etc.)
+    * [HIVE-13380] - Decimal should have lower precedence than double in type hierachy
+    * [HIVE-13381] - Timestamp & date should have precedence in type hierarchy than string group
+    * [HIVE-13388] - Fix inconsistent content due to Thrift changes
+    * [HIVE-13390] - HiveServer2: Add more test to ZK service discovery using MiniHS2
+    * [HIVE-13394] - Analyze table fails in tez on empty partitions/files/tables
+    * [HIVE-13395] - Lost Update problem in ACID
+    * [HIVE-13396] - LLAP: Include hadoop-metrics2.properties file LlapServiceDriver
+    * [HIVE-13401] - Kerberized HS2 with LDAP auth enabled fails kerberos/delegation token authentication
+    * [HIVE-13402] - Temporarily disable failing spark tests
+    * [HIVE-13405] - Fix Connection Leak in OrcRawRecordMerger
+    * [HIVE-13407] - Add more subtlety to TezCompiler Perf Logging
+    * [HIVE-13410] - PerfLog metrics scopes not closed if there are exceptions on HS2
+    * [HIVE-13415] - Decouple Sessions from thrift binary transport
+    * [HIVE-13417] - Some vector operators return "OP" as name
+    * [HIVE-13428] - ZK SM in LLAP should have unique paths per cluster
+    * [HIVE-13434] - BaseSemanticAnalyzer.unescapeSQLString doesn't unescape \u0000 style character literals.
+    * [HIVE-13437] - httpserver getPort does not return the actual port when attempting to use a dynamic port
+    * [HIVE-13438] - Add a service check script for llap
+    * [HIVE-13439] - JDBC: provide a way to retrieve GUID to query Yarn ATS
+    * [HIVE-13440] - remove hiveserver1 scripts and thrift generated files
+    * [HIVE-13445] - LLAP: token should encode application and cluster ids
+    * [HIVE-13446] - LLAP: set default management protocol acls to deny all
+    * [HIVE-13447] - LLAP: check ZK acls for registry and fail if they are too permissive
+    * [HIVE-13448] - LLAP: check ZK acls for ZKSM and fail if they are too permissive
+    * [HIVE-13449] - LLAP: HS2 should get the token directly, rather than from LLAP
+    * [HIVE-13458] - Heartbeater doesn't fail query when heartbeat fails
+    * [HIVE-13462] - HiveResultSetMetaData.getPrecision() fails for NULL columns
+    * [HIVE-13463] - Fix ImportSemanticAnalyzer to allow for different src/dst filesystems
+    * [HIVE-13465] - Add ZK settings to MiniLlapCluster clusterSpecificConfiguration
+    * [HIVE-13467] - Show llap info on hs2 ui when available
+    * [HIVE-13476] - HS2 ShutdownHookManager holds extra of Driver instance in nested compile
+    * [HIVE-13480] - Add hadoop2 metrics reporter for Codahale metrics
+    * [HIVE-13485] - Session id appended to thread name multiple times.
+    * [HIVE-13487] - Finish time is wrong when perflog is missing SUBMIT_TO_RUNNING
+    * [HIVE-13488] - Restore dag summary when tez exec print summary enabled and in-place updates disabled
+    * [HIVE-13491] - Testing  : log thread stacks when metastore fails to start
+    * [HIVE-13492] - TestMiniSparkOnYarnCliDriver.testCliDriver_index_bitmap3 is failing on master
+    * [HIVE-13493] - Fix TransactionBatchImpl.getCurrentTxnId() and mis logging fixes
+    * [HIVE-13494] - LLAP: Some metrics from daemon are not exposed to hadoop-metrics2
+    * [HIVE-13498] - cleardanglingscratchdir does not work if scratchdir is not on defaultFs
+    * [HIVE-13500] - Launching big queries fails with Out of Memory Exception
+    * [HIVE-13502] - Beeline doesnt support session parameters in JDBC URL as documentation states.
+    * [HIVE-13510] - Dynamic partitioning doesn’t work when remote metastore is used
+    * [HIVE-13512] - Make initializing dag ids in TezWork thread safe for parallel compilation
+    * [HIVE-13513] - cleardanglingscratchdir does not work in some version of HDFS
+    * [HIVE-13514] - TestClearDanglingScratchDir fail on branch-1
+    * [HIVE-13518] - Hive on Tez: Shuffle joins do not choose the right 'big' table.
+    * [HIVE-13522] - regexp_extract.q hangs on master
+    * [HIVE-13523] - Fix connection leak in ORC RecordReader and refactor for unit testing
+    * [HIVE-13525] - HoS hangs when job is empty
+    * [HIVE-13527] - Using deprecated APIs in HBase client causes zookeeper connection leaks.
+    * [HIVE-13530] - Hive on Spark throws Kryo exception in some cases
+    * [HIVE-13533] - Remove AST dump
+    * [HIVE-13542] - Missing stats for tables in TPCDS performance regression suite
+    * [HIVE-13551] - Make cleardanglingscratchdir work on Windows
+    * [HIVE-13552] - Templeton job does not write out log files on InterruptedException
+    * [HIVE-13553] - CTE with upperCase alias throws exception
+    * [HIVE-13561] - HiveServer2 is leaking ClassLoaders when add jar / temporary functions are used
+    * [HIVE-13568] - Add UDFs to support column-masking
+    * [HIVE-13570] - Some queries with Union all fail when CBO is off
+    * [HIVE-13572] - Redundant setting full file status in Hive::copyFiles
+    * [HIVE-13585] - Add counter metric for direct sql failures
+    * [HIVE-13588] - NPE is thrown from MapredLocalTask.executeInChildVM
+    * [HIVE-13592] - metastore calls map is not thread safe
+    * [HIVE-13596] - HS2 should be able to get UDFs on demand from metastore
+    * [HIVE-13597] - revert HIVE-12892
+    * [HIVE-13598] - Describe extended table should show the primary keys/foreign keys associated with the table
+    * [HIVE-13602] - TPCH q16 return wrong result when CBO is on
+    * [HIVE-13608] - We should provide better error message while constraints with duplicate names are created
+    * [HIVE-13609] - Fix UDTFs to allow local fetch task to fetch rows forwarded by GenericUDTF.close()
+    * [HIVE-13618] - Trailing spaces in partition column will be treated differently
+    * [HIVE-13619] - Bucket map join plan is incorrect
+    * [HIVE-13621] - compute stats in certain cases fails with NPE
+    * [HIVE-13622] - WriteSet tracking optimizations
+    * [HIVE-13628] - Support for permanent functions - error handling if no restart
+    * [HIVE-13632] - Hive failing on insert empty array into parquet table
+    * [HIVE-13642] - Update GUESS_FIELDS option in .reviewboardrc to support current version of RBTools.
+    * [HIVE-13645] - Beeline needs null-guard around hiveVars and hiveConfVars read
+    * [HIVE-13646] - make hive.optimize.sort.dynamic.partition compatible with ACID tables
+    * [HIVE-13653] - improve config error messages for LLAP cache size/etc
+    * [HIVE-13656] - need to set direct memory limit higher in LlapServiceDriver for certain edge case configurations
+    * [HIVE-13657] - Spark driver stderr logs should appear in hive client logs
+    * [HIVE-13659] - An empty where condition leads to vectorization exceptions instead of throwing a compile time error
+    * [HIVE-13669] - LLAP: io.enabled config is ignored on the server side
+    * [HIVE-13671] - Add PerfLogger to log4j2.properties logger
+    * [HIVE-13676] - Tests failing because metastore doesn't come up
+    * [HIVE-13682] - EOFException with fast hashtable
+    * [HIVE-13683] - Remove erroneously included patch file
+    * [HIVE-13686] - TestRecordReaderImpl is deleting target/tmp causing all the tests after it to fail
+    * [HIVE-13691] - No record with CQ_ID=0 found in COMPACTION_QUEUE
+    * [HIVE-13693] - Multi-insert query drops Filter before file output when there is a.val <> b.val
+    * [HIVE-13699] - Make JavaDataModel#get thread safe for parallel compilation
+    * [HIVE-13700] - TestHiveOperationType is failing on master
+    * [HIVE-13701] - LLAP: Use different prefix for llap task scheduler metrics
+    * [HIVE-13705] - Insert into table removes existing data
+    * [HIVE-13710] - LLAP registry ACL check causes error due to namespacing
+    * [HIVE-13712] - LLAP: LlapServiceDriver should package hadoop-metrics2-llapdaemon.properties when available
+    * [HIVE-13719] - TestConverters fails on master
+    * [HIVE-13720] - TestLlapTaskCommunicator fails on master
+    * [HIVE-13728] - TestHBaseSchemaTool fails on master
+    * [HIVE-13729] - FileSystem$Cache leaks in FileUtils.checkFileAccessWithImpersonation
+    * [HIVE-13730] - Avoid double spilling the same partition when memory threshold is set very low
+    * [HIVE-13743] - Data move codepath is broken with hive (2.1.0-SNAPSHOT)
+    * [HIVE-13751] - LlapOutputFormatService should have a configurable send buffer size
+    * [HIVE-13753] - Make metastore client thread safe in DbTxnManager
+    * [HIVE-13767] - Wrong type inferred in Semijoin condition leads to AssertionError
+    * [HIVE-13784] - Hive Metastore start failed on Oracle DB
+    * [HIVE-13787] - LLAP: bug in recent security patches (wrong argument order; using full user name in id)
+    * [HIVE-13810] - insert overwrite select from some table fails throwing org.apache.hadoop.security.AccessControlException
+    * [HIVE-13818] - Fast Vector MapJoin Long hashtable has to handle all integral types
+    * [HIVE-13821] - OrcSplit groups all delta files together into a single split
+    * [HIVE-13823] - Remove unnecessary log line in common join operator
+    * [HIVE-13826] - Make VectorUDFAdaptor work for GenericUDFBetween when used as FILTER
+    * [HIVE-13831] - Error pushing predicates to HBase storage handler
+    * [HIVE-13832] - Add missing license header to files
+    * [HIVE-13837] - current_timestamp() output format is different in some cases
+    * [HIVE-13840] - Orc split generation is reading file footers twice
+    * [HIVE-13841] - Orc split generation returns different strategies with cache enabled vs disabled
+    * [HIVE-13844] - Invalid index handler in org.apache.hadoop.hive.ql.index.HiveIndex class
+    * [HIVE-13845] - Delete beeline/pom.xml.orig
+    * [HIVE-13849] - Wrong plan for hive.optimize.sort.dynamic.partition=true
+    * [HIVE-13856] - Fetching transaction batches during ACID streaming against Hive Metastore using Oracle DB fails
+    * [HIVE-13857] - insert overwrite select from some table fails throwing org.apache.hadoop.security.AccessControlException - II
+    * [HIVE-13858] - LLAP: A preempted task can end up waiting on completeInitialization if some part of the executing code suppressed the interrupt
+    * [HIVE-13859] - mask() UDF not retaining day and month field values
+    * [HIVE-13861] - Fix up nullability issue that might be created by pull up constants rules
+    * [HIVE-13863] - Improve AnnotateWithStatistics with support for cartesian product
+    * [HIVE-13867] - restore HiveAuthorizer interface changes
+    * [HIVE-13870] - Decimal vector is not resized correctly
+    * [HIVE-13876] - Vectorization: Port HIVE-11544 to LazySimpleDeserializeRead
+    * [HIVE-13885] - Hive session close is not resetting thread name
+    * [HIVE-13927] - Adding missing header to Java files
 
 
 
 
 
-** 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.
 
+** Improvement
+    * [HIVE-4570] - More information to user on GetOperationStatus in Hive Server2 when query is still executing
+    * [HIVE-4924] - JDBC: Support query timeout for jdbc
+    * [HIVE-5370] - format_number udf should take user specifed format as argument
+    * [HIVE-6535] - JDBC: provide an async API to execute query and fetch results
+    * [HIVE-10115] - HS2 running on a Kerberized cluster should offer Kerberos(GSSAPI) and Delegation token(DIGEST) when alternate authentication is enabled
+    * [HIVE-10249] - ACID: show locks should show who the lock is waiting for
+    * [HIVE-10468] - Create scripts to do metastore upgrade tests on jenkins for Oracle DB.
+    * [HIVE-10982] - Customizable the value of  java.sql.statement.setFetchSize in Hive JDBC Driver
+    * [HIVE-11424] - Rule to transform OR clauses into IN clauses in CBO
+    * [HIVE-11483] - Add encoding and decoding for query string config
+    * [HIVE-11487] - Add getNumPartitionsByFilter api in metastore api
+    * [HIVE-11752] - Pre-materializing complex CTE queries
+    * [HIVE-11793] - SHOW LOCKS with DbTxnManager ignores filter options
+    * [HIVE-11956] - SHOW LOCKS should indicate what acquired the lock
+    * [HIVE-12431] - Support timeout for compile lock
+    * [HIVE-12439] - CompactionTxnHandler.markCleaned() and TxnHandler.openTxns() misc improvements
+    * [HIVE-12467] - Add number of dynamic partitions to error message
+    * [HIVE-12481] - Occasionally "Request is a replay" will be thrown from HS2
+    * [HIVE-12515] - Clean the SparkCounters related code after remove counter based stats collection[Spark Branch]
+    * [HIVE-12541] - SymbolicTextInputFormat should supports the path with regex
+    * [HIVE-12545] - Add sessionId and queryId logging support for methods like getCatalogs in HiveSessionImpl class
+    * [HIVE-12595] - [REFACTOR] Make physical compiler more type safe
+    * [HIVE-12611] - Make sure spark.yarn.queue is effective and takes the value from mapreduce.job.queuename if given [Spark Branch]
+    * [HIVE-12637] - make retryable SQLExceptions in TxnHandler configurable
+    * [HIVE-12653] - The property  "serialization.encoding" in the class "org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe" does not work
+    * [HIVE-12763] - Use bit vector to track NDV
+    * [HIVE-12776] - Add parse utility method for parsing any stand-alone HQL expression
+    * [HIVE-12777] - Add capability to restore session in CLIService and SessionManager
+    * [HIVE-12787] - Trace improvement - Inconsistent logging upon shutdown-start of the Hive metastore process
+    * [HIVE-12811] - Name yarn application name more meaning than just "Hive on Spark"
+    * [HIVE-12839] - Upgrade Hive to Calcite 1.6
+    * [HIVE-12897] - Improve dynamic partition loading
+    * [HIVE-12902] - Refactor TxnHandler to be an interface
+    * [HIVE-12907] - Improve dynamic partition loading - II
+    * [HIVE-12908] - Improve dynamic partition loading III
+    * [HIVE-12935] - LLAP: Replace Yarn registry with Zookeeper registry
+    * [HIVE-12942] - Remove Yarn WebApps from LLAP daemon instance
+    * [HIVE-12946] - alter table should also add default scheme and authority for the location similar to create table 
+    * [HIVE-12950] - get rid of the NullScan emptyFile madness
+    * [HIVE-12953] - Update description of hive.ppd.remove.duplicatefilters in HiveConf.java
+    * [HIVE-12958] - Make embedded Jetty server more configurable
+    * [HIVE-12959] - LLAP: Add task scheduler timeout when no nodes are alive
+    * [HIVE-12967] - Change LlapServiceDriver to read a properties file instead of llap-daemon-site
+    * [HIVE-12968] - genNotNullFilterForJoinSourcePlan: needs to merge predicates into the multi-AND
+    * [HIVE-12970] - Add total open connections in HiveServer2
+    * [HIVE-12983] - Provide a builtin function to get Hive version
+    * [HIVE-12988] - Improve dynamic partition loading IV
+    * [HIVE-13027] - Configuration changes to improve logging performance
+    * [HIVE-13033] - SPDO unnecessarily duplicates columns in key & value of mapper output
+    * [HIVE-13034] - Add jdeb plugin to build debian
+    * [HIVE-13040] - Handle empty bucket creations more efficiently 
+    * [HIVE-13044] - Enable TLS encryption to HMS backend database
+    * [HIVE-13054] - LLAP: disable permanent fns by default (for now)
+    * [HIVE-13058] - Add session and operation_log directory deletion messages
+    * [HIVE-13063] - Create UDFs for CHR and REPLACE 
+    * [HIVE-13069] - Enable cartesian product merging
+    * [HIVE-13102] - CBO: Reduce operations in Calcite do not fold as tight as rule-based folding
+    * [HIVE-13106] - STARTUP_MSG and SHUTDOWN_MSG are added to HiveMetaStore
+    * [HIVE-13107] - LLAP: Rotate GC logs periodically to prevent full disks
+    * [HIVE-13116] - LLAP: allow ignoring the UDF check during compile time
+    * [HIVE-13118] - add some logging to LLAP token related paths
+    * [HIVE-13120] - propagate doAs when generating ORC splits
+    * [HIVE-13122] - LLAP: simple Model/View separation for UI
+    * [HIVE-13156] - Allow specifying the name of the queue in which llap will run
+    * [HIVE-13179] - Allow custom HiveConf to be passed to Authentication Providers
+    * [HIVE-13183] - More logs in operation logs
+    * [HIVE-13196] - UDFLike: reduce Regex NFA sizes
+    * [HIVE-13204] - Vectorization: Add ChainedCheckerFactory for LIKE 
+    * [HIVE-13206] - Create a test-sources.jar when -Psources profile is invoked
+    * [HIVE-13222] - Move rc-file-v0.rc used on TestRCFile.java to src/test/resources
+    * [HIVE-13226] - Improve tez print summary to print query execution breakdown
+    * [HIVE-13249] - Hard upper bound on number of open transactions
+    * [HIVE-13295] - Improvement to LDAP search queries in HS2 LDAP Authenticator
+    * [HIVE-13319] - Propagate external handles in task display
+    * [HIVE-13352] - Seems unnecessary for HBase tests to call QTestUtil.tearDown to close zookeeper and others.
+    * [HIVE-13354] - Add ability to specify Compaction options per table and per request
+    * [HIVE-13363] - Add hive.metastore.token.signature property to HiveConf
+    * [HIVE-13364] - Allow llap to work with dynamic ports for rpc, shuffle, ui
+    * [HIVE-13365] - Change the MiniLLAPCluster to work with a MiniZKCluster
+    * [HIVE-13367] - Extending HPLSQL parser
+    * [HIVE-13376] - HoS emits too many logs with application state
+    * [HIVE-13398] - LLAP: Simple /status and /peers web services
+    * [HIVE-13400] - Following up HIVE-12481, add retry for Zookeeper service discovery
+    * [HIVE-13413] - add a llapstatus command line tool
+    * [HIVE-13421] - Propagate job progress in operation status
+    * [HIVE-13429] - Tool to remove dangling scratch dir
+    * [HIVE-13430] - Pass error message to failure hook
+    * [HIVE-13436] - Allow the package directory to be specified for the llap setup script
+    * [HIVE-13469] - LLAP: Support delayed scheduling for locality
+    * [HIVE-13472] - Replace primitive wrapper's valueOf method with parse* method to avoid unnecessary boxing/unboxing
+    * [HIVE-13501] - Invoke failure hooks if query fails on exception
+    * [HIVE-13509] - HCatalog getSplits should ignore the partition with invalid path
+    * [HIVE-13516] - Adding BTEQ .IF, .QUIT, ERRORCODE to HPL/SQL
+    * [HIVE-13536] - LLAP: Add metrics for task scheduler
+    * [HIVE-13559] - Pass exception to failure hooks
+    * [HIVE-13562] - Enable vector bridge for all non-vectorized udfs
+    * [HIVE-13616] - Investigate renaming a table without invalidating the column stats
+    * [HIVE-13629] - Expose Merge-File task and Column-Truncate task from DDLTask
+    * [HIVE-13643] - Various enhancements / fixes to llap cli tools
+    * [HIVE-13661] - [Refactor] Move common FS operations out of shim layer
+    * [HIVE-13666] - LLAP Provide the log url for a task attempt to display on the UI
+    * [HIVE-13670] - Improve Beeline connect/reconnect semantics
+    * [HIVE-13679] - Pass diagnostic message to failure hooks
+    * [HIVE-13681] - Update README with latest Hive functionality
+    * [HIVE-13716] - Improve dynamic partition loading V
+    * [HIVE-13726] - Improve dynamic partition loading VI
+    * [HIVE-13750] - Avoid additional shuffle stage created by Sorted Dynamic Partition Optimizer when possible
+    * [HIVE-13783] - Display a secondary prompt on beeline for multi-line statements
+    * [HIVE-13789] - Repeatedly checking configuration in TextRecordWriter/Reader hurts performance
+    * [HIVE-13799] - Optimize TableScanRule::checkBucketedTable
+    * [HIVE-13902] - [Refactor] Minimize metastore jar dependencies on task nodes
 
 
 
 ** New Feature
-    * [HIVE-15434] - Add UDF to allow interrogation of uniontype values
-    * [HIVE-15691] - Create StrictRegexWriter to work with RegexSerializer for Flume Hive Sink
-
+    * [HIVE-12270] - Add DBTokenStore support to HS2 delegation token
+    * [HIVE-12634] - Add command to kill an ACID transaction
+    * [HIVE-12730] - MetadataUpdater: provide a mechanism to edit the basic statistics of a table (or a partition)
+    * [HIVE-12878] - Support Vectorization for TEXTFILE and other formats
+    * [HIVE-12994] - Implement support for NULLS FIRST/NULLS LAST
+    * [HIVE-13029] - NVDIMM support for LLAP Cache
+    * [HIVE-13095] - Support view column authorization
+    * [HIVE-13125] - Support masking and filtering of rows/columns
+    * [HIVE-13307] - LLAP: Slider package should contain permanent functions
+    * [HIVE-13418] - HiveServer2 HTTP mode should support X-Forwarded-Host header for authorization/audits
+    * [HIVE-13475] - Allow aggregate functions in over clause
+    * [HIVE-13736] - View's input/output formats are TEXT by default
 
 
 
@@ -89,12 +589,43 @@ Release Notes - Hive - Version 2.3.0
 
 
 
+** Task
+    * [HIVE-12205] - Spark: unify spark statististics aggregation between local and remote spark client
+    * [HIVE-12796] - Switch to 32-bits containers for HMS upgrade tests
+    * [HIVE-12828] - Update Spark version to 1.6
+    * [HIVE-12836] - Install wget & curl packages on LXC containers for HMS upgrade tests
+    * [HIVE-12940] - Cherry pick spark branch to master
+    * [HIVE-12987] - Add metrics for HS2 active users and SQL operations
+    * [HIVE-13097] - [Umbrella] Changes dependent on Tez 0.8.3
+    * [HIVE-13188] - Allow users of RetryingThriftClient to close transport
+    * [HIVE-13234] - Remove dead ODBC driver from Hive
+    * [HIVE-13385] - [Cleanup] Streamline Beeline instantiation
+    * [HIVE-13393] - Beeline: Print help message for the --incremental option
+    * [HIVE-13431] - Improvements to LLAPTaskReporter
+    * [HIVE-13433] - Fixes for additional incompatible changes in tez-0.8.3
+    * [HIVE-13537] - Update slf4j version to 1.7.10
+    * [HIVE-13603] - Fix ptest unit tests broken by HIVE13505
+    * [HIVE-13800] - Disable auth enabled by default on LLAP UI for secure clusters
+    * [HIVE-13835] - TestMiniTezCliDriver.vector_complex_all.q needs golden file update
 
 
 ** 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
+    * [HIVE-9147] - Add unit test for HIVE-7323
+    * [HIVE-11615] - Create test for max thrift message setting
+    * [HIVE-11887] - some tests break the build on a shared machine, can break HiveQA
+    * [HIVE-12079] - Add units tests for HiveServer2 LDAP filters added in HIVE-7193
+    * [HIVE-12279] - Testcase to verify session temporary files are removed after HIVE-11768
+    * [HIVE-12600] - Make index tests more robust
+    * [HIVE-12621] - PTest Backup additional Tez/Spark logs
+    * [HIVE-12628] - Eliminate flakiness in TestMetrics
+    * [HIVE-12715] - Unit test for HIVE-10685 fix
+    * [HIVE-12956] - run CBO in tests with mapred.mode=strict
+    * [HIVE-13055] - Add unit tests for HIVE-11512
+    * [HIVE-13268] - Add a HA mini cluster type in MiniHS2
+    * [HIVE-13371] - Fix test failure of testHasNull in TestColumnStatistics running on Windows
+    * [HIVE-13591] - TestSchemaTool is failing on master
+    * [HIVE-13615] - nomore_ambiguous_table_col.q is failing on master
+
 
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/pom.xml
----------------------------------------------------------------------
diff --git a/accumulo-handler/pom.xml b/accumulo-handler/pom.xml
index edac1b1..d22a54c 100644
--- a/accumulo-handler/pom.xml
+++ b/accumulo-handler/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.apache.hive</groupId>
     <artifactId>hive</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -62,16 +62,6 @@
       <groupId>org.apache.hive</groupId>
       <artifactId>hive-common</artifactId>
       <version>${project.version}</version>
-        <exclusions>
-            <exclusion>
-                <groupId>org.eclipse.jetty.aggregate</groupId>
-                <artifactId>jetty-all</artifactId>
-            </exclusion>
-            <exclusion>
-                <groupId>org.eclipse.jetty.orbit</groupId>
-                <artifactId>javax.servlet</artifactId>
-            </exclusion>
-        </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.hive</groupId>
@@ -87,16 +77,6 @@
       <groupId>org.apache.hive</groupId>
       <artifactId>hive-service</artifactId>
       <version>${project.version}</version>
-        <exclusions>
-            <exclusion>
-                <groupId>org.eclipse.jetty.aggregate</groupId>
-                <artifactId>jetty-all</artifactId>
-            </exclusion>
-            <exclusion>
-                <groupId>org.eclipse.jetty.orbit</groupId>
-                <artifactId>javax.servlet</artifactId>
-            </exclusion>
-        </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.hive</groupId>

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloDefaultIndexScanner.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloDefaultIndexScanner.java b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloDefaultIndexScanner.java
deleted file mode 100644
index 427a6c7..0000000
--- a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloDefaultIndexScanner.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.accumulo;
-
-import org.apache.accumulo.core.client.AccumuloException;
-import org.apache.accumulo.core.client.AccumuloSecurityException;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.TableNotFoundException;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Range;
-import org.apache.accumulo.core.data.Value;
-import org.apache.accumulo.core.security.Authorizations;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.accumulo.serde.AccumuloIndexParameters;
-import org.apache.hadoop.hive.accumulo.serde.AccumuloSerDeParameters;
-import org.apache.hadoop.hive.serde.serdeConstants;
-import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static java.util.Collections.EMPTY_SET;
-
-/**
- * This default index scanner expects indexes to be in the same format as presto's
- * accumulo index tables defined as:
- * [rowid=field value] [cf=cfname_cqname] [cq=rowid] [visibility] [value=""]
- * <p>
- * This handler looks for the following hive serde properties:
- * 'accumulo.indextable.name' = 'table_idx' (required - name of the corresponding index table)
- * 'accumulo.indexed.columns' = 'name,age,phone' (optional - comma separated list of indexed
- *                      hive columns if not defined or defined as '*' all columns are
- *                      assumed to be indexed )
- * 'accumulo.index.rows.max' = '20000' (optional - maximum number of match indexes to use
- *                      before converting to a full table scan default=20000'
- *                      Note: This setting controls the size of the in-memory list of rowids
- *                      each search predicate. Using large values for this setting or having
- *                      very large rowid values may require additional memory to prevent
- *                      out of memory errors
- * 'accumulo.index.scanner'  = 'org.apache.hadoop.hive.accumulo.AccumuloDefaultIndexScanner'
- *                      (optional - name of the index scanner)
- * <p>
- * To implement your own index table scheme it should be as simple as sub-classing
- * this class and overriding getIndexRowRanges() and optionally init() if you need more
- * config settings
- */
-public class AccumuloDefaultIndexScanner implements AccumuloIndexScanner {
-  private static final Logger LOG = LoggerFactory.getLogger(AccumuloDefaultIndexScanner.class);
-
-  private AccumuloConnectionParameters connectParams;
-  private AccumuloIndexParameters indexParams;
-  private int maxRowIds;
-  private Authorizations auths;
-  private String indexTable;
-  private Set<String> indexColumns = EMPTY_SET;
-  private Connector connect;
-  private Map<String, String> colMap;
-
-  /**
-   * Initialize object based on configuration.
-   *
-   * @param conf - Hive configuration
-   */
-  @Override
-  public void init(Configuration conf) {
-    connectParams = new AccumuloConnectionParameters(conf);
-    indexParams = new AccumuloIndexParameters(conf);
-    maxRowIds = indexParams.getMaxIndexRows();
-    auths = indexParams.getTableAuths();
-    indexTable = indexParams.getIndexTable();
-    indexColumns = indexParams.getIndexColumns();
-    colMap = createColumnMap(conf);
-
-  }
-
-  /**
-   * Get a list of rowid ranges by scanning a column index.
-   *
-   * @param column     - the hive column name
-   * @param indexRange - Key range to scan on the index table
-   * @return List of matching rowid ranges or null if too many matches found
-   * if index values are not found a newline range is added to list to
-   * short-circuit the query
-   */
-  @Override
-  public List<Range> getIndexRowRanges(String column, Range indexRange) {
-    List<Range> rowIds = new ArrayList<Range>();
-    Scanner scan = null;
-    String col = this.colMap.get(column);
-
-    if (col != null) {
-
-      try {
-        LOG.debug("Searching tab=" + indexTable + " column=" + column + " range=" + indexRange);
-        Connector conn = getConnector();
-        scan = conn.createScanner(indexTable, auths);
-        scan.setRange(indexRange);
-        Text cf = new Text(col);
-        LOG.debug("Using Column Family=" + toString());
-        scan.fetchColumnFamily(cf);
-
-        for (Map.Entry<Key, Value> entry : scan) {
-
-          rowIds.add(new Range(entry.getKey().getColumnQualifier()));
-
-          // if we have too many results return null for a full scan
-          if (rowIds.size() > maxRowIds) {
-            return null;
-          }
-        }
-
-        // no hits on the index so return a no match range
-        if (rowIds.isEmpty()) {
-          LOG.debug("Found 0 index matches");
-        } else {
-          LOG.debug("Found " + rowIds.size() + " index matches");
-        }
-
-        return rowIds;
-      } catch (AccumuloException | AccumuloSecurityException | TableNotFoundException e) {
-        LOG.error("Failed to scan index table: " + indexTable, e);
-      } finally {
-        if (scan != null) {
-          scan.close();
-        }
-      }
-    }
-
-    // assume the index is bad and do a full scan
-    LOG.debug("Index lookup failed for table " + indexTable);
-    return null;
-  }
-
-  /**
-   * Test if column is defined in the index table.
-   *
-   * @param column - hive column name
-   * @return true if the column is defined as part of the index table
-   */
-  @Override
-  public boolean isIndexed(String column) {
-    return indexTable != null
-        && (indexColumns.isEmpty() || indexColumns.contains("*")
-        || this.indexColumns.contains(column.toLowerCase())
-        || this.indexColumns.contains(column.toUpperCase()));
-
-  }
-
-  protected Map<String, String> createColumnMap(Configuration conf) {
-    Map<String, String> colsMap = new HashMap<String, String>();
-    String accColString = conf.get(AccumuloSerDeParameters.COLUMN_MAPPINGS);
-    if (accColString != null && !accColString.trim().isEmpty()) {
-      String[] accCols = accColString.split(",");
-      String[] hiveCols = conf.get(serdeConstants.LIST_COLUMNS).split(",");
-      for (int i = 0; i < accCols.length; i++) {
-        colsMap.put(hiveCols[i], accCols[i].replace(':', '_'));
-      }
-    }
-    return colsMap;
-  }
-
-  protected Connector getConnector() throws AccumuloSecurityException, AccumuloException {
-    if (connect == null) {
-      connect = connectParams.getConnector();
-    }
-    return connect;
-  }
-
-  public void setConnectParams(AccumuloConnectionParameters connectParams) {
-    this.connectParams = connectParams;
-  }
-
-  public AccumuloConnectionParameters getConnectParams() {
-    return connectParams;
-  }
-
-  public AccumuloIndexParameters getIndexParams() {
-    return indexParams;
-  }
-
-  public int getMaxRowIds() {
-    return maxRowIds;
-  }
-
-  public Authorizations getAuths() {
-    return auths;
-  }
-
-  public String getIndexTable() {
-    return indexTable;
-  }
-
-  public Set<String> getIndexColumns() {
-    return indexColumns;
-  }
-
-  public Connector getConnect() {
-    return connect;
-  }
-}

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexLexicoder.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexLexicoder.java b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexLexicoder.java
deleted file mode 100644
index 4ad35f8..0000000
--- a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexLexicoder.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.accumulo;
-
-import org.apache.accumulo.core.client.lexicoder.BigIntegerLexicoder;
-import org.apache.accumulo.core.client.lexicoder.DoubleLexicoder;
-import org.apache.accumulo.core.client.lexicoder.IntegerLexicoder;
-import org.apache.accumulo.core.client.lexicoder.LongLexicoder;
-import org.apache.hadoop.hive.serde.serdeConstants;
-
-import java.math.BigInteger;
-import java.nio.ByteBuffer;
-
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-/**
- * Utility class to encode index values for accumulo.
- */
-public final class AccumuloIndexLexicoder {
-  private static final IntegerLexicoder INTEGER_LEXICODER = new IntegerLexicoder();
-  private static final DoubleLexicoder DOUBLE_LEXICODER = new DoubleLexicoder();
-  private static final LongLexicoder LONG_LEXICODER = new LongLexicoder();
-  private static final BigIntegerLexicoder BIG_INTEGER_LEXICODER = new BigIntegerLexicoder();
-  private static final String DIM_PAT = "[(]+.*";
-
-
-  private AccumuloIndexLexicoder() {
-    // hide constructor
-  }
-
-  public static String getRawType(String hiveType) {
-    if (hiveType != null) {
-      return hiveType.toLowerCase().replaceFirst(DIM_PAT, "").trim();
-    }
-    return hiveType;
-  }
-
-  public static byte[] encodeValue(byte[] value, String hiveType, boolean stringEncoded) {
-    if (stringEncoded) {
-      return encodeStringValue(value, hiveType);
-    } else {
-      return encodeBinaryValue(value, hiveType);
-    }
-  }
-
-  public static byte[] encodeStringValue(byte[] value, String hiveType) {
-    String rawType = getRawType(hiveType);
-
-    switch(rawType) {
-      case serdeConstants.BOOLEAN_TYPE_NAME:
-        return Boolean.valueOf(new String(value)).toString().getBytes(UTF_8);
-      case serdeConstants.SMALLINT_TYPE_NAME :
-      case serdeConstants.TINYINT_TYPE_NAME :
-      case serdeConstants.INT_TYPE_NAME :
-        return INTEGER_LEXICODER.encode(Integer.valueOf(new String(value)));
-      case serdeConstants.FLOAT_TYPE_NAME :
-      case serdeConstants.DOUBLE_TYPE_NAME :
-        return DOUBLE_LEXICODER.encode(Double.valueOf(new String(value)));
-      case serdeConstants.BIGINT_TYPE_NAME :
-        return BIG_INTEGER_LEXICODER.encode(new BigInteger(new String(value), 10));
-      case serdeConstants.DECIMAL_TYPE_NAME :
-        return new String(value).getBytes(UTF_8);
-      default :
-        // return the passed in string value
-        return value;
-    }
-  }
-
-  public static byte[] encodeBinaryValue(byte[] value, String hiveType) {
-    String rawType = getRawType(hiveType);
-
-    switch(rawType) {
-      case serdeConstants.BOOLEAN_TYPE_NAME :
-        return String.valueOf(value[0] == 1).getBytes();
-      case serdeConstants.INT_TYPE_NAME :
-        return INTEGER_LEXICODER.encode(ByteBuffer.wrap(value).asIntBuffer().get());
-      case serdeConstants.SMALLINT_TYPE_NAME :
-        return INTEGER_LEXICODER.encode((int)(ByteBuffer.wrap(value).asShortBuffer().get()));
-      case serdeConstants.TINYINT_TYPE_NAME :
-        return INTEGER_LEXICODER.encode((int)value[0]);
-      case serdeConstants.FLOAT_TYPE_NAME :
-        return DOUBLE_LEXICODER.encode((double)ByteBuffer.wrap(value).asFloatBuffer().get());
-      case serdeConstants.DOUBLE_TYPE_NAME :
-        return DOUBLE_LEXICODER.encode(ByteBuffer.wrap(value).asDoubleBuffer().get());
-      case serdeConstants.BIGINT_TYPE_NAME :
-        return BIG_INTEGER_LEXICODER.encode(new BigInteger(value));
-      case serdeConstants.DECIMAL_TYPE_NAME :
-        return new String(value).getBytes(UTF_8);
-      default :
-        return value;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScanner.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScanner.java b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScanner.java
deleted file mode 100644
index 8029f3c..0000000
--- a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScanner.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.accumulo;
-
-import org.apache.accumulo.core.data.Range;
-import org.apache.hadoop.conf.Configuration;
-
-import java.util.List;
-
-/**
- * Specification for implementing a AccumuloIndexScanner.
- */
-public interface AccumuloIndexScanner {
-
-  /**
-   * Initialize the index scanner implementation with the runtime configuration.
-   *
-   * @param conf  - the hadoop configuration
-   */
-  void init(Configuration conf);
-
-  /**
-   * Check if column is defined as being indexed.
-   *
-   * @param columnName - the hive column name
-   * @return true if the column is indexed
-   */
-  boolean isIndexed(String columnName);
-
-  /**
-   * Get a list of rowid ranges by scanning a column index.
-   *
-   * @param column     - the hive column name
-   * @param indexRange - Key range to scan on the index table
-   * @return List of matching rowid ranges or null if too many matches found
-   *
-   */
-  List<Range> getIndexRowRanges(String column, Range indexRange);
-
-}

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScannerException.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScannerException.java b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScannerException.java
deleted file mode 100644
index c50b606..0000000
--- a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloIndexScannerException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.accumulo;
-
-/**
- * Exception class for AccumuloIndexScanner operations.
- */
-public class AccumuloIndexScannerException extends Exception {
-
-  private static final long serialVersionUID = 1L;
-
-  public AccumuloIndexScannerException() {
-    super();
-  }
-
-  public AccumuloIndexScannerException(String msg) {
-    super(msg);
-  }
-
-  public AccumuloIndexScannerException(String msg, Throwable cause) {
-    super(msg, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloStorageHandler.java
----------------------------------------------------------------------
diff --git a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloStorageHandler.java b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloStorageHandler.java
index 62524e8..cdbc7f2 100644
--- a/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloStorageHandler.java
+++ b/accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/AccumuloStorageHandler.java
@@ -1,11 +1,10 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
@@ -18,6 +17,10 @@
 
 package org.apache.hadoop.hive.accumulo;
 
+import java.io.IOException;
+import java.util.Map;
+import java.util.Properties;
+
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.Connector;
@@ -36,7 +39,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hive.accumulo.mr.HiveAccumuloTableInputFormat;
 import org.apache.hadoop.hive.accumulo.mr.HiveAccumuloTableOutputFormat;
 import org.apache.hadoop.hive.accumulo.predicate.AccumuloPredicateHandler;
-import org.apache.hadoop.hive.accumulo.serde.AccumuloIndexParameters;
 import org.apache.hadoop.hive.accumulo.serde.AccumuloSerDe;
 import org.apache.hadoop.hive.accumulo.serde.AccumuloSerDeParameters;
 import org.apache.hadoop.hive.metastore.HiveMetaHook;
@@ -50,13 +52,13 @@ import org.apache.hadoop.hive.ql.metadata.HiveStoragePredicateHandler;
 import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
 import org.apache.hadoop.hive.ql.plan.TableDesc;
 import org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider;
-import org.apache.hadoop.hive.serde.serdeConstants;
-import org.apache.hadoop.hive.serde2.AbstractSerDe;
 import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.AbstractSerDe;
 import org.apache.hadoop.hive.serde2.SerDeException;
 import org.apache.hadoop.mapred.InputFormat;
 import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapred.OutputFormat;
+import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.security.token.Token;
 import org.apache.hadoop.security.token.TokenIdentifier;
 import org.apache.hadoop.util.StringUtils;
@@ -64,18 +66,12 @@ import org.apache.zookeeper.ZooKeeper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
 /**
  * Create table mapping to Accumulo for Hive. Handle predicate pushdown if necessary.
  */
 public class AccumuloStorageHandler extends DefaultStorageHandler implements HiveMetaHook,
     HiveStoragePredicateHandler {
-  private static final Logger LOG = LoggerFactory.getLogger(AccumuloStorageHandler.class);
+  private static final Logger log = LoggerFactory.getLogger(AccumuloStorageHandler.class);
   private static final String DEFAULT_PREFIX = "default";
 
   protected AccumuloPredicateHandler predicateHandler = AccumuloPredicateHandler.getInstance();
@@ -92,7 +88,7 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
    *          Properties that will be added to the JobConf by Hive
    */
   @Override
-  public void configureTableJobProperties(TableDesc desc, Map<String, String> jobProps) {
+  public void configureTableJobProperties(TableDesc desc, Map<String,String> jobProps) {
     // Should not be getting invoked, configureInputJobProperties or configureOutputJobProperties
     // should be invoked instead.
     configureInputJobProperties(desc, jobProps);
@@ -123,21 +119,6 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
     }
   }
 
-  protected String getIndexTableName(Table table) {
-    // Use TBLPROPERTIES
-    String idxTableName = table.getParameters().get(AccumuloIndexParameters.INDEXTABLE_NAME);
-
-    if (null != idxTableName) {
-      return idxTableName;
-    }
-
-    // Then try SERDEPROPERTIES
-    idxTableName = table.getSd().getSerdeInfo().getParameters()
-        .get(AccumuloIndexParameters.INDEXTABLE_NAME);
-
-    return idxTableName;
-  }
-
   protected String getTableName(TableDesc tableDesc) {
     Properties props = tableDesc.getProperties();
     String tableName = props.getProperty(AccumuloSerDeParameters.TABLE_NAME);
@@ -154,18 +135,6 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
     return tableName;
   }
 
-  protected String getColumnTypes(TableDesc tableDesc)  {
-    Properties props = tableDesc.getProperties();
-    String columnTypes = props.getProperty(serdeConstants.LIST_COLUMN_TYPES);
-    return columnTypes;
-  }
-
-  protected String getIndexTableName(TableDesc tableDesc) {
-    Properties props = tableDesc.getProperties();
-    String tableName = props.getProperty(AccumuloIndexParameters.INDEXTABLE_NAME);
-    return tableName;
-  }
-
   @Override
   public Configuration getConf() {
     return conf;
@@ -194,7 +163,7 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
   }
 
   @Override
-  public void configureInputJobProperties(TableDesc tableDesc, Map<String, String> jobProperties) {
+  public void configureInputJobProperties(TableDesc tableDesc, Map<String,String> jobProperties) {
     Properties props = tableDesc.getProperties();
 
     jobProperties.put(AccumuloSerDeParameters.COLUMN_MAPPINGS,
@@ -209,7 +178,7 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
 
     String useIterators = props.getProperty(AccumuloSerDeParameters.ITERATOR_PUSHDOWN_KEY);
     if (useIterators != null) {
-      if (!"true".equalsIgnoreCase(useIterators) && !"false".equalsIgnoreCase(useIterators)) {
+      if (!useIterators.equalsIgnoreCase("true") && !useIterators.equalsIgnoreCase("false")) {
         throw new IllegalArgumentException("Expected value of true or false for "
             + AccumuloSerDeParameters.ITERATOR_PUSHDOWN_KEY);
       }
@@ -227,15 +196,15 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
       jobProperties.put(AccumuloSerDeParameters.AUTHORIZATIONS_KEY, authValue);
     }
 
-    LOG.info("Computed input job properties of " + jobProperties);
+    log.info("Computed input job properties of " + jobProperties);
   }
 
   @Override
-  public void configureOutputJobProperties(TableDesc tableDesc, Map<String, String> jobProperties) {
+  public void configureOutputJobProperties(TableDesc tableDesc, Map<String,String> jobProperties) {
     Properties props = tableDesc.getProperties();
     // Adding these job properties will make them available to the OutputFormat in checkOutputSpecs
-    String colMap = props.getProperty(AccumuloSerDeParameters.COLUMN_MAPPINGS);
-    jobProperties.put(AccumuloSerDeParameters.COLUMN_MAPPINGS, colMap);
+    jobProperties.put(AccumuloSerDeParameters.COLUMN_MAPPINGS,
+        props.getProperty(AccumuloSerDeParameters.COLUMN_MAPPINGS));
 
     String tableName = props.getProperty(AccumuloSerDeParameters.TABLE_NAME);
     if (null == tableName) {
@@ -243,19 +212,6 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
     }
     jobProperties.put(AccumuloSerDeParameters.TABLE_NAME, tableName);
 
-    String indexTable = props.getProperty(AccumuloIndexParameters.INDEXTABLE_NAME);
-    if (null == indexTable) {
-      indexTable = getIndexTableName(tableDesc);
-    }
-
-    if ( null != indexTable) {
-      jobProperties.put(AccumuloIndexParameters.INDEXTABLE_NAME, indexTable);
-
-      String indexColumns = props.getProperty(AccumuloIndexParameters.INDEXED_COLUMNS);
-      jobProperties.put(AccumuloIndexParameters.INDEXED_COLUMNS,
-          getIndexedColFamQuals(tableDesc, indexColumns, colMap));
-    }
-
     if (props.containsKey(AccumuloSerDeParameters.DEFAULT_STORAGE_TYPE)) {
       jobProperties.put(AccumuloSerDeParameters.DEFAULT_STORAGE_TYPE,
           props.getProperty(AccumuloSerDeParameters.DEFAULT_STORAGE_TYPE));
@@ -267,42 +223,6 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
     }
   }
 
-  private String getIndexedColFamQuals(TableDesc tableDesc, String indexColumns, String colMap) {
-    StringBuilder sb = new StringBuilder();
-
-    String cols = indexColumns;
-
-
-    String hiveColString = tableDesc.getProperties().getProperty(serdeConstants.LIST_COLUMNS);
-    // if there are actual accumulo index columns defined then build
-    // the comma separated list of accumulo columns
-    if (cols == null || cols.isEmpty() || "*".equals(indexColumns)) {
-      // skip rowid
-      cols = hiveColString.substring(hiveColString.indexOf(',')+1);
-    }
-
-    String[] hiveTypes = tableDesc.getProperties()
-        .getProperty(serdeConstants.LIST_COLUMN_TYPES).split(":");
-    String[] accCols = colMap.split(",");
-    String[] hiveCols = hiveColString.split(",");
-    Set<String> indexSet = new HashSet<String>();
-
-    for (String idx : cols.split(",")) {
-      indexSet.add(idx.trim());
-    }
-
-    for (int i = 0; i < hiveCols.length; i++) {
-      if (indexSet.contains(hiveCols[i].trim())) {
-        if (sb.length() > 0) {
-          sb.append(",");
-        }
-        sb.append(accCols[i].trim() + ":" + AccumuloIndexLexicoder.getRawType(hiveTypes[i]));
-      }
-    }
-
-    return sb.toString();
-  }
-
   @SuppressWarnings("rawtypes")
   @Override
   public Class<? extends InputFormat> getInputFormatClass() {
@@ -322,7 +242,7 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
       throw new MetaException("Location can't be specified for Accumulo");
     }
 
-    Map<String, String> serdeParams = table.getSd().getSerdeInfo().getParameters();
+    Map<String,String> serdeParams = table.getSd().getSerdeInfo().getParameters();
     String columnMapping = serdeParams.get(AccumuloSerDeParameters.COLUMN_MAPPINGS);
     if (columnMapping == null) {
       throw new MetaException(AccumuloSerDeParameters.COLUMN_MAPPINGS
@@ -348,16 +268,6 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
               + " already exists in Accumulo. Use CREATE EXTERNAL TABLE to register with Hive.");
         }
       }
-
-      String idxTable = getIndexTableName(table);
-
-      if (idxTable != null && !idxTable.isEmpty()) {
-
-        // create the index table if it does not exist
-        if (!tableOpts.exists(idxTable)) {
-          tableOpts.create(idxTable);
-        }
-      }
     } catch (AccumuloSecurityException e) {
       throw new MetaException(StringUtils.stringifyException(e));
     } catch (TableExistsException e) {
@@ -426,7 +336,7 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
     if (serDe.getIteratorPushdown()) {
       return predicateHandler.decompose(conf, desc);
     } else {
-      LOG.info("Set to ignore Accumulo iterator pushdown, skipping predicate handler.");
+      log.info("Set to ignore Accumulo iterator pushdown, skipping predicate handler.");
       return null;
     }
   }
@@ -438,24 +348,22 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
       Utils.addDependencyJars(jobConf, Tracer.class, Fate.class, Connector.class, Main.class,
           ZooKeeper.class, AccumuloStorageHandler.class);
     } catch (IOException e) {
-      LOG.error("Could not add necessary Accumulo dependencies to classpath", e);
+      log.error("Could not add necessary Accumulo dependencies to classpath", e);
     }
 
     Properties tblProperties = tableDesc.getProperties();
     AccumuloSerDeParameters serDeParams = null;
     try {
-      serDeParams =
-          new AccumuloSerDeParameters(jobConf, tblProperties, AccumuloSerDe.class.getName());
+      serDeParams = new AccumuloSerDeParameters(jobConf, tblProperties, AccumuloSerDe.class.getName());
     } catch (SerDeException e) {
-      LOG.error("Could not instantiate AccumuloSerDeParameters", e);
+      log.error("Could not instantiate AccumuloSerDeParameters", e);
       return;
     }
 
     try {
       serDeParams.getRowIdFactory().addDependencyJars(jobConf);
     } catch (IOException e) {
-      LOG.error("Could not add necessary dependencies for "
-          + serDeParams.getRowIdFactory().getClass(), e);
+      log.error("Could not add necessary dependencies for " + serDeParams.getRowIdFactory().getClass(), e);
     }
 
     // When Kerberos is enabled, we have to add the Accumulo delegation token to the
@@ -475,26 +383,25 @@ public class AccumuloStorageHandler extends DefaultStorageHandler implements Hiv
               connectionParams.getAccumuloUserName(), token);
         } catch (IllegalStateException e) {
           // The implementation balks when this method is invoked multiple times
-          LOG.debug("Ignoring IllegalArgumentException about re-setting connector information");
+          log.debug("Ignoring IllegalArgumentException about re-setting connector information");
         }
         try {
           OutputConfigurator.setConnectorInfo(AccumuloOutputFormat.class, jobConf,
               connectionParams.getAccumuloUserName(), token);
         } catch (IllegalStateException e) {
           // The implementation balks when this method is invoked multiple times
-          LOG.debug("Ignoring IllegalArgumentException about re-setting connector information");
+          log.debug("Ignoring IllegalArgumentException about re-setting connector information");
         }
 
         // Convert the Accumulo token in a Hadoop token
         Token<? extends TokenIdentifier> accumuloToken = helper.getHadoopToken(token);
 
-        LOG.info("Adding Hadoop Token for Accumulo to Job's Credentials");
+        log.info("Adding Hadoop Token for Accumulo to Job's Credentials");
 
         // Add the Hadoop token to the JobConf
         helper.mergeTokenIntoJobConf(jobConf, accumuloToken);
       } catch (Exception e) {
-        throw new RuntimeException("Failed to obtain DelegationToken for "
-            + connectionParams.getAccumuloUserName(), e);
+        throw new RuntimeException("Failed to obtain DelegationToken for " + connectionParams.getAccumuloUserName(), e);
       }
     }
   }