Monotone-Parent: cd64ae407367870de80ed89786ddef547b959640
Monotone-Revision: 3a78dd3034bf29fe4fe7a1a3d7eacbd47941bbba Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-08-09T08:15:32 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
080a5014ef
commit
6af8f35d45
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue