Last two TinyORM and tom releases was about performance optimizations.
Practically no performance gain, especially in production builds,
the MSVC optimized builds are amazing.
Some perf. gain in debug builds, but only few milliseconds,
from 50-200ms, and so many perf. optimizations done. 😵💫
- bump also to TinyUtils v0.2.1 (forgotten version bump)
Changed the DatabaseConnection::insert()/statement() return value to
the Orm::SqlQuery, after this lot of code had to be updated
to the SqlQuery.
- updated also tests for BuildsQueries each/chunk/...
- primarily fixed instantiation with Default Attribute values with
the QDateTime
- revisited ctors and instance methods
- added instanceHeap methods, create model instance on the heap
- added instance method overloads with the connection override param.
- added tests for all these new and old methods and ctor-s
- used Model::instance() related methods all over the TinyORM to
correctly support Model instantiation with Default Attribute values
with the QDateTime
- added a new Model constructor with the DontFillDefaultAttributes tag
that instantiates a Model class without fill default attributes, to
bypass CRTP problem with the QDateTime; this ctor is called from
the instance()-related methods and the fill() method is called on
already instantiated Model
methods
- updated NOTES.txt where the raw Model ctor-s were called
Testing whether fixing the QDateTime's timezone works correctly
on Custom Pivot model.
- also tested the QtTimeZoneType::DontConvert, so when
the fixing/converting behavior is disabled
Call DatabaseConnection::prepareBindinds() also for the pretended
queries.
The DatabaseConnection::prepareBindinds() call in DC::run<>() called
early only once to avoid calling it two or more times for performance
reasons.
- fixed tests
- also added Helpers::set/convertTimeZone() static helper methods
that fix time zone according to the given connection name