mirror of
https://github.com/apache/impala.git
synced 2026-01-28 09:03:52 -05:00
Upgrades the version of the toolchain in order to pull in Thrift 0.11.0. Updates the CMake build to write generated Python code using Thrift 0.11 to shell/build/thrift-11-gen/gen-py/. The Thrift 0.11 Python deserialization code has some big performance improvements that allow faster parsing of runtime profiles. By adding the ability to generate the Thrift Python code using Thrift 0.11 we can take advantage of the Python performance improvements without going through a full Thrift upgrade from 0.9 to 0.11. Set USE_THRIFT11_GEN_PY=true and then run bin/set-pythonpath.sh to add the Thrift 0.11 Python generated code to the PYTHONPATH rather than the 0.9 generated code. Testing: - Ran core tests Change-Id: I3432c3e29d28ec3ef6a0a22156a18910f511fed0 Reviewed-on: http://gerrit.cloudera.org:8080/12036 Reviewed-by: Tim Armstrong <tarmstrong@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
52 lines
2.1 KiB
Bash
Executable File
52 lines
2.1 KiB
Bash
Executable File
# 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.
|
|
|
|
# set the python path for test modules and beeswax
|
|
# setting USE_THRIFT11_GEN_PY will add Thrift 11 Python generated code rather than the
|
|
# default Thrift Python code
|
|
PYTHONPATH=${IMPALA_HOME}
|
|
if [ -n "${USE_THRIFT11_GEN_PY:-}" ]; then
|
|
PYTHONPATH=${PYTHONPATH}:${IMPALA_HOME}/shell/build/thrift-11-gen/gen-py
|
|
else
|
|
PYTHONPATH=${PYTHONPATH}:${IMPALA_HOME}/shell/gen-py
|
|
fi
|
|
PYTHONPATH=${PYTHONPATH}:${IMPALA_HOME}/testdata/
|
|
|
|
# There should be just a single version of python that created the
|
|
# site-packages directory. We find it by performing shell independent expansion
|
|
# of the following pattern:
|
|
# ${THRIFT_HOME}/python/lib{64,}/python*/site-packages
|
|
# Note: this could go wrong if we have used two different versions of
|
|
# Python to build Thrift on this machine, and the first version is not
|
|
# compatible with the second.
|
|
for PYTHON_DIR in ${THRIFT_HOME}/python/lib{64,}; do
|
|
[[ -d ${PYTHON_DIR} ]] || continue
|
|
for PKG_DIR in ${PYTHON_DIR}/python*/site-packages; do
|
|
PYTHONPATH=${PYTHONPATH}:${PKG_DIR}/
|
|
done
|
|
done
|
|
|
|
# Add Hive after Thrift because Hive supplies its own Thrift modules
|
|
PYTHONPATH=${PYTHONPATH}:${HIVE_HOME}/lib/py
|
|
|
|
# Add all the built eggs to the python path
|
|
for EGG in `find ${IMPALA_HOME}/shell/ext-py/ -name '*\.egg'`; do
|
|
PYTHONPATH=${PYTHONPATH}:${EGG}
|
|
done
|
|
|
|
export PYTHONPATH
|