([EOClassDescription initialize]): Use local
GSLazyRecursiveLock instead of old locking mechanism.
([EOClassDescription classDelegate]): Ditto.
* EOControl/EOGenericRecord.m: Use GSLazyRecursiveLock
instead of NSRecursiveLock.
* EOControl/EONSAddOns.h/m (GDL2GlobalLock,
GDL2GlobalRecursiveLock) Remove.
(GDL2GlobalLockVendor) Ditto.
(GSUseStrictWO451Compatibility): Use local GSLazyRecursiveLock
instead of old locking mechanism.
* EOControl/EOFault.m: Remove superfluous include.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18587 72102866-910b-0410-8b05-ffd578937521
([EOKeyValueQualifier initWithKey:operatorSelector:value:]):
Use EONull instance if value is nil.
([EOKeyValueQualifier evaluateWithObject:]): Use EONull
instance if object is nil.
* EOControl/EOQualifier.m (getKey): Always interpret
'attName = nil' qualifiers as EOKeyValueQualifiers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18586 72102866-910b-0410-8b05-ffd578937521
NSSearchPathForDirectoriesInDomains() instead of GNUstep
specific environment variable.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18518 72102866-910b-0410-8b05-ffd578937521
Add -lgnustep-baseadd as ADDITIONAL_TOOL_LIBS for non-*-gnu-*.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18511 72102866-910b-0410-8b05-ffd578937521
o added -dictionaryForProperties
o added EOEntityClassDescription -dictionaryForProperties
wich use entity -_dictionaryForProperties
* EOControl/EOGenericRecord.m/h:
o use EOClassDescription -dictionaryForProperties
instead of building itself it's dictionary so we can
always use the same EOMKKDInitializer to save (lots of)
memory.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18227 72102866-910b-0410-8b05-ffd578937521
o fix in EOOrQualifier -sqlStringForSQLExpression:
use sqlExpression -sqlStringForDisjoinedQualifiers:
(problem was missing () around expression)
* EOControl/EOAndQualifier.m:
o implemented -_addBindingsToDictionary:
o implemented -qualifierWithBindings:requiresAllVariables:
o implemented -validateKeysWithRootClassDescription:
* EOControl/EOKeyValueQualifier.m:
o implemented -validateKeysWithRootClassDescription:
o implemented -initWithKeyValueUnarchiver:
o removed duplicate -initWithKeyValueUnarchiver: and
-encodeWithKeyValueArchiver
o implemented -_addBindingsToDictionary:
o implemented -qualifierWithBindings:requiresAllVariables:
* EOControl/EOOrQualifier.m:
o implemented -_addBindingsToDictionary:
o implemented -qualifierWithBindings:requiresAllVariables:
o implemented -validateKeysWithRootClassDescription:
* EOControl/EONotQualifier.m:
o implemented -_addBindingsToDictionary:
o implemented -validateKeysWithRootClassDescription:
o implemented -qualifierWithBindings:requiresAllVariables:
* EOControl/EOQualifier.m:
o implemented _validateKey:withRootClassDescription:
o implemented -validateKeysWithRootClassDescription:
o implemented -bindingKeys
o implemented -keyPathForBindingKey:
o added EOQualifierVariableSubstitutionException;
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18226 72102866-910b-0410-8b05-ffd578937521
o renamed _useAliases to _flags.useAliases
o added _flags.hasOuterJoin
o call qualifier -sqlStringForSQLExpression:
instead of switching on qualifier class
in -sqlStringForArrayOfQualifiers:operation:
o asserts
o fill _contextStack
o added outer joins checks in -_flattenRelPath:entity:
(Used in Postgresql)
* EOAdaptors/Postgres95/Postgres95SQLExpression.m:
o subclass joinExpression to avoid building join
expression (it's now build in -tableListWithRootEntity
o sublass -tableListWithRootEntity to add joins in it.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18225 72102866-910b-0410-8b05-ffd578937521
o added _instanceDictionaryInitializer.
Permit to have a restricted dictionary initializer
(i.e. propertyDictionaryInitializer minus instance
object ivars).
o added NSObject
+_instanceDictionaryInitializerExcludedPropertyNames
o more information in log/exception in _parseRelationshipPath
o added -_instanceDictionaryInitializer
o added - _dictionaryForInstanceProperties
o added -_classForInstances
* EOAccess/EOModel.m:
o added asserts
o clean warnings
* EOAccess/EORelationship.m:
o asserts
o fix in -isReciprocalToRelationship:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18224 72102866-910b-0410-8b05-ffd578937521
o in -prepareForSaveWithCoordinator:editingContext:
Try harder to find primary key (for linked objects
with more than one attribute for PK)
* EOAccess/EODatabaseContextPriv.h
o added -_primaryKeyForObject:raiseException:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18223 72102866-910b-0410-8b05-ffd578937521
o introducing new number types:
('u' for long long / int8 and 'U' for unsigned long long)
* EOAdaptors/Postgres95/Postgres95Adaptor.m:
o added int8, bigint
* EOAdaptors/Postgres95/Postgres95Channel.m:
o handling bigint
o fixed types for int2 and int8
* EOAdaptors/Postgres95/Postgres95Values.m:
o added missing number types
o introducing new number types:
('u' for long long / int8 and 'U' for unsigned long long)
* EOControl/EONSAddOns.h/m
o added number accessors for NSString
o added NSObject
-performSelector:withObject:withObject:withObject:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18221 72102866-910b-0410-8b05-ffd578937521
macro.
* EOControl/EOQualifier.m (_isLike): New static function to
implement -isLike: and -isCaseInsensitiveLike:.
(-[NSString isLike:]): Implemented.
(-[NSString isCaseInsensitiveLike:]): Ditto.
(-[NSArray filteredArrayUsingQualifier:]): Adapted to use
experimental GDL2_BUFFER macro.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17969 72102866-910b-0410-8b05-ffd578937521
(-[EOFetchSpecification fetchSpecificationNamed:entityNamed:]}:
Implemented upon bug report by Philip Moetteli.
* EOAccess/EOAttributePriv.h (-[EOAttribute _valueClass]):
Declare new private method.
* EOAccess/EOAttribute.m: Remove declaration of unsused static
variable. Format documentation.
(-[EOAttribute serverTimeZone]): Remove duplicate
implementation which is always overriden by the category
and correct the category implementation.
(-[EOAttribute valueClassName]): Minor optimisation.
(-[EOAttribute externalType]): Ditto.
(-[EOAttribute valueType]): Ditto.
(-[EOAttribute newValueForBytes:length:]): Use -_valueClass
method to insure correct valueClass usage. Bug reported
by Philip Moetteli.
(-[EOAttribute newValueForBytes:length:encoding:]): Ditto.
(-[EOAttribute adaptorValueType]): Ditto.
(-[EOAttribute validateValue:]): Ditto. Use -width method to
insure correct usage of width with respect to prototypes.
(-[EOAttribute _valueClass]): New private method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17960 72102866-910b-0410-8b05-ffd578937521
(-[EOFetchSpecification
fetchSpecificationNamed:entityNamed:]}:
Implemented upon bug report by Philip Moetteli.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17958 72102866-910b-0410-8b05-ffd578937521
(+[EOClassDescription initialize]): Initialize model group
after callback tables are initilized.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17746 72102866-910b-0410-8b05-ffd578937521
Declared and documented EOKeyValueCoding categories currently
implemented by gnustep-base/Foundation in NSKeyValueCoding.
Removed FOUNDATION_HAS_KVC conditionals as
gnustep-base/Foundation
implement NSKeyValueCoding.
(-[NSObject takeStoredValuesFromDictionary:]): Added
declaration
reportedly missing in Apple's headers to compelte
EOKeyValueCoding
declarations.
Most implementations rewritten.
* EOControl/EONull.h/m: Define EONull to NSNull to allow
pointer
equality checks. Implement EONull as NSNull subclass that
returns
the NSNull instance. Remove old assertions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17534 72102866-910b-0410-8b05-ffd578937521
* config.h.in:
o added EMIT_TODO control
* EOAccess/EOAccessFault.m:
o commented debug logs
* EOAccess/EODatabaseContext.m:
o more information in asserts
o asserts
o fix in -relayPrimaryKey:object:entity: for
nil 1:1 relationship value
o add -forgetSnapshotForGlobalID call in -refaultObject:withGlobalID:editingContext:
o add -forgetSnapshotForGlobalID database call in -forgetSnapshotForGlobalID:
* EOAccess/EOEntity.m:
o logs
o fix in -awakeObject:fromInsertionInEditingContext: to avoid
setting already present values
o reverted code in -awakeObject:fromInsertionInEditingContext:
My (old) tests show that we create 1: object not on
mandatory property but on propagatesPrimaryKey one
if someone has an example of EOF creating an object
here without propagatesPrimaryKey, please send it to me.
* EOAccess/EOModelGroup.m:
o don't autorelease return model group in -globalModelGroup as it will crash. I haven't find why :-(
o logs
* EOAccess/EOSQLExpression.m:
o fix bug in -assembleSelectStatementWithAttributes🔒qualifier:
fetchOrder:selectString:columnList:tableList:
whereClause:joinClause:orderByClause:lockClause:
by adding () around where and join clause
o add detail in sqlStringForSelector:value: exception
* EOAdaptors/Postgres95/PostPostgres95Channel.m:
o add more information on exceptions
* EOAdaptors/Postgres95/Postgres95SQLExpression.m:
o fix escaping string in -formatValue:forAttribute:
o fix bug in -assembleSelectStatementWithAttributes🔒qualifier:
fetchOrder:selectString:columnList:tableList:
whereClause:joinClause:orderByClause:lockClause:
by adding () around where and join clause
* EOAdaptors/Postgres95/Postgres95Value.m:
o Change log in +newValueForDateType:length:attribute:
* EOControl/EOCheapArray.m
o removed some logs
* EOAccess/EOClassDescription.m:
o fix in -validateForUpdate
o logs
* EOControl/Debug.h:
o donditional define of NSEmitTODO()
* EOControl/EODetailDataSource.h/.m:
o added -setDetailKey:
* EOControl/EOEditingContext.m
o logs
* EOControl/EOFetchSpecification.m
o logs
* EOControl/EOKeyValueCoding.m:
o fix in computeSum, computeAverage
* EOControl/EOQualifier.m
o logs
* EOControl/EOSortOrdering.m
o use valueForKeyPath: instead of valueForKey: to allow sort on related objects
* EOControl/EOUndoManager.h
o protection of include
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17037 72102866-910b-0410-8b05-ffd578937521
([NSString -parsedFirstVersionSubstring]): New method.
* EOAdaptors/Postgres95/Postgres95Adaptor.h/m: Added include of
pg_config.h to access PG_VERSION. Added databaseVersion to list
of meaningful connectionDictionary keys.
(postgresClientVersion): New function.
* EOAdaptors/Postgres95/Postgres95Channel.h/m: Added instance
variable to hold the version of the database server.
(pgResultDictionary): New static function for debuging.
([Postgres95Channel -_readServerVersion]): New method to set Server
Version.
([Postgres95Channel -openChannel]): Call _readServerVersion method.
([Postgres95Channel -describeTableNames]): Adapt select statement
according to database version.
* Postgres95/Postgres95SQLExpression.m:
([Postgres95SQLExpression +dropTableStatementsForEntityGroup:]):
Adapt select statement according to database version supplied in
connectionDictionary of the entites model.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17013 72102866-910b-0410-8b05-ffd578937521
([Postgres95Channel -describeTableNames]): Removed incorrect code
left by copy and paste action. Reported by Markus Hitter.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@17003 72102866-910b-0410-8b05-ffd578937521
add private declaration of GSObjCGetMethod() until the replacement
is in place.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16758 72102866-910b-0410-8b05-ffd578937521
Encode missing aattributes as reported by Dirk Lattermann. Also
corrected encoding of parameterDirection.
([EOAttribute initWithPropertyList:owner:]): Corrected parsing of
parameterDirection to account for WO 4.5 compatibility and
previous encodings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16740 72102866-910b-0410-8b05-ffd578937521
-initWithEditingContext:entityName:fetchSpecificationName:]):
Create default fetch specification if we cannot obtain one from
the entity by name as reported by Dirk Lattermann.
* EOAccess/EOEntity.h/m
([EOEntity -addFetchSpecification:withName:]): Corrected name and
initialization as reported by Dirk Lattermann.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16729 72102866-910b-0410-8b05-ffd578937521
+globalIDWithEntityName:keys:keyCount:zone:]): Use AUTORELEASE
instead of autorelease.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16675 72102866-910b-0410-8b05-ffd578937521
NSUnknownKeyException for EOUnknownKeyException to allow use of
base/Foundation NSKeyValueCoding.
* EOControl/EOKeyValueCoding.m: Add EOTargetObjectUserInfoKey and
EOUnknownUserInfoKey.
([NSObject +flushAllKeyBindings]): Add method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@16602 72102866-910b-0410-8b05-ffd578937521