Update to Impala v0.3 beta refresh release
Impala code refresh v0.3 -> v0.4 (pre-release version)

* Fix bug in string comparison with empty strings.
* Enable the shell to consume erros and continue for batch processing.
* Fix lpad string function.
* Fix Impala shell ignores TStatus return values
* Fix crash in TopN node with null tuples.
* import saslwrapper instead of sasl for Centos/Rhel
* Add user option to refresh catalogue after connection
* Impala build needs to work on Python 2.4 ("with" keyword not supported)
* Impala server raise exception if query_option is invalid
* Fix linker dependencies.
* print number of scanned partition and total scaned bytes
* INSERTS into unpartitioned tables should be checked for union compatibility
* Add profile counters to data stream sender/receiver.
* Change default for block-metadata enabled to use HDFS default.
* Add Twitter bootstrap to www/
* Improve debug webpage presentation
* Add arguments to webpage callbacks, and add simple fixed-size query log
* Add command line options to the shell which specified which database to use after connecting.
* Store and display results in batches for the shell to not overload memory.
* Allow webserver pages to optionally exclude themselves from navigation
* Bumping version to v0.4
* Fix planner to reject compressed text formats.
* Added missing volume id to webpage metrics.
* Added debug/release to version string.
* Added counter for number of scan ranges per file format/compression type.
* Add the ability to store cross session command history in the shell.
* Fix race condition in opcode registry.
* The shell should display verbose output by default. Add a flag to disable.
* Fix limit issue in exchange node.
* Fix codegen handling of \N (null) for non-string columns.
Impala code refresh v0.4 (pre-release version) -> v0.4

* Fix hdfs-scan-node deadlock.

  row_batches_lock_ should be taken after lock_. But in this bug, we took
  row_batches_lock_ first.

* Fix race condition due to misuse of shared_ptr in StreamControlBlock.
* Removing uses of perf-counters code (will not work on RHEL 5 kernel)
* Fix race condition in opcode registry initialize.
* Add CURRENT_TIMESTAMP() function as synonym for now()
* Fix leak of open hdfs files during cancellation.
* Fix race condition in scanners/scan-node.
* Fix hang for queries when the limit is first reached by the coordinator.

  Remote fragments are waiting for the coordinator to pump rows but the coordinator
  decided it was done.  This caused remote fragments to hang.  The coordinator was
  in turn waiting for the remote fragments to finish.

* Improved metrics for tracking impalad resource utilization.
* Move sparrow/ to statestore/ and remove sparrow namespace
* Added start/end query time to debug webpage.
* Add build option to enable address sanitizer.
* impala-shell calls PingImpalaService thrift API to verify the server is an impalad.
* IMPALA-14: Files with .gz extension reported as 'not supported'
* Use recompiled, relocatable static libraries when they are available
Update from v0.4 to v0.5 (pre-release version)

* Adding block location cache to HdfsTable in order to speed up getBlockMetadata().
  - we're now pre-computing and caching the result of HdfsTable.getBlockMetadata() on a per-partition basis
  - to make the cache more compact, we're collecting pools of unique strings:
    file names are collected per partition and ip/port strings are collected per table
* File Permission error should be returned the shell and visible to the user
  Log that an error occurred opening the file and call get_log in the shell when an insert fails.
  Don't unregister query in ImpalaServer::Wait so we can recover error message later.
* Bumping version to v0.5
* Make $IMPALA_HOME/shell hold python modules.
* Date diff had the order backwards.
* Code changes to build against thrift 0.9.0
* IMPALA-15: UNIX_TIMESTAMP format behaviour deviates from Hive when format matches a prefix of the time value
  Truncate datetime value to length of format if necessary.
* Move to LLVM 3.2
Build instructions for Thrift v0.9 and LLVM 3.2
Adding implementation of hash partitioning to DataStreamSender.

Changing DataStreamSender::Channel to get a backend client from the client cache rather
than opening and closing its own connection.
Only quote string values in Json metrics
HiveServer2

This patch implements the HiveServer2  API.

All of the HiveServer2 code is implemented in impala-hs2-server.cc. Beeswax
code is refactored to impala-beeswax-server.cc.

HiveServer2 has a few more metadata operations. These operations go through
impala-hs2-server to ddl-executor and then to FE. The logics are implemented in
fe/src/main/java/com/cloudera/impala/service/MetadataOp.java.

Because of the Thrift union issue, I have to modify the generated c++ file.
Therefore, all the HiveServer2 thrift generated c++ code are checked into
be/src/service/hiveserver2/. Once the thrift issue is resolved, I'll remove
these files.
Fix packaging failure by moving inline function GetQueryExecState to impala-server.h
IMPALA-30: Make Catalog Db and Table caches thread safe
Allow Impala to retry connection with statestore forever
Fix normal Findbugs warnings
Adding the option to use Cyrus-SASL and GLog from a separate toolchain location
Omitting Perl bindings from thrift build
Fix build break due to cyrus sasl version not being set properly
Add FE/target/dependency/* to the classpath of run-jdbc-client.sh
Fix status static initialization.
IMPALA-44: Database names are case sensitive
IMPALA-47: Fix buffer overrun error in Sasl transport
Gracefully dealing with unbound PIC_LIB_PATH variable