CHANGELOG - Cortex ORM

1.7.5 (27.02.2022)
*	fix: compare feature did not cleanup correctly old initial array values
*	add BETWEEN to to exclude list

1.7.4 (15.02.2022)
*	fix SQL function usage with multiple parameters, #110
*	php 8.1 fixes

1.7.3 (15.03.2021)
*	fix: getAll property on non-existing fields

1.7.2 (18.02.2021)
*	new: orHas feature

1.7.1 (06.12.2020)
*	fix primary key replacement in filter condition for custom pkeys, #106
*	fix dry/valid after factoring new mapper from raw SQL, #109
*	add feature to target nested fields in compare method
*	use static return doc hint for improved IDE autocompletion

1.7.0 (21.07.2020)
*	new: field mask feature for cast
*	new method findByRawSQL() to use find with a raw sql query
*	new method compare() to call custom functions to prepare new / cleanup old values
*	new method initial() which returns the initial field data after change
*	new method cleared() which returns the initial value if the field was cleared
*	new: allow custom timestamp in touch method
*	added more m:m relation options for pivot tables, #103, #54
*	added support for custom relation key usage in m:m pivot tables
*	added error handling for broken m:m relations
*	added failsafe for empty filter #104
*	added failsafe for broken relations in belongs-to-many
*	added shortcut for relation ordering, #104
*	changed: skip reset for resolving related mappers
*	countRel() can propagate to nested relations now
*	refactored save / insert / update event handling, #95
*	fixed: getAll for raw results with empty items
*	fixed: lost filter pre-binds and count fields on load method, #99
*	fixed: preserve logical || operator in filter condition for supported engines, #98
*	fixed: respect nullable boolean fields when casting
*	fixed: removed strtolower for tablename in setdown, #93
*	Fixed an issue with missing pkeys on results that had a HAS-filter applied
*	Fixed a bug in has( "something IN ?", array)
*	fixed wrong adhoc var usage for has filter
*	fixed nested has filter error, #74
*	fixed relation type regex
*	adjusted schema cache key name
*	clean-up adhoc fields in count queries
*	add possibility to exclude id in field list (for mysql 5.7+ ONLY FULL GROUP BY fix)
*	Avoid duplicated has-many relations
*	Avoid quoting "HAVING" and other subquery terms in filter conditions, #78
*	handle empty arrays for deleting relations, #76

1.6.0 (03.02.2019)
*	new: defaults() method to get/set schema default values
*	new: resetFields() method, to only reset specific fields back to defaults
*	new: copyto_flat(), it's like copyto plus simplified exporting of relation IDs
*	changed: return success state on load() instead of $this for better interoperability
*	added optimized exists-strategy for has-filter, #58
*	fix jig NULL compare on existing fields
*	fix double pkey in group when multiple has filters are active
*	fix error on self-reflection without DB, #67
*	fix to avoid saving empty string date values
*	fix loading of empty m:1 relation, #62
*	optimize count behaviour & performance
*	don't clear virtual fields automatically, fixes #64
*	loosen class matching for relation configuration
*	realign custom setter call before DT_JSON encoding, #49
*	added DB uuid to schema cache key

1.5.1 (25.04.2018)
*	new: Cortex->getMapper to access the raw mapper
*	added has-many <> belongs-to-one inverse save handler, which was not implemented before
*	clear virtual fields on reset
*	improved mongodb support
*	apply auto-quoting to order statement, if not already quoted, #60
*	reset internal schema cache upon setup
*	fix Jig sorting issue on camelCase fields
*	fix unit test for php7.2
*	fix field matching for jig filter
*	fix changed field check for `_id` field
*	fix custom primary key with m:m relation usage, #56
*	fix issue with certain whitespace in filters for mongodb
*	fix countRel mm-table quotation
*	fix jig order issue on count

1.5.0 (30.06.2017)
*	F3 3.6.2 compatibility fixes
*	new: Collection->contains method
*	new: Collection->compare method
*	allow a CortexCollection to be used as bind parameter for `IN` operators
*	allow to optionally set a table $charset
*	improved field whitelisting, #23 #24
*	include virtual fields in whitelist, #48
*	reduced schema queries
*	optimized table and field escaping in queries #46
*	use aliased table on join conditions
*	use class ttl defaults if any
*	added getRaw shortcut method
*	added space after `IN` group in query condition
*	added isSelf configuration existence check
*	Bug fix: issue with NULL-value as named bind parameter
*	Bug fix: table prefix on NULL comparison
*	Bug fix: invalid bind value on multiple rel counts

