2018-05-08  Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Fix: use cloned connection for query execution.

2018-05-04  Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.h
	* DBSoapCSV.m
	* DBSoap.h
	* DBSoap.m
	* DBSoap+Selecting.m
	Implement retrieve call.

2018-04-23  Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Use login.salesforce.com as endpoint.

2017-11-10  Riccardo Mottola <rm@gnu.org>

	* DBSoap+Creating.m
	Support nillable fields also in create.

2017-11-10  Riccardo Mottola <rm@gnu.org>

	* DBSoap+Creating.m
	Better exception handling.

2017-11-10  Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	* DBSoap+Creating.m
	* DBSoap+Deleting.m
	* DBSoap+Updating.m
	* DBSoap+Selecting.m
	Factor out CRUD method to separate files in categoris: better readibility.

2017-11-09 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.m
	Don't choke with an empty file.

2017-11-03 Riccardo Mottola <rm@gnu.org>

	* DBSFTypeWrappers.h
        * DBSFTypeWrappers.m
	* DBSoap.m
        Simplify initializers and uniform to initWithSFString when parsing results.

2017-11-02 Riccardo Mottola <rm@gnu.org>

	* DBSFTypeWrappers.h
        * DBSFTypeWrappers.m
	* DBSoap.m
        Date and DateTime types.

2017-11-01 Riccardo Mottola <rm@gnu.org>

	* DBSFTypeWrappers.h
        * DBSFTypeWrappers.m
	* DBSoap.m
	* DBHTMLWriter.m
        Handle Percentage.

2017-11-01 Riccardo Mottola <rm@gnu.org>

	* DBSFTypeWrappers.h
        * DBSFTypeWrappers.m
        Implement missing class methods.

	* DBSoap.m
        Initialize DBSFDataTypes better.

2017-10-31 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	* DBSoap.h
	Fix setting of enableFieldTypesDescribeForQuery and add accessor.

2017-10-30 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Extract object and result parsing into adjustFormatForField and extractQueryRecords

2017-10-30 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
	* DBHTMLWriter.m
	Don't choke on arrays of objects coming from nested queries.

2017-10-23 Riccardo Mottola <rm@gnu.org>

	* DBFileWriter.m
	Expand compound address fields.

2017-10-22 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (adjustFormatForField)
	First check for known datatypes, then expand Dictionaries.
	Addresses are complex datatypes and we keep them together.

2017-10-22 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	Accessors for object describe cache and setting.

	* DBSoapCSV.m
	Carry over object cache.

2017-10-22 Riccardo Mottola <rm@gnu.org>

	* DBFileWriter.m (formatComplexObject:)
	Skip Id field only if it is an empty string, not otherwise.

	* DBSObject.m (description)
	Output type too.

	* DBSoap.m (adjustFormatForField)
	Handle complex objects and distiguish between SF objects and special types like Addresses.

2017-10-18 Riccardo Mottola <rm@gnu.org>

	* DBFileWriter.m (formatComplexObject:)
	Cleanup and optimize nested Field Name concatenation.

2017-10-17 Riccardo Mottola <rm@gnu.org>

	* DBSFTypeWrappers.h
	* DBSFTypeWrappers.m
	* DBFileWriter.m
	* DBCSVWriter.m
	* DBHTMLWriter.m
	New FileType objects to store and wrap specific data types and be able
	to easily identify them after (NSNumber is not flexible for Bool and
	other types are needed). Adapt all Writers.

2017-10-12 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	retain/autorelease queryLocator so that it remains usable in the next
	cycle.
	Retain/Release the result record to make it survive the describe cycle.

2017-10-11 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_queryMore)
	Update to type enhacenemnts implemented in query

2017-10-11 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_query)
	Format Objects after describes

2017-10-10 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.m
	Output Numbers in General format.

2017-10-09 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Set logger on DBSoap

2017-10-05 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.m
	Some Excel specific HTML tags for format and linebreaks

2017-10-05 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.h
	* DBHTMLWriter.m
	Start differentiating between HTML and pseudo-XLS

