imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailsql.h
changeset 0 2014ca87e772
child 5 82749d516180
child 14 2edacbf5d3f9
equal deleted inserted replaced
-1:000000000000 0:2014ca87e772
       
     1 /*
       
     2 * Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  SQL statements
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef THUMBNAILSQL_H
       
    20 #define THUMBNAILSQL_H
       
    21 
       
    22 //main table
       
    23 _LIT8( KThumbnailCreateInfoTable, "CREATE TABLE ThumbnailInfo ("
       
    24         // Assosiacted object in file system
       
    25         "Path TEXT COLLATE NOCASE,"
       
    26         // Associated (MDS) Id 
       
    27         "TNId INTEGER,"
       
    28         // Combined (enumerated) size and classification 
       
    29         "Size INTEGER,"
       
    30         // Format of thumbnail (CFBsbitmap, JPeg...)
       
    31         "Format INTEGER,"
       
    32         // If thumbnail is in the filesystem then this is NOT NULL and points to such file
       
    33         "TNPath TEXT COLLATE NOCASE,"
       
    34         // Width of thumbnail
       
    35         "Width INTEGER,"
       
    36         // Height of thumbnail
       
    37         "Height INTEGER,"
       
    38         // Width of source
       
    39         "OrigWidth INTEGER,"
       
    40         // Height of source
       
    41         "OrigHeight INTEGER,"
       
    42         // Control flags, cropped etc.
       
    43         "Flags INTEGER,"
       
    44         // Frame number of video TN when user defined
       
    45         "VideoPosition INTEGER,"
       
    46         // Thumbnail orientation
       
    47         "Orientation INTEGER,"
       
    48         // Set if thumbnail is actually created from the associated object path
       
    49         "ThumbFromPath INTEGER,"
       
    50         // Last modified timestamp
       
    51         "Modified LARGEINT);");
       
    52         
       
    53 _LIT8( KThumbnailCreateInfoDataTable, "CREATE TABLE ThumbnailInfoData ("
       
    54         // If Thumbnail is stored in SQL then Data is NOT NULL
       
    55         "Data BLOB);");
       
    56 		
       
    57 //Create index for speedup DB searches 
       
    58 _LIT8( KThumbnailCreateInfoTableIndex1, "CREATE INDEX idx1 ON ThumbnailInfo(Path, Size);");
       
    59 _LIT8( KThumbnailCreateInfoTableIndex2, "CREATE INDEX idx2 ON ThumbnailInfo(TNId, Size);");
       
    60 
       
    61 //temp table is identical to actual main table except it's not persistent
       
    62 _LIT8( KThumbnailCreateTempInfoTable, "CREATE TEMP TABLE TempThumbnailInfo ("
       
    63         "Path TEXT COLLATE NOCASE,"
       
    64         "TNId INTEGER,"
       
    65         "Size INTEGER,"
       
    66         "Format INTEGER,"
       
    67         "TNPath TEXT COLLATE NOCASE,"
       
    68         "Width INTEGER,"
       
    69         "Height INTEGER,"
       
    70         "OrigWidth INTEGER,"
       
    71         "OrigHeight INTEGER,"
       
    72         "Flags INTEGER,"
       
    73         "VideoPosition INTEGER,"
       
    74         "Orientation INTEGER,"
       
    75         "ThumbFromPath INTEGER,"
       
    76         "Modified LARGEINT);");
       
    77 
       
    78 _LIT8( KThumbnailCreateTempInfoDataTable, "CREATE TEMP TABLE TempThumbnailInfoData ("
       
    79         // If Thumbnail is stored in SQL then Data is NOT NULL
       
    80         "Data BLOB);");
       
    81 
       
    82 //version table
       
    83 _LIT8( KThumbnailVersionTable, "CREATE TABLE ThumbnailVersion ("
       
    84         "Major INTEGER,"
       
    85         "Minor INTEGER,"
       
    86         "IMEI TEXT COLLATE NOCASE);");
       
    87 
       
    88 _LIT8( KThumbnailMoveFromTempInfoToMainTable, "INSERT INTO ThumbnailInfo SELECT * FROM TempThumbnailInfo;");
       
    89 _LIT8( KThumbnailMoveFromTempDataToMainTable, "INSERT INTO ThumbnailInfoData SELECT * FROM TempThumbnailInfoData;");
       
    90 
       
    91 _LIT8( KThumbnailDeleteFromTempInfoTable, "DELETE FROM TempThumbnailInfo;");
       
    92 _LIT8( KThumbnailDeleteFromTempDataTable, "DELETE FROM TempThumbnailInfoData;");
       
    93 
       
    94 _LIT8( KThumbnailCreateSettingsTable, "CREATE TABLE ThumbnailSettings ("
       
    95     "Version INTEGER);" );
       
    96 
       
    97 _LIT8( KThumbnailDropInfoTable, "DROP TABLE ThumbnailInfo;" );
       
    98 _LIT8( KThumbnailDropTempInfoTable, "DROP TABLE TempThumbnailInfo;" );
       
    99 
       
   100 _LIT8( KThumbnailDropSettingsTable, "DROP TABLE ThumbnailSettings;" );
       
   101 
       
   102 _LIT8( KThumbnailBeginTransaction, "BEGIN TRANSACTION;" );
       
   103 _LIT8( KThumbnailCommitTransaction, "COMMIT;" );
       
   104 _LIT8( KThumbnailRollbackTransaction, "ROLLBACK;" );
       
   105 
       
   106 _LIT8( KThumbnailInsertThumbnailInfoByPathAndId, "INSERT INTO TempThumbnailInfo "
       
   107     "(Path,TNId,Size,Format,Width,Height,OrigWidth,OrigHeight,Flags,Orientation,ThumbFromPath,Modified) ""VALUES "
       
   108     "(:Path,:TNId,:Size,:Format,:Width,:Height,:OrigWidth,:OrigHeight,:Flags,:Orient,:ThumbFromPath,:Modified);" );
       
   109 
       
   110 _LIT8( KThumbnailInsertTempThumbnailInfoData, "INSERT INTO TempThumbnailInfoData (Data) VALUES (:Data);" );
       
   111 
       
   112 _LIT8( KThumbnailSelectSizeByPath, "SELECT Size, TNId FROM ThumbnailInfo WHERE Path = :Path ORDER BY Size DESC;" );
       
   113 
       
   114 _LIT8( KThumbnailSelectTempSizeByPath, "SELECT Size, TNId FROM TempThumbnailInfo WHERE Path = :Path ORDER BY Size DESC;" );
       
   115 
       
   116 _LIT8( KThumbnailSelectById, "SELECT * "
       
   117         "FROM ThumbnailInfo "
       
   118         "JOIN ThumbnailInfoData "
       
   119         "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID "
       
   120         "WHERE TNId = :TNId" );
       
   121 
       
   122 _LIT8( KThumbnailSelectTempById, "SELECT * "
       
   123         "FROM TempThumbnailInfo "
       
   124         "JOIN TempThumbnailInfoData "
       
   125         "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID "
       
   126         "WHERE TNId = :TNId" );
       
   127 
       
   128 //query by Path
       
   129 _LIT8( KThumbnailSelectInfoByPath, "SELECT ThumbnailInfo.Format, ThumbnailInfoData.Data, ThumbnailInfo.Width, ThumbnailInfo.Height, ThumbnailInfo.Flags "
       
   130         "FROM ThumbnailInfo "
       
   131         "JOIN ThumbnailInfoData "
       
   132         "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID "
       
   133         "WHERE ThumbnailInfo.Path = :Path AND ThumbnailInfo.Size = :Size;");
       
   134 
       
   135 _LIT8( KThumbnailSelectTempInfoByPath, "SELECT TempThumbnailInfo.Format, TempThumbnailInfoData.Data, TempThumbnailInfo.Width, TempThumbnailInfo.Height, TempThumbnailInfo.Flags "
       
   136         "FROM TempThumbnailInfo "
       
   137         "JOIN TempThumbnailInfoData "
       
   138         "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID "
       
   139         "WHERE TempThumbnailInfo.Path = :Path AND TempThumbnailInfo.Size = :Size;");
       
   140 
       
   141 //query by Id
       
   142 _LIT8( KThumbnailSelectInfoById, "SELECT ThumbnailInfo.Format, ThumbnailInfoData.Data, ThumbnailInfo.Width, ThumbnailInfo.Height, ThumbnailInfo.Flags "
       
   143         "FROM ThumbnailInfo "
       
   144         "JOIN ThumbnailInfoData "
       
   145         "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID "
       
   146         "WHERE TNId = :TNId AND Size = :Size;" );
       
   147 
       
   148 _LIT8( KThumbnailSelectTempInfoById, "SELECT TempThumbnailInfo.Format, TempThumbnailInfoData.Data, TempThumbnailInfo.Width, TempThumbnailInfo.Height, TempThumbnailInfo.Flags "
       
   149         "FROM TempThumbnailInfo "
       
   150         "JOIN TempThumbnailInfoData "
       
   151         "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID "
       
   152         "WHERE TNId = :TNId AND Size = :Size;" );
       
   153 		
       
   154 //query by Idv2
       
   155 _LIT8( KThumbnailSelectInfoByIdv2, "SELECT ThumbnailInfo.Format, ThumbnailInfoData.Data, ThumbnailInfo.Width, ThumbnailInfo.Height, ThumbnailInfo.Flags "
       
   156         "FROM ThumbnailInfo "
       
   157         "JOIN ThumbnailInfoData "
       
   158         "ON ThumbnailInfo.RowID = ThumbnailInfoData.RowID "
       
   159         "WHERE TNId = :TNId AND (Size = :SizeImage OR Size = :SizeVideo OR Size = :SizeAudio);" );
       
   160 
       
   161 _LIT8( KThumbnailSelectTempInfoByIdv2, "SELECT TempThumbnailInfo.Format, TempThumbnailInfoData.Data, TempThumbnailInfo.Width, TempThumbnailInfo.Height, TempThumbnailInfo.Flags "
       
   162         "FROM TempThumbnailInfo "
       
   163         "JOIN TempThumbnailInfoData "
       
   164         "ON TempThumbnailInfo.RowID = TempThumbnailInfoData.RowID "
       
   165         "WHERE TNId = :TNId AND (Size = :SizeImage OR Size = :SizeVideo OR Size = :SizeAudio);" );		
       
   166 
       
   167 _LIT8( KThumbnailSelectSettings, "SELECT Version FROM ThumbnailSettings;" );
       
   168 
       
   169 //qyery Path by ID
       
   170 _LIT8( KThumbnailSelectPathByID, "SELECT Path FROM ThumbnailInfo WHERE TNId = :TNId;"  );
       
   171 _LIT8( KThumbnailSelectTempPathByID, "SELECT Path FROM TempThumbnailInfo WHERE TNId = :TNId;");
       
   172 
       
   173 //query Path and Modified by ID
       
   174 _LIT8( KThumbnailSelectPathModifiedByID, "SELECT Path, Modified FROM ThumbnailInfo WHERE TNId = :TNId;"  );
       
   175 _LIT8( KThumbnailSelectTempPathModifiedByID, "SELECT Path, Modified FROM TempThumbnailInfo WHERE TNId = :TNId;");
       
   176 
       
   177 _LIT( KThumbnailSqlParamData, ":Data" );
       
   178 _LIT( KThumbnailSqlParamFlags, ":Flags" );
       
   179 _LIT( KThumbnailSqlParamPath, ":Path" );
       
   180 _LIT( KThumbnailSqlParamWidth, ":Width" );
       
   181 _LIT( KThumbnailSqlParamHeight, ":Height" );
       
   182 _LIT( KThumbnailSqlParamOriginalWidth, ":OrigWidth" );
       
   183 _LIT( KThumbnailSqlParamOriginalHeight, ":OrigHeight" );
       
   184 _LIT( KThumbnailSqlParamFormat, ":Format" );
       
   185 _LIT( KThumbnailSqlParamId, ":TNId" );
       
   186 _LIT( KThumbnailSqlParamSize, ":Size" );
       
   187 _LIT( KThumbnailSqlParamTNPath, ":TNPath" );
       
   188 _LIT( KThumbnailSqlParamMajor, ":Major" );
       
   189 _LIT( KThumbnailSqlParamMinor, ":Minor" );
       
   190 _LIT( KThumbnailSqlParamImei, ":IMEI" );
       
   191 _LIT( KThumbnailSqlParamSizeImage, ":SizeImage" );
       
   192 _LIT( KThumbnailSqlParamSizeVideo, ":SizeVideo" );
       
   193 _LIT( KThumbnailSqlParamSizeAudio, ":SizeAudio" );
       
   194 _LIT( KThumbnailSqlParamRowID, ":RowID" );
       
   195 _LIT( KThumbnailSqlParamOrientation, ":Orient" );
       
   196 _LIT( KThumbnailSqlParamThumbFromPath, ":ThumbFromPath" );
       
   197 _LIT( KThumbnailSqlParamModified, ":Modified" );
       
   198 _LIT( KThumbnailSqlParamFlag, ":Flag" );
       
   199 
       
   200 //Delete by path
       
   201 _LIT8( KThumbnailSqlSelectRowIDInfoByPath, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo WHERE Path = :Path;" );
       
   202 _LIT8( KThumbnailSqlDeleteInfoByPath, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" );
       
   203 _LIT8( KThumbnailSqlDeleteInfoDataByPath, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" );
       
   204 _LIT8( KTempThumbnailSqlSelectRowIDInfoByPath, "SELECT TempThumbnailInfo.RowID FROM TempThumbnailInfo WHERE Path = :Path LIMIT 1;" );
       
   205 _LIT8( KTempThumbnailSqlDeleteInfoByPath, "DELETE FROM TempThumbnailInfo WHERE TempThumbnailInfo.RowID = :RowID;" );
       
   206 _LIT8( KTempThumbnailSqlDeleteInfoDataByPath, "DELETE FROM TempThumbnailInfoData WHERE TempThumbnailInfoData.RowID = :RowID;" );
       
   207 
       
   208 
       
   209 //Delete by ID
       
   210 _LIT8( KThumbnailSqlSelectRowIDInfoByID, "SELECT ThumbnailInfo.RowID FROM ThumbnailInfo WHERE TNId = :TNId;" );
       
   211 _LIT8( KThumbnailSqlDeleteInfoByID, "DELETE FROM ThumbnailInfo WHERE ThumbnailInfo.RowID = :RowID;" );
       
   212 _LIT8( KThumbnailSqlDeleteInfoDataByID, "DELETE FROM ThumbnailInfoData WHERE ThumbnailInfoData.RowID = :RowID;" );
       
   213 _LIT8( KTempThumbnailSqlSelectRowIDInfoByID, "SELECT TempThumbnailInfo.RowID FROM TempThumbnailInfo WHERE TNId = :TNId LIMIT 1;" );
       
   214 _LIT8( KTempThumbnailSqlDeleteInfoByID, "DELETE FROM TempThumbnailInfo WHERE TempThumbnailInfo.RowID = :RowID;" );
       
   215 _LIT8( KTempThumbnailSqlDeleteInfoDataByID, "DELETE FROM TempThumbnailInfoData WHERE TempThumbnailInfoData.RowID = :RowID;" );
       
   216 
       
   217 
       
   218 //Update path by Id
       
   219 _LIT8( KTempThumbnailSqlUpdateById, "UPDATE TempThumbnailInfo SET Path = :Path WHERE TNId = :TNId" );
       
   220 _LIT8( KThumbnailSqlUpdateById, "UPDATE ThumbnailInfo SET Path = :Path WHERE TNId = :TNId" );
       
   221 
       
   222 //version commands
       
   223 _LIT8( KThumbnailInsertToVersion, "INSERT INTO ThumbnailVersion (IMEI, Minor, Major) VALUES (:IMEI, :Minor,:Major);" );
       
   224 _LIT8( KThumbnailSelectFromVersion, "SELECT * FROM ThumbnailVersion LIMIT 1" );
       
   225 
       
   226 //reset IDs
       
   227 _LIT8( KTempThumbnailResetIDs, "UPDATE TempThumbnailInfo SET TNId = NULL WHERE TNId NOT NULL" );
       
   228 _LIT8( KThumbnailResetIDs, "UPDATE ThumbnailInfo SET TNId = NULL WHERE TNId NOT NULL" );
       
   229 
       
   230 //update IMEI
       
   231 _LIT8( KThumbnailUpdateIMEI, "UPDATE ThumbnailVersion SET IMEI = :IMEI" );
       
   232 
       
   233 //update ID by Path
       
   234 _LIT8( KTempThumbnailUpdateIdByPath, "UPDATE TempThumbnailInfo SET TNId = :TNId WHERE Path = :Path" );
       
   235 _LIT8( KThumbnailUpdateIdByPath, "UPDATE ThumbnailInfo SET TNId = :TNId WHERE Path = :Path" );
       
   236 
       
   237 //qyery Modification timestamp by ID
       
   238 _LIT8( KThumbnailSelectModifiedByID, "SELECT Modified FROM ThumbnailInfo WHERE TNId = :TNId AND ThumbFromPath = 1 LIMIT 1"  );
       
   239 _LIT8( KThumbnailSelectTempModifiedByID, "SELECT Modified FROM TempThumbnailInfo WHERE TNId = :TNId AND ThumbFromPath = 1 LIMIT 1");
       
   240 
       
   241 //query Modification timestamp by path
       
   242 _LIT8( KThumbnailSelectModifiedByPath, "SELECT Modified FROM ThumbnailInfo WHERE Path = :Path"  );
       
   243 _LIT8( KThumbnailSelectTempModifiedByPath, "SELECT Modified FROM TempThumbnailInfo WHERE Path = :Path");
       
   244 
       
   245 // query possible duplicates
       
   246 _LIT8 ( KTempFindDuplicate, "SELECT Path FROM TempThumbnailInfo WHERE Size = :Size AND (TNId = :TNId OR Path = :Path);" );
       
   247 _LIT8 ( KFindDuplicate, "SELECT Path FROM ThumbnailInfo WHERE Size = :Size AND (TNId = :TNId OR Path = :Path);" );
       
   248 
       
   249 // check rowIDs
       
   250 _LIT8 ( KGetInfoRowID, "SELECT MAX (ThumbnailInfo.rowID) FROM ThumbnailInfo" );
       
   251 _LIT8 ( KGetDataRowID, "SELECT MAX (ThumbnailInfoData.rowID) FROM ThumbnailInfoData" );
       
   252 
       
   253 //remove KThumbnailDbFlagBlacklisted flag
       
   254 _LIT8( KThumbnailRemoveBlacklistedFlag, "UPDATE ThumbnailInfo SET Flags = Flags & ~:Flag WHERE Flags & :Flag" );
       
   255 
       
   256 #endif // THUMBNAILSQL_H