提交 fb91bba2 编写于 作者: A Alexey Milovidov

Miscellaneous [#CLICKHOUSE-2]

上级 664171a0
......@@ -74,7 +74,7 @@ void ColumnTuple::get(size_t n, Field & res) const
{
const size_t tuple_size = columns.size();
res = Tuple(TupleBackend(tuple_size));
TupleBackend & res_arr = DB::get<Tuple &>(res).t;
TupleBackend & res_arr = DB::get<Tuple &>(res).toUnderType();
for (const auto i : ext::range(0, tuple_size))
columns[i]->get(n, res_arr[i]);
}
......@@ -91,7 +91,7 @@ void ColumnTuple::insertData(const char *, size_t)
void ColumnTuple::insert(const Field & x)
{
const TupleBackend & tuple = DB::get<const Tuple &>(x).t;
const TupleBackend & tuple = DB::get<const Tuple &>(x).toUnderType();
const size_t tuple_size = columns.size();
if (tuple.size() != tuple_size)
......@@ -309,8 +309,8 @@ void ColumnTuple::getExtremes(Field & min, Field & max) const
min = Tuple(TupleBackend(tuple_size));
max = Tuple(TupleBackend(tuple_size));
auto & min_backend = min.get<Tuple &>().t;
auto & max_backend = max.get<Tuple &>().t;
auto & min_backend = min.get<Tuple &>().toUnderType();
auto & max_backend = max.get<Tuple &>().toUnderType();
for (const auto i : ext::range(0, tuple_size))
columns[i]->getExtremes(min_backend[i], max_backend[i]);
......
......@@ -61,7 +61,7 @@ String FieldVisitorDump::operator() (const Array & x) const
String FieldVisitorDump::operator() (const Tuple & x_def) const
{
auto & x = x_def.t;
auto & x = x_def.toUnderType();
WriteBufferFromOwnString wb;
wb.write("Tuple_(", 7);
......@@ -124,7 +124,7 @@ String FieldVisitorToString::operator() (const Array & x) const
String FieldVisitorToString::operator() (const Tuple & x_def) const
{
auto & x = x_def.t;
auto & x = x_def.toUnderType();
WriteBufferFromOwnString wb;
writeChar('(', wb);
......
......@@ -143,7 +143,7 @@ namespace DB
{
inline void readBinary(Tuple & x_def, ReadBuffer & buf)
{
auto & x = x_def.t;
auto & x = x_def.toUnderType();
size_t size;
DB::readBinary(size, buf);
......@@ -214,7 +214,7 @@ namespace DB
void writeBinary(const Tuple & x_def, WriteBuffer & buf)
{
auto & x = x_def.t;
auto & x = x_def.toUnderType();
const size_t size = x.size();
DB::writeBinary(size, buf);
......
......@@ -98,7 +98,7 @@ static inline const IColumn & extractElementColumn(const IColumn & column, size_
void DataTypeTuple::serializeBinary(const Field & field, WriteBuffer & ostr) const
{
const auto & tuple = get<const Tuple &>(field).t;
const auto & tuple = get<const Tuple &>(field).toUnderType();
for (const auto & idx_elem : ext::enumerate(elems))
idx_elem.second->serializeBinary(tuple[idx_elem.first], ostr);
}
......@@ -107,7 +107,7 @@ void DataTypeTuple::deserializeBinary(Field & field, ReadBuffer & istr) const
{
const size_t size = elems.size();
field = Tuple(TupleBackend(size));
TupleBackend & tuple = get<Tuple &>(field).t;
TupleBackend & tuple = get<Tuple &>(field).toUnderType();
for (const auto i : ext::range(0, size))
elems[i]->deserializeBinary(tuple[i], istr);
}
......
......@@ -63,7 +63,6 @@ namespace detail
/// Creates the string by itself and allows to get it.
class WriteBufferFromOwnString : public detail::StringHolder, public WriteBufferFromString
{
public:
WriteBufferFromOwnString() : WriteBufferFromString(value) {}
......
......@@ -234,7 +234,7 @@ void Set::createFromAST(const DataTypes & types, ASTPtr node, const Context & co
throw Exception("Invalid type of set. Expected tuple, got " + String(function_result.getTypeName()),
ErrorCodes::INCORRECT_ELEMENT_OF_SET);
tuple = &function_result.get<Tuple>().t;
tuple = &function_result.get<Tuple>().toUnderType();
}
size_t tuple_size = tuple ? tuple->size() : func->arguments->children.size();
......
......@@ -29,6 +29,9 @@ RETVAL=0
CLICKHOUSE_PIDDIR=/var/run/$PROGRAM
CLICKHOUSE_PIDFILE="$CLICKHOUSE_PIDDIR/$PROGRAM.pid"
# Some systems lack "flock"
command -v flock >/dev/null && FLOCK=flock
# Override defaults from optional config file
test -f /etc/default/clickhouse && . /etc/default/clickhouse
......@@ -165,7 +168,7 @@ start()
if ! is_running; then
# Lock should not be held while running child process, so we release the lock. Note: obviously, there is race condition.
# But clickhouse-server has protection from simultaneous runs with same data directory.
su -s $SHELL ${CLICKHOUSE_USER} -c "flock -u 9; exec -a \"$PROGRAM\" \"$BINDIR/$PROGRAM\" --daemon --pid-file=\"$CLICKHOUSE_PIDFILE\" --config-file=\"$CLICKHOUSE_CONFIG\""
su -s $SHELL ${CLICKHOUSE_USER} -c "$FLOCK -u 9; exec -a \"$PROGRAM\" \"$BINDIR/$PROGRAM\" --daemon --pid-file=\"$CLICKHOUSE_PIDFILE\" --config-file=\"$CLICKHOUSE_CONFIG\""
EXIT_STATUS=$?
if [ $EXIT_STATUS -ne 0 ]; then
break
......@@ -345,7 +348,7 @@ esac
(
if flock -n 9; then
if $FLOCK -n 9; then
main "$@"
else
echo "Init script is already running" && exit 1
......
......@@ -11,9 +11,11 @@ struct StrongTypedef
: boost::totally_ordered1< StrongTypedef<T, Tag>
, boost::totally_ordered2< StrongTypedef<T, Tag>, T> >
{
private:
using Self = StrongTypedef<T, Tag>;
T t;
public:
template <class Enable = typename std::is_copy_constructible<T>::type>
explicit StrongTypedef(const T & t_) : t(t_) {};
template <class Enable = typename std::is_move_constructible<T>::type>
......@@ -34,7 +36,7 @@ struct StrongTypedef
template <class Enable = typename std::is_move_assignable<T>::type>
Self & operator=(T && rhs) { t = std::move(rhs); return *this;}
operator const T & () const {return t; }
operator const T & () const { return t; }
operator T & () { return t; }
bool operator==(const Self & rhs) const { return t == rhs.t; }
......
......@@ -82,7 +82,10 @@ elif [[ $BUILD_TYPE == 'debug' ]]; then
VERSION_POSTFIX+=+$BUILD_TYPE
fi
CMAKE_FLAGS=" $LIBTCMALLOC_OPTS -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE $CMAKE_FLAGS"
CMAKE_FLAGS=" $LIBTCMALLOC_OPTS -D CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE $CMAKE_FLAGS"
[[ "$CMAKE_FLAGS" =~ "USE_INTERNAL_LLVM_LIBRARY" ]] || CMAKE_FLAGS=" -D USE_INTERNAL_LLVM_LIBRARY=1 $CMAKE_FLAGS"
export CMAKE_FLAGS
export EXTRAPACKAGES
......
......@@ -22,15 +22,15 @@ date
mkdir -p build
cd build
cmake $CUR_DIR/../.. -DCMAKE_CXX_COMPILER=`which $DEB_CXX $CXX` -DCMAKE_C_COMPILER=`which $DEB_CC $CC` \
cmake $CUR_DIR/../.. -D CMAKE_CXX_COMPILER=`which $DEB_CXX $CXX` -D CMAKE_C_COMPILER=`which $DEB_CC $CC` \
`# Does not optimize to speedup build, skip debug info to use less disk` \
-DCMAKE_C_FLAGS_ADD="-O0 -g0" -DCMAKE_CXX_FLAGS_ADD="-O0 -g0" \
-D CMAKE_C_FLAGS_ADD="-O0 -g0" -D CMAKE_CXX_FLAGS_ADD="-O0 -g0" \
`# ignore ccache disabler on trusty` \
-DCMAKE_C_COMPILER_LAUNCHER=`which ccache` -DCMAKE_CXX_COMPILER_LAUNCHER=`which ccache` \
-D CMAKE_C_COMPILER_LAUNCHER=`which ccache` -D CMAKE_CXX_COMPILER_LAUNCHER=`which ccache` \
`# Use all possible contrib libs from system` \
-DUNBUNDLED=1 \
-D UNBUNDLED=1 \
`# Disable all features` \
-DENABLE_CAPNP=0 -DENABLE_RDKAFKA=0 -DENABLE_EMBEDDED_COMPILER=0 -DENABLE_TCMALLOC=0 -DENABLE_UNWIND=0 -DENABLE_MYSQL=0 $CMAKE_FLAGS \
-D ENABLE_CAPNP=0 -D ENABLE_RDKAFKA=0 -D ENABLE_EMBEDDED_COMPILER=0 -D ENABLE_TCMALLOC=0 -D ENABLE_UNWIND=0 -D ENABLE_MYSQL=0 -D USE_INTERNAL_LLVM_LIBRARY=0 $CMAKE_FLAGS \
&& make -j `nproc || grep -c ^processor /proc/cpuinfo || sysctl -n hw.ncpu || echo 4` clickhouse-bundle \
`# Skip tests:` \
`# 00281 requires internal compiler` \
......
......@@ -24,7 +24,7 @@ env TEST_RUN=${TEST_RUN=1} \
DEB_CC=${DEB_CC=$CC} DEB_CXX=${DEB_CXX=$CXX} \
CCACHE_SIZE=${CCACHE_SIZE:=4G} \
`# Disable all features` \
CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=Debug -DUNBUNDLED=1 -DENABLE_UNWIND=0 -DENABLE_MYSQL=0 -DENABLE_CAPNP=0 -DENABLE_RDKAFKA=0 -DCMAKE_C_FLAGS_ADD='-O0 -g0' -DCMAKE_CXX_FLAGS_ADD='-O0 -g0' $CMAKE_FLAGS" \
CMAKE_FLAGS="-D CMAKE_BUILD_TYPE=Debug -D UNBUNDLED=1 -D ENABLE_UNWIND=0 -D ENABLE_MYSQL=0 -D ENABLE_CAPNP=0 -D ENABLE_RDKAFKA=0 -D USE_INTERNAL_LLVM_LIBRARY=0 -D CMAKE_C_FLAGS_ADD='-O0 -g0' -D CMAKE_CXX_FLAGS_ADD='-O0 -g0' $CMAKE_FLAGS" \
`# Use all possible contrib libs from system` \
`# psmisc - killall` \
EXTRAPACKAGES="psmisc clang-5.0 lld-5.0 liblld-5.0-dev libclang-5.0-dev liblld-5.0 libc++abi-dev libc++-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev zlib1g-dev liblz4-dev libdouble-conversion-dev libsparsehash-dev librdkafka-dev libpoco-dev libsparsehash-dev libgoogle-perftools-dev libzstd-dev libre2-dev $EXTRAPACKAGES" \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册