1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "schema_constant.h" 17 18 namespace DistributedDB { 19 const std::string SchemaConstant::KEYWORD_SCHEMA_VERSION = "SCHEMA_VERSION"; 20 const std::string SchemaConstant::KEYWORD_SCHEMA_MODE = "SCHEMA_MODE"; 21 const std::string SchemaConstant::KEYWORD_SCHEMA_DEFINE = "SCHEMA_DEFINE"; 22 const std::string SchemaConstant::KEYWORD_SCHEMA_INDEXES = "SCHEMA_INDEXES"; 23 const std::string SchemaConstant::KEYWORD_SCHEMA_SKIPSIZE = "SCHEMA_SKIPSIZE"; 24 const std::string SchemaConstant::KEYWORD_SCHEMA_TYPE = "SCHEMA_TYPE"; 25 const std::string SchemaConstant::KEYWORD_SCHEMA_TABLE = "TABLES"; 26 const std::string SchemaConstant::KEYWORD_INDEX = "INDEX"; // For FlatBuffer-Schema 27 const std::string SchemaConstant::KEYWORD_TABLE_MODE = "TABLE_MODE"; 28 29 const std::string SchemaConstant::KEYWORD_MODE_STRICT = "STRICT"; 30 const std::string SchemaConstant::KEYWORD_MODE_COMPATIBLE = "COMPATIBLE"; 31 32 const std::string SchemaConstant::KEYWORD_TYPE_BOOL = "BOOL"; 33 const std::string SchemaConstant::KEYWORD_TYPE_INTEGER = "INTEGER"; 34 const std::string SchemaConstant::KEYWORD_TYPE_LONG = "LONG"; 35 const std::string SchemaConstant::KEYWORD_TYPE_DOUBLE = "DOUBLE"; 36 const std::string SchemaConstant::KEYWORD_TYPE_STRING = "STRING"; 37 const std::string SchemaConstant::KEYWORD_TYPE_BOOLEAN = "BOOLEAN"; 38 39 const std::string SchemaConstant::KEYWORD_ATTR_NOT_NULL = "NOT NULL"; 40 const std::string SchemaConstant::KEYWORD_ATTR_DEFAULT = "DEFAULT"; 41 const std::string SchemaConstant::KEYWORD_ATTR_VALUE_NULL = "null"; 42 const std::string SchemaConstant::KEYWORD_ATTR_VALUE_TRUE = "true"; 43 const std::string SchemaConstant::KEYWORD_ATTR_VALUE_FALSE = "false"; 44 45 const std::string SchemaConstant::KEYWORD_TABLE_SPLIT_DEVICE = "SPLIT_BY_DEVICE"; 46 const std::string SchemaConstant::KEYWORD_TABLE_COLLABORATION = "COLLABORATION"; 47 48 const std::string SchemaConstant::KEYWORD_TYPE_RELATIVE = "RELATIVE"; 49 const std::string SchemaConstant::SCHEMA_SUPPORT_VERSION = "1.0"; 50 const std::string SchemaConstant::SCHEMA_SUPPORT_VERSION_V2 = "2.0"; 51 const std::string SchemaConstant::SCHEMA_SUPPORT_VERSION_V2_1 = "2.1"; 52 const std::string SchemaConstant::SCHEMA_CURRENT_VERSION = SCHEMA_SUPPORT_VERSION_V2_1; 53 54 const uint32_t SchemaConstant::SCHEMA_META_FEILD_COUNT_MAX = 5; 55 const uint32_t SchemaConstant::SCHEMA_META_FEILD_COUNT_MIN = 3; 56 const uint32_t SchemaConstant::SCHEMA_FEILD_NAME_LENGTH_MAX = 64; 57 const uint32_t SchemaConstant::SCHEMA_FEILD_NAME_LENGTH_MIN = 1; 58 const uint32_t SchemaConstant::SCHEMA_FEILD_NAME_COUNT_MAX = 256; 59 const uint32_t SchemaConstant::SCHEMA_FEILD_NAME_COUNT_MIN = 1; 60 const uint32_t SchemaConstant::SCHEMA_FEILD_PATH_DEPTH_MAX = 4; 61 const uint32_t SchemaConstant::SCHEMA_INDEX_COUNT_MAX = 32; 62 const uint32_t SchemaConstant::SCHEMA_STRING_SIZE_LIMIT = 524288; // 512K 63 const uint32_t SchemaConstant::SCHEMA_DEFAULT_STRING_SIZE_LIMIT = 4096; // 4K 64 const uint32_t SchemaConstant::SCHEMA_SKIPSIZE_MAX = 4194302; // 4M - 2 Bytes 65 66 const uint32_t SchemaConstant::SECURE_BYTE_ALIGN = 8; // 8 bytes align 67 } // namespace DistributedDB 68