Monotone-Parent: cd64ae407367870de80ed89786ddef547b959640
Monotone-Revision: 3a78dd3034bf29fe4fe7a1a3d7eacbd47941bbba Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-08-09T08:15:32 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
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>
|
2008-06-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
* GCSFolderManager.m ([GCSFolderManager
|
* GCSFolderManager.m ([GCSFolderManager
|
||||||
|
|
|
@ -723,7 +723,6 @@ static NSArray *contentFieldNames = nil;
|
||||||
return sql;
|
return sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (EOEntity *) _entityWithName: (NSString *) _name
|
- (EOEntity *) _entityWithName: (NSString *) _name
|
||||||
{
|
{
|
||||||
EOAttribute *attribute;
|
EOAttribute *attribute;
|
||||||
|
@ -741,6 +740,26 @@ static NSArray *contentFieldNames = nil;
|
||||||
return entity;
|
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
|
- (EOSQLQualifier *) _qualifierUsingWhereColumn:(NSString *)_colname
|
||||||
isEqualTo:(id)_value
|
isEqualTo:(id)_value
|
||||||
andColumn:(NSString *)_colname2
|
andColumn:(NSString *)_colname2
|
||||||
|
@ -792,6 +811,7 @@ static NSArray *contentFieldNames = nil;
|
||||||
BOOL isNewRecord, hasInsertDelegate, hasUpdateDelegate;
|
BOOL isNewRecord, hasInsertDelegate, hasUpdateDelegate;
|
||||||
NSCalendarDate *nowDate;
|
NSCalendarDate *nowDate;
|
||||||
NSNumber *now;
|
NSNumber *now;
|
||||||
|
EOEntity *quickTableEntity, *storeTableEntity;
|
||||||
NSArray *rows;
|
NSArray *rows;
|
||||||
|
|
||||||
/* check preconditions */
|
/* check preconditions */
|
||||||
|
@ -906,31 +926,37 @@ static NSArray *contentFieldNames = nil;
|
||||||
hasUpdateDelegate = [[storeChannel delegate]
|
hasUpdateDelegate = [[storeChannel delegate]
|
||||||
respondsToSelector: @selector(adaptorChannel:willUpdateRow:describedByQualifier:)];
|
respondsToSelector: @selector(adaptorChannel:willUpdateRow:describedByQualifier:)];
|
||||||
|
|
||||||
[[storeChannel adaptorContext] beginTransaction];
|
|
||||||
[[quickChannel adaptorContext] beginTransaction];
|
[[quickChannel adaptorContext] beginTransaction];
|
||||||
|
[[storeChannel adaptorContext] beginTransaction];
|
||||||
|
|
||||||
|
quickTableEntity = [self _quickTableEntity];
|
||||||
|
storeTableEntity = [self _storeTableEntity];
|
||||||
|
|
||||||
if (isNewRecord) {
|
if (isNewRecord) {
|
||||||
if (!ofFlags.sameTableForQuick) {
|
if (!ofFlags.sameTableForQuick) {
|
||||||
error = (hasInsertDelegate ? [quickChannel insertRowX: quickRow
|
error = (hasInsertDelegate
|
||||||
forEntity: [self _entityWithName: [self quickTableName]]]
|
? [quickChannel insertRowX: quickRow forEntity: quickTableEntity]
|
||||||
: [quickChannel evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
|
: [quickChannel
|
||||||
|
evaluateExpressionX: [self _generateInsertStatementForRow: quickRow
|
||||||
tableName: [self quickTableName]]]);
|
tableName: [self quickTableName]]]);
|
||||||
CHECKERROR();
|
CHECKERROR();
|
||||||
}
|
}
|
||||||
|
|
||||||
error = (hasInsertDelegate ? [storeChannel insertRowX: contentRow
|
error = (hasInsertDelegate
|
||||||
forEntity: [self _entityWithName: [self storeTableName]]]
|
? [storeChannel insertRowX: contentRow forEntity: storeTableEntity]
|
||||||
: [storeChannel evaluateExpressionX: [self _generateInsertStatementForRow: contentRow
|
: [storeChannel
|
||||||
|
evaluateExpressionX: [self _generateInsertStatementForRow: contentRow
|
||||||
tableName: [self storeTableName]]]);
|
tableName: [self storeTableName]]]);
|
||||||
|
|
||||||
CHECKERROR();
|
CHECKERROR();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!ofFlags.sameTableForQuick) {
|
if (!ofFlags.sameTableForQuick) {
|
||||||
error = (hasUpdateDelegate ? [quickChannel updateRowX: quickRow
|
error = (hasUpdateDelegate
|
||||||
|
? [quickChannel updateRowX: quickRow
|
||||||
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name"
|
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name"
|
||||||
isEqualTo: _name andColumn: nil isEqualTo: nil
|
isEqualTo: _name andColumn: nil isEqualTo: nil
|
||||||
entity: [self _entityWithName: [self quickTableName]]]]
|
entity: quickTableEntity]]
|
||||||
: [quickChannel evaluateExpressionX: [self _generateUpdateStatementForRow: quickRow
|
: [quickChannel evaluateExpressionX: [self _generateUpdateStatementForRow: quickRow
|
||||||
tableName: [self quickTableName]
|
tableName: [self quickTableName]
|
||||||
whereColumn: @"c_name" isEqualTo: _name
|
whereColumn: @"c_name" isEqualTo: _name
|
||||||
|
@ -938,11 +964,12 @@ static NSArray *contentFieldNames = nil;
|
||||||
CHECKERROR();
|
CHECKERROR();
|
||||||
}
|
}
|
||||||
|
|
||||||
error = (hasUpdateDelegate ? [storeChannel updateRowX: contentRow
|
error = (hasUpdateDelegate
|
||||||
|
? [storeChannel updateRowX: contentRow
|
||||||
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name" isEqualTo: _name
|
describedByQualifier: [self _qualifierUsingWhereColumn: @"c_name" isEqualTo: _name
|
||||||
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
|
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
|
||||||
isEqualTo: (_baseVersion != 0 ? [NSNumber numberWithUnsignedInt:_baseVersion] : (NSNumber *)nil)
|
isEqualTo: (_baseVersion != 0 ? [NSNumber numberWithUnsignedInt:_baseVersion] : (NSNumber *)nil)
|
||||||
entity: [self _entityWithName: [self storeTableName]]]]
|
entity: storeTableEntity]]
|
||||||
: [storeChannel evaluateExpressionX: [self _generateUpdateStatementForRow: contentRow tableName:[self storeTableName]
|
: [storeChannel evaluateExpressionX: [self _generateUpdateStatementForRow: contentRow tableName:[self storeTableName]
|
||||||
whereColumn: @"c_name" isEqualTo: _name
|
whereColumn: @"c_name" isEqualTo: _name
|
||||||
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
|
andColumn: (_baseVersion != 0 ? (id)@"c_version" : (id)nil)
|
||||||
|
|
Loading…
Reference in a new issue