mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Fixed build with clang [#CONV-2807].
This commit is contained in:
parent
037941ff83
commit
6a4b0139e8
@ -254,12 +254,12 @@ public:
|
||||
ColumnPtr & getDataPtr() { return data; }
|
||||
const ColumnPtr & getDataPtr() const { return data; }
|
||||
|
||||
Offsets_t & __attribute__((__flatten__, __always_inline__)) getOffsets()
|
||||
Offsets_t & __attribute__((__always_inline__)) getOffsets()
|
||||
{
|
||||
return static_cast<ColumnOffsets_t &>(*offsets.get()).getData();
|
||||
}
|
||||
|
||||
const Offsets_t & __attribute__((__flatten__, __always_inline__)) getOffsets() const
|
||||
const Offsets_t & __attribute__((__always_inline__)) getOffsets() const
|
||||
{
|
||||
return static_cast<const ColumnOffsets_t &>(*offsets.get()).getData();
|
||||
}
|
||||
@ -271,8 +271,8 @@ protected:
|
||||
ColumnPtr data;
|
||||
ColumnPtr offsets; /// Смещения могут быть разделяемыми для нескольких столбцов - для реализации вложенных структур данных.
|
||||
|
||||
size_t __attribute__((__flatten__, __always_inline__)) offsetAt(size_t i) const { return i == 0 ? 0 : getOffsets()[i - 1]; }
|
||||
size_t __attribute__((__flatten__, __always_inline__)) sizeAt(size_t i) const { return i == 0 ? getOffsets()[0] : (getOffsets()[i] - getOffsets()[i - 1]); }
|
||||
size_t __attribute__((__always_inline__)) offsetAt(size_t i) const { return i == 0 ? 0 : getOffsets()[i - 1]; }
|
||||
size_t __attribute__((__always_inline__)) sizeAt(size_t i) const { return i == 0 ? getOffsets()[0] : (getOffsets()[i] - getOffsets()[i - 1]); }
|
||||
};
|
||||
|
||||
|
||||
|
@ -175,7 +175,6 @@ private:
|
||||
|
||||
/// Распарсенный запрос. Оттуда берутся некоторые настройки (формат).
|
||||
ASTPtr parsed_query;
|
||||
bool expect_result; /// Запрос предполагает получение результата.
|
||||
|
||||
Stopwatch watch;
|
||||
|
||||
|
@ -21,6 +21,13 @@ class ResultBase;
|
||||
*/
|
||||
class Row
|
||||
{
|
||||
private:
|
||||
/** @brief Pointer to bool data member, for use by safe bool conversion operator.
|
||||
* @see http://www.artima.com/cppsource/safebool.html
|
||||
* Взято из mysql++.
|
||||
*/
|
||||
typedef MYSQL_ROW Row::*private_bool_type;
|
||||
|
||||
public:
|
||||
/** Для возможности отложенной инициализации. */
|
||||
Row() : row(NULL), res(NULL)
|
||||
@ -71,12 +78,15 @@ public:
|
||||
*/
|
||||
bool empty() const { return row == NULL; }
|
||||
|
||||
/** Преобразование в bool.
|
||||
* (Точнее - в тип, который преобразуется в bool, и с которым больше почти ничего нельзя сделать.)
|
||||
*/
|
||||
operator private_bool_type() const { return row == NULL ? NULL : &Row::row; }
|
||||
|
||||
private:
|
||||
MYSQL_ROW row;
|
||||
ResultBase * res;
|
||||
MYSQL_LENGTHS lengths;
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user