73 |
73 |
74 _LIT8( KThumbnailCreateTempInfoDataTable, "CREATE TEMP TABLE TempThumbnailInfoData (" |
74 _LIT8( KThumbnailCreateTempInfoDataTable, "CREATE TEMP TABLE TempThumbnailInfoData (" |
75 // If Thumbnail is stored in SQL then Data is NOT NULL |
75 // If Thumbnail is stored in SQL then Data is NOT NULL |
76 "Data BLOB);"); |
76 "Data BLOB);"); |
77 |
77 |
78 //version table |
78 // version table |
79 _LIT8( KThumbnailVersionTable, "CREATE TABLE ThumbnailVersion (" |
79 _LIT8( KThumbnailVersionTable, "CREATE TABLE ThumbnailVersion (" |
80 "Major INTEGER," |
80 "Major INTEGER," |
81 "Minor INTEGER," |
81 "Minor INTEGER," |
82 "IMEI TEXT COLLATE NOCASE);"); |
82 "IMEI TEXT COLLATE NOCASE);"); |
83 |
83 |
84 // deleted thumbs table |
84 // deleted thumbs table |
85 _LIT8( KThumbnailDeletedTable, "CREATE TABLE ThumbnailDeleted (" |
85 _LIT8( KThumbnailDeletedTable, "CREATE TABLE ThumbnailDeleted (" |
86 // Assosiacted object in file system |
86 // Assosiacted object in file system |
87 "Path TEXT UNIQUE COLLATE NOCASE);"); |
87 "Path TEXT UNIQUE COLLATE NOCASE);"); |
88 |
88 |
89 //Create index for speedup DB searches |
89 // indexes |
90 _LIT8( KThumbnailCreateInfoTableIndex1, "CREATE INDEX idx1 ON ThumbnailInfo(Path, Size);"); |
90 _LIT8( KThumbnailCreateInfoTableIndex1, "CREATE INDEX idx1 ON ThumbnailInfo(Path, Size);"); |
91 _LIT8( KThumbnailCreateDeletedTableIndex, "CREATE INDEX idx4 ON ThumbnailDeleted(Path);"); |
91 _LIT8( KThumbnailCreateDeletedTableIndex, "CREATE INDEX idx4 ON ThumbnailDeleted(Path);"); |
92 |
92 |
93 _LIT8( KThumbnailMoveFromTempInfoToMainTable, "INSERT INTO ThumbnailInfo SELECT * FROM TempThumbnailInfo;"); |
93 // parameters |
94 _LIT8( KThumbnailMoveFromTempDataToMainTable, "INSERT INTO ThumbnailInfoData SELECT * FROM TempThumbnailInfoData;"); |
|
95 |
|
96 _LIT8( KThumbnailDeleteFromTempInfoTable, "DELETE FROM TempThumbnailInfo;"); |
|
97 _LIT8( KThumbnailDeleteFromTempDataTable, "DELETE FROM TempThumbnailInfoData;"); |
|
98 |
|
99 _LIT8( KThumbnailCreateSettingsTable, "CREATE TABLE ThumbnailSettings (" |
|
100 "Version INTEGER);" ); |
|
101 |
|
102 _LIT8( KThumbnailDropInfoTable, "DROP TABLE ThumbnailInfo;" ); |
|
103 _LIT8( KThumbnailDropTempInfoTable, "DROP TABLE TempThumbnailInfo;" ); |
|
104 |
|
105 _LIT8( KThumbnailDropSettingsTable, "DROP TABLE ThumbnailSettings;" ); |
|
106 |
|
107 _LIT8( KThumbnailBeginTransaction, "BEGIN TRANSACTION;" ); |
|
108 _LIT8( KThumbnailCommitTransaction, "COMMIT;" ); |
|
109 _LIT8( KThumbnailRollbackTransaction, "ROLLBACK;" ); |
|
110 |
|
111 _LIT8( KThumbnailInsertThumbnailInfoByPathAndId, "INSERT INTO TempThumbnailInfo " |
|
112 "(Path,Size,Format,Width,Height,OrigWidth,OrigHeight,Flags,Orientation,ThumbFromPath,Modified) ""VALUES " |
|
113 "(:Path,:Size,:Format,:Width,:Height,:OrigWidth,:OrigHeight,:Flags,:Orient,:ThumbFromPath,:Modified);" ); |
|
114 |
|
115 _LIT8( KThumbnailInsertTempThumbnailInfoData, "INSERT INTO TempThumbnailInfoData (Data) VALUES (:Data);" ); |
|
116 |
|
117 _LIT8( KThumbnailSelectSizeByPath, "SELECT Size FROM ThumbnailInfo " |
|
118 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |
|
119 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) " |
|
120 "AND Path = :Path ORDER BY Size DESC;" ); |
|
121 |
|
122 _LIT8( KThumbnailSelectTempSizeByPath, "SELECT Size FROM TempThumbnailInfo WHERE Path = :Path ORDER BY Size DESC;" ); |
|
123 |
|
124 //query by Path |
|
125 _LIT8( KThumbnailSelectInfoByPath, "SELECT ThumbnailInfo.Format, ThumbnailInfoData.Data, ThumbnailInfo.Width, ThumbnailInfo.Height, ThumbnailInfo.Flags " |
|
126 "FROM ThumbnailInfo " |
|
127 "JOIN ThumbnailInfoData " |
|
128 "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID " |
|
129 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |
|
130 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) " |
|
131 "AND ThumbnailInfo.Path = :Path AND ThumbnailInfo.Size = :Size;"); |
|
132 |
|
133 _LIT8( KThumbnailSelectTempInfoByPath, "SELECT TempThumbnailInfo.Format, TempThumbnailInfoData.Data, TempThumbnailInfo.Width, TempThumbnailInfo.Height, TempThumbnailInfo.Flags " |
|
134 "FROM TempThumbnailInfo " |
|
135 "JOIN TempThumbnailInfoData " |
|
136 "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID " |
|
137 "WHERE TempThumbnailInfo.Path = :Path AND TempThumbnailInfo.Size = :Size;"); |
|
138 |
|
139 |
|
140 _LIT8( KThumbnailSelectSettings, "SELECT Version FROM ThumbnailSettings;" ); |
|
141 |
|
142 |
|
143 _LIT( KThumbnailSqlParamData, ":Data" ); |
94 _LIT( KThumbnailSqlParamData, ":Data" ); |
144 _LIT( KThumbnailSqlParamFlags, ":Flags" ); |
95 _LIT( KThumbnailSqlParamFlags, ":Flags" ); |
145 _LIT( KThumbnailSqlParamPath, ":Path" ); |
96 _LIT( KThumbnailSqlParamPath, ":Path" ); |
146 _LIT( KThumbnailSqlParamWidth, ":Width" ); |
97 _LIT( KThumbnailSqlParamWidth, ":Width" ); |
147 _LIT( KThumbnailSqlParamHeight, ":Height" ); |
98 _LIT( KThumbnailSqlParamHeight, ":Height" ); |
161 _LIT( KThumbnailSqlParamThumbFromPath, ":ThumbFromPath" ); |
112 _LIT( KThumbnailSqlParamThumbFromPath, ":ThumbFromPath" ); |
162 _LIT( KThumbnailSqlParamModified, ":Modified" ); |
113 _LIT( KThumbnailSqlParamModified, ":Modified" ); |
163 _LIT( KThumbnailSqlParamFlag, ":Flag" ); |
114 _LIT( KThumbnailSqlParamFlag, ":Flag" ); |
164 _LIT( KThumbnailSqlParamLimit, ":Limit" ); |
115 _LIT( KThumbnailSqlParamLimit, ":Limit" ); |
165 |
116 |
166 //Delete by path |
117 // transaction |
|
118 _LIT8( KThumbnailBeginTransaction, "BEGIN TRANSACTION;" ); |
|
119 _LIT8( KThumbnailCommitTransaction, "COMMIT;" ); |
|
120 _LIT8( KThumbnailRollbackTransaction, "ROLLBACK;" ); |
|
121 |
|
122 // version |
|
123 _LIT8( KThumbnailInsertToVersion, "INSERT INTO ThumbnailVersion (IMEI, Minor, Major) VALUES (:IMEI, :Minor,:Major);" ); |
|
124 _LIT8( KThumbnailSelectFromVersion, "SELECT * FROM ThumbnailVersion LIMIT 1" ); |
|
125 |
|
126 // IMEI |
|
127 _LIT8( KThumbnailUpdateIMEI, "UPDATE ThumbnailVersion SET IMEI = :IMEI" ); |
|
128 |
|
129 // rowIDs |
|
130 _LIT8 ( KGetInfoRowID, "SELECT MAX (ThumbnailInfo.rowID) FROM ThumbnailInfo" ); |
|
131 _LIT8 ( KGetDataRowID, "SELECT MAX (ThumbnailInfoData.rowID) FROM ThumbnailInfoData" ); |
|
132 |
|
133 // flush |
|
134 _LIT8( KThumbnailMoveFromTempInfoToMainTable, "INSERT INTO ThumbnailInfo SELECT * FROM TempThumbnailInfo;"); |
|
135 _LIT8( KThumbnailMoveFromTempDataToMainTable, "INSERT INTO ThumbnailInfoData SELECT * FROM TempThumbnailInfoData;"); |
|
136 _LIT8( KThumbnailDeleteFromTempInfoTable, "DELETE FROM TempThumbnailInfo;"); |
|
137 _LIT8( KThumbnailDeleteFromTempDataTable, "DELETE FROM TempThumbnailInfoData;"); |
|
138 |
|
139 // store thumb |
|
140 _LIT8( KThumbnailInsertTempThumbnailInfo, "INSERT INTO TempThumbnailInfo " |
|
141 "(Path,Size,Format,Width,Height,OrigWidth,OrigHeight,Flags,Orientation,ThumbFromPath,Modified) " |
|
142 "VALUES " |
|
143 "(:Path,:Size,:Format,:Width,:Height,:OrigWidth,:OrigHeight,:Flags,:Orient,:ThumbFromPath,:Modified);" ); |
|
144 |
|
145 _LIT8( KThumbnailInsertTempThumbnailInfoData, "INSERT INTO TempThumbnailInfoData (Data) VALUES (:Data);" ); |
|
146 |
|
147 // duplicate check |
|
148 _LIT8 ( KThumbnailTempFindDuplicate, "SELECT Path FROM TempThumbnailInfo WHERE Path = :Path AND Size = :Size;" ); |
|
149 _LIT8 ( KThumbnailFindDuplicate, "SELECT Path FROM ThumbnailInfo WHERE Path = :Path AND Size = :Size;" ); |
|
150 |
|
151 // select size |
|
152 _LIT8( KThumbnailSelectSizeByPath, "SELECT Size FROM ThumbnailInfo " |
|
153 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |
|
154 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) " |
|
155 "AND Path = :Path ORDER BY Size DESC;" ); |
|
156 |
|
157 _LIT8( KThumbnailSelectTempSizeByPath, "SELECT Size FROM TempThumbnailInfo WHERE Path = :Path ORDER BY Size DESC;" ); |
|
158 |
|
159 // select timestamp |
|
160 _LIT8( KThumbnailSelectModifiedByPath, "SELECT Modified FROM ThumbnailInfo WHERE Path = :Path" ); |
|
161 _LIT8( KThumbnailSelectTempModifiedByPath, "SELECT Modified FROM TempThumbnailInfo WHERE Path = :Path"); |
|
162 |
|
163 // select thumb |
|
164 _LIT8( KThumbnailSelectInfoByPath, "SELECT ThumbnailInfo.Format, ThumbnailInfoData.Data, ThumbnailInfo.Width, ThumbnailInfo.Height, ThumbnailInfo.Flags " |
|
165 "FROM ThumbnailInfo " |
|
166 "JOIN ThumbnailInfoData " |
|
167 "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID " |
|
168 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |
|
169 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) " |
|
170 "AND ThumbnailInfo.Path = :Path AND ThumbnailInfo.Size = :Size;"); |
|
171 |
|
172 _LIT8( KThumbnailSelectTempInfoByPath, "SELECT TempThumbnailInfo.Format, TempThumbnailInfoData.Data, TempThumbnailInfo.Width, TempThumbnailInfo.Height, TempThumbnailInfo.Flags " |
|
173 "FROM TempThumbnailInfo " |
|
174 "JOIN TempThumbnailInfoData " |
|
175 "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID " |
|
176 "WHERE TempThumbnailInfo.Path = :Path AND TempThumbnailInfo.Size = :Size;"); |
|
177 |
|
178 // delete thumb |
167 _LIT8( KThumbnailSqlSelectRowIDInfoByPath, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo WHERE Path = :Path;" ); |
179 _LIT8( KThumbnailSqlSelectRowIDInfoByPath, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo WHERE Path = :Path;" ); |
168 _LIT8( KThumbnailSqlDeleteInfoByPath, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" ); |
180 _LIT8( KThumbnailSqlDeleteInfoByPath, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" ); |
169 _LIT8( KThumbnailSqlDeleteInfoDataByPath, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" ); |
181 _LIT8( KThumbnailSqlDeleteInfoDataByPath, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" ); |
170 _LIT8( KTempThumbnailSqlSelectRowIDInfoByPath, "SELECT TempThumbnailInfo.RowID FROM TempThumbnailInfo WHERE Path = :Path LIMIT 1;" ); |
182 _LIT8( KTempThumbnailSqlSelectRowIDInfoByPath, "SELECT TempThumbnailInfo.RowID FROM TempThumbnailInfo WHERE Path = :Path LIMIT 1;" ); |
171 _LIT8( KTempThumbnailSqlDeleteInfoByPath, "DELETE FROM TempThumbnailInfo WHERE TempThumbnailInfo.RowID = :RowID;" ); |
183 _LIT8( KTempThumbnailSqlDeleteInfoByPath, "DELETE FROM TempThumbnailInfo WHERE TempThumbnailInfo.RowID = :RowID;" ); |
172 _LIT8( KTempThumbnailSqlDeleteInfoDataByPath, "DELETE FROM TempThumbnailInfoData WHERE TempThumbnailInfoData.RowID = :RowID;" ); |
184 _LIT8( KTempThumbnailSqlDeleteInfoDataByPath, "DELETE FROM TempThumbnailInfoData WHERE TempThumbnailInfoData.RowID = :RowID;" ); |
173 |
185 |
174 |
186 // mark deleted |
175 // insert to deleted |
|
176 _LIT8( KThumbnailSqlInsertDeleted, "INSERT INTO ThumbnailDeleted (Path) VALUES (:Path);" ); |
187 _LIT8( KThumbnailSqlInsertDeleted, "INSERT INTO ThumbnailDeleted (Path) VALUES (:Path);" ); |
177 _LIT8 ( KThumbnailSqlFindDeleted, "SELECT * FROM ThumbnailDeleted WHERE Path = :Path;" ); |
188 _LIT8( KThumbnailSqlFindDeleted, "SELECT * FROM ThumbnailDeleted WHERE Path = :Path;" ); |
178 |
189 |
179 // delete marked |
190 // delete marked |
180 _LIT8( KThumbnailSqlSelectMarked, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo " |
191 _LIT8( KThumbnailSqlSelectMarked, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo " |
181 "WHERE EXISTS (SELECT Path FROM ThumbnailDeleted " |
192 "WHERE EXISTS (SELECT Path FROM ThumbnailDeleted " |
182 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) LIMIT :Limit;" ); |
193 "WHERE ThumbnailInfo.Path = ThumbnailDeleted.Path) LIMIT :Limit;" ); |
|
194 |
183 _LIT8( KThumbnailSqlDeleteInfoByRowID, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" ); |
195 _LIT8( KThumbnailSqlDeleteInfoByRowID, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" ); |
184 _LIT8( KThumbnailSqlDeleteInfoDataByRowID, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" ); |
196 _LIT8( KThumbnailSqlDeleteInfoDataByRowID, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" ); |
|
197 |
185 _LIT8( KThumbnailSqlDeleteFromDeleted, "DELETE FROM ThumbnailDeleted " |
198 _LIT8( KThumbnailSqlDeleteFromDeleted, "DELETE FROM ThumbnailDeleted " |
186 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailInfo " |
199 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailInfo " |
187 "WHERE ThumbnailDeleted.Path = ThumbnailInfo.Path);" ); |
200 "WHERE ThumbnailDeleted.Path = ThumbnailInfo.Path);" ); |
188 |
201 |
189 |
202 // reset blacklisted |
190 //version commands |
|
191 _LIT8( KThumbnailInsertToVersion, "INSERT INTO ThumbnailVersion (IMEI, Minor, Major) VALUES (:IMEI, :Minor,:Major);" ); |
|
192 _LIT8( KThumbnailSelectFromVersion, "SELECT * FROM ThumbnailVersion LIMIT 1" ); |
|
193 |
|
194 //reset IDs |
|
195 _LIT8( KTempThumbnailResetIDs, "UPDATE TempThumbnailInfo SET TNId = NULL WHERE TNId NOT NULL" ); |
|
196 _LIT8( KThumbnailResetIDs, "UPDATE ThumbnailInfo SET TNId = NULL WHERE TNId NOT NULL" ); |
|
197 |
|
198 //update IMEI |
|
199 _LIT8( KThumbnailUpdateIMEI, "UPDATE ThumbnailVersion SET IMEI = :IMEI" ); |
|
200 |
|
201 //query Modification timestamp by path |
|
202 _LIT8( KThumbnailSelectModifiedByPath, "SELECT Modified FROM ThumbnailInfo WHERE Path = :Path" ); |
|
203 _LIT8( KThumbnailSelectTempModifiedByPath, "SELECT Modified FROM TempThumbnailInfo WHERE Path = :Path"); |
|
204 |
|
205 // query possible duplicates |
|
206 _LIT8 ( KTempFindDuplicate, "SELECT Path FROM TempThumbnailInfo WHERE Path = :Path AND Size = :Size;" ); |
|
207 _LIT8 ( KFindDuplicate, "SELECT Path FROM ThumbnailInfo WHERE Path = :Path AND Size = :Size;" ); |
|
208 |
|
209 // check rowIDs |
|
210 _LIT8 ( KGetInfoRowID, "SELECT MAX (ThumbnailInfo.rowID) FROM ThumbnailInfo" ); |
|
211 _LIT8 ( KGetDataRowID, "SELECT MAX (ThumbnailInfoData.rowID) FROM ThumbnailInfoData" ); |
|
212 |
|
213 //remove KThumbnailDbFlagBlacklisted flag |
|
214 _LIT8( KThumbnailTouchBlacklistedRows, "UPDATE ThumbnailInfo SET Modified = 0 WHERE Flags & :Flag" ); |
203 _LIT8( KThumbnailTouchBlacklistedRows, "UPDATE ThumbnailInfo SET Modified = 0 WHERE Flags & :Flag" ); |
215 |
204 |
216 // existence check |
205 // existence check |
217 _LIT8( KThumbnailSelectAllPaths, "SELECT ThumbnailInfo.RowID,Path FROM ThumbnailInfo " |
206 _LIT8( KThumbnailSelectAllPaths, "SELECT ThumbnailInfo.RowID,Path FROM ThumbnailInfo " |
218 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |
207 "WHERE NOT EXISTS (SELECT Path FROM ThumbnailDeleted " |