1 /* 2 * Copyright (c) 2023-2024 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 "file_column.h" 17 18 namespace OHOS { 19 namespace FileManagement { 20 namespace CloudDisk { 21 const std::string FileColumn::CLOUD_ID = "cloud_id"; 22 const std::string FileColumn::IS_DIRECTORY = "isDirectory"; 23 const std::string FileColumn::FILE_NAME = "file_name"; 24 const std::string FileColumn::PARENT_CLOUD_ID = "parent_cloud_id"; 25 const std::string FileColumn::FILE_SIZE = "file_size"; 26 const std::string FileColumn::FILE_SHA256 = "sha256"; 27 const std::string FileColumn::FILE_TIME_ADDED = "time_added"; 28 const std::string FileColumn::FILE_TIME_EDITED = "time_edited"; 29 const std::string FileColumn::FILE_TIME_RECYCLED = "time_recycled"; 30 const std::string FileColumn::META_TIME_EDITED = "meta_time_edited"; 31 const std::string FileColumn::FILE_TIME_VISIT = "time_visit"; 32 const std::string FileColumn::DIRECTLY_RECYCLED = "directly_recycled"; 33 const std::string FileColumn::VERSION = "version"; 34 const std::string FileColumn::OPERATE_TYPE = "operateType"; 35 const std::string FileColumn::SYNC_STATUS = "sync_status"; 36 const std::string FileColumn::POSITION = "position"; 37 const std::string FileColumn::THM_FLAG = "thm_flag"; 38 const std::string FileColumn::LCD_FLAG = "lcd_flag"; 39 const std::string FileColumn::NO_NEED_UPLOAD = "no_need_upload"; 40 const std::string FileColumn::DIRTY_TYPE = "dirty_type"; 41 const std::string FileColumn::MIME_TYPE = "mimetype"; 42 const std::string FileColumn::FILE_TYPE = "file_type"; 43 const std::string FileColumn::FILE_CATEGORY = "file_category"; 44 const std::string FileColumn::IS_FAVORITE = "isFavorite"; 45 const std::string FileColumn::FILE_STATUS = "file_status"; 46 const std::string FileColumn::ROW_ID = "rowid"; 47 const std::string FileColumn::CHECK_FLAG = "check_flag"; 48 const std::string FileColumn::ROOT_DIRECTORY = "root_directory"; 49 const std::string FileColumn::ATTRIBUTE = "attribute"; 50 const std::string FileColumn::FILES_TABLE = "CloudDisk"; 51 const std::string FileColumn::PARENT_CLOUD_ID_INDEX = "parentCloudId_index"; 52 const std::string FileColumn::SRC_CLOUD_ID = "src_cloud_id"; 53 const std::string FileColumn::THM_SIZE = "thm_size"; 54 const std::string FileColumn::LCD_SIZE = "lcd_size"; 55 const std::string FileColumn::SOURCE_CLOUD_ID = "source_cloud_id"; 56 const std::string FileColumn::LOCAL_FLAG = "local_flag"; 57 58 // description for LOCAL_FLAG shift 59 const uint64_t FileColumn::LOCAL_FLAG_MASK_ISCONFLICT = (1 << 0); 60 61 const std::string FileColumn::CREATE_FILE_TABLE = "CREATE TABLE IF NOT EXISTS " + 62 FILES_TABLE + " (" + 63 CLOUD_ID + " TEXT PRIMARY KEY NOT NULL, " + 64 IS_DIRECTORY + " INT, " + 65 FILE_NAME + " TEXT NOT NULL, " + 66 PARENT_CLOUD_ID + " TEXT NOT NULL, " + 67 FILE_SIZE + " BIGINT, " + 68 FILE_SHA256 + " TEXT, " + 69 FILE_TIME_ADDED + " BIGINT, " + 70 FILE_TIME_EDITED + " BIGINT, " + 71 FILE_TIME_RECYCLED + " BIGINT DEFAULT 0, " + 72 META_TIME_EDITED + " BIGINT, " + 73 FILE_TIME_VISIT + " BIGINT DEFAULT 0, " + 74 DIRECTLY_RECYCLED + " INT DEFAULT 0, " + 75 VERSION + " BIGINT DEFAULT 0, " + 76 OPERATE_TYPE + " BIGINT DEFAULT 0, " + 77 SYNC_STATUS + " INT DEFAULT 0, " + 78 POSITION + " INT DEFAULT 1, " + 79 DIRTY_TYPE + " INT DEFAULT 1, " + 80 MIME_TYPE + " TEXT, " + 81 FILE_TYPE + " INT, " + 82 FILE_CATEGORY + " TEXT, " + 83 IS_FAVORITE + " INT DEFAULT 0, " + 84 FILE_STATUS + " INT DEFAULT 4, " + 85 CHECK_FLAG + " INT DEFAULT 0, " + 86 ROOT_DIRECTORY + " TEXT, " + 87 ATTRIBUTE + " TEXT, " + 88 THM_FLAG + " INT DEFAULT 0, " + 89 LCD_FLAG + " INT DEFAULT 0, " + 90 NO_NEED_UPLOAD + " INT DEFAULT 0, " + 91 SRC_CLOUD_ID + " TEXT, " + 92 THM_SIZE + " INT DEFAULT 0, " + 93 LCD_SIZE + " INT DEFAULT 0, " + 94 SOURCE_CLOUD_ID + " TEXT, " + 95 LOCAL_FLAG + " BIGINT DEFAULT 0)"; 96 97 const std::string FileColumn::CREATE_PARENT_CLOUD_ID_INDEX = "CREATE INDEX IF NOT EXISTS " + 98 PARENT_CLOUD_ID_INDEX + " ON " + FILES_TABLE + 99 " (" + PARENT_CLOUD_ID + ")"; 100 101 const std::string FileColumn::ADD_LOCAL_FLAG = "ALTER Table " + FILES_TABLE + 102 " ADD COLUMN " + LOCAL_FLAG + " BIGINT DEFAULT 0"; 103 104 const std::string FileColumn::ADD_IS_FAVORITE = "ALTER Table " + FILES_TABLE + 105 " ADD COLUMN " + IS_FAVORITE + " INT DEFAULT 0"; 106 107 const std::string FileColumn::ADD_FILE_STATUS = "ALTER Table " + FILES_TABLE + 108 " ADD COLUMN " + FILE_STATUS + " INT"; 109 110 const std::string FileColumn::SET_FILE_STATUS_DEFAULT = "UPDATE " + FILES_TABLE + 111 " SET " + FILE_STATUS + " = 4 WHERE " + FILE_STATUS + " IS NULL"; 112 113 const std::string FileColumn::ADD_CHECK_FLAG = "ALTER Table " + FILES_TABLE + 114 " ADD COLUMN " + CHECK_FLAG + " INT DEFAULT 0"; 115 116 const std::string FileColumn::ADD_ATTRIBUTE = "ALTER Table " + FILES_TABLE + 117 " ADD COLUMN " + ATTRIBUTE + " TEXT"; 118 119 const std::string FileColumn::ADD_THM_FLAG = "ALTER Table " + FILES_TABLE + 120 " ADD COLUMN " + THM_FLAG + " INT DEFAULT 0"; 121 122 const std::string FileColumn::ADD_LCD_FLAG = "ALTER Table " + FILES_TABLE + 123 " ADD COLUMN " + LCD_FLAG + " INT DEFAULT 0"; 124 125 const std::string FileColumn::ADD_UPLOAD_FLAG = "ALTER Table " + FILES_TABLE + 126 " ADD COLUMN " + NO_NEED_UPLOAD + " INT DEFAULT 0"; 127 128 const std::string FileColumn::ADD_SRC_CLOUD_ID = "ALTER Table " + FILES_TABLE + 129 " ADD COLUMN " + SRC_CLOUD_ID + " TEXT"; 130 131 const std::string FileColumn::ADD_THM_SIZE = "ALTER Table " + FILES_TABLE + 132 " ADD COLUMN " + THM_SIZE + " INT DEFAULT 0"; 133 134 const std::string FileColumn::ADD_LCD_SIZE = "ALTER Table " + FILES_TABLE + 135 " ADD COLUMN " + LCD_SIZE + " INT DEFAULT 0"; 136 137 const std::string FileColumn::ADD_SOURCE_CLOUD_ID = "ALTER Table " + FILES_TABLE + 138 " ADD COLUMN " + SOURCE_CLOUD_ID + " TEXT"; 139 140 const std::vector<std::string> FileColumn::FILE_SYSTEM_QUERY_COLUMNS = { 141 FILE_NAME, 142 CLOUD_ID, 143 PARENT_CLOUD_ID, 144 POSITION, 145 FILE_SIZE, 146 META_TIME_EDITED, 147 FILE_TIME_ADDED, 148 FILE_TIME_EDITED, 149 IS_DIRECTORY, 150 ROW_ID 151 }; 152 153 const std::vector<std::string> FileColumn::DISK_CLOUD_SYNC_COLUMNS = { 154 CLOUD_ID, 155 IS_DIRECTORY, 156 FILE_NAME, 157 PARENT_CLOUD_ID, 158 FILE_SIZE, 159 FILE_SHA256, 160 FILE_TIME_ADDED, 161 FILE_TIME_EDITED, 162 FILE_TIME_RECYCLED, 163 META_TIME_EDITED, 164 DIRECTLY_RECYCLED, 165 VERSION, 166 OPERATE_TYPE, 167 ROOT_DIRECTORY, 168 ATTRIBUTE, 169 THM_FLAG, 170 LCD_FLAG, 171 ROW_ID, 172 THM_SIZE, 173 LCD_SIZE, 174 LOCAL_FLAG 175 }; 176 177 //File copy requires all fields in the database, and one is added here when adding a new column ... 178 const std::vector<std::string> FileColumn::DISK_CLOUD_FOR_COPY = { 179 CLOUD_ID, 180 IS_DIRECTORY, 181 FILE_NAME, 182 PARENT_CLOUD_ID, 183 FILE_SIZE, 184 FILE_SHA256, 185 FILE_TIME_ADDED, 186 FILE_TIME_EDITED, 187 FILE_TIME_RECYCLED, 188 META_TIME_EDITED, 189 FILE_TIME_VISIT, 190 DIRECTLY_RECYCLED, 191 VERSION, 192 OPERATE_TYPE, 193 SYNC_STATUS, 194 POSITION, 195 DIRTY_TYPE, 196 MIME_TYPE, 197 FILE_TYPE, 198 FILE_CATEGORY, 199 IS_FAVORITE, 200 FILE_STATUS, 201 CHECK_FLAG, 202 ROOT_DIRECTORY, 203 ATTRIBUTE, 204 THM_FLAG, 205 LCD_FLAG, 206 NO_NEED_UPLOAD, 207 SRC_CLOUD_ID, 208 }; 209 210 const std::vector<std::string> FileColumn::LOCAL_COLUMNS = { 211 FILE_TIME_VISIT, SYNC_STATUS, POSITION, DIRTY_TYPE, 212 MIME_TYPE, IS_DIRECTORY, FILE_TYPE, FILE_CATEGORY, 213 }; 214 215 const std::vector<std::string> FileColumn::PULL_QUERY_COLUMNS = { 216 CLOUD_ID, FILE_TIME_RECYCLED, VERSION, DIRTY_TYPE, POSITION, 217 FILE_TIME_EDITED, FILE_SHA256, FILE_SIZE, FILE_NAME, PARENT_CLOUD_ID, ROW_ID, 218 IS_DIRECTORY, FILE_TIME_ADDED, FILE_TYPE, ROOT_DIRECTORY, DIRECTLY_RECYCLED, 219 THM_FLAG, LCD_FLAG, 220 }; 221 222 const std::vector<std::string> FileColumn::DISK_ON_UPLOAD_COLUMNS = { 223 CLOUD_ID, 224 PARENT_CLOUD_ID, 225 FILE_NAME, 226 FILE_TIME_EDITED, 227 META_TIME_EDITED, 228 FILE_TIME_RECYCLED, 229 ROW_ID, 230 THM_FLAG, 231 LCD_FLAG, 232 DIRTY_TYPE, 233 }; 234 235 const std::vector<std::string> FileColumn::DISK_CLOUD_FOR_THM_INSERT = { 236 THM_SIZE, 237 LCD_SIZE, 238 THM_FLAG, 239 LCD_FLAG, 240 CLOUD_ID, 241 FILE_TIME_RECYCLED, 242 FILE_NAME, 243 ROW_ID, 244 }; 245 246 const std::vector<std::string> FileColumn::EXT_ATTR_QUERY_COLUMNS = { 247 ATTRIBUTE, 248 POSITION, 249 DIRTY_TYPE, 250 }; 251 } // namespace CloudDisk 252 } // namespace FileManagement 253 } // namespace OHOS 254