18 #ifndef KUDU_CLIENT_SCHEMA_H
19 #define KUDU_CLIENT_SCHEMA_H
29 #ifdef KUDU_HEADERS_NO_STUBS
30 #include <gtest/gtest_prod.h>
32 #include "kudu/gutil/port.h"
34 #include "kudu/client/stubs.h"
37 #include "kudu/util/kudu_export.h"
46 struct ColumnSchemaDelta;
49 class RemoteKsckCluster;
56 class GetTableSchemaRpc;
122 class KUDU_NO_EXPORT Data;
147 DEFAULT_COMPRESSION = 0,
169 int32_t block_size = 0)
170 ATTRIBUTE_DEPRECATED("this constructor will be private in a future release")
171 : encoding_(encoding),
172 compression_(compression),
173 block_size_(block_size) {
230 TIMESTAMP = UNIXTIME_MICROS,
279 const std::string&
name()
const;
304 #ifdef KUDU_HEADERS_NO_STUBS
305 FRIEND_TEST(KuduColumnSchemaTest, TestEquals);
310 #if defined(__clang__) || \
311 (defined(__GNUC__) && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40600)
312 #pragma GCC diagnostic push
313 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
317 const std::string &name,
319 bool is_nullable =
false,
320 const void* default_value = NULL,
323 const std::string& comment =
"");
324 #if defined(__clang__) || \
325 (defined(__GNUC__) && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40600)
326 #pragma GCC diagnostic pop
514 class KUDU_NO_EXPORT Data;
527 Status ToColumnSchemaDelta(ColumnSchemaDelta* col_delta)
const;
529 Slice DefaultValueAsSlice()
const;
590 class KUDU_NO_EXPORT Data;
630 Status Reset(
const std::vector<KuduColumnSchema>& columns,
int key_columns)
631 ATTRIBUTE_DEPRECATED(
"this method will be removed in a future release")
655 size_t num_columns() const;
665 void GetPrimaryKeyColumnIndexes(std::vector<
int>* indexes) const;
679 std::
string ToString() const;
690 static
KuduSchema FromSchema(const Schema& schema) KUDU_NO_EXPORT;
699 static Schema ToSchema(const
KuduSchema& kudu_schema) KUDU_NO_EXPORT;
704 friend class ClientTest;
713 friend class ScanConfiguration;
714 friend class internal::GetTableSchemaRpc;
715 friend class internal::LookupRpc;
716 friend class internal::MetaCache;
717 friend class internal::MetaCacheEntry;
718 friend class internal::WriteRpc;
719 friend class tools::RemoteKsckCluster;
720 friend class tools::ReplicaDumper;
724 #if __cplusplus >= 201103
730 size_t num_key_columns()
const;
738 #endif // KUDU_CLIENT_SCHEMA_H
KuduSchemaBuilder * SetPrimaryKey(const std::vector< std::string > &key_col_names)
Representation of column type attributes.
Definition: schema.h:67
DataType
Supported data types for columns.
Definition: schema.h:217
KuduColumnSpec * Type(KuduColumnSchema::DataType type)
KuduColumnSchema(const KuduColumnSchema &other)
KuduColumnSpec * Scale(int8_t scale)
KuduColumnSpec * Nullable()
Status Reset(const std::vector< KuduColumnSchema > &columns, int key_columns) WARN_UNUSED_RESULT
KuduColumnSpec * Compression(KuduColumnStorageAttributes::CompressionType compression)
static Status StringToCompressionType(const std::string &compression, CompressionType *type)
This class is a representation of a single scan.
Definition: client.h:2051
A constant cell value with a specific type.
Definition: value.h:35
static Status StringToDataType(const std::string &type_str, DataType *type)
A row which may only contain values for a subset of the columns.
Definition: partial_row.h:72
static std::string DataTypeToString(DataType type)
EncodingType
Column encoding types.
Definition: schema.h:132
KuduColumnSpec * AddColumn(const std::string &name)
bool Equals(const KuduColumnSchema &other) const
A helper class to create a new table with the desired options.
Definition: client.h:755
const EncodingType encoding() const
Definition: schema.h:177
KuduColumnSpec * NotNull()
void CopyFrom(const KuduSchema &other)
KuduColumnSpec * Comment(const std::string &comment)
Builder API for specifying or altering a column within a table schema.
Definition: schema.h:341
KuduColumnTypeAttributes(const KuduColumnTypeAttributes &other)
KuduColumnStorageAttributes(EncodingType encoding=AUTO_ENCODING, CompressionType compression=DEFAULT_COMPRESSION, int32_t block_size=0) ATTRIBUTE_DEPRECATED("this const ructor will be private in a future release")
Definition: schema.h:166
KuduColumnTypeAttributes & operator=(const KuduColumnTypeAttributes &other)
void CopyFrom(const KuduColumnTypeAttributes &other)
KuduColumnTypeAttributes type_attributes() const
Representation of column storage attributes.
Definition: schema.h:129
KuduColumnSpec * PrimaryKey()
Builds scan tokens for a table.
Definition: client.h:2607
KuduColumnTypeAttributes(int8_t precision, int8_t scale)
A single-row write operation to be sent to a Kudu table.
Definition: write_op.h:64
KuduColumnSpec * Encoding(KuduColumnStorageAttributes::EncodingType encoding)
const std::string & name() const
A representation of a table's schema.
Definition: schema.h:597
A scan descriptor limited to a single physical contiguous location.
Definition: client.h:2547
A representation of an operation's outcome.
Definition: status.h:165
Status Build(KuduSchema *schema)
KuduColumnTypeAttributes(uint16_t length)
A representation of a table on a particular cluster.
Definition: client.h:1037
std::string ToString() const
KuduColumnSpec * Default(KuduValue *value)
KuduColumnSpec * Length(uint16_t length)
KuduColumnSpec * BlockSize(int32_t block_size)
void CopyFrom(const KuduColumnSchema &other)
KuduColumnSchema & operator=(const KuduColumnSchema &other)
A wrapper around externally allocated data.
Definition: slice.h:51
const std::string & comment() const
KuduColumnSpec * Precision(int8_t precision)
Builder API for constructing a KuduSchema object.
Definition: schema.h:556
KuduSchema(const KuduSchema &other)
CompressionType
Column compression types.
Definition: schema.h:146
KuduColumnSpec * RenameTo(const std::string &new_name)
Alters an existing table based on the provided steps.
Definition: client.h:1300
KuduColumnSpec * RemoveDefault()
Representation of the column schema.
Definition: schema.h:214
const CompressionType compression() const
Definition: schema.h:182
KuduSchema & operator=(const KuduSchema &other)
static Status StringToEncodingType(const std::string &encoding, EncodingType *type)
A handle for a connection to a cluster.
Definition: client.h:332