sogo/SOPE/GDLContentStore/ChangeLog

588 lines
20 KiB
Plaintext

2012-01-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSSpecialQueries.m (-createSessionsFolderWithName:): declare
c_id as primary key to make sure it's indexed.
2011-12-08 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m (-releaseChannel:): perform the debug logging BEFORE
the channel is released, to avoid a crash.
* GCSFolderManager.m (-releaseChannel:): perform the debug logging BEFORE
the channel is released, to avoid a crash.
2011-11-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m
(_generateUpdateStatementForRow:adaptor:fields:tableName:whereColumn:isEqualTo:andColumn:isEqualTo:):
same as below.
(_attributeForColumn:): new helper method that automatically
constructs an EOAttribute for a colum name passed as parameter.
(_formatRowValue:withAdaptor:andAttribute:): now invokes
-[EOAdaptor formatValue:forAttribute:] to avoid a call from the caller.
2011-10-21 Francis Lachapelle <flachapelle@inverse.ca>
* GCSFolder.m
(_generateUpdateStatementForRow:adaptor:fields:tableName:whereColumn:isEqualTo:andColumn:isEqualTo:):
this method now uses the formatValue:forAttribute: method from the
database adaptor to benefit from the proper formatting depending
on the column type.
(-initWithPath:primaryKey:folderTypeName:folderType:location:quickLocation:aclLocation:folderManager:):
load the content field names from the GCSFolderType object.
* GCSFolderType.m (-initWithPropertyList:): the content table
structure is now part of the plist (.ocs) file.
2011-10-03 Francis Lachapelle <flachapelle@inverse.ca>
* GCSFolder.m (-updateQuickFields:whereColumn:isEqualTo:): new
method to update some fields of the quick table matching the
single specified condition.
(-_quickTableEntity): the method was not returning all the fields.
2011-05-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m (-lastModificationDate): new method that returns the
last modification date based on the higher value of the
"c_lastmodified" column.
2010-12-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* EOQualifier+GCS.m (_appendNotQualifier:toString:): new method
for handling the EONotQualifier.
2010-12-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* EOQualifier+GCS.m (_appendKeyValueQualifier:toString:): fixed
evaluation to handle the "EOQualifierOperatorNotEqual" operator.
Fixed code to consider "nil" values as another case for "NULL".
2010-08-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSSpecialQueries.m (-createEMailAlarmsFolderWithName:): new sql
helper methods
(emailAlarmsAttributeTypes:): new helper method that returns the
types pertaining to the adaptor.
* GCSFolderManager.m (-alarmsFolder): new helper method.
* GCSAlarmsFolder.[hm]: new class module for handling alarm
references.
* GCSFolder.m (-_channelManager): made method private.
(-folderManager): removed method.
2010-06-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m
(_reallyCreateFolderWithName:andFolderType:andType:andChannel:atPath:):
we now make use of the new classes described below.
* GCSSpecialQueries.m (-[EOAdaptorChannel specialQueries]): new
category method that returns the proper GCSSpecialQueries instance
based on the channel class.
* GCSSpecialQueries.[hm]: new module providing the
"GCSSpecialQueries" cluster class that implements
SQL queries that are specific to each SQL implementation.
2010-04-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* EOAdaptorChannel+GCS.m (-tableExistsWithName:): cleaned method
up.
2009-11-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSChannelManager.m (-databaseKeyForURL): removed obsolete
method, replaced with the new one below.
(-acquireOpenChannelForURL:): we keep the last failure timestamp
into account and prevent further attempts before 5 seconds.
* NSURL+GCS.m (-gcsURLId): new method that returns a unique
identifier for database connections.
2009-11-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSChannelManager.m (-releaseChannel:immediately:): new method
that enables the immediate release of channels, for handling
connection errors.
2009-10-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m (_tableRequirementForFields:andOrQualifier:): fixed
a double release of "allFields" occuring in the rare case where
the amount of fields would be 0.
2009-09-10 Cyril Robert <crobert@inverse.ca>
* GCSFolder.m (deleteAllContent): New method to delete everything in the
folder (use with caution).
2009-08-14 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m (-deleteAclWithSpecification:): enable the deletion
of the complete list if a nil specification is passed as
parameter, previously we would ignore such as call.
2009-06-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m: replaced invocations of NSLog with
debugWithFormat:. This avoids polluting the log with information
that really pertains to debugging.
2009-06-02 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder -recordsCountByExcludingDeleted:]): new
method that returns the amount of records in a GCS folder.
2009-03-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderType.m ([GCSFolderType +folderTypeWithName:_typeName]):
autorelease the returned GCSFolderType.
([GCSFolderType -initWithFolderTypeName:_path]): removed useless
method.
2009-03-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSChannelManager.m ([GCSChannelManager
-acquireOpenChannelForURL:_url]): if the channel is not open,
assign nil to it so that the calling method doesn't consider it as
valid. This fixes a crash because the channel, already
autoreleased, would be later released again by the caller (through
releaseChannel:).
([GCSChannelManager -releaseChannel:_channel]): ensure the channel
is closed if we need to release it.
2009-03-17 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder
-writeContent:_contenttoName:_namebaseVersion:_baseVersion]):
reorganized method to centralize error management, enabling us to
remove the "CHECKERROR" macro. The method was also not closing
channels whenever an error occured.
2008-09-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder
-fetchFields:fieldsfetchSpecification:specignoreDeleted:ignoreDeleted]):
made method public.
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
-createFolderOfType:_typewithName:_nameatPath:_path]): wrap the
creation queries in a transaction, to ensure the creation of
tables is atomic.
* GCSFolder.m ([GCSFolder -recordOfEntryWithName:name])
([GCSFolder -writeContent:_contenttoName:_namebaseVersion:_baseVersion])
([GCSFolder -fetchFields:fieldsfetchSpecification:spec]): don't
use the "as" keyword when specifying multiple tables, so that
Oracle doesn't choke on the queries.
* EOAdaptorChannel+GCS.m ([EOAdaptorChannel
-dropTables:tableNames]): new method that drops a list of tables.
2008-06-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager
-createFolderOfType:withName:atPath:]): escape the display names.
2008-06-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m: modified the fetchFields* methods so that any field
from the quick and/or content table will generate an appropriate
query. If both tables are required, a joined query is generated.
* GCSFolderType.m ([GCSFolderType -fields]): new method that
returns the fields used by the quick tables.
2008-01-21 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager
-baseTableNameWithUID:_uid]): the id was too long for the quick
tables, we reduce the length of the increment string to 3
characters instead of 8.
2008-01-16 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
generate an id that is guaranteed to be unique in more than
1000000 cases (from unit testing).
* GCSFolder.m: fetch the content, version and dates at the same
time per record, to avoid multiple queries.
2007-12-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder -creationDateOfEntryWithName:]): new
method that returns the creation date of the specified entry.
([GCSFolder -lastModificationOfEntryWithName:]): same as above for
the last modification time.
2007-11-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder -versionOfContentWithName:], [GCSFolder
-fetchContentWithName:]): ignore records marked as deleted.
([GCSFolder -deletionOfContentWithName:]): don't.
2007-11-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder -writeContent:toName:baseVersion:]): the
test for the improvement below was wrong, we want to test the
value of the column ('0' or null) instead of whether it is null or
filled.
2007-10-29 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolder.m ([GCSFolder -writeContent:toName:baseVersion:]):
purge the record if previously marked as deleted.
2007-10-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
prefix the table names with "sogo" to avoid problems with
digits-only identifiers.
2007-10-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
cast the time interval to an unsigned int.
2007-08-29 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* EOQualifier+GCS.m: rewrote comparison code, now uses UPPER instead of
the PostgreSQL specific ILIKE. Fixes OGo bug #1906 (v4.7.49)
2007-07-20 Helge Hess <helge.hess@opengroupware.org>
* GCSFolderManager.m: added 'some' rollback after an error (v4.7.48)
2007-07-20 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolderManager.m: fixed a bug in last check, DROP TABLE is allowed
to fail in the given context (bug #1883) (v4.7.47)
2007-07-11 Helge Hess <helge.hess@opengroupware.org>
* GCSFolderManager.m: added some error checking, plenty of open ends
pending (eg folder creation not wrapped in a transaction) (v4.7.46)
2007-06-29 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolderManager.m: fixed folder creation to populate empty path
fields with NULLs (OGo bug #1883) (v4.7.45)
2007-04-25 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolder.[hm]: added methods to delete ACL records (OGo bug #1866)
(v4.7.44)
2007-04-22 Helge Hess <helge.hess@opengroupware.org>
* GCSChannelManager.m: improved error log (v4.7.43)
2007-04-17 Helge Hess <helge.hess@opengroupware.org>
* fixed a few GNUstep compilation warnings (v4.7.42)
2007-03-21 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolder.[hm], GCSFolderManager.[hm]: added ability to create and
delete GCS folders programmatically (OGo bug #1850) (v4.7.41)
2007-02-12 Helge Hess <helge.hess@opengroupware.org>
* GCSFolder.m: fixed a gnustep-base compilation warning (v4.7.40)
2007-02-09 Helge Hess <helge.hess@opengroupware.org>
* use -errorWithFormat:, fixed a few logging crashes (incomplete format
strings) (v4.5.39)
2007-02-08 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolder.m: added a gnustep-base hack to properly format bool
numbers for SQL. Base returns YES or NO in -stringValue while
libFoundation/NGExt returns 0 or 1 (v4.5.39)
2007-01-15 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* GCSFolder.[hm], GCSFolderManager.m: added support for content table
ACLs (v4.5.38)
2006-08-31 Wolfgang Sourdeau <WSourdeau@Inverse.CA>
* EOQualifier+GCS.m: added support for OR qualifiers and for case
insensitive-like qualifiers on PostgreSQL (v4.5.37)
2006-07-04 Helge Hess <helge.hess@opengroupware.org>
* use %p for pointer formats, fixed gcc 4.1 warnings (v4.5.36)
2005-08-16 Helge Hess <helge.hess@opengroupware.org>
* GNUmakefile, GNUmakefile.preamble: added OSX framework compilation
(v4.5.35)
2005-07-23 Sebastian Reitenbach <reitenbach@rapideye.de>
* GNUmakefile.preamble: added OpenBSD linking flags (v4.5.34)
2005-07-13 Helge Hess <helge.hess@opengroupware.org>
* GCSFolder.h: added -versionOfContentWithName: method to header file
(v4.5.33)
* GCSFolder.m: return a proper exception if the extractor was unable to
create a quickrow for a given content object (v4.5.32)
* GCSFolder.m: added -writeContent:toName:baseVersion: to support
consistent update operations (eg using etags), properly increase
content object version on update operations (v4.5.31)
* GCSFolderManager.m, GCSFolder.m: changed not to use EOF
attribute-name 'beautification', eg 'c_name' will stay 'c_name'
instead of being transformed into 'cName' (v4.5.30)
2005-07-11 Helge Hess <helge.hess@opengroupware.org>
* GCSFolderManager.m: added automatic discovery of folder types by
scanning for .ocs files (v4.5.29)
2005-04-25 Helge Hess <helge.hess@opengroupware.org>
* fixed gcc 4.0 warnings (v4.5.28)
2005-03-21 Helge Hess <helge.hess@skyrix.com>
* GNUmakefile: added FHS support (v4.5.27)
2005-03-20 Helge Hess <helge.hess@opengroupware.org>
* moved OGoContentStore as GDLContentStore into sope-gdl1, removed
dependencies on NGiCal and removed some SOGo specific things
(v4.5.26)
2005-03-07 Helge Hess <helge.hess@opengroupware.org>
* appointment.ocs: added missing 'partstates' field (v0.9.25)
2005-03-04 Helge Hess <helge.hess@opengroupware.org>
* v0.9.24
* ocs_gensql.m: started tool to create SQL CREATE from ocs model file
* OCSFolderType.m: small change to the factory API, changed to use
NGResourceLocator
2005-03-03 Helge Hess <helge.hess@opengroupware.org>
* OCSFolderManager.m: fixed a bug in subfolder listing (v0.9.23)
2005-03-01 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.22
* appointment.ocs: added 'cycleenddate' and 'cycleinfo' to address
previous performance issues
* OCSiCalFieldExtractor.m: set 'cycleenddate' and 'cycleinfo' for
recurrent events. Reverted setting of 'enddate' to the previous
behaviour since 'cycleenddate' is dedicated to the task now
* iCalRepeatableEntityObject+OCS.[hm]: new category used by the
OCSiCalFieldExtractor to extract cycleInfo in an appropriate format
* sql/generate-folderinfo-sql-for-users.sh,
sql/foldertablecreate-helge-privcal.psql,
sql/foldertablecreate-helge-privcal.sqlite,
sql/generate-folderinfo-sql-for-users-sqlite.sh: adjusted to new
schema
2005-03-01 Helge Hess <helge.hess@opengroupware.org>
* OCSFolder.m: added support for storing content and quick info in
the same table (untested) (v0.9.21)
2005-02-21 Helge Hess <helge.hess@opengroupware.org>
* v0.9.20
* OCSFolderManager.m: removed quoting of SQL table and column names
(breaks with SQLite and isn't necessary for PG), fixed URL pooling
for SQLite
* NSURL+OCS.m: use tablename for last path component
2005-02-12 Marcus Mueller <znek@mulle-kybernetik.com>
* OCSiCalFieldExtractor.m: uses new iCalEvent API to determine correct
'enddate' for recurrent events. This is an optimization which can
save quite some time for complex rules. (v0.9.19)
2004-12-17 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.18
* OCSiCalFieldExtractor.m: extract participants' state
* sql/generate-folderinfo-sql-for-user.sh, sql/appointment-create.psql,
sql/foldertablecreate-helge-privcal.psql: updated with new schema.
2004-12-15 Marcus Mueller <znek@mulle-kybernetik.com>
* OCSiCalFieldExtractor.m: partmails + cn's are concatenated by '\n'
now - this directly eliminates any ambiguities. Also, instead of
using 'email' for partmails and orgmail, the extractor uses the
'rfc822Email' value which strips away any preceeding 'mailto:'
prefix, compacting the representation and speeding up comparison.
Also, "iscycle", "isallday" and "isopaque" are now provided by
NGiCal and thus always extracted (v0.9.17)
2004-12-13 Marcus Mueller <znek@mulle-kybernetik.com>
* sql/generate-folderinfo-sql-for-user.sh: fixed critical error in
Contacts folder_info, type was 'Appointment' but MUST be 'Contact'
(v0.9.16)
2004-12-10 Marcus Mueller <znek@mulle-kybernetik.com>
* sql: updated all generation scripts to the latest version (v0.9.15)
2004-12-09 Marcus Mueller <znek@mulle-kybernetik.com>
* v0.9.14
* appointment.ocs: added "ispublic", "isopaque", "status" and
"orgmail".
* OCSiCalFieldExtractor.m: updated to extract new fields (see above)
* sql: updated generate-folderinfo-sql-for-users.sh
2004-10-19 Helge Hess <helge.hess@opengroupware.org>
* OCSFolder.m: added new method -fetchContentsOfAllFiles method which
fetches the contents of all files stored in the folder (required for
iCal generation, such bulk fetches should be avoided if possible!)
(v0.9.13)
2004-10-15 Marcus Mueller <znek@mulle-kybernetik.com>
* OCSStringFormatter.[hm]: minor cleanup (v0.9.12)
* v0.9.11
* OCSStringFormatter.[hm]: new class to format strings according to
Database requirements (escaping etc.).
* OCSFolder.m: uses new OCSStringFormatter now.
2004-09-25 Helge Hess <helge.hess@opengroupware.org>
* fixed compilation on MacOSX (v0.9.10)
2004-09-10 Helge Hess <helge.hess@skyrix.com>
* v0.9.9
* fixed some gcc warnings
* GNUmakefile.preamble: added pathes to compile against an FHS SOPE
* OCSiCalFieldExtractor.m: fixed type of sequence iCalEvent field
2004-09-01 Marcus Mueller <znek@mulle-kybernetik.com>
* GNUmakefile: install type models into $(GNUSTEP_USER_ROOT) (v0.9.8)
2004-08-27 Helge Hess <helge.hess@skyrix.com>
* v0.9.7
* OCSChannelManager.m: use PostgreSQL as adaptor, not PostgreSQL72
* OCSFolder.m: added support for doing folder sorting in SQL
2004-08-26 Helge Hess <helge.hess@skyrix.com>
* v0.9.6
* added OCSContactFieldExtractor
* sql: added sample contact folder create scripts
* OCSFolderType.m: read extractor class name from type model
* OCSFolderManager.m: added contact type model per default (v0.9.5)
2004-08-25 Helge Hess <helge.hess@skyrix.com>
* GNUmakefile: automatically install OCSTypeModels (v0.9.4)
2004-08-15 Helge Hess <helge.hess@skyrix.com>
* OCSFolder.m: added content deletion (v0.9.3)
* OCSFolder.m: added sanity check to store method (v0.9.2)
2004-08-14 Helge Hess <helge.hess@skyrix.com>
* v0.9.1
* OCSiCalFieldExtractor.m: extract new quick fields: location,
partmails, sequence (does not yet handle allday and cycle due to
NGiCal restrictions)
* appointment.ocs, sql/foldertablecreate-helge-privcal.psql,
sql/testapt-agenor-helge-privcal.psql, sql/appointment-create.psql:
added quick fields: isallday, iscycle, location, partmails, sequence
* started ocs_recreatequick tool intended for recreating a quick table
based on the content table of a folder
2004-07-20 Helge Hess <helge.hess@opengroupware.org>
* OCSChannelManager.m: fixed a bug in the channel GC which resulted
in an exception during the GC NSTimer
2004-07-16 Helge Hess <helge.hess@skyrix.com>
* improved error handling in various files
2004-07-02 Helge Hess <helge.hess@opengroupware.org>
* OCSChannelManager.m: added garbage collector for channel pools
2004-06-30 Helge Hess <helge.hess@opengroupware.org>
* OCSChannelManager.m: implemented pooling
* OCSFolder.m: added quick fetches
* GNUmakefile.preamble: fix link path
* GNUmakefile (libOGoContentStore_HEADER_FILES_INSTALL_DIR): install
headers in OGoContentStore
* GNUmakefile.preamble (ocs_ls_TOOL_LIBS): added static dependencies
for OSX
2004-06-30 Marcus Mueller <znek@mulle-kybernetik.com>
* ocs_cat.m, ocs_ls.m, ocs_mkdir.m: fixed for gnustep compile.
2004-06-29 Helge Hess <helge.hess@opengroupware.org>
* created ChangeLog