Kudu C++ client API
client.h
1 // Licensed to the Apache Software Foundation (ASF) under one
2 // or more contributor license agreements. See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership. The ASF licenses this file
5 // to you under the Apache License, Version 2.0 (the
6 // "License"); you may not use this file except in compliance
7 // with the License. You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing,
12 // software distributed under the License is distributed on an
13 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 // KIND, either express or implied. See the License for the
15 // specific language governing permissions and limitations
16 // under the License.
17 
24 
25 #ifndef KUDU_CLIENT_CLIENT_H
26 #define KUDU_CLIENT_CLIENT_H
27 
28 #include <stdint.h>
29 
30 #include <cstddef>
31 #include <map>
32 // Not safe to include <memory>; this header must remain compatible with C++98.
33 //
34 // IWYU pragma: no_include <memory>
35 #include <string>
36 #include <vector>
37 
38 #include "kudu/client/row_result.h"
39 #include "kudu/client/scan_predicate.h"
40 #include "kudu/client/schema.h"
41 #include "kudu/client/shared_ptr.h" // IWYU pragma: keep
42 #ifdef KUDU_HEADERS_NO_STUBS
43 #include <gtest/gtest_prod.h>
44 
45 #include "kudu/gutil/macros.h"
46 #include "kudu/gutil/port.h"
47 #else
48 #include "kudu/client/stubs.h"
49 #endif
50 #include "kudu/util/kudu_export.h"
51 #include "kudu/util/slice.h"
52 #include "kudu/util/status.h"
53 
54 namespace kudu {
55 
56 class AuthzTokenTest;
57 class ClientStressTest_TestUniqueClientIds_Test;
58 class KuduPartialRow;
59 class MonoDelta;
60 class Partition;
61 class PartitionSchema;
62 class SecurityUnknownTskTest;
63 
64 namespace client {
65 class KuduClient;
66 class KuduTable;
67 } // namespace client
68 
69 namespace transactions {
70 class CoordinatorRpc;
71 class TxnSystemClient;
72 } // namespace transactions
73 
74 namespace tools {
75 class LeaderMasterProxy;
76 class RemoteKsckCluster;
77 } // namespace tools
78 
79 namespace client {
80 
81 class KuduColumnarScanBatch;
82 class KuduDelete;
83 class KuduInsert;
84 class KuduInsertIgnore;
85 class KuduLoggingCallback;
86 class KuduPartitioner;
87 class KuduScanBatch;
88 class KuduSession;
89 class KuduStatusCallback;
90 class KuduTableAlterer;
91 class KuduTableCreator;
92 class KuduTableStatistics;
93 class KuduTablet;
94 class KuduTabletServer;
95 class KuduUpdate;
96 class KuduUpsert;
97 class KuduValue;
98 class KuduWriteOperation;
99 class ResourceMetrics;
100 
101 namespace internal {
102 class Batcher;
103 class ErrorCollector;
104 class GetTableSchemaRpc;
105 class LookupRpc;
106 class MetaCache;
107 class RemoteTablet;
108 class RemoteTabletServer;
109 class ReplicaController;
110 class RetrieveAuthzTokenRpc;
111 class ScanBatchDataInterface;
112 class WriteRpc;
113 template <class ReqClass, class RespClass>
114 class AsyncLeaderMasterRpc; // IWYU pragma: keep
115 } // namespace internal
116 
129 void KUDU_EXPORT InstallLoggingCallback(KuduLoggingCallback* cb);
130 
137 void KUDU_EXPORT UninstallLoggingCallback();
138 
154 void KUDU_EXPORT SetVerboseLogLevel(int level);
155 
165 Status KUDU_EXPORT SetInternalSignalNumber(int signum) WARN_UNUSED_RESULT;
166 
178 Status KUDU_EXPORT DisableSaslInitialization() WARN_UNUSED_RESULT;
179 
180 
203 Status KUDU_EXPORT DisableOpenSSLInitialization() WARN_UNUSED_RESULT;
204 
207 std::string KUDU_EXPORT GetShortVersionString();
208 
211 std::string KUDU_EXPORT GetAllVersionInfo();
212 
217 class KUDU_EXPORT KuduClientBuilder {
218  public:
221 
226 
232  KuduClientBuilder& master_server_addrs(const std::vector<std::string>& addrs);
233 
241  KuduClientBuilder& add_master_server_addr(const std::string& addr);
242 
253 
262 
271 
281  KuduClientBuilder& num_reactors(int num_reactors);
282 
293  Status Build(sp::shared_ptr<KuduClient>* client);
294 
295  private:
296  class KUDU_NO_EXPORT Data;
297 
298  friend class internal::ReplicaController;
299 
300  // Owned.
301  Data* data_;
302 
303  DISALLOW_COPY_AND_ASSIGN(KuduClientBuilder);
304 };
305 
332 class KUDU_EXPORT KuduClient : public sp::enable_shared_from_this<KuduClient> {
333  public:
334  ~KuduClient();
335 
341 
350  Status IsCreateTableInProgress(const std::string& table_name,
351  bool* create_in_progress);
352 
358  Status DeleteTable(const std::string& table_name);
359 
361 
372  Status DeleteTableInCatalogs(const std::string& table_name,
373  bool modify_external_catalogs) KUDU_NO_EXPORT;
375 
382  KuduTableAlterer* NewTableAlterer(const std::string& table_name);
383 
392  Status IsAlterTableInProgress(const std::string& table_name,
393  bool* alter_in_progress);
401  Status GetTableSchema(const std::string& table_name,
402  KuduSchema* schema);
403 
410  Status ListTabletServers(std::vector<KuduTabletServer*>* tablet_servers);
411 
419  Status ListTables(std::vector<std::string>* tables,
420  const std::string& filter = "");
421 
429  Status TableExists(const std::string& table_name, bool* exists);
430 
447  Status OpenTable(const std::string& table_name,
448  sp::shared_ptr<KuduTable>* table);
449 
455  sp::shared_ptr<KuduSession> NewSession();
456 
458 
471  Status GetTablet(const std::string& tablet_id,
472  KuduTablet** tablet) KUDU_NO_EXPORT;
473 
481  Status GetTableStatistics(const std::string& table_name,
482  KuduTableStatistics** statistics);
483 
491  std::string GetMasterAddresses() const KUDU_NO_EXPORT;
492 
494 
498 
499  CLOSEST_REPLICA,
500 
505  FIRST_REPLICA
506  };
507 
510  bool IsMultiMaster() const;
511 
514 
517 
520  static const uint64_t kNoTimestamp;
521 
532  uint64_t GetLatestObservedTimestamp() const;
533 
548  void SetLatestObservedTimestamp(uint64_t ht_timestamp);
549 
561  Status ExportAuthenticationCredentials(std::string* authn_creds) const;
562 
564 
570  std::string GetHiveMetastoreUris() const KUDU_NO_EXPORT;
571 
577  bool GetHiveMetastoreSaslEnabled() const KUDU_NO_EXPORT;
578 
588  std::string GetHiveMetastoreUuid() const KUDU_NO_EXPORT;
589 
596  std::string location() const KUDU_NO_EXPORT;
598 
599  private:
600  class KUDU_NO_EXPORT Data;
601 
602  template <class ReqClass, class RespClass>
603  friend class internal::AsyncLeaderMasterRpc;
604 
605  friend class ClientTest;
606  friend class ConnectToClusterBaseTest;
607  friend class KuduClientBuilder;
608  friend class KuduPartitionerBuilder;
609  friend class KuduScanToken;
610  friend class KuduScanTokenBuilder;
611  friend class KuduScanner;
612  friend class KuduSession;
613  friend class KuduTable;
614  friend class KuduTableAlterer;
615  friend class KuduTableCreator;
616  friend class internal::Batcher;
617  friend class internal::GetTableSchemaRpc;
618  friend class internal::LookupRpc;
619  friend class internal::MetaCache;
620  friend class internal::RemoteTablet;
621  friend class internal::RemoteTabletServer;
622  friend class internal::RetrieveAuthzTokenRpc;
623  friend class internal::WriteRpc;
624  friend class kudu::AuthzTokenTest;
625  friend class kudu::SecurityUnknownTskTest;
626  friend class transactions::CoordinatorRpc;
627  friend class transactions::TxnSystemClient;
628  friend class tools::LeaderMasterProxy;
629  friend class tools::RemoteKsckCluster;
630 
631  FRIEND_TEST(kudu::ClientStressTest, TestUniqueClientIds);
632  FRIEND_TEST(ClientTest, TestCacheAuthzTokens);
633  FRIEND_TEST(ClientTest, TestGetSecurityInfoFromMaster);
634  FRIEND_TEST(ClientTest, TestGetTabletServerBlacklist);
635  FRIEND_TEST(ClientTest, TestMasterDown);
636  FRIEND_TEST(ClientTest, TestMasterLookupPermits);
637  FRIEND_TEST(ClientTest, TestMetaCacheExpiry);
638  FRIEND_TEST(ClientTest, TestNonCoveringRangePartitions);
639  FRIEND_TEST(ClientTest, TestRetrieveAuthzTokenInParallel);
640  FRIEND_TEST(ClientTest, TestReplicatedTabletWritesWithLeaderElection);
641  FRIEND_TEST(ClientTest, TestScanFaultTolerance);
642  FRIEND_TEST(ClientTest, TestScanTimeout);
643  FRIEND_TEST(ClientTest, TestWriteWithDeadMaster);
644  FRIEND_TEST(MasterFailoverTest, TestPauseAfterCreateTableIssued);
645 
646  KuduClient();
647 
648  // Owned.
649  Data* data_;
650 
651  DISALLOW_COPY_AND_ASSIGN(KuduClient);
652 };
653 
655 class KUDU_EXPORT KuduTabletServer {
656  public:
657  ~KuduTabletServer();
658 
661  const std::string& uuid() const;
662 
665  const std::string& hostname() const;
666 
669  uint16_t port() const;
670 
672 
677  const std::string& location() const KUDU_NO_EXPORT;
679 
680  private:
681  class KUDU_NO_EXPORT Data;
682 
683  friend class KuduClient;
684  friend class KuduScanner;
685  friend class KuduScanTokenBuilder;
686 
688 
689  // Owned.
690  Data* data_;
691 
692  DISALLOW_COPY_AND_ASSIGN(KuduTabletServer);
693 };
694 
696 class KUDU_EXPORT KuduReplica {
697  public:
698  ~KuduReplica();
699 
704  bool is_leader() const;
705 
707  const KuduTabletServer& ts() const;
708 
709  private:
710  friend class KuduClient;
711  friend class KuduScanTokenBuilder;
712  friend class internal::ReplicaController;
713 
714  class KUDU_NO_EXPORT Data;
715 
716  KuduReplica();
717 
718  // Owned.
719  Data* data_;
720 
721  DISALLOW_COPY_AND_ASSIGN(KuduReplica);
722 };
723 
725 class KUDU_EXPORT KuduTablet {
726  public:
727  ~KuduTablet();
728 
731  const std::string& id() const;
732 
738  const std::vector<const KuduReplica*>& replicas() const;
739 
740  private:
741  friend class KuduClient;
742  friend class KuduScanTokenBuilder;
743 
744  class KUDU_NO_EXPORT Data;
745 
746  KuduTablet();
747 
748  // Owned.
749  Data* data_;
750 
751  DISALLOW_COPY_AND_ASSIGN(KuduTablet);
752 };
753 
755 class KUDU_EXPORT KuduTableCreator {
756  public:
757  ~KuduTableCreator();
758 
770  KuduTableCreator& table_name(const std::string& name);
771 
783 
800  KuduTableCreator& add_hash_partitions(const std::vector<std::string>& columns,
801  int32_t num_buckets);
802 
818  KuduTableCreator& add_hash_partitions(const std::vector<std::string>& columns,
819  int32_t num_buckets, int32_t seed);
820 
833  KuduTableCreator& set_range_partition_columns(const std::vector<std::string>& columns);
834 
839  };
840 
870  KuduPartialRow* upper_bound,
871  RangePartitionBound lower_bound_type = INCLUSIVE_BOUND,
872  RangePartitionBound upper_bound_type = EXCLUSIVE_BOUND);
873 
883 
891  KuduTableCreator& set_owner(const std::string& owner);
892 
898  KuduTableCreator& split_rows(const std::vector<const KuduPartialRow*>& split_rows)
899  ATTRIBUTE_DEPRECATED("use add_range_partition_split() instead");
900 
910  KuduTableCreator& num_replicas(int n_replicas);
911 
923  KuduTableCreator& dimension_label(const std::string& dimension_label);
924 
932  KuduTableCreator& extra_configs(const std::map<std::string, std::string>& extra_configs);
933 
944 
952  KuduTableCreator& wait(bool wait);
953 
968 
969  private:
970  class KUDU_NO_EXPORT Data;
971 
972  friend class KuduClient;
973  friend class transactions::TxnSystemClient;
974 
975  explicit KuduTableCreator(KuduClient* client);
976 
977  // Owned.
978  Data* data_;
979 
980  DISALLOW_COPY_AND_ASSIGN(KuduTableCreator);
981 };
982 
984 class KUDU_EXPORT KuduTableStatistics {
985  public:
988 
993  int64_t on_disk_size() const;
994 
999  int64_t live_row_count() const;
1000 
1004  std::string ToString() const;
1005 
1006  private:
1007  class KUDU_NO_EXPORT Data;
1008 
1009  friend class KuduClient;
1010 
1011  // Owned.
1012  Data* data_;
1013 
1014  DISALLOW_COPY_AND_ASSIGN(KuduTableStatistics);
1015 };
1016 
1037 class KUDU_EXPORT KuduTable : public sp::enable_shared_from_this<KuduTable> {
1038  public:
1039  ~KuduTable();
1040 
1042  const std::string& name() const;
1043 
1051  const std::string& id() const;
1052 
1054  const KuduSchema& schema() const;
1055 
1057  int num_replicas() const;
1058 
1060  const std::string& owner() const;
1061 
1066 
1071 
1076 
1081 
1086 
1112  KuduValue* value);
1113 
1146  std::vector<KuduBloomFilter*>* bloom_filters);
1147 
1152 
1189  const std::vector<Slice>& bloom_filters);
1191 
1216  std::vector<KuduValue*>* values);
1217 
1229 
1241 
1244  KuduClient* client() const;
1245 
1247  const PartitionSchema& partition_schema() const;
1248 
1250  const std::map<std::string, std::string>& extra_configs() const;
1251 
1253 
1263  Status ListPartitions(std::vector<Partition>* partitions) KUDU_NO_EXPORT;
1264 
1266 
1267  private:
1268  class KUDU_NO_EXPORT Data;
1269 
1270  friend class KuduClient;
1271  friend class KuduPartitioner;
1272  friend class KuduScanToken;
1273 
1274  KuduTable(const sp::shared_ptr<KuduClient>& client,
1275  const std::string& name,
1276  const std::string& id,
1277  int num_replicas,
1278  const std::string& owner,
1279  const KuduSchema& schema,
1280  const PartitionSchema& partition_schema,
1281  const std::map<std::string, std::string>& extra_configs);
1282 
1283  // Owned.
1284  Data* data_;
1285 
1286  DISALLOW_COPY_AND_ASSIGN(KuduTable);
1287 };
1288 
1300 class KUDU_EXPORT KuduTableAlterer {
1301  public:
1302  ~KuduTableAlterer();
1303 
1309  KuduTableAlterer* RenameTo(const std::string& new_name);
1310 
1316  KuduTableAlterer* SetOwner(const std::string& new_owner);
1317 
1327  KuduColumnSpec* AddColumn(const std::string& name);
1328 
1337  KuduColumnSpec* AlterColumn(const std::string& name);
1338 
1346  KuduTableAlterer* DropColumn(const std::string& name);
1347 
1380  KuduPartialRow* lower_bound,
1381  KuduPartialRow* upper_bound,
1384 
1420  KuduPartialRow* lower_bound,
1421  KuduPartialRow* upper_bound,
1422  const std::string& dimension_label,
1425 
1454  KuduPartialRow* lower_bound,
1455  KuduPartialRow* upper_bound,
1458 
1468  KuduTableAlterer* AlterExtraConfig(const std::map<std::string, std::string>& extra_configs);
1469 
1480 
1492  KuduTableAlterer* wait(bool wait);
1493 
1495 
1504  KuduTableAlterer* modify_external_catalogs(bool modify_external_catalogs) KUDU_NO_EXPORT;
1505 
1507 
1513 
1514  private:
1515  class KUDU_NO_EXPORT Data;
1516 
1517  friend class KuduClient;
1518 
1519  KuduTableAlterer(KuduClient* client,
1520  const std::string& name);
1521 
1522  // Owned.
1523  Data* data_;
1524 
1525  DISALLOW_COPY_AND_ASSIGN(KuduTableAlterer);
1526 };
1527 
1533 class KUDU_EXPORT KuduError {
1534  public:
1535  ~KuduError();
1536 
1538  const Status& status() const;
1539 
1542 
1551 
1563 
1564  private:
1565  class KUDU_NO_EXPORT Data;
1566 
1567  friend class internal::Batcher;
1568  friend class internal::ErrorCollector;
1569  friend class KuduSession;
1570 
1571  KuduError(KuduWriteOperation* failed_op, const Status& error);
1572 
1573  // Owned.
1574  Data* data_;
1575 
1576  DISALLOW_COPY_AND_ASSIGN(KuduError);
1577 };
1578 
1579 
1638 class KUDU_EXPORT KuduSession : public sp::enable_shared_from_this<KuduSession> {
1639  public:
1640  ~KuduSession();
1641 
1643  enum FlushMode {
1649 
1677 
1690  MANUAL_FLUSH
1691  };
1692 
1701  Status SetFlushMode(FlushMode m) WARN_UNUSED_RESULT;
1702 
1724 
1739  COMMIT_WAIT
1740  };
1741 
1748  WARN_UNUSED_RESULT;
1749 
1767  Status SetMutationBufferSpace(size_t size_bytes) WARN_UNUSED_RESULT;
1768 
1793  WARN_UNUSED_RESULT;
1794 
1816  Status SetMutationBufferFlushInterval(unsigned int millis) WARN_UNUSED_RESULT;
1817 
1842  Status SetMutationBufferMaxNum(unsigned int max_num) WARN_UNUSED_RESULT;
1843 
1849  void SetTimeoutMillis(int millis);
1850 
1854 
1878  Status Apply(KuduWriteOperation* write_op) WARN_UNUSED_RESULT;
1879 
1894  Status Flush() WARN_UNUSED_RESULT;
1895 
1936  void FlushAsync(KuduStatusCallback* cb);
1937 
1940  Status Close() WARN_UNUSED_RESULT;
1941 
1950  bool HasPendingOperations() const;
1951 
1973  int CountBufferedOperations() const
1974  ATTRIBUTE_DEPRECATED("this method is experimental and will disappear "
1975  "in a future release");
1976 
2001  Status SetErrorBufferSpace(size_t size_bytes);
2002 
2012  int CountPendingErrors() const;
2013 
2024  void GetPendingErrors(std::vector<KuduError*>* errors, bool* overflowed);
2025 
2027  KuduClient* client() const;
2028 
2029  private:
2030  class KUDU_NO_EXPORT Data;
2031 
2032  friend class KuduClient;
2033  friend class internal::Batcher;
2034  friend class ClientTest;
2035  FRIEND_TEST(ClientTest, TestAutoFlushBackgroundApplyBlocks);
2036  FRIEND_TEST(ClientTest, TestAutoFlushBackgroundAndErrorCollector);
2037 
2038  explicit KuduSession(const sp::shared_ptr<KuduClient>& client);
2039 
2040  // Owned.
2041  Data* data_;
2042 
2043  DISALLOW_COPY_AND_ASSIGN(KuduSession);
2044 };
2045 
2046 
2051 class KUDU_EXPORT KuduScanner {
2052  public:
2054  enum ReadMode {
2063 
2084 
2095  READ_YOUR_WRITES
2096  };
2097 
2101  enum OrderMode {
2108 
2113  ORDERED
2114  };
2115 
2119  enum { kScanTimeoutMillis = 30000 };
2120 
2126  explicit KuduScanner(KuduTable* table);
2127  ~KuduScanner();
2128 
2138  Status SetProjectedColumnNames(const std::vector<std::string>& col_names)
2139  WARN_UNUSED_RESULT;
2140 
2150  Status SetProjectedColumnIndexes(const std::vector<int>& col_indexes)
2151  WARN_UNUSED_RESULT;
2152 
2158  Status SetProjectedColumns(const std::vector<std::string>& col_names)
2159  WARN_UNUSED_RESULT
2160  ATTRIBUTE_DEPRECATED("use SetProjectedColumnNames() instead");
2161 
2170  Status AddConjunctPredicate(KuduPredicate* pred) WARN_UNUSED_RESULT;
2171 
2181 
2190  ATTRIBUTE_DEPRECATED("use AddLowerBound() instead");
2191 
2201 
2210  ATTRIBUTE_DEPRECATED("use AddExclusiveUpperBound() instead");
2211 
2221 
2231 
2238  Status SetCacheBlocks(bool cache_blocks);
2239 
2242 
2262 
2271  void Close();
2272 
2281  bool HasMoreRows() const;
2282 
2294  Status NextBatch(std::vector<KuduRowResult>* rows)
2295  ATTRIBUTE_DEPRECATED("use NextBatch(KuduScanBatch*) instead");
2296 
2309 
2322 
2332 
2335 
2342  Status SetBatchSizeBytes(uint32_t batch_size);
2343 
2352  WARN_UNUSED_RESULT;
2353 
2359  Status SetReadMode(ReadMode read_mode) WARN_UNUSED_RESULT;
2360 
2366  Status SetOrderMode(OrderMode order_mode) WARN_UNUSED_RESULT
2367  ATTRIBUTE_DEPRECATED("use SetFaultTolerant() instead");
2368 
2381  Status SetFaultTolerant() WARN_UNUSED_RESULT;
2382 
2388  Status SetSnapshotMicros(uint64_t snapshot_timestamp_micros) WARN_UNUSED_RESULT;
2389 
2399  Status SetSnapshotRaw(uint64_t snapshot_timestamp) WARN_UNUSED_RESULT;
2400 
2402 
2417  Status SetDiffScan(uint64_t start_timestamp, uint64_t end_timestamp)
2418  WARN_UNUSED_RESULT KUDU_NO_EXPORT;
2419 
2421 
2427  Status SetTimeoutMillis(int millis);
2428 
2430  KuduSchema GetProjectionSchema() const;
2431 
2433  sp::shared_ptr<KuduTable> GetKuduTable();
2434 
2442 
2444  static const uint64_t NO_FLAGS = 0;
2451  static const uint64_t PAD_UNIXTIME_MICROS_TO_16_BYTES = 1 << 0;
2452 
2460  static const uint64_t COLUMNAR_LAYOUT = 1 << 1;
2461 
2489  Status SetRowFormatFlags(uint64_t flags);
2491 
2497  Status SetLimit(int64_t limit) WARN_UNUSED_RESULT;
2498 
2504  std::string ToString() const;
2505 
2506  private:
2507  class KUDU_NO_EXPORT Data;
2508 
2509  Status NextBatch(internal::ScanBatchDataInterface* batch);
2510 
2511  friend class KuduScanToken;
2512  FRIEND_TEST(ClientTest, TestBlockScannerHijackingAttempts);
2513  FRIEND_TEST(ClientTest, TestScanCloseProxy);
2514  FRIEND_TEST(ClientTest, TestScanFaultTolerance);
2515  FRIEND_TEST(ClientTest, TestScanNoBlockCaching);
2516  FRIEND_TEST(ClientTest, TestScanTimeout);
2517  FRIEND_TEST(ClientTest, TestReadAtSnapshotNoTimestampSet);
2518  FRIEND_TEST(ConsistencyITest, TestSnapshotScanTimestampReuse);
2519  FRIEND_TEST(ScanTokenTest, TestScanTokens);
2520 
2521  // Owned.
2522  Data* data_;
2523 
2524  DISALLOW_COPY_AND_ASSIGN(KuduScanner);
2525 };
2526 
2547 class KUDU_EXPORT KuduScanToken {
2548  public:
2549 
2550  ~KuduScanToken();
2551 
2562  Status IntoKuduScanner(KuduScanner** scanner) const WARN_UNUSED_RESULT;
2563 
2565  const KuduTablet& tablet() const;
2566 
2574  Status Serialize(std::string* buf) const WARN_UNUSED_RESULT;
2575 
2588  const std::string& serialized_token,
2589  KuduScanner** scanner) WARN_UNUSED_RESULT;
2590 
2591  private:
2592  class KUDU_NO_EXPORT Data;
2593 
2594  friend class KuduScanTokenBuilder;
2595 
2596  KuduScanToken();
2597 
2598  // Owned.
2599  Data* data_;
2600 
2601  DISALLOW_COPY_AND_ASSIGN(KuduScanToken);
2602 };
2603 
2607 class KUDU_EXPORT KuduScanTokenBuilder {
2608  public:
2609 
2617 
2627  Status SetProjectedColumnNames(const std::vector<std::string>& col_names)
2628  WARN_UNUSED_RESULT;
2629 
2631  Status SetProjectedColumnIndexes(const std::vector<int>& col_indexes)
2632  WARN_UNUSED_RESULT;
2633 
2635  Status AddConjunctPredicate(KuduPredicate* pred) WARN_UNUSED_RESULT;
2636 
2638  Status AddLowerBound(const KuduPartialRow& key) WARN_UNUSED_RESULT;
2639 
2648  Status AddUpperBound(const KuduPartialRow& key) WARN_UNUSED_RESULT;
2649 
2651  Status SetCacheBlocks(bool cache_blocks) WARN_UNUSED_RESULT;
2652 
2659  Status SetBatchSizeBytes(uint32_t batch_size) WARN_UNUSED_RESULT;
2660 
2669  WARN_UNUSED_RESULT;
2670 
2672  Status SetReadMode(KuduScanner::ReadMode read_mode) WARN_UNUSED_RESULT;
2673 
2675  Status SetFaultTolerant() WARN_UNUSED_RESULT;
2676 
2678  Status SetSnapshotMicros(uint64_t snapshot_timestamp_micros)
2679  WARN_UNUSED_RESULT;
2680 
2682  Status SetSnapshotRaw(uint64_t snapshot_timestamp) WARN_UNUSED_RESULT;
2683 
2685 
2687  Status SetDiffScan(uint64_t start_timestamp, uint64_t end_timestamp)
2688  WARN_UNUSED_RESULT KUDU_NO_EXPORT;
2690 
2692  Status SetTimeoutMillis(int millis) WARN_UNUSED_RESULT;
2693 
2701  Status IncludeTableMetadata(bool include_metadata) WARN_UNUSED_RESULT;
2702 
2710  Status IncludeTabletMetadata(bool include_metadata) WARN_UNUSED_RESULT;
2711 
2720  Status Build(std::vector<KuduScanToken*>* tokens) WARN_UNUSED_RESULT;
2721 
2722  private:
2723  class KUDU_NO_EXPORT Data;
2724 
2725  // Owned.
2726  Data* data_;
2727 
2728  DISALLOW_COPY_AND_ASSIGN(KuduScanTokenBuilder);
2729 };
2730 
2732 class KUDU_EXPORT KuduPartitionerBuilder {
2733  public:
2738  explicit KuduPartitionerBuilder(sp::shared_ptr<KuduTable> table);
2740 
2747 
2766  Status Build(KuduPartitioner** partitioner);
2767  private:
2768  class KUDU_NO_EXPORT Data;
2769 
2770  // Owned.
2771  Data* data_;
2772 
2773  DISALLOW_COPY_AND_ASSIGN(KuduPartitionerBuilder);
2774 };
2775 
2786 class KUDU_EXPORT KuduPartitioner {
2787  public:
2788  ~KuduPartitioner();
2789 
2793  int NumPartitions() const;
2794 
2806  Status PartitionRow(const KuduPartialRow& row, int* partition);
2807  private:
2808  class KUDU_NO_EXPORT Data;
2809 
2810  friend class KuduPartitionerBuilder;
2811 
2812  explicit KuduPartitioner(Data* data);
2813  Data* data_; // Owned.
2814 };
2815 
2816 
2817 } // namespace client
2818 } // namespace kudu
2819 #endif
kudu::client::KuduError::release_failed_op
KuduWriteOperation * release_failed_op()
kudu::client::KuduTableCreator::extra_configs
KuduTableCreator & extra_configs(const std::map< std::string, std::string > &extra_configs)
kudu::client::KuduTableAlterer::wait
KuduTableAlterer * wait(bool wait)
kudu::client::KuduError
This class represents an error which occurred in a write operation.
Definition: client.h:1533
kudu::client::KuduSession
Representation of a Kudu client session.
Definition: client.h:1638
kudu::client::KuduClient::NewTableAlterer
KuduTableAlterer * NewTableAlterer(const std::string &table_name)
kudu::client::KuduTablet::id
const std::string & id() const
kudu::client::KuduTabletServer::hostname
const std::string & hostname() const
kudu::client::KuduClient::IsMultiMaster
bool IsMultiMaster() const
kudu::client::KuduTableAlterer::DropRangePartition
KuduTableAlterer * DropRangePartition(KuduPartialRow *lower_bound, KuduPartialRow *upper_bound, KuduTableCreator::RangePartitionBound lower_bound_type=KuduTableCreator::INCLUSIVE_BOUND, KuduTableCreator::RangePartitionBound upper_bound_type=KuduTableCreator::EXCLUSIVE_BOUND)
kudu::client::KuduTablet
In-memory representation of a remote tablet.
Definition: client.h:725
kudu::client::KuduScanner::AddExclusiveUpperBoundPartitionKeyRaw
Status AddExclusiveUpperBoundPartitionKeyRaw(const Slice &partition_key)
kudu::client::KuduTableCreator::set_range_partition_columns
KuduTableCreator & set_range_partition_columns(const std::vector< std::string > &columns)
kudu::client::KuduClient::IsCreateTableInProgress
Status IsCreateTableInProgress(const std::string &table_name, bool *create_in_progress)
kudu::client::KuduClientBuilder::master_server_addrs
KuduClientBuilder & master_server_addrs(const std::vector< std::string > &addrs)
kudu::client::KuduTableAlterer::SetOwner
KuduTableAlterer * SetOwner(const std::string &new_owner)
kudu::client::KuduTableStatistics
In-memory statistics of table.
Definition: client.h:984
kudu::client::KuduTable::id
const std::string & id() const
kudu::client::KuduTableCreator::dimension_label
KuduTableCreator & dimension_label(const std::string &dimension_label)
kudu::client::KuduPartitionerBuilder::SetBuildTimeout
KuduPartitionerBuilder * SetBuildTimeout(MonoDelta timeout)
kudu::client::KuduTable::NewUpsert
KuduUpsert * NewUpsert()
kudu::client::KuduTable::NewInsertIgnore
KuduInsertIgnore * NewInsertIgnore()
kudu::client::KuduTableAlterer::timeout
KuduTableAlterer * timeout(const MonoDelta &timeout)
kudu::client::KuduTableCreator::RangePartitionBound
RangePartitionBound
Range partition bound type.
Definition: client.h:836
kudu::client::KuduTableCreator::split_rows
KuduTableCreator & split_rows(const std::vector< const KuduPartialRow * > &split_rows) ATTRIBUTE_DEPRECATED("use add_range_partition_split() instead")
kudu::client::KuduClient::ExportAuthenticationCredentials
Status ExportAuthenticationCredentials(std::string *authn_creds) const
kudu::client::KuduClient::TableExists
Status TableExists(const std::string &table_name, bool *exists)
kudu::client::KuduPartitionerBuilder::Build
Status Build(KuduPartitioner **partitioner)
shared_ptr.h
Smart pointer typedefs for externally-faced code.
kudu::client::KuduTableAlterer::AlterExtraConfig
KuduTableAlterer * AlterExtraConfig(const std::map< std::string, std::string > &extra_configs)
kudu::client::KuduTable::num_replicas
int num_replicas() const
kudu::client::KuduError::failed_op
const KuduWriteOperation & failed_op() const
kudu::client::KuduSession::CLIENT_PROPAGATED
@ CLIENT_PROPAGATED
Definition: client.h:1723
kudu::client::KuduError::was_possibly_successful
bool was_possibly_successful() const
kudu::client::KuduScanTokenBuilder::SetCacheBlocks
Status SetCacheBlocks(bool cache_blocks) WARN_UNUSED_RESULT
kudu::client::KuduClient::IsAlterTableInProgress
Status IsAlterTableInProgress(const std::string &table_name, bool *alter_in_progress)
kudu::client::KuduTableCreator::add_range_partition
KuduTableCreator & add_range_partition(KuduPartialRow *lower_bound, KuduPartialRow *upper_bound, RangePartitionBound lower_bound_type=INCLUSIVE_BOUND, RangePartitionBound upper_bound_type=EXCLUSIVE_BOUND)
kudu::client::ResourceMetrics
A generic catalog of simple metrics.
Definition: resource_metrics.h:39
kudu::client::KuduSession::SetMutationBufferSpace
Status SetMutationBufferSpace(size_t size_bytes) WARN_UNUSED_RESULT
kudu::client::KuduScanTokenBuilder::SetSelection
Status SetSelection(KuduClient::ReplicaSelection selection) WARN_UNUSED_RESULT
kudu::client::KuduPartitioner
Definition: client.h:2786
kudu::client::KuduClientBuilder::Build
Status Build(sp::shared_ptr< KuduClient > *client)
kudu::client::KuduScanner
This class is a representation of a single scan.
Definition: client.h:2051
kudu::client::KuduValue
A constant cell value with a specific type.
Definition: value.h:35
kudu::client::KuduError::status
const Status & status() const
kudu::client::KuduReplica::ts
const KuduTabletServer & ts() const
kudu::client::KuduScanner::SetSelection
Status SetSelection(KuduClient::ReplicaSelection selection) WARN_UNUSED_RESULT
kudu::client::KuduClient::NewSession
sp::shared_ptr< KuduSession > NewSession()
kudu::client::KuduTabletServer
In-memory representation of a remote tablet server.
Definition: client.h:655
kudu::client::KuduScanner::ReadMode
ReadMode
The read modes for scanners.
Definition: client.h:2054
kudu::client::KuduTableAlterer::AddRangePartition
KuduTableAlterer * AddRangePartition(KuduPartialRow *lower_bound, KuduPartialRow *upper_bound, KuduTableCreator::RangePartitionBound lower_bound_type=KuduTableCreator::INCLUSIVE_BOUND, KuduTableCreator::RangePartitionBound upper_bound_type=KuduTableCreator::EXCLUSIVE_BOUND)
kudu::client::KuduSession::SetMutationBufferMaxNum
Status SetMutationBufferMaxNum(unsigned int max_num) WARN_UNUSED_RESULT
kudu::client::KuduTable::NewIsNotNullPredicate
KuduPredicate * NewIsNotNullPredicate(const Slice &col_name)
kudu::client::KuduScanner::READ_AT_SNAPSHOT
@ READ_AT_SNAPSHOT
Definition: client.h:2083
kudu::client::KuduClientBuilder::import_authentication_credentials
KuduClientBuilder & import_authentication_credentials(std::string authn_creds)
KuduPartialRow
A row which may only contain values for a subset of the columns.
Definition: partial_row.h:72
kudu::client::KuduSession::SetMutationBufferFlushInterval
Status SetMutationBufferFlushInterval(unsigned int millis) WARN_UNUSED_RESULT
kudu::client::KuduTableCreator::table_name
KuduTableCreator & table_name(const std::string &name)
kudu::client::KuduTableStatistics::ToString
std::string ToString() const
kudu::client::KuduScanner::GetCurrentServer
Status GetCurrentServer(KuduTabletServer **server)
kudu::client::KuduReplica::is_leader
bool is_leader() const
kudu::client::KuduClient::default_admin_operation_timeout
const MonoDelta & default_admin_operation_timeout() const
kudu::client::KuduTableCreator::add_range_partition_split
KuduTableCreator & add_range_partition_split(KuduPartialRow *split_row)
kudu::client::KuduScanBatch
A batch of zero or more rows returned by a scan operation.
Definition: scan_batch.h:84
kudu::client::KuduTable::NewDelete
KuduDelete * NewDelete()
kudu::client::KuduSession::ExternalConsistencyMode
ExternalConsistencyMode
The possible external consistency modes on which Kudu operates.
Definition: client.h:1704
kudu::client::KuduScanner::SetCacheBlocks
Status SetCacheBlocks(bool cache_blocks)
kudu::client::KuduSession::SetMutationBufferFlushWatermark
Status SetMutationBufferFlushWatermark(double watermark_pct) WARN_UNUSED_RESULT
kudu::client::KuduTableAlterer::RenameTo
KuduTableAlterer * RenameTo(const std::string &new_name)
kudu::client::KuduTableCreator::add_hash_partitions
KuduTableCreator & add_hash_partitions(const std::vector< std::string > &columns, int32_t num_buckets, int32_t seed)
kudu::client::KuduUpdate
A single row update to be sent to the cluster.
Definition: write_op.h:217
kudu::client::KuduPredicate
A representation of comparison predicate for Kudu queries.
Definition: scan_predicate.h:43
kudu::client::KuduScanTokenBuilder::AddLowerBound
Status AddLowerBound(const KuduPartialRow &key) WARN_UNUSED_RESULT
kudu::client::KuduScanner::SetProjectedColumnNames
Status SetProjectedColumnNames(const std::vector< std::string > &col_names) WARN_UNUSED_RESULT
kudu::client::KuduPartitionerBuilder
Builder for Partitioner instances.
Definition: client.h:2732
kudu::client::KuduScanner::GetResourceMetrics
const ResourceMetrics & GetResourceMetrics() const
kudu::client::KuduTableCreator
A helper class to create a new table with the desired options.
Definition: client.h:755
kudu::client::KuduStatusCallback
The interface for all status callbacks.
Definition: callbacks.h:161
kudu::client::KuduSession::Flush
Status Flush() WARN_UNUSED_RESULT
kudu::client::KuduTableAlterer::Alter
Status Alter()
kudu::client::KuduClient::NewTableCreator
KuduTableCreator * NewTableCreator()
kudu::client::KuduClientBuilder::default_rpc_timeout
KuduClientBuilder & default_rpc_timeout(const MonoDelta &timeout)
kudu::client::KuduClient::default_rpc_timeout
const MonoDelta & default_rpc_timeout() const
kudu::client::internal::AsyncLeaderMasterRpc
Definition: client.h:114
kudu::client::KuduScanTokenBuilder::SetFaultTolerant
Status SetFaultTolerant() WARN_UNUSED_RESULT
kudu::client::KuduColumnSpec
Builder API for specifying or altering a column within a table schema.
Definition: schema.h:341
kudu::client::KuduClient::GetTableSchema
Status GetTableSchema(const std::string &table_name, KuduSchema *schema)
kudu::client::KuduTable::NewUpdate
KuduUpdate * NewUpdate()
kudu::client::KuduTableCreator::add_hash_partitions
KuduTableCreator & add_hash_partitions(const std::vector< std::string > &columns, int32_t num_buckets)
kudu::client::KuduClientBuilder::add_master_server_addr
KuduClientBuilder & add_master_server_addr(const std::string &addr)
kudu::client::KuduTable::owner
const std::string & owner() const
kudu::client::KuduScanner::AddLowerBound
Status AddLowerBound(const KuduPartialRow &key)
kudu::client::KuduScanner::SetFaultTolerant
Status SetFaultTolerant() WARN_UNUSED_RESULT
kudu::client::KuduScanner::SetBatchSizeBytes
Status SetBatchSizeBytes(uint32_t batch_size)
kudu::client::KuduScanToken::Serialize
Status Serialize(std::string *buf) const WARN_UNUSED_RESULT
kudu::client::KuduPartitioner::PartitionRow
Status PartitionRow(const KuduPartialRow &row, int *partition)
kudu::client::KuduTableCreator::Create
Status Create()
kudu::client::KuduScanTokenBuilder::KuduScanTokenBuilder
KuduScanTokenBuilder(KuduTable *table)
kudu::client::KuduSession::Apply
Status Apply(KuduWriteOperation *write_op) WARN_UNUSED_RESULT
kudu::client::KuduScanTokenBuilder::SetProjectedColumnNames
Status SetProjectedColumnNames(const std::vector< std::string > &col_names) WARN_UNUSED_RESULT
kudu::client::KuduLoggingCallback
The interface for all logging callbacks.
Definition: callbacks.h:44
kudu::client::KuduScanner::NextBatch
Status NextBatch(KuduColumnarScanBatch *batch)
kudu::client::KuduTableAlterer::DropColumn
KuduTableAlterer * DropColumn(const std::string &name)
kudu::client::KuduTabletServer::uuid
const std::string & uuid() const
kudu::client::KuduScanner::KeepAlive
Status KeepAlive()
kudu::client::KuduTableStatistics::on_disk_size
int64_t on_disk_size() const
kudu::client::KuduTable::NewIsNullPredicate
KuduPredicate * NewIsNullPredicate(const Slice &col_name)
kudu::client::KuduScanner::AddLowerBoundPartitionKeyRaw
Status AddLowerBoundPartitionKeyRaw(const Slice &partition_key)
kudu::client::KuduPartitioner::NumPartitions
int NumPartitions() const
kudu::client::KuduTableCreator::INCLUSIVE_BOUND
@ INCLUSIVE_BOUND
An inclusive bound.
Definition: client.h:838
kudu::client::KuduTableCreator::timeout
KuduTableCreator & timeout(const MonoDelta &timeout)
kudu::client::KuduScanTokenBuilder
Builds scan tokens for a table.
Definition: client.h:2607
kudu::client::KuduScanner::KuduScanner
KuduScanner(KuduTable *table)
kudu::client::KuduTableAlterer::AddColumn
KuduColumnSpec * AddColumn(const std::string &name)
kudu::client::KuduUpsert
A single row upsert to be sent to the cluster.
Definition: write_op.h:190
kudu::client::KuduClient::ReplicaSelection
ReplicaSelection
Policy with which to choose amongst multiple replicas.
Definition: client.h:496
kudu::client::KuduWriteOperation
A single-row write operation to be sent to a Kudu table.
Definition: write_op.h:64
kudu::client::KuduTable::name
const std::string & name() const
kudu::client::KuduTable::extra_configs
const std::map< std::string, std::string > & extra_configs() const
kudu::client::KuduSession::FlushMode
FlushMode
Modes of flush operations.
Definition: client.h:1643
kudu::client::KuduClient::LEADER_ONLY
@ LEADER_ONLY
Select the LEADER replica.
Definition: client.h:497
kudu::client::KuduReplica
In-memory representation of a remote tablet's replica.
Definition: client.h:696
kudu::client::KuduSchema
A representation of a table's schema.
Definition: schema.h:597
kudu::client::KuduScanToken
A scan descriptor limited to a single physical contiguous location.
Definition: client.h:2547
kudu::client::KuduSession::AUTO_FLUSH_BACKGROUND
@ AUTO_FLUSH_BACKGROUND
Definition: client.h:1676
kudu::Status
A representation of an operation's outcome.
Definition: status.h:165
kudu::client::KuduClientBuilder::num_reactors
KuduClientBuilder & num_reactors(int num_reactors)
Set the number of reactors for the RPC messenger.
kudu::client::KuduScanner::NextBatch
Status NextBatch(std::vector< KuduRowResult > *rows) ATTRIBUTE_DEPRECATED("use NextBatch(KuduScanBatch*) instead")
kudu::client::KuduPredicate::ComparisonOp
ComparisonOp
Supported comparison operators.
Definition: scan_predicate.h:46
kudu::client::KuduClient::OpenTable
Status OpenTable(const std::string &table_name, sp::shared_ptr< KuduTable > *table)
kudu::client::KuduTableCreator::EXCLUSIVE_BOUND
@ EXCLUSIVE_BOUND
An exclusive bound.
Definition: client.h:837
kudu::client::KuduTable
A representation of a table on a particular cluster.
Definition: client.h:1037
kudu::client::KuduTableAlterer::AlterColumn
KuduColumnSpec * AlterColumn(const std::string &name)
kudu::client::KuduSession::AUTO_FLUSH_SYNC
@ AUTO_FLUSH_SYNC
Definition: client.h:1648
kudu::client::KuduScanner::Close
void Close()
kudu::client::KuduClient::kNoTimestamp
static const uint64_t kNoTimestamp
Definition: client.h:520
kudu::client::KuduClient::ListTabletServers
Status ListTabletServers(std::vector< KuduTabletServer * > *tablet_servers)
kudu::client::KuduTableCreator::wait
KuduTableCreator & wait(bool wait)
kudu::client::KuduScanner::SetProjectedColumnIndexes
Status SetProjectedColumnIndexes(const std::vector< int > &col_indexes) WARN_UNUSED_RESULT
kudu::client::KuduDelete
A single row delete to be sent to the cluster.
Definition: write_op.h:244
kudu::MonoDelta
A representation of a time interval.
Definition: monotime.h:57
kudu::client::KuduScanner::AddConjunctPredicate
Status AddConjunctPredicate(KuduPredicate *pred) WARN_UNUSED_RESULT
kudu::client::KuduTable::NewInBloomFilterPredicate
KuduPredicate * NewInBloomFilterPredicate(const Slice &col_name, const std::vector< Slice > &bloom_filters)
kudu::client::KuduClient::GetLatestObservedTimestamp
uint64_t GetLatestObservedTimestamp() const
kudu::client::KuduScanToken::tablet
const KuduTablet & tablet() const
kudu::client::KuduScanTokenBuilder::SetReadMode
Status SetReadMode(KuduScanner::ReadMode read_mode) WARN_UNUSED_RESULT
kudu::client::KuduSession::SetFlushMode
Status SetFlushMode(FlushMode m) WARN_UNUSED_RESULT
kudu::client::KuduScanTokenBuilder::AddUpperBound
Status AddUpperBound(const KuduPartialRow &key) WARN_UNUSED_RESULT
kudu::client::KuduTable::NewInListPredicate
KuduPredicate * NewInListPredicate(const Slice &col_name, std::vector< KuduValue * > *values)
kudu::client::KuduClient::DeleteTable
Status DeleteTable(const std::string &table_name)
kudu::client::KuduScanner::AddLowerBoundRaw
Status AddLowerBoundRaw(const Slice &key) ATTRIBUTE_DEPRECATED("use AddLowerBound() instead")
kudu::client::KuduSession::SetTimeoutMillis
void SetTimeoutMillis(int millis)
kudu::client::KuduScanner::SetReadMode
Status SetReadMode(ReadMode read_mode) WARN_UNUSED_RESULT
kudu::Slice
A wrapper around externally allocated data.
Definition: slice.h:51
kudu::client::KuduTableCreator::num_replicas
KuduTableCreator & num_replicas(int n_replicas)
kudu::client::KuduClient::SetLatestObservedTimestamp
void SetLatestObservedTimestamp(uint64_t ht_timestamp)
kudu::client::KuduScanner::Open
Status Open()
kudu::client::KuduClient::ListTables
Status ListTables(std::vector< std::string > *tables, const std::string &filter="")
kudu::client::KuduClientBuilder::default_admin_operation_timeout
KuduClientBuilder & default_admin_operation_timeout(const MonoDelta &timeout)
kudu::client::KuduTableAlterer::AddRangePartitionWithDimension
KuduTableAlterer * AddRangePartitionWithDimension(KuduPartialRow *lower_bound, KuduPartialRow *upper_bound, const std::string &dimension_label, KuduTableCreator::RangePartitionBound lower_bound_type=KuduTableCreator::INCLUSIVE_BOUND, KuduTableCreator::RangePartitionBound upper_bound_type=KuduTableCreator::EXCLUSIVE_BOUND)
kudu::client::KuduClientBuilder
A "factory" for KuduClient objects.
Definition: client.h:217
kudu::client::KuduColumnarScanBatch
A batch of columnar data returned from a scanner.
Definition: columnar_scan_batch.h:51
kudu::client::KuduInsert
A single row insert to be sent to the cluster.
Definition: write_op.h:137
kudu::client::KuduScanTokenBuilder::SetBatchSizeBytes
Status SetBatchSizeBytes(uint32_t batch_size) WARN_UNUSED_RESULT
kudu::client::KuduScanner::HasMoreRows
bool HasMoreRows() const
kudu::client::KuduTable::NewComparisonPredicate
KuduPredicate * NewComparisonPredicate(const Slice &col_name, KuduPredicate::ComparisonOp op, KuduValue *value)
kudu::client::KuduScanToken::DeserializeIntoScanner
static Status DeserializeIntoScanner(KuduClient *client, const std::string &serialized_token, KuduScanner **scanner) WARN_UNUSED_RESULT
kudu::client::KuduScanner::AddExclusiveUpperBoundRaw
Status AddExclusiveUpperBoundRaw(const Slice &key) ATTRIBUTE_DEPRECATED("use AddExclusiveUpperBound() instead")
kudu::client::KuduTable::schema
const KuduSchema & schema() const
kudu::client::KuduTableCreator::schema
KuduTableCreator & schema(const KuduSchema *schema)
kudu::client::KuduPartitionerBuilder::KuduPartitionerBuilder
KuduPartitionerBuilder(sp::shared_ptr< KuduTable > table)
kudu::client::KuduTable::NewInBloomFilterPredicate
KuduPredicate * NewInBloomFilterPredicate(const Slice &col_name, std::vector< KuduBloomFilter * > *bloom_filters)
kudu::client::KuduInsertIgnore
A single row insert ignore to be sent to the cluster, duplicate row errors are ignored.
Definition: write_op.h:164
kudu::client::KuduSession::SetExternalConsistencyMode
Status SetExternalConsistencyMode(ExternalConsistencyMode m) WARN_UNUSED_RESULT
kudu::client::KuduScanTokenBuilder::AddConjunctPredicate
Status AddConjunctPredicate(KuduPredicate *pred) WARN_UNUSED_RESULT
kudu::client::KuduTableCreator::set_owner
KuduTableCreator & set_owner(const std::string &owner)
kudu::client::KuduScanner::SetOrderMode
Status SetOrderMode(OrderMode order_mode) WARN_UNUSED_RESULT ATTRIBUTE_DEPRECATED("use SetFaultTolerant() instead")
kudu::client::KuduTable::partition_schema
const PartitionSchema & partition_schema() const
kudu::client::KuduScanTokenBuilder::SetProjectedColumnIndexes
Status SetProjectedColumnIndexes(const std::vector< int > &col_indexes) WARN_UNUSED_RESULT
kudu::client::KuduTableAlterer
Alters an existing table based on the provided steps.
Definition: client.h:1300
kudu::client::KuduClientBuilder::clear_master_server_addrs
KuduClientBuilder & clear_master_server_addrs()
kudu::client::KuduTabletServer::port
uint16_t port() const
kudu::client::KuduScanner::AddExclusiveUpperBound
Status AddExclusiveUpperBound(const KuduPartialRow &key)
kudu::client::KuduScanner::UNORDERED
@ UNORDERED
Definition: client.h:2107
kudu::client::KuduScanToken::IntoKuduScanner
Status IntoKuduScanner(KuduScanner **scanner) const WARN_UNUSED_RESULT
kudu::client::KuduTablet::replicas
const std::vector< const KuduReplica * > & replicas() const
kudu::client::KuduScanner::READ_LATEST
@ READ_LATEST
Definition: client.h:2062
kudu::client::KuduTableStatistics::live_row_count
int64_t live_row_count() const
status.h
kudu::client::KuduScanner::NextBatch
Status NextBatch(KuduScanBatch *batch)
kudu::client::KuduScanner::OrderMode
OrderMode
Definition: client.h:2101
kudu::client::KuduTable::client
KuduClient * client() const
kudu::client::KuduScanner::SetProjectedColumns
Status SetProjectedColumns(const std::vector< std::string > &col_names) WARN_UNUSED_RESULT ATTRIBUTE_DEPRECATED("use SetProjectedColumnNames() instead")
kudu::client::KuduClient
A handle for a connection to a cluster.
Definition: client.h:332
kudu::client::KuduTable::NewInsert
KuduInsert * NewInsert()