mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-29 05:00:47 +00:00
Merge
This commit is contained in:
commit
6c28fdc418
@ -38,6 +38,7 @@ public:
|
|||||||
transfer_overflow_mode(limits.transfer_overflow_mode),
|
transfer_overflow_mode(limits.transfer_overflow_mode),
|
||||||
bytes_in_external_table(0),
|
bytes_in_external_table(0),
|
||||||
rows_in_external_table(0),
|
rows_in_external_table(0),
|
||||||
|
only_external(false),
|
||||||
log(&Logger::get("Set")),
|
log(&Logger::get("Set")),
|
||||||
max_rows(limits.max_rows_in_set),
|
max_rows(limits.max_rows_in_set),
|
||||||
max_bytes(limits.max_bytes_in_set),
|
max_bytes(limits.max_bytes_in_set),
|
||||||
|
@ -217,8 +217,21 @@ private:
|
|||||||
if (right - left + 1 > MAX_ADDRESSES)
|
if (right - left + 1 > MAX_ADDRESSES)
|
||||||
throw Exception("Storage Distributed, first argument generates too many result addresses",
|
throw Exception("Storage Distributed, first argument generates too many result addresses",
|
||||||
ErrorCodes::BAD_ARGUMENTS);
|
ErrorCodes::BAD_ARGUMENTS);
|
||||||
|
bool add_leading_zeroes = false;
|
||||||
|
size_t len = last_dot - 1 - (i + 1);
|
||||||
|
/// Если у левой и правой границы поровну цифр, значит необходимо дополнять лидирующими нулями.
|
||||||
|
if (last_dot - 1 - (i + 1) == m - (last_dot + 1))
|
||||||
|
add_leading_zeroes = true;
|
||||||
for (size_t id = left; id <= right; ++id)
|
for (size_t id = left; id <= right; ++id)
|
||||||
buffer.push_back(toString<uint64>(id));
|
{
|
||||||
|
String cur = toString<uint64>(id);
|
||||||
|
if (add_leading_zeroes)
|
||||||
|
{
|
||||||
|
while (cur.size() < len)
|
||||||
|
cur = "0" + cur;
|
||||||
|
}
|
||||||
|
buffer.push_back(cur);
|
||||||
|
}
|
||||||
} else if (have_splitter) /// Если внутри есть текущий разделитель, то сгенерировать множество получаемых строк
|
} else if (have_splitter) /// Если внутри есть текущий разделитель, то сгенерировать множество получаемых строк
|
||||||
buffer = parseDescription(description, i + 1, m, splitter);
|
buffer = parseDescription(description, i + 1, m, splitter);
|
||||||
else /// Иначе просто скопировать, порождение произойдет при вызове с правильным разделителем
|
else /// Иначе просто скопировать, порождение произойдет при вызове с правильным разделителем
|
||||||
|
@ -958,12 +958,21 @@ public:
|
|||||||
|
|
||||||
size_t cnt = positions.size();
|
size_t cnt = positions.size();
|
||||||
|
|
||||||
|
if (cnt == 2 && newargc > 1)
|
||||||
|
{
|
||||||
|
Exception e("Unknown option " + to_pass_further[0] + ". Maybe missed --external flag in front of it.", ErrorCodes::BAD_ARGUMENTS);
|
||||||
|
std::string text = e.displayText();
|
||||||
|
std::cerr << "Code: " << e.code() << ". " << text << std::endl;
|
||||||
|
exit(e.code());
|
||||||
|
}
|
||||||
|
|
||||||
size_t stdin_count = 0;
|
size_t stdin_count = 0;
|
||||||
for (size_t i = 1; i + 1 < cnt; ++i)
|
for (size_t i = 1; i + 1 < cnt; ++i)
|
||||||
{
|
{
|
||||||
|
/// Парсим основные опции командной строки
|
||||||
|
boost::program_options::parsed_options parsed = boost::program_options::command_line_parser(positions[i + 1] - positions[i], &new_argv[positions[i]]).options(external_description).run();
|
||||||
boost::program_options::variables_map external_options;
|
boost::program_options::variables_map external_options;
|
||||||
boost::program_options::store(boost::program_options::parse_command_line(
|
boost::program_options::store(parsed, external_options);
|
||||||
positions[i + 1] - positions[i], &new_argv[positions[i]], external_description), external_options);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -661,7 +661,7 @@ void ExpressionAnalyzer::addExternalStorage(ASTFunction * node)
|
|||||||
ast_set->set = new Set(settings.limits);
|
ast_set->set = new Set(settings.limits);
|
||||||
ast_set->set->setSource(external_data[external_table_name]);
|
ast_set->set->setSource(external_data[external_table_name]);
|
||||||
ast_set->set->setExternalOutput(external_tables[external_table_name]);
|
ast_set->set->setExternalOutput(external_tables[external_table_name]);
|
||||||
ast_set->set->setOnlyExternal();
|
ast_set->set->setOnlyExternal(true);
|
||||||
sets_with_subqueries[ast_set->getColumnName()] = ast_set->set;
|
sets_with_subqueries[ast_set->getColumnName()] = ast_set->set;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -9,7 +9,7 @@ if (git rev-parse --is-inside-work-tree &> /dev/null)
|
|||||||
then
|
then
|
||||||
# GIT
|
# GIT
|
||||||
git fetch --tags;
|
git fetch --tags;
|
||||||
( git describe --tags || echo 1 ) | cut -d "-" -f 1 >> ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h;
|
( git tag || echo 1 ) | tail -1 >> ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h;
|
||||||
else
|
else
|
||||||
#SVN
|
#SVN
|
||||||
echo && (LC_ALL=C svn info ${PROJECT_SOURCE_DIR}/ 2>/dev/null || echo Revision 1) | grep Revision | cut -d " " -f 2 >> ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h;
|
echo && (LC_ALL=C svn info ${PROJECT_SOURCE_DIR}/ 2>/dev/null || echo Revision 1) | grep Revision | cut -d " " -f 2 >> ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h;
|
||||||
|
Loading…
Reference in New Issue
Block a user