2017-10-05 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.h
	* DBHTMLWriter.m
	* DBCSVWriter.h
	* DBCSVWriter.m
	Provide file type constants.

2017-10-03 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.m
	Handle some HTML escaping.

2017-10-03 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.m
	Handle also unordered writing in HTML output.

2017-10-03 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
	* DBFileWriter.m
	* DBHTMLWriter.m
	Initialize from superclass properly

2017-10-02 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.h
	* DBSoapCSV.m
	writeStart and writeEnd for each writer.

2017-10-02 Riccardo Mottola <rm@gnu.org>

	* DBFileWriter.h
	* DBFileWriter.m
	* DBCSVWriter.m
	* DBHTMLWriter.m
	put also formatComplexObject in superclass

2017-09-25 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
	* DBFileWriter.h
	* DBFileWriter.m
	* DBHTMLWriter.m
	put setFieldNames in superclass

2017-09-25 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBFileWriter.h
	* DBFileWriter.m
	* DBHTMLWriter.h
	* DBHTMLWriter.m
	put setStringEncoding in superclass

2017-09-25 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBFileWriter.h
	* DBFileWriter.m
	* DBHTMLWriter.h
	* DBHTMLWriter.m
	put writeDataSet in superclass, as well as encoding info.

2017-09-25 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBFileWriter.h
	* DBFileWriter.m
	Put writeOrder in super class

2017-09-25 Riccardo Mottola <rm@gnu.org>

	* DBHTMLWriter.m
	Better header/footer for HTML.

2017-09-21 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
        * DBSoap.m
        * DBSObject.m
        Make SOQL length defineable

2017-09-20 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBHTMLWriter.h
	* DBHTMLWriter.m
	Factor out common File Writer class

2017-04-26 Riccardo Mottola <rm@gnu.org>

	* DBSObject.m
	Minor change to NSUInteger

2016-11-23 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m (queryIdentify:)
	Release object array always, even if it was empty.

2016-11-23 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Simplify code by using addObjectsFromArray.

2016-11-22 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m (queryIdentify:)
	Adjust the identification loop to the query loop when it is not MAX, furthermore make result objects local to loop.

2016-10-18 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBHTMLWriter.h
	* DBHTMLWriter.m
	Provide common writeStart and writeEnd method to write out the begin and end of a block, clean and complete table header ad rows generation.

2016-10-18 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Use the property writeFieldsOrdered directly and do not try to reset it.

2016-06-27 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
        Use GSWS constants instead of hard-coded strings.

2016-06-24 Riccardo Mottola <rm@gnu.org>

	* DBSObject.m (_update)
	If value of a field is empty, consider it NULL and issue a fieldToNull

2016-06-13 Riccardo Mottola <rm@gnu.org>

	* DBSObject.h
        * DBSObject.m
        Implement storeValuesForFields to update several fields of a single object.

2016-06-13 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
        * DBSoap.m
        Bump API version to 37 and increase SOQL size limit 9000->18000 retaining some safety compared to 20000.

2016-05-27 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_login)
        Actually read passwordExpired!

2016-04-27 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Detect count() in query and complete progress.

2016-04-19 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	* DBSoap.h
	Getters for batch size.

	* DBSoapCSV.m
	Copy batch size when cloning DBSoap instance.

2016-04-11 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_create)
        Handle multiple errors more gracefully.

2016-04-04 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_update)
        Handle multiple errors more gracefully.

2016-03-16 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Fix correct result return type from query for insert and delete.

