branch | RCL_3 |
changeset 15 | 3cebc1a84278 |
parent 14 | 646a02f170b9 |
child 27 | 4a4892eec172 |
14:646a02f170b9 | 15:3cebc1a84278 |
---|---|
201 } |
201 } |
202 } |
202 } |
203 |
203 |
204 void CMdsSchema::CreateObjectTablesL() |
204 void CMdsSchema::CreateObjectTablesL() |
205 { |
205 { |
206 _LIT( KBaseObjectDefinition, "CREATE TABLE IF NOT EXISTS %S%u(ObjectId INTEGER PRIMARY KEY AUTOINCREMENT,ObjectDefId INTEGER NOT NULL,Flags INTEGER,MediaId LARGEINT,UsageCount LARGEINT DEFAULT 0,GuidHigh LARGEINT,GuidLow LARGEINT,URI TEXT NOT NULL COLLATE NOCASE,Origin INTEGER,Size LARGEINT,TimeOffset INTEGER,CreationDate LARGEINT,LastModifiedDate LARGEINT,ItemType TEXT,Title TEXT,UNIQUE(GuidHigh,GuidLow),UNIQUE(MediaId,URI));" ); |
206 _LIT( KBaseObjectDefinition, "CREATE TABLE IF NOT EXISTS %S%u(ObjectId INTEGER PRIMARY KEY AUTOINCREMENT,ObjectDefId INTEGER NOT NULL,Flags INTEGER,MediaId LARGEINT,UsageCount LARGEINT DEFAULT 0,GuidHigh LARGEINT,GuidLow LARGEINT,URI TEXT NOT NULL COLLATE NOCASE,Origin INTEGER,Size LARGEINT,TimeOffset INTEGER,CreationDate LARGEINT,LastModifiedDate LARGEINT,ItemType TEXT,Title TEXT,UNIQUE(GuidHigh,GuidLow),UNIQUE(URI,MediaId));" ); |
207 _LIT( KCreateRelationsTable, "CREATE TABLE IF NOT EXISTS Relations%u(RelationId INTEGER PRIMARY KEY AUTOINCREMENT,Flags INTEGER,RelationDefId INTEGER NOT NULL,LeftObjectId INTEGER NOT NULL,RightObjectId INTEGER NOT NULL,Parameter INTEGER,GuidHigh LARGEINT,GuidLow LARGEINT,LastModifiedDate LARGEINT);" ); |
207 _LIT( KCreateRelationsTable, "CREATE TABLE IF NOT EXISTS Relations%u(RelationId INTEGER PRIMARY KEY AUTOINCREMENT,Flags INTEGER,RelationDefId INTEGER NOT NULL,LeftObjectId INTEGER NOT NULL,RightObjectId INTEGER NOT NULL,Parameter INTEGER,GuidHigh LARGEINT,GuidLow LARGEINT,LastModifiedDate LARGEINT);" ); |
208 _LIT( KCreateEventsTable, "CREATE TABLE IF NOT EXISTS Event%u(EventId INTEGER PRIMARY KEY AUTOINCREMENT,ObjectId INTEGER NOT NULL, EventDefId INTEGER NOT NULL, Timestamp INTEGER NOT NULL, Source TEXT, Participant TEXT);" ); |
208 _LIT( KCreateEventsTable, "CREATE TABLE IF NOT EXISTS Event%u(EventId INTEGER PRIMARY KEY AUTOINCREMENT,ObjectId INTEGER NOT NULL, EventDefId INTEGER NOT NULL, Timestamp INTEGER NOT NULL, Source TEXT, Participant TEXT);" ); |
209 _LIT( KCreateTxtSrchTable, "CREATE TABLE IF NOT EXISTS TextSearch%u(WordId INTEGER NOT NULL,ObjectId INTEGER NOT NULL,Position INTEGER);" ); |
209 _LIT( KCreateTxtSrchTable, "CREATE TABLE IF NOT EXISTS TextSearch%u(WordId INTEGER NOT NULL,ObjectId INTEGER NOT NULL,Position INTEGER);" ); |
210 _LIT( KCreateTxtSrchDicTable, "CREATE TABLE IF NOT EXISTS TextSearchDictionary%u(WordId INTEGER PRIMARY KEY,Word TEXT NOT NULL);" ); |
210 _LIT( KCreateTxtSrchDicTable, "CREATE TABLE IF NOT EXISTS TextSearchDictionary%u(WordId INTEGER PRIMARY KEY,Word TEXT NOT NULL);" ); |
211 |
211 |
231 _LIT( KMdsIndexFreetextWordId, "CREATE INDEX FreetextWordIdIndex%u ON TextSearch%u(WordId);" ); |
231 _LIT( KMdsIndexFreetextWordId, "CREATE INDEX FreetextWordIdIndex%u ON TextSearch%u(WordId);" ); |
232 _LIT( KMdsIndexFreetextObjectId, "CREATE INDEX FreetextObjectIdIndex%u ON TextSearch%u(ObjectId);" ); |
232 _LIT( KMdsIndexFreetextObjectId, "CREATE INDEX FreetextObjectIdIndex%u ON TextSearch%u(ObjectId);" ); |
233 |
233 |
234 // ObjectTypeDefinition index |
234 // ObjectTypeDefinition index |
235 _LIT( KMdsIndexObjectDefId, "CREATE INDEX ObjectDefIndex%u ON Object%u(ObjectDefId);" ); |
235 _LIT( KMdsIndexObjectDefId, "CREATE INDEX ObjectDefIndex%u ON Object%u(ObjectDefId);" ); |
236 |
|
237 // MediaId index |
|
238 _LIT( KMdsIndexMediaId, "CREATE INDEX MediaIdIndex%u ON Object%u(MediaId);" ); |
|
236 |
239 |
237 // create tables |
240 // create tables |
238 CMdsClauseBuffer* clause = CMdsClauseBuffer::NewLC( 1024 ); |
241 CMdsClauseBuffer* clause = CMdsClauseBuffer::NewLC( 1024 ); |
239 clause->ReserveSpaceL( KBaseObjectDefinition.iTypeLength + 30 ); // maxIntNumberDecimal.Length = 10 |
242 clause->ReserveSpaceL( KBaseObjectDefinition.iTypeLength + 30 ); // maxIntNumberDecimal.Length = 10 |
240 CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL(); |
243 CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL(); |
335 connection.ExecuteL( clauseTrigger->ConstBufferL(), emptyRowData ); |
338 connection.ExecuteL( clauseTrigger->ConstBufferL(), emptyRowData ); |
336 |
339 |
337 // add objectdefidindex[number] |
340 // add objectdefidindex[number] |
338 clauseTrigger->ReserveSpaceL( KMdsIndexObjectDefId().Size() + ( KMaxUintValueLength * 2 ) ); |
341 clauseTrigger->ReserveSpaceL( KMdsIndexObjectDefId().Size() + ( KMaxUintValueLength * 2 ) ); |
339 clauseTrigger->BufferL().Format( KMdsIndexObjectDefId, namespaceDefId, namespaceDefId ); |
342 clauseTrigger->BufferL().Format( KMdsIndexObjectDefId, namespaceDefId, namespaceDefId ); |
343 connection.ExecuteL( clauseTrigger->ConstBufferL(), emptyRowData ); |
|
344 |
|
345 // add mediaidindex[number] |
|
346 clauseTrigger->ReserveSpaceL( KMdsIndexMediaId().Size() + ( KMaxUintValueLength * 2 ) ); |
|
347 clauseTrigger->BufferL().Format( KMdsIndexMediaId, namespaceDefId, namespaceDefId ); |
|
340 connection.ExecuteL( clauseTrigger->ConstBufferL(), emptyRowData ); |
348 connection.ExecuteL( clauseTrigger->ConstBufferL(), emptyRowData ); |
341 |
349 |
342 namespaceDef->SetTableStoredInDB(); |
350 namespaceDef->SetTableStoredInDB(); |
343 } |
351 } |
344 |
352 |