mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
Merge branch 'master' of github.com:yandex/ClickHouse
This commit is contained in:
commit
4cde48fb20
2
contrib/librdkafka
vendored
2
contrib/librdkafka
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 3a986afbb977fa13582991ce8f2c0b2045ffaa33
|
Subproject commit 3401fa1e45605b5ae806f94905c92f5f546a607b
|
2
contrib/zstd
vendored
2
contrib/zstd
vendored
@ -1 +1 @@
|
|||||||
Subproject commit f3a8bd553a865c59f1bd6e1f68bf182cf75a8f00
|
Subproject commit f4340f46b2387bc8de7d5320c0b83bb1499933ad
|
@ -63,5 +63,6 @@ done
|
|||||||
# Even more platform-specific headers
|
# Even more platform-specific headers
|
||||||
for src_file in $(ls -1 $SOURCE_PATH/contrib/libboost/boost_1_65_0/boost/smart_ptr/detail/*);
|
for src_file in $(ls -1 $SOURCE_PATH/contrib/libboost/boost_1_65_0/boost/smart_ptr/detail/*);
|
||||||
do
|
do
|
||||||
|
mkdir -p "$DST/$(echo $src_file | sed -r -e 's/\/[^/]*$/\//')";
|
||||||
cp "$src_file" "$DST/$src_file";
|
cp "$src_file" "$DST/$src_file";
|
||||||
done
|
done
|
||||||
|
@ -216,8 +216,9 @@ endif ()
|
|||||||
# also for copy_headers.sh:
|
# also for copy_headers.sh:
|
||||||
target_include_directories (clickhouse_common_io BEFORE PRIVATE ${COMMON_INCLUDE_DIR})
|
target_include_directories (clickhouse_common_io BEFORE PRIVATE ${COMMON_INCLUDE_DIR})
|
||||||
|
|
||||||
|
add_subdirectory (tests)
|
||||||
|
|
||||||
if (ENABLE_TESTS)
|
if (ENABLE_TESTS)
|
||||||
add_subdirectory (tests)
|
|
||||||
# attach all dbms gtest sources
|
# attach all dbms gtest sources
|
||||||
grep_gtest_sources(${ClickHouse_SOURCE_DIR}/dbms dbms_gtest_sources)
|
grep_gtest_sources(${ClickHouse_SOURCE_DIR}/dbms dbms_gtest_sources)
|
||||||
add_executable(unit_tests_dbms ${dbms_gtest_sources})
|
add_executable(unit_tests_dbms ${dbms_gtest_sources})
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# This strings autochanged from release_lib.sh:
|
# This strings autochanged from release_lib.sh:
|
||||||
set(VERSION_DESCRIBE v1.1.54326-testing)
|
set(VERSION_DESCRIBE v1.1.54328-testing)
|
||||||
set(VERSION_REVISION 54326)
|
set(VERSION_REVISION 54328)
|
||||||
# end of autochange
|
# end of autochange
|
||||||
|
|
||||||
set (VERSION_MAJOR 1)
|
set (VERSION_MAJOR 1)
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include <common/StringRef.h>
|
#include <common/StringRef.h>
|
||||||
#include <DataTypes/IDataType.h>
|
#include <DataTypes/IDataType.h>
|
||||||
#include <AggregateFunctions/IAggregateFunction.h>
|
#include <AggregateFunctions/IAggregateFunction.h>
|
||||||
|
#include <AggregateFunctions/AggregateFunctionMinMaxAny.h> // SingleValueDataString used in embedded compiler
|
||||||
|
|
||||||
|
|
||||||
namespace DB
|
namespace DB
|
||||||
|
@ -229,14 +229,14 @@ void Compiler::compile(
|
|||||||
/// echo | g++ -x c++ -E -Wp,-v -
|
/// echo | g++ -x c++ -E -Wp,-v -
|
||||||
|
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/c++/*"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/c++/*"
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/x86_64-linux-gnu/c++/*"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/" CMAKE_LIBRARY_ARCHITECTURE "/c++/*"
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/c++/*/backward"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/c++/*/backward"
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/clang/*/include" /// if compiler is clang (from package)
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/clang/*/include" /// if compiler is clang (from package)
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/local/lib/clang/*/include" /// if clang installed manually
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/local/lib/clang/*/include" /// if clang installed manually
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/lib/gcc/x86_64-linux-gnu/*/include-fixed"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/lib/gcc/" CMAKE_LIBRARY_ARCHITECTURE "/*/include-fixed"
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/lib/gcc/x86_64-linux-gnu/*/include"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/lib/gcc/" CMAKE_LIBRARY_ARCHITECTURE "/*/include"
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/local/include" /// if something installed manually
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/local/include" /// if something installed manually
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/x86_64-linux-gnu"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include/" CMAKE_LIBRARY_ARCHITECTURE
|
||||||
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include"
|
" -isystem " INTERNAL_COMPILER_HEADERS_ROOT "/usr/include"
|
||||||
#endif
|
#endif
|
||||||
" -I " INTERNAL_COMPILER_HEADERS "/dbms/src/"
|
" -I " INTERNAL_COMPILER_HEADERS "/dbms/src/"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include <Poco/Event.h>
|
#include <Poco/Event.h>
|
||||||
|
|
||||||
|
|
||||||
namespace Poco { class Logger; }
|
namespace Poco { class Logger; namespace Util { class AbstractConfiguration; } }
|
||||||
|
|
||||||
class RegionsHierarchies;
|
class RegionsHierarchies;
|
||||||
class TechDataHierarchy;
|
class TechDataHierarchy;
|
||||||
|
@ -1543,7 +1543,7 @@ void ExpressionAnalyzer::makeSetsForIndexImpl(const ASTPtr & node, const Block &
|
|||||||
{
|
{
|
||||||
makeExplicitSet(func, sample_block, true);
|
makeExplicitSet(func, sample_block, true);
|
||||||
}
|
}
|
||||||
catch (const DB::Exception & e)
|
catch (const Exception & e)
|
||||||
{
|
{
|
||||||
/// in `sample_block` there are no columns that add `getActions`
|
/// in `sample_block` there are no columns that add `getActions`
|
||||||
if (e.code() != ErrorCodes::NOT_FOUND_COLUMN_IN_BLOCK)
|
if (e.code() != ErrorCodes::NOT_FOUND_COLUMN_IN_BLOCK)
|
||||||
@ -1672,7 +1672,7 @@ void ExpressionAnalyzer::makeExplicitSet(const ASTFunction * node, const Block &
|
|||||||
/** NOTE If tuple in left hand side specified non-explicitly
|
/** NOTE If tuple in left hand side specified non-explicitly
|
||||||
* Example: identity((a, b)) IN ((1, 2), (3, 4))
|
* Example: identity((a, b)) IN ((1, 2), (3, 4))
|
||||||
* instead of (a, b)) IN ((1, 2), (3, 4))
|
* instead of (a, b)) IN ((1, 2), (3, 4))
|
||||||
* then set creation of set doesn't work correctly.
|
* then set creation doesn't work correctly.
|
||||||
*/
|
*/
|
||||||
if (left_arg_tuple && left_arg_tuple->name == "tuple")
|
if (left_arg_tuple && left_arg_tuple->name == "tuple")
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#cmakedefine CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_LIBRARY_ARCHITECTURE@"
|
||||||
#cmakedefine PATH_SHARE "@PATH_SHARE@"
|
#cmakedefine PATH_SHARE "@PATH_SHARE@"
|
||||||
#cmakedefine INTERNAL_COMPILER_FLAGS "@INTERNAL_COMPILER_FLAGS@"
|
#cmakedefine INTERNAL_COMPILER_FLAGS "@INTERNAL_COMPILER_FLAGS@"
|
||||||
#cmakedefine INTERNAL_COMPILER_EXECUTABLE "@INTERNAL_COMPILER_EXECUTABLE@"
|
#cmakedefine INTERNAL_COMPILER_EXECUTABLE "@INTERNAL_COMPILER_EXECUTABLE@"
|
||||||
|
@ -48,6 +48,7 @@ LLVMSupport
|
|||||||
#PollyPPCG
|
#PollyPPCG
|
||||||
|
|
||||||
libtinfo.a
|
libtinfo.a
|
||||||
common
|
${ZLIB_LIBRARIES}
|
||||||
${EXECINFO_LIBRARY}
|
${EXECINFO_LIBRARY}
|
||||||
|
Threads::Threads
|
||||||
)
|
)
|
||||||
|
@ -47,6 +47,7 @@ ${REQUIRED_LLVM_LIBRARIES}
|
|||||||
#PollyPPCG
|
#PollyPPCG
|
||||||
|
|
||||||
libtinfo.a
|
libtinfo.a
|
||||||
common
|
${ZLIB_LIBRARIES}
|
||||||
${EXECINFO_LIBRARY}
|
${EXECINFO_LIBRARY}
|
||||||
|
Threads::Threads
|
||||||
)
|
)
|
||||||
|
@ -864,7 +864,7 @@ bool PKCondition::mayBeTrueInRangeImpl(const std::vector<Range> & key_ranges, co
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Compute the function.
|
/// Apply the function.
|
||||||
DataTypePtr new_type;
|
DataTypePtr new_type;
|
||||||
if (!key_range_transformed.left.isNull())
|
if (!key_range_transformed.left.isNull())
|
||||||
applyFunction(func, current_type, key_range_transformed.left, new_type, key_range_transformed.left);
|
applyFunction(func, current_type, key_range_transformed.left, new_type, key_range_transformed.left);
|
||||||
|
@ -20,4 +20,14 @@ macro(grep_gtest_sources BASE_DIR DST_VAR)
|
|||||||
file(GLOB_RECURSE "${DST_VAR}" RELATIVE "${BASE_DIR}" "gtest*.cpp")
|
file(GLOB_RECURSE "${DST_VAR}" RELATIVE "${BASE_DIR}" "gtest*.cpp")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
install (PROGRAMS clickhouse-test DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT clickhouse)
|
||||||
|
install (
|
||||||
|
DIRECTORY queries performance external_dictionaries
|
||||||
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/clickhouse-test
|
||||||
|
USE_SOURCE_PERMISSIONS
|
||||||
|
COMPONENT clickhouse
|
||||||
|
PATTERN "CMakeLists.txt" EXCLUDE
|
||||||
|
PATTERN ".gitignore" EXCLUDE
|
||||||
|
)
|
||||||
|
|
||||||
add_subdirectory (external_dictionaries)
|
add_subdirectory (external_dictionaries)
|
||||||
|
@ -87,12 +87,14 @@ def main(args):
|
|||||||
args.shard = True
|
args.shard = True
|
||||||
|
|
||||||
base_dir = os.path.abspath(args.queries)
|
base_dir = os.path.abspath(args.queries)
|
||||||
|
tmp_dir = os.path.abspath(args.tmp)
|
||||||
|
|
||||||
failures_total = 0
|
failures_total = 0
|
||||||
|
|
||||||
# Keep same default values as in queries/0_stateless/00000_sh_lib.sh
|
# Keep same default values as in queries/0_stateless/00000_sh_lib.sh
|
||||||
os.environ.setdefault("CLICKHOUSE_BINARY", args.binary)
|
os.environ.setdefault("CLICKHOUSE_BINARY", args.binary)
|
||||||
os.environ.setdefault("CLICKHOUSE_CLIENT", args.client)
|
os.environ.setdefault("CLICKHOUSE_CLIENT", args.client)
|
||||||
|
os.environ.setdefault("CLICKHOUSE_TMP", tmp_dir)
|
||||||
|
|
||||||
for suite in sorted(os.listdir(base_dir)):
|
for suite in sorted(os.listdir(base_dir)):
|
||||||
if SERVER_DIED:
|
if SERVER_DIED:
|
||||||
@ -102,6 +104,11 @@ def main(args):
|
|||||||
suite_re_obj = re.search('^[0-9]+_(.*)$', suite)
|
suite_re_obj = re.search('^[0-9]+_(.*)$', suite)
|
||||||
if not suite_re_obj: #skip .gitignore and so on
|
if not suite_re_obj: #skip .gitignore and so on
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
suite_tmp_dir = os.path.join(tmp_dir, suite)
|
||||||
|
if not os.path.exists(suite_tmp_dir):
|
||||||
|
os.makedirs(suite_tmp_dir)
|
||||||
|
|
||||||
suite = suite_re_obj.group(1)
|
suite = suite_re_obj.group(1)
|
||||||
if os.path.isdir(suite_dir):
|
if os.path.isdir(suite_dir):
|
||||||
print("\nRunning {} tests.\n".format(suite))
|
print("\nRunning {} tests.\n".format(suite))
|
||||||
@ -154,15 +161,15 @@ def main(args):
|
|||||||
print(MSG_SKIPPED + " - no shard")
|
print(MSG_SKIPPED + " - no shard")
|
||||||
else:
|
else:
|
||||||
disabled_file = os.path.join(suite_dir, name) + '.disabled'
|
disabled_file = os.path.join(suite_dir, name) + '.disabled'
|
||||||
|
|
||||||
if os.path.exists(disabled_file) and not args.disabled:
|
if os.path.exists(disabled_file) and not args.disabled:
|
||||||
message = open(disabled_file, 'r').read()
|
message = open(disabled_file, 'r').read()
|
||||||
report_testcase.append(et.Element("skipped", attrib = {"message": message}))
|
report_testcase.append(et.Element("skipped", attrib = {"message": message}))
|
||||||
print(MSG_SKIPPED + " - " + message)
|
print(MSG_SKIPPED + " - " + message)
|
||||||
else:
|
else:
|
||||||
reference_file = os.path.join(suite_dir, name) + '.reference'
|
reference_file = os.path.join(suite_dir, name) + '.reference'
|
||||||
stdout_file = os.path.join(suite_dir, name) + '.stdout'
|
stdout_file = os.path.join(suite_tmp_dir, name) + '.stdout'
|
||||||
stderr_file = os.path.join(suite_dir, name) + '.stderr'
|
stderr_file = os.path.join(suite_tmp_dir, name) + '.stderr'
|
||||||
|
|
||||||
if ext == '.sql':
|
if ext == '.sql':
|
||||||
command = "{0} --multiquery < {1} > {2} 2> {3}".format(args.client, case_file, stdout_file, stderr_file)
|
command = "{0} --multiquery < {1} > {2} 2> {3}".format(args.client, case_file, stdout_file, stderr_file)
|
||||||
@ -287,9 +294,10 @@ def main(args):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = ArgumentParser(description = 'ClickHouse functional tests')
|
parser = ArgumentParser(description = 'ClickHouse functional tests')
|
||||||
parser.add_argument('-q', '--queries', default = 'queries', help = 'Path to queries dir')
|
parser.add_argument('-q', '--queries', default = 'queries', help = 'Path to queries dir')
|
||||||
|
parser.add_argument('--tmp', default = 'queries', help = 'Path to tmp dir')
|
||||||
parser.add_argument('-b', '--binary', default = 'clickhouse', help = 'Main clickhouse binary')
|
parser.add_argument('-b', '--binary', default = 'clickhouse', help = 'Main clickhouse binary')
|
||||||
parser.add_argument('-c', '--client', help = 'Client program')
|
parser.add_argument('-c', '--client', help = 'Client program')
|
||||||
parser.add_argument('--client_config', help = 'Client config (if you use not default ports)')
|
parser.add_argument('--clientconfig', help = 'Client config (if you use not default ports)')
|
||||||
parser.add_argument('-o', '--output', help = 'Output xUnit compliant test report directory')
|
parser.add_argument('-o', '--output', help = 'Output xUnit compliant test report directory')
|
||||||
parser.add_argument('-t', '--timeout', type = int, default = 600, help = 'Timeout for each test case in seconds')
|
parser.add_argument('-t', '--timeout', type = int, default = 600, help = 'Timeout for each test case in seconds')
|
||||||
parser.add_argument('test', nargs = '?', help = 'Optional test case name regex')
|
parser.add_argument('test', nargs = '?', help = 'Optional test case name regex')
|
||||||
@ -308,6 +316,6 @@ if __name__ == '__main__':
|
|||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if args.client is None:
|
if args.client is None:
|
||||||
args.client = args.binary + '-client'
|
args.client = args.binary + '-client'
|
||||||
if args.client_config:
|
if args.clientconfig:
|
||||||
args.client += ' -c' + args.client_config
|
args.client += ' -c' + args.clientconfig
|
||||||
main(args)
|
main(args)
|
||||||
|
@ -8,7 +8,7 @@ TABLE_HASH="cityHash64(groupArray(cityHash64(*)))"
|
|||||||
|
|
||||||
function pack_unpack_compare()
|
function pack_unpack_compare()
|
||||||
{
|
{
|
||||||
local buf_file="test.buf.'.$3"
|
local buf_file="${CLICKHOUSE_TMP}/test.buf.'.$3"
|
||||||
|
|
||||||
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf"
|
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf"
|
||||||
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf_file"
|
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf_file"
|
||||||
@ -20,12 +20,12 @@ function pack_unpack_compare()
|
|||||||
local res_db_file=$(${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT $TABLE_HASH FROM test.buf_file")
|
local res_db_file=$(${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT $TABLE_HASH FROM test.buf_file")
|
||||||
|
|
||||||
${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT * FROM test.buf FORMAT $3" > "$buf_file"
|
${CLICKHOUSE_CLIENT} --max_threads=1 --query "SELECT * FROM test.buf FORMAT $3" > "$buf_file"
|
||||||
local res_ch_local1=$(${CLICKHOUSE_LOCAL} --structure "$2" --file "$buf_file" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`" 2>stderr || cat stderr 1>&2)
|
local res_ch_local1=$(${CLICKHOUSE_LOCAL} --structure "$2" --file "$buf_file" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`" 2>${CLICKHOUSE_TMP}/stderr || cat stderr 1>&2)
|
||||||
local res_ch_local2=$(${CLICKHOUSE_LOCAL} --structure "$2" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`" < "$buf_file" 2>stderr || cat stderr 1>&2)
|
local res_ch_local2=$(${CLICKHOUSE_LOCAL} --structure "$2" --table "my super table" --input-format "$3" --output-format TabSeparated --query "SELECT $TABLE_HASH FROM \`my super table\`" < "$buf_file" 2>${CLICKHOUSE_TMP}/stderr || cat ${CLICKHOUSE_TMP}/stderr 1>&2)
|
||||||
|
|
||||||
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf"
|
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf"
|
||||||
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf_file"
|
${CLICKHOUSE_CLIENT} --query "DROP TABLE IF EXISTS test.buf_file"
|
||||||
rm -f "$buf_file" stderr
|
rm -f "${CLICKHOUSE_TMP}/$buf_file" stderr
|
||||||
|
|
||||||
echo $((res_orig - res_db_file)) $((res_orig - res_ch_local1)) $((res_orig - res_ch_local2))
|
echo $((res_orig - res_db_file)) $((res_orig - res_ch_local1)) $((res_orig - res_ch_local2))
|
||||||
}
|
}
|
||||||
|
@ -11,29 +11,29 @@ function perform()
|
|||||||
echo "performing test: $test_id"
|
echo "performing test: $test_id"
|
||||||
${CLICKHOUSE_CLIENT} --query "$query" 2>/dev/null
|
${CLICKHOUSE_CLIENT} --query "$query" 2>/dev/null
|
||||||
if [ "$?" -eq 0 ]; then
|
if [ "$?" -eq 0 ]; then
|
||||||
cat "./test_into_outfile_$test_id.out"
|
cat "${CLICKHOUSE_TMP}/test_into_outfile_$test_id.out"
|
||||||
else
|
else
|
||||||
echo "query failed"
|
echo "query failed"
|
||||||
fi
|
fi
|
||||||
rm -f "./test_into_outfile_$test_id.out"
|
rm -f "${CLICKHOUSE_TMP}/test_into_outfile_$test_id.out"
|
||||||
}
|
}
|
||||||
|
|
||||||
perform "select" "SELECT 1, 2, 3 INTO OUTFILE './test_into_outfile_select.out'"
|
perform "select" "SELECT 1, 2, 3 INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_select.out'"
|
||||||
|
|
||||||
perform "union_all" "SELECT 1, 2 UNION ALL SELECT 3, 4 INTO OUTFILE './test_into_outfile_union_all.out' FORMAT TSV" | sort --numeric-sort
|
perform "union_all" "SELECT 1, 2 UNION ALL SELECT 3, 4 INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_union_all.out' FORMAT TSV" | sort --numeric-sort
|
||||||
|
|
||||||
perform "bad_union_all" "SELECT 1, 2 INTO OUTFILE './test_into_outfile_bad_union_all.out' UNION ALL SELECT 3, 4"
|
perform "bad_union_all" "SELECT 1, 2 INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_bad_union_all.out' UNION ALL SELECT 3, 4"
|
||||||
|
|
||||||
perform "describe_table" "DESCRIBE TABLE system.one INTO OUTFILE './test_into_outfile_describe_table.out'"
|
perform "describe_table" "DESCRIBE TABLE system.one INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_describe_table.out'"
|
||||||
|
|
||||||
echo "performing test: clickhouse-local"
|
echo "performing test: clickhouse-local"
|
||||||
echo -e '1\t2' | ${CLICKHOUSE_LOCAL} --structure 'col1 UInt32, col2 UInt32' --query "SELECT col1 + 1, col2 + 1 FROM table INTO OUTFILE './test_into_outfile_clickhouse-local.out'" 2>/dev/null
|
echo -e '1\t2' | ${CLICKHOUSE_LOCAL} --structure 'col1 UInt32, col2 UInt32' --query "SELECT col1 + 1, col2 + 1 FROM table INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_clickhouse-local.out'" 2>/dev/null
|
||||||
if [ "$?" -eq 0 ]; then
|
if [ "$?" -eq 0 ]; then
|
||||||
cat "./test_into_outfile_clickhouse-local.out"
|
cat "${CLICKHOUSE_TMP}/test_into_outfile_clickhouse-local.out"
|
||||||
else
|
else
|
||||||
echo "query failed"
|
echo "query failed"
|
||||||
fi
|
fi
|
||||||
rm -f "./test_into_outfile_clickhouse-local.out"
|
rm -f "${CLICKHOUSE_TMP}/test_into_outfile_clickhouse-local.out"
|
||||||
|
|
||||||
echo "performing test: http"
|
echo "performing test: http"
|
||||||
echo "SELECT 1, 2 INTO OUTFILE './test_into_outfile_http.out'" | ${CLICKHOUSE_CURL} -s "${CLICKHOUSE_URL}" -d @- --fail || echo "query failed"
|
echo "SELECT 1, 2 INTO OUTFILE '${CLICKHOUSE_TMP}/test_into_outfile_http.out'" | ${CLICKHOUSE_CURL} -s "${CLICKHOUSE_URL}" -d @- --fail || echo "query failed"
|
||||||
|
@ -66,11 +66,11 @@ corner_sizes="1048576 `seq 500000 1000000 3500000`"
|
|||||||
# Check HTTP results with $CLICKHOUSE_CLIENT in normal case
|
# Check HTTP results with $CLICKHOUSE_CLIENT in normal case
|
||||||
|
|
||||||
function cmp_cli_and_http() {
|
function cmp_cli_and_http() {
|
||||||
$CLICKHOUSE_CLIENT -q "`query $1`" > res1
|
$CLICKHOUSE_CLIENT -q "`query $1`" > ${CLICKHOUSE_TMP}/res1
|
||||||
ch_url "buffer_size=$2&wait_end_of_query=0" "$1" > res2
|
ch_url "buffer_size=$2&wait_end_of_query=0" "$1" > ${CLICKHOUSE_TMP}/res2
|
||||||
ch_url "buffer_size=$2&wait_end_of_query=1" "$1" > res3
|
ch_url "buffer_size=$2&wait_end_of_query=1" "$1" > ${CLICKHOUSE_TMP}/res3
|
||||||
cmp res1 res2 && cmp res1 res3 || echo FAIL
|
cmp ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res2 && cmp ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res3 || echo FAIL
|
||||||
rm -rf res1 res2 res3
|
rm -rf ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res2 ${CLICKHOUSE_TMP}/res3
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_cli_and_http() {
|
function check_cli_and_http() {
|
||||||
@ -88,14 +88,14 @@ check_cli_and_http
|
|||||||
# Check HTTP internal compression in normal case
|
# Check HTTP internal compression in normal case
|
||||||
|
|
||||||
function cmp_http_compression() {
|
function cmp_http_compression() {
|
||||||
$CLICKHOUSE_CLIENT -q "`query $1`" > res0
|
$CLICKHOUSE_CLIENT -q "`query $1`" > ${CLICKHOUSE_TMP}/res0
|
||||||
ch_url 'compress=1' $1 | clickhouse-compressor --decompress > res1
|
ch_url 'compress=1' $1 | clickhouse-compressor --decompress > ${CLICKHOUSE_TMP}/res1
|
||||||
ch_url "compress=1&buffer_size=$2&wait_end_of_query=0" $1 | clickhouse-compressor --decompress > res2
|
ch_url "compress=1&buffer_size=$2&wait_end_of_query=0" $1 | clickhouse-compressor --decompress > ${CLICKHOUSE_TMP}/res2
|
||||||
ch_url "compress=1&buffer_size=$2&wait_end_of_query=1" $1 | clickhouse-compressor --decompress > res3
|
ch_url "compress=1&buffer_size=$2&wait_end_of_query=1" $1 | clickhouse-compressor --decompress > ${CLICKHOUSE_TMP}/res3
|
||||||
cmp res0 res1
|
cmp ${CLICKHOUSE_TMP}/res0 ${CLICKHOUSE_TMP}/res1
|
||||||
cmp res1 res2
|
cmp ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res2
|
||||||
cmp res1 res3
|
cmp ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res3
|
||||||
rm -rf res0 res1 res2 res3
|
rm -rf ${CLICKHOUSE_TMP}/res0 ${CLICKHOUSE_TMP}/res1 ${CLICKHOUSE_TMP}/res2 ${CLICKHOUSE_TMP}/res3
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_http_compression() {
|
function check_http_compression() {
|
||||||
|
@ -41,10 +41,10 @@ popd > /dev/null
|
|||||||
#SCRIPTDIR=`dirname "$SCRIPTPATH"`
|
#SCRIPTDIR=`dirname "$SCRIPTPATH"`
|
||||||
SCRIPTDIR=$SCRIPTPATH
|
SCRIPTDIR=$SCRIPTPATH
|
||||||
|
|
||||||
cat "$SCRIPTDIR"/00282_merging.sql | $CLICKHOUSE_CLIENT --preferred_block_size_bytes=10 --merge_tree_uniform_read_distribution=1 -n 2>&1 > preferred_block_size_bytes.stdout
|
cat "$SCRIPTDIR"/00282_merging.sql | $CLICKHOUSE_CLIENT --preferred_block_size_bytes=10 --merge_tree_uniform_read_distribution=1 -n 2>&1 > ${CLICKHOUSE_TMP}/preferred_block_size_bytes.stdout
|
||||||
cmp "$SCRIPTDIR"/00282_merging.reference preferred_block_size_bytes.stdout && echo PASSED || echo FAILED
|
cmp "$SCRIPTDIR"/00282_merging.reference ${CLICKHOUSE_TMP}/preferred_block_size_bytes.stdout && echo PASSED || echo FAILED
|
||||||
|
|
||||||
cat "$SCRIPTDIR"/00282_merging.sql | $CLICKHOUSE_CLIENT --preferred_block_size_bytes=20 --merge_tree_uniform_read_distribution=0 -n 2>&1 > preferred_block_size_bytes.stdout
|
cat "$SCRIPTDIR"/00282_merging.sql | $CLICKHOUSE_CLIENT --preferred_block_size_bytes=20 --merge_tree_uniform_read_distribution=0 -n 2>&1 > ${CLICKHOUSE_TMP}/preferred_block_size_bytes.stdout
|
||||||
cmp "$SCRIPTDIR"/00282_merging.reference preferred_block_size_bytes.stdout && echo PASSED || echo FAILED
|
cmp "$SCRIPTDIR"/00282_merging.reference ${CLICKHOUSE_TMP}/preferred_block_size_bytes.stdout && echo PASSED || echo FAILED
|
||||||
|
|
||||||
rm preferred_block_size_bytes.stdout
|
rm ${CLICKHOUSE_TMP}/preferred_block_size_bytes.stdout
|
||||||
|
@ -18,3 +18,5 @@ export CLICKHOUSE_PORT_HTTPS=${CLICKHOUSE_PORT_HTTPS:="8443"}
|
|||||||
export CLICKHOUSE_PORT_HTTP_PROTO=${CLICKHOUSE_PORT_HTTP_PROTO:="http"}
|
export CLICKHOUSE_PORT_HTTP_PROTO=${CLICKHOUSE_PORT_HTTP_PROTO:="http"}
|
||||||
export CLICKHOUSE_URL=${CLICKHOUSE_URL:="${CLICKHOUSE_PORT_HTTP_PROTO}://${CLICKHOUSE_HOST}:${CLICKHOUSE_PORT_HTTP}/"}
|
export CLICKHOUSE_URL=${CLICKHOUSE_URL:="${CLICKHOUSE_PORT_HTTP_PROTO}://${CLICKHOUSE_HOST}:${CLICKHOUSE_PORT_HTTP}/"}
|
||||||
export CLICKHOUSE_CURL=${CLICKHOUSE_CURL:="curl --max-time 5"}
|
export CLICKHOUSE_CURL=${CLICKHOUSE_CURL:="curl --max-time 5"}
|
||||||
|
export CLICKHOUSE_TMP=${CLICKHOUSE_TMP:="."}
|
||||||
|
mkdir -p ${CLICKHOUSE_TMP}
|
||||||
|
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -1,5 +1,5 @@
|
|||||||
clickhouse (1.1.54326) unstable; urgency=low
|
clickhouse (1.1.54328) unstable; urgency=low
|
||||||
|
|
||||||
* Modified source code
|
* Modified source code
|
||||||
|
|
||||||
-- proller <proller@yandex-team.ru> Mon, 18 Dec 2017 16:14:46 +0300
|
-- <robot-metrika-test@yandex-team.ru> Wed, 27 Dec 2017 11:09:36 +0300
|
||||||
|
2
debian/clickhouse-client.install
vendored
2
debian/clickhouse-client.install
vendored
@ -1,6 +1,4 @@
|
|||||||
/usr/bin/clickhouse-client
|
/usr/bin/clickhouse-client
|
||||||
/usr/bin/clickhouse-benchmark
|
|
||||||
/usr/bin/clickhouse-local
|
/usr/bin/clickhouse-local
|
||||||
/etc/clickhouse-client/config.xml
|
/etc/clickhouse-client/config.xml
|
||||||
/usr/bin/clickhouse-extract-from-config
|
/usr/bin/clickhouse-extract-from-config
|
||||||
/usr/bin/clickhouse-performance-test
|
|
||||||
|
4
debian/clickhouse-test.install
vendored
Normal file
4
debian/clickhouse-test.install
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
usr/bin/clickhouse-test
|
||||||
|
usr/share/clickhouse-test/*
|
||||||
|
usr/bin/clickhouse-performance-test
|
||||||
|
usr/bin/clickhouse-benchmark
|
8
debian/control
vendored
8
debian/control
vendored
@ -53,3 +53,11 @@ Priority: extra
|
|||||||
Depends: ${misc:Depends}, clickhouse-server-base (= ${binary:Version})
|
Depends: ${misc:Depends}, clickhouse-server-base (= ${binary:Version})
|
||||||
Description: debugging symbols for clickhouse-server-base
|
Description: debugging symbols for clickhouse-server-base
|
||||||
This package contains the debugging symbols for clickhouse-server-base.
|
This package contains the debugging symbols for clickhouse-server-base.
|
||||||
|
|
||||||
|
|
||||||
|
Package: clickhouse-test
|
||||||
|
Section: Database
|
||||||
|
Priority: extra
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}, clickhouse-client, clickhouse-compressor, bash, expect, python, python-lxml, python-termcolor, curl, perl, sudo
|
||||||
|
Description: Clickhouse tests
|
||||||
|
6
debian/pbuilder-test/100_test_run
vendored
6
debian/pbuilder-test/100_test_run
vendored
@ -1,4 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#service clickhouse-server start
|
clickhouse-client -q "SELECT * from system.build_options;"
|
||||||
clickhouse-client -q "SELECT version();"
|
|
||||||
|
# --no-shard because default server listen only :: and 127.0.0.1
|
||||||
|
[ -n "$TEST_RUN" ] && clickhouse-test --no-shard --queries /usr/share/clickhouse-test/queries --tmp /tmp/clickhouse-test/ || true
|
||||||
|
@ -132,7 +132,7 @@ ZooKeeper
|
|||||||
Probably you already have ZooKeeper for other purposes.
|
Probably you already have ZooKeeper for other purposes.
|
||||||
It's Ok to use existing ZooKeeper installation if it is not overloaded.
|
It's Ok to use existing ZooKeeper installation if it is not overloaded.
|
||||||
|
|
||||||
Use recent version of ZooKeeper. At least 3.5 is Ok. Version in your Linux package repository might be outdated.
|
Use recent version of ZooKeeper. At least 3.4.9 is Ok. Version in your Linux package repository might be outdated.
|
||||||
|
|
||||||
With default settings, ZooKeeper have time bomb:
|
With default settings, ZooKeeper have time bomb:
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ XFS также подходит, но не так тщательно проте
|
|||||||
|
|
||||||
Вероятно вы уже используете ZooKeeper для других целей. Можно использовать ту же инсталляцию ZooKeeper, если она не сильно перегружена.
|
Вероятно вы уже используете ZooKeeper для других целей. Можно использовать ту же инсталляцию ZooKeeper, если она не сильно перегружена.
|
||||||
|
|
||||||
Лучше использовать свежую версию ZooKeeper, как минимум 3.5. Версия в стабильных дистрибутивах Linux может быть устаревшей.
|
Лучше использовать свежую версию ZooKeeper, как минимум 3.4.9. Версия в стабильных дистрибутивах Linux может быть устаревшей.
|
||||||
|
|
||||||
С настройками по умолчанию, ZooKeeper является бомбой замедленного действия:
|
С настройками по умолчанию, ZooKeeper является бомбой замедленного действия:
|
||||||
|
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
#include <emmintrin.h>
|
#include <emmintrin.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __SSE4_2__
|
||||||
|
#include <smmintrin.h>
|
||||||
|
#include <nmmintrin.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/// The thing to avoid creating strings to find substrings in the hash table.
|
/// The thing to avoid creating strings to find substrings in the hash table.
|
||||||
@ -172,8 +176,6 @@ struct StringRefHash64
|
|||||||
|
|
||||||
#if __SSE4_2__
|
#if __SSE4_2__
|
||||||
|
|
||||||
#include <smmintrin.h>
|
|
||||||
|
|
||||||
/// Parts are taken from CityHash.
|
/// Parts are taken from CityHash.
|
||||||
|
|
||||||
inline UInt64 hashLen16(UInt64 u, UInt64 v)
|
inline UInt64 hashLen16(UInt64 u, UInt64 v)
|
||||||
|
@ -2157,6 +2157,16 @@ try { var yaCounter18343495 = new Ya.Metrika({id:18343495,
|
|||||||
|
|
||||||
<div class='island'>
|
<div class='island'>
|
||||||
|
|
||||||
|
<p>Most results are for single server setup. The server is: two socket Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz; 128 GiB RAM; md RAID-5 on 8 6TB SATA HDD; ext4.</p>
|
||||||
|
|
||||||
|
<p>Some additional results (marked as x2, x3, x6) are for clustered setup for comparison. These results are contributed from independent teams and hardware specification may differ.</p>
|
||||||
|
|
||||||
|
<p>Disclaimer: some results are significantly outdated. Results for MonetDB was obtained at 2013 for version v11.15.11 (Feb2013-SP3). Results for MemSQL was obtained at 2015 for version 3.2. Results for Vertica are from 2015 for version 7.1.1.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='island'>
|
||||||
|
|
||||||
<div id='selectors'></div>
|
<div id='selectors'></div>
|
||||||
|
|
||||||
<h2>Relative query processing time (lower is better):</h2>
|
<h2>Relative query processing time (lower is better):</h2>
|
||||||
|
Loading…
Reference in New Issue
Block a user