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,
274 ATTRIBUTE_DEPRECATED(
"use operator==(const KuduColumnSchema&) instead");
298 const std::string& name()
const;
304 bool is_nullable()
const;
313 const std::string& comment()
const;
323 #ifdef KUDU_HEADERS_NO_STUBS
324 FRIEND_TEST(KuduColumnSchemaTest, TestEquals);
329 #if defined(__clang__) || \
330 (defined(__GNUC__) && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40600)
331 #pragma GCC diagnostic push
332 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
336 const std::string &name,
338 bool is_nullable =
false,
339 const void* default_value = NULL,
342 const std::string& comment =
"");
343 #if defined(__clang__) || \
344 (defined(__GNUC__) && (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40600)
345 #pragma GCC diagnostic pop
533 class KUDU_NO_EXPORT Data;
546 Status ToColumnSchemaDelta(ColumnSchemaDelta* col_delta)
const;
548 Slice DefaultValueAsSlice()
const;
609 class KUDU_NO_EXPORT Data;
649 Status Reset(
const std::vector<KuduColumnSchema>& columns,
int key_columns)
650 ATTRIBUTE_DEPRECATED(
"this method will be removed in a future release")
662 ATTRIBUTE_DEPRECATED("use operator==(const
KuduSchema&) instead");
690 bool HasColumn(const std::
string& col_name,
KuduColumnSchema* col_schema) const;
693 size_t num_columns() const;
703 void GetPrimaryKeyColumnIndexes(std::vector<
int>* indexes) const;
717 std::
string ToString() const;
728 static
KuduSchema FromSchema(const Schema& schema) KUDU_NO_EXPORT;
737 static Schema ToSchema(const
KuduSchema& kudu_schema) KUDU_NO_EXPORT;
742 friend class ClientTest;
751 friend class ScanConfiguration;
752 friend class internal::GetTableSchemaRpc;
753 friend class internal::LookupRpc;
754 friend class internal::MetaCache;
755 friend class internal::MetaCacheEntry;
756 friend class internal::WriteRpc;
757 friend class tools::RemoteKsckCluster;
758 friend class tools::ReplicaDumper;
762 #if __cplusplus >= 201103
768 size_t num_key_columns()
const;
A row which may only contain values for a subset of the columns.
Definition: partial_row.h:72
A wrapper around externally allocated data.
Definition: slice.h:51
A representation of an operation's outcome.
Definition: status.h:165
A handle for a connection to a cluster.
Definition: client.h:615
Representation of the column schema.
Definition: schema.h:214
void CopyFrom(const KuduColumnSchema &other)
KuduColumnSchema & operator=(const KuduColumnSchema &other)
DataType
Supported data types for columns.
Definition: schema.h:217
static Status StringToDataType(const std::string &type_str, DataType *type)
static std::string DataTypeToString(DataType type)
KuduColumnSchema(const KuduColumnSchema &other)
Builder API for specifying or altering a column within a table schema.
Definition: schema.h:360
KuduColumnSpec * PrimaryKey()
KuduColumnSpec * Type(KuduColumnSchema::DataType type)
KuduColumnSpec * BlockSize(int32_t block_size)
KuduColumnSpec * Default(KuduValue *value)
KuduColumnSpec * Nullable()
KuduColumnSpec * RenameTo(const std::string &new_name)
KuduColumnSpec * Scale(int8_t scale)
KuduColumnSpec * Comment(const std::string &comment)
KuduColumnSpec * Compression(KuduColumnStorageAttributes::CompressionType compression)
KuduColumnSpec * RemoveDefault()
KuduColumnSpec * Encoding(KuduColumnStorageAttributes::EncodingType encoding)
KuduColumnSpec * Length(uint16_t length)
KuduColumnSpec * Precision(int8_t precision)
KuduColumnSpec * NotNull()
Representation of column storage attributes.
Definition: schema.h:129
std::string ToString() const
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
const CompressionType compression() const
Definition: schema.h:182
static Status StringToEncodingType(const std::string &encoding, EncodingType *type)
const EncodingType encoding() const
Definition: schema.h:177
EncodingType
Column encoding types.
Definition: schema.h:132
static Status StringToCompressionType(const std::string &compression, CompressionType *type)
CompressionType
Column compression types.
Definition: schema.h:146
Representation of column type attributes.
Definition: schema.h:67
void CopyFrom(const KuduColumnTypeAttributes &other)
KuduColumnTypeAttributes(uint16_t length)
KuduColumnTypeAttributes(int8_t precision, int8_t scale)
KuduColumnTypeAttributes & operator=(const KuduColumnTypeAttributes &other)
KuduColumnTypeAttributes(const KuduColumnTypeAttributes &other)
Builds scan tokens for a table.
Definition: client.h:3013
A scan descriptor limited to a single physical contiguous location.
Definition: client.h:2952
This class is a representation of a single scan.
Definition: client.h:2456
Builder API for constructing a KuduSchema object.
Definition: schema.h:575
KuduColumnSpec * AddColumn(const std::string &name)
KuduSchemaBuilder * SetPrimaryKey(const std::vector< std::string > &key_col_names)
Status Build(KuduSchema *schema)
A representation of a table's schema.
Definition: schema.h:616
Status Reset(const std::vector< KuduColumnSchema > &columns, int key_columns) WARN_UNUSED_RESULT
KuduSchema(const KuduSchema &other)
KuduSchema & operator=(const KuduSchema &other)
void CopyFrom(const KuduSchema &other)
Alters an existing table based on the provided steps.
Definition: client.h:1666
A helper class to create a new table with the desired options.
Definition: client.h:1084
A representation of a table on a particular cluster.
Definition: client.h:1389
A constant cell value with a specific type.
Definition: value.h:35
A single-row write operation to be sent to a Kudu table.
Definition: write_op.h:64