2016-02-16 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Look for ( when looking for aggregate operators only before from, ignoring thus IN(...)

2016-02-16 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Look for 'LIMIT ' including space to reduce risk of matching a field.

2015-11-23 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (fieldsByParsingQuery)
	Detect nested query and return unsupported exception.

2015-11-19 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Mark first batch run as done only when it actually did run (object conut > 0)

2015-10-20 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	DBCSVLineBreakHandling : filter line breaks in strings

2015-09-12 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (queryMore)
	Check if returned object is an array: do not use size to determine if a single object is returned, since size refers to the size of the whole query.

2015-09-12 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	in _query check size against declared size.

2015-09-07 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	use upBatchSize for delete batch size

2015-07-02 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.m
        More extensive rewrite to handle qualifiers and escaped qualifiers

2015-06-25 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.m
	Try to properly parse double-quoted quote characters

2015-05-15 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m (query)
	Use a loop-local autorelease pool and drain it.

2015-04-30 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m (queryIdentify)
	Use a loop-local autorelease pool and drain it.

2015-04-29 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m (queryIdentify)
	Do not batch in a mutable array emptied each time, but work on NSArray as subarray and release it at each cycle

2015-04-28 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Increment progress by te current batch size, do not set an absolute value.

2015-04-24 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	QueryIdentify: split query array in chunks, to limit maximum memory consumption. The batch size is fixed for now.

2015-04-23 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_delete)
	Stop if the associated progress monitor tells to.

	* DBSoapCSV.m
	Query: if interrupted, do not set progress to 100% and set the status to interrupted.


2015-04-15 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (_queryIdentify)
	Stop if the associated progress monitor tells so.

2015-04-15 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	Instantiate a private service class for create, query, indentify, etc. allowing parallel use.

2015-04-15 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (login:)
	Protect login with lock and busy count

2015-04-15 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Catch exceptions in all locked methods and unlock and decrease busy count.

2015-04-14 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	Service convenience method, session details accessors.

	* DBSoapCSV.m (query:)
	Instantiate a private GWSService

2015-04-14 Riccardo Mottola <rm@gnu.org>

	* DBProgressProtocol.h
	Methods for telling the associate process to stop.

	* DBSoapCSV.m (query:)
	Interrupt if the progress monitor says so.

2015-04-14 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	Provide isBusy to determine if any of the queries are running, protect all public APIs with a lock and call the equivalent internal unprotected ones.

2015-01-21 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (identifyObjectById) Use keyPrefix accessor, do not
	compare against nil objects.

2015-01-20 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (queryIdentify)
	Throw exception instead of just logging if batch size is specified win an incompatible query.

2014-10-10 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	Add class methods for returning login  URLs.

2014-10-10 Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	Add sending query size in query/queryMore

2014-09-09 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.h
	* DBCSVReader.m
	Fix header parsing further, remove redundant method.

2014-09-08 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.h
	* DBCSVReader.m
	Refactor so that header parsing is possible after changing qualifier and separator strings.

2014-08-29 Riccardo Mottola <rm@gnu.org>

	* DBCSVReader.h
	* DBCSVReader.m
	* DBCSVWriter.h
	* DBCSVWriter.m
	Add setters for Qualifiers and Separators.

2014-06-27 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (create, update)
	Catch time out  GWSCoderError and throw an exception.

2014-06-26 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Escape ' in values used by queryIdentify to identify.

2014-06-07 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Fix handling of complex fied in non-aggregate queries.

2014-06-07 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m (queryIdentify)
	Support also GROUP BY in options in queryIdentify.

2014-06-06 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Rewrote query parser to match generic aggregate functions, not just count.

2014-06-05 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
	Primitive NSCalendarDate object handling (only description for now)

2014-06-03 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
        Try to parse count() and count(id)

2014-05-19 Riccardo Mottola <rm@gnu.org>

	* DBSoap.m
	Parse alias fields in query.

2014-05-16 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
	Fix writing of ordered header, in case of sub-objects.

2014-05-13 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.h
	* DBCSVWriter.m
	* DBSoapCSV.m
	add writeOrdered accessor and use it.

2014-05-13 Riccardo Mottola <rm@gnu.org>

	* DBSoapCSV.m
	* DBCSVWriter.h
	* DBCSVWriter.m
	New core that analyzes fieldnames and is capable of extracting them in given order.

2014-05-12 Riccardo Mottola <rm@gnu.org>

	* DBCSVWriter.m
        Fix warning and perhaps wrong +bomLength

        * DBSoap.m
        Fix parsing of query which has only one field, make 10.4 compatible.

Riccardo Mottola <rm@gnu.org>

	* DBSoap.h
	* DBSoap.m
	* DBSoapCSV.m
	SOQL query parser to extract fields.
