1 /*
2  * Copyright (C) 2024-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 #ifndef FRAMEWORKS_SERVICES_MEDIA_MULTI_STAGES_CAPTURE_INCLUDE_VISION_DB_SQLS_MORE_H
17 #define FRAMEWORKS_SERVICES_MEDIA_MULTI_STAGES_CAPTURE_INCLUDE_VISION_DB_SQLS_MORE_H
18 
19 #include "vision_db_sqls.h"
20 
21 namespace OHOS {
22 namespace Media {
23 const std::string ADD_POSE_STATUS_COLUMN = "ALTER TABLE " + VISION_TOTAL_TABLE + " ADD COLUMN " + POSE + " INT";
24 const std::string UPDATE_POSE_TOTAL_VALUE = "UPDATE " + VISION_TOTAL_TABLE + " SET " + STATUS + " = 0, " + POSE +
25     " = 0 WHERE " + FILE_ID + " IN (SELECT " + FILE_ID + " FROM " + PhotoColumn::PHOTOS_TABLE +
26     " WHERE media_type = 1)";
27 const std::string UPDATE_POSE_NOT_SUPPORT_VALUE = "UPDATE " + VISION_TOTAL_TABLE + " SET " + POSE + " = -1 WHERE " +
28     POSE + " IS NULL";
29 const std::string POSE_INDEX = "pose_index";
30 const std::string CREATE_POSE_INDEX = "CREATE UNIQUE INDEX IF NOT EXISTS " + POSE_INDEX + " ON " + VISION_POSE_TABLE +
31     " (" + FILE_ID + "," + POSE_ID + ")";
32 
33 const std::string ALTER_WIDTH_COLUMN = "ALTER TABLE tab_analysis_ocr ADD COLUMN width INT;";
34 const std::string ALTER_HEIGHT_COLUMN = "ALTER TABLE tab_analysis_ocr ADD COLUMN height INT;";
35 const std::string DROP_TABLE_ANALYSISALBUM = "DROP TABLE AnalysisAlbum;";
36 const std::string DROP_TABLE_ANALYSISPHOTOMAP = "DROP TABLE AnalysisPhotoMap;";
37 
38 const std::string ADD_TAG_ID_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
39     TAG_ID + " TEXT";
40 const std::string ADD_USER_OPERATION_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
41     USER_OPERATION + " INT";
42 const std::string ADD_GROUP_TAG_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
43     GROUP_TAG + " TEXT";
44 const std::string ADD_USER_DISPLAY_LEVEL_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
45     USER_DISPLAY_LEVEL + " INT";
46 const std::string ADD_IS_ME_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
47     IS_ME + " INT";
48 const std::string ADD_IS_REMOVED_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
49     IS_REMOVED + " INT";
50 const std::string ADD_RENAME_OPERATION_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
51     RENAME_OPERATION + " INT";
52 const std::string ADD_IS_LOCAL_COLUMN_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
53     IS_LOCAL + " INT";
54 const std::string ADD_IS_COVER_SATISFIED_FOR_ALBUM = "ALTER TABLE " + ANALYSIS_ALBUM_TABLE + " ADD COLUMN " +
55     IS_COVER_SATISFIED + " INT";
56 const std::string CREATE_ANALYSIS_ALBUM_FOR_ONCREATE = "CREATE TABLE IF NOT EXISTS " + ANALYSIS_ALBUM_TABLE + " (" +
57     ALBUM_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
58     ALBUM_TYPE + " INT, " +
59     ALBUM_SUBTYPE + " INT, " +
60     ALBUM_NAME + " TEXT, " +
61     COVER_URI + " TEXT, " +
62     COUNT + " INT, " +
63     DATE_MODIFIED + " BIGINT, " +
64     RANK + " INT, " +
65     TAG_ID + " TEXT, " +
66     USER_OPERATION + " INT, " +
67     GROUP_TAG + " TEXT, " +
68     USER_DISPLAY_LEVEL + " INT, " +
69     IS_ME + " INT, " +
70     IS_REMOVED + " INT, " +
71     RENAME_OPERATION + " INT, " +
72     IS_LOCAL + " INT, " +
73     IS_COVER_SATISFIED + " INT) ";
74 const std::string ANALYSIS_ALBUM_UPDATE_SEARCH_TRIGGER = "analysis_album_update_search_trigger";
75 const std::string CREATE_ANALYSIS_ALBUM_UPDATE_SEARCH_TRIGGER = "CREATE TRIGGER IF NOT EXISTS " +
76     ANALYSIS_ALBUM_UPDATE_SEARCH_TRIGGER +
77     " AFTER UPDATE OF " + ALBUM_NAME +
78     " ON " + ANALYSIS_ALBUM_TABLE +
79     " FOR EACH ROW WHEN (NEW." + ALBUM_SUBTYPE + " = " + std::to_string(PORTRAIT) + ")" +
80     " BEGIN " +
81     " UPDATE " + "tab_analysis_search_index" +
82     " SET " + "cv_status" + " = 0 " +
83     " WHERE (" + FILE_ID + " IN( " +
84     " SELECT " + MAP_ASSET +
85     " FROM " + ANALYSIS_PHOTO_MAP_TABLE +
86     " WHERE (old." + ALBUM_ID + " = " + ANALYSIS_PHOTO_MAP_TABLE + "." + MAP_ALBUM + ")" +
87     ")); END;";
88 
89 const std::string IDX_FILEID_FOR_ANALYSIS_PHOTO_MAP = "idx_fileid_for_analysis_photo_map";
90 const std::string CREATE_IDX_FILEID_FOR_ANALYSIS_PHOTO_MAP = "CREATE INDEX IF NOT EXISTS " +
91     IDX_FILEID_FOR_ANALYSIS_PHOTO_MAP + " ON " + ANALYSIS_PHOTO_MAP_TABLE + " ( map_asset );";
92 
93 const std::string IDX_FILEID_FOR_ANALYSIS_TOTAL = "idx_fileid_for_analysis_total";
94 const std::string CREATE_IDX_FILEID_FOR_ANALYSIS_TOTAL = "CREATE INDEX IF NOT EXISTS " +
95     IDX_FILEID_FOR_ANALYSIS_TOTAL + " ON " + VISION_TOTAL_TABLE + " ( file_id );";
96 } // namespace Media
97 } // namespace OHOS
98 #endif  // FRAMEWORKS_SERVICES_MEDIA_MULTI_STAGES_CAPTURE_INCLUDE_VISION_DB_SQLS_MORE_H