|
25 | 25 | #include <vector> |
26 | 26 |
|
27 | 27 | #include "absl/status/statusor.h" |
| 28 | +#include "absl/strings/match.h" |
28 | 29 | #include "absl/strings/str_cat.h" |
29 | 30 | #include "absl/strings/string_view.h" |
30 | 31 | #include "boost/algorithm/string.hpp" |
@@ -309,17 +310,26 @@ inline const std::string StorageModeName(StorageMode mode) { |
309 | 310 | } |
310 | 311 |
|
311 | 312 | inline const StorageMode NameToStorageMode(const std::string& name) { |
312 | | - if (boost::iequals(name, "memory")) { |
| 313 | + if (absl::EqualsIgnoreCase(name, "memory")) { |
313 | 314 | return kMemory; |
314 | | - } else if (boost::iequals(name, "hdd")) { |
| 315 | + } else if (absl::EqualsIgnoreCase(name, "hdd")) { |
315 | 316 | return kHDD; |
316 | | - } else if (boost::iequals(name, "ssd")) { |
| 317 | + } else if (absl::EqualsIgnoreCase(name, "ssd")) { |
317 | 318 | return kSSD; |
318 | 319 | } else { |
319 | 320 | return kUnknown; |
320 | 321 | } |
321 | 322 | } |
322 | 323 |
|
| 324 | +inline absl::StatusOr<CompressType> NameToCompressType(const std::string& name) { |
| 325 | + if (absl::EqualsIgnoreCase(name, "snappy")) { |
| 326 | + return CompressType::kSnappy; |
| 327 | + } else if (absl::EqualsIgnoreCase(name, "nocompress")) { |
| 328 | + return CompressType::kNoCompress; |
| 329 | + } |
| 330 | + return absl::Status(absl::StatusCode::kInvalidArgument, absl::StrCat("invalid compress type: ", name)); |
| 331 | +} |
| 332 | + |
323 | 333 | inline const std::string RoleTypeName(RoleType type) { |
324 | 334 | switch (type) { |
325 | 335 | case kLeader: |
@@ -1884,6 +1894,23 @@ class StorageModeNode : public SqlNode { |
1884 | 1894 | StorageMode storage_mode_; |
1885 | 1895 | }; |
1886 | 1896 |
|
| 1897 | +class CompressTypeNode : public SqlNode { |
| 1898 | + public: |
| 1899 | + CompressTypeNode() : SqlNode(kCompressType, 0, 0), compress_type_(kNoCompress) {} |
| 1900 | + |
| 1901 | + explicit CompressTypeNode(CompressType compress_type) |
| 1902 | + : SqlNode(kCompressType, 0, 0), compress_type_(compress_type) {} |
| 1903 | + |
| 1904 | + ~CompressTypeNode() {} |
| 1905 | + |
| 1906 | + CompressType GetCompressType() const { return compress_type_; } |
| 1907 | + |
| 1908 | + void Print(std::ostream &output, const std::string &org_tab) const; |
| 1909 | + |
| 1910 | + private: |
| 1911 | + CompressType compress_type_; |
| 1912 | +}; |
| 1913 | + |
1887 | 1914 | class CreateTableLikeClause { |
1888 | 1915 | public: |
1889 | 1916 | CreateTableLikeClause() = default; |
|
0 commit comments