Monotone-Parent: cd64ae407367870de80ed89786ddef547b959640

Monotone-Revision: 3a78dd3034bf29fe4fe7a1a3d7eacbd47941bbba

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-08-09T08:15:32
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2008-08-09 08:15:32 +00:00
parent 080a5014ef
commit 6af8f35d45
2 changed files with 53 additions and 20 deletions

View File

@ -1,3 +1,9 @@
2008-08-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder
-writeContent:_contenttoName:_namebaseVersion:_baseVersion]): the
store table has now a "c_version" field in its description entity.
2008-06-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager

View File

@ -723,7 +723,6 @@ static NSArray *contentFieldNames = nil;
return sql;
}
- (EOEntity *) _entityWithName: (NSString *) _name
{
EOAttribute *attribute;
@ -741,6 +740,26 @@ static NSArray *contentFieldNames = nil;
return entity;
}
- (EOEntity *) _storeTableEntity
{
EOAttribute *attribute;
EOEntity *entity;
entity = [self _entityWithName: [self storeTableName]];
attribute = AUTORELEASE([[EOAttribute alloc] init]);
[attribute setName: @"c_version"];
[attribute setColumnName: @"c_version"];
[entity addAttribute: attribute];
return entity;
}
- (EOEntity *) _quickTableEntity
{
return [self _entityWithName: [self quickTableName]];
}
- (EOSQLQualifier *) _qualifierUsingWhereColumn:(NSString *)_colname
isEqualTo:(id)_value
andColumn:(NSString *)_colname2
@ -792,6 +811,7 @@ static NSArray *contentFieldNames = nil;
BOOL isNewRecord, hasInsertDelegate, hasUpdateDelegate;
NSCalendarDate *nowDate;
NSNumber *now;
EOEntity *quickTableEntity, *storeTableEntity;
NSArray *rows;
/* check preconditions */
@ -906,31 +926,37 @@ static NSArray *contentFieldNames = nil;
hasUpdateDelegate = [[storeChannel delegate]
respondsToSelector: @selector(adaptorChannel:willUpdateRow:describedByQualifier:)];
[[storeChannel adaptorContext] beginTransaction];
[[quickChannel adaptorContext] beginTransaction];
[[storeChannel adaptorContext] beginTransaction];
quickTableEntity = [self _quickTableEntity];
storeTableEntity = [self _storeTableEntity];
if (isNewRecord) {
if (!ofFlags.sameTableForQuick) {
error = (hasInsertDelegate ? [quickChannel insertRowX: quickRow
forEntity: [self _entityWithName: [self quickTableName]]]
: [quickChannel evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
tableName: [self quickTableName]]]);
error = (hasInsertDelegate
? [quickChannel insertRowX: quickRow forEntity: quickTableEntity]
: [quickChannel
evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
tableName: [self quickTableName]]]);
CHECKERROR();
}
error = (hasInsertDelegate ? [storeChannel insertRowX: contentRow
forEntity: [self _entityWithName: [self storeTableName]]]
: [storeChannel evaluateExpressionX: [self _generateInsertStatementForRow: contentRow
tableName: [self storeTableName]]]);
error = (hasInsertDelegate
? [storeChannel insertRowX: contentRow forEntity: storeTableEntity]
: [storeChannel
evaluateExpressionX: [self _generateInsertStatementForRow: contentRow
tableName: [self storeTableName]]]);
CHECKERROR();
}
else {
if (!ofFlags.sameTableForQuick) {
error = (hasUpdateDelegate ? [quickChannel updateRowX: quickRow
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name"
isEqualTo: _name andColumn: nil isEqualTo: nil
entity: [self _entityWithName: [self quickTableName]]]]
error = (hasUpdateDelegate
? [quickChannel updateRowX: quickRow
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name"
isEqualTo: _name andColumn: nil isEqualTo: nil
entity: quickTableEntity]]
: [quickChannel evaluateExpressionX: [self _generateUpdateStatementForRow: quickRow
tableName: [self quickTableName]
whereColumn: @"c_name" isEqualTo: _name
@ -938,11 +964,12 @@ static NSArray *contentFieldNames = nil;
CHECKERROR();
}
error = (hasUpdateDelegate ? [storeChannel updateRowX: contentRow
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name" isEqualTo: _name
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
isEqualTo: (_baseVersion != 0 ? [NSNumber numberWithUnsignedInt:_baseVersion] : (NSNumber *)nil)
entity: [self _entityWithName: [self storeTableName]]]]
error = (hasUpdateDelegate
? [storeChannel updateRowX: contentRow
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name" isEqualTo: _name
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
isEqualTo: (_baseVersion != 0 ? [NSNumber numberWithUnsignedInt:_baseVersion] : (NSNumber *)nil)
entity: storeTableEntity]]
: [storeChannel evaluateExpressionX: [self _generateUpdateStatementForRow: contentRow tableName:[self storeTableName]
whereColumn: @"c_name" isEqualTo: _name
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)