1.4.3 (01.03.2017)
*	Bug fix: fix NULL bind value issue, #40
*	Bug fix: fix NULL comparison, #40

1.4.2 (27.02.2017)
*	new: self-referencing m:m relations
*	new: support for NULL filter bind values (like `array('foo != ?',null)`)
*	raised error level (from NOTICE to USER_ERROR)
*	extended datetime recognition in fluid mode
*	refactored m:m reference clearing, #34
*	align primary key setter
*	use mapper setter for countRel fields
*	escape fields names in where conditions, #21
*	Bug fix: empty belongs-to-many relation, #35
*	Bug fix: countRel on m:1 with custom foreign keys
*	Bug fix: touch() method data type detection
*	Bug fix: regex character set on group by
*	Bug fix: case-insensitive LIKE search in postgre

1.4.1 (29.01.2016)
*	new: mergeFilter method, #7
*	fix column rel type recognition, #13
*	fix id assignments on collections, #8
*	fix relation updates on changed collections, #8
*	fix NULL filter arguments for Jig, #6
*	keep case-insensitivity for Jig & Mongo, #5
*	add return to erase method, #3
*	Bug fix: missing relation fields when whitelist is active
*	Bug fix: sql expressions in queries
*	Bug fix: drop obsolete has-many fields on setup
*	Bug fix: table detection

1.4.0 (04.06.2015)
*	experimental: nested has() propagation
*	new: nested filter() propagation (dot-style chaining)
*	new: composer support
*	new: touch() method to update date, datetime and timestamp fields
*	new: rel() method returns a new mapper of the given relation type
*	new: fine-grained option array for casting relations
*	refactored collection storage, uses references now
*	use a normal INT, not BIGINT, as default for foreign keys
*	allow custom local field on mm table
*	Bug fix: erase collections with $filter
*	Bug fix: getting m:m collections from dry mappers
*	Bug fix: return dereferenced collections on loading a subset
*	Bug fix: consider fieldConfig for new fluid fields
*	add new many-many relation with short array push syntax
*	and some more small fixes

1.3.0 (19.01.2015)
*	improved count() behaviour
*	MS SQL Server fixes
*	refactor grouping and virtual fields with F3 v3.4
*	clean up pivot table on deleting items with mm-relations
*	added support for the cursor event handlers
*	compatibility fixes for F3 v3.3.1 (ArrayAccess by Reference)
*	Bug fix: type-casting to int and bool in MongoDB
*	Bug fix: consider has-filter on count() method, #40
*	Bug fix: has-filter used wrong column on sql many-to-many
*	added possibility to add own virtual fields
*	renamed countResults() to loaded() to follow fatfree #581 syntax
*	Feature: countRel() to add a counter for related records
*	advanced MongoId recognition/conversion in filter query
*	added orderBy method to collection, for subsequent sorting
*	unified sorting of NULL values in postgreSQL
*	compatibility fixed for MongoDB 2.6.x
*	and a lot of other small fixes and improvements

1.2.0 (02.04.2014)
*	added whitelisting of own and related fields
*	added $option parameter to filter() method
*	support for custom primary fields in SQL
*	Bug fix: belongs-to-one linkage with non-primary fields
*	Bug fix: don't split DB functions in where condition
*	Bug fix: postgreSQL GROUP BY clause
*	compatibility fixes for F3 v.3.2.2
*	added NOT LIKE operator to query parser

1.1.0 (09.01.2014)
*	Feature: has-filter
*	allow case sensitive table names
*	addRelFilter renamed to filter
*	enhanced copyfrom
*	compatibility fixes for F3 v3.2.1
*	move castAll into CortexCollection
*	add castField function
*	add inverse has-one relations
*	use case-sensitive table names
*	Bug fix: casting many-many relations
*	Bug fix: Jig filter bind value

1.0.0 (30.11.2013)
*	init commit
