4.0.0-beta.3
Pre-releaseThis release drafts the third beta version of QDB4.
This version implements a few minor bug fixes to multiple parts of the database, applied more internal consistency and added a few new features. The database side of QDB4 is fully functional and usable, and we'll be heading close to the main release of this package.
- There's now a
Serialise
getter that you can call, instead of using the rawSerialiser
property of the Schema class.- This allows you to do
<Schema>.Serialise(...Properties: Any)
and will always return a function.
- This allows you to do
- The
Find()
method has been improved, as now it does not pre-cache all the data which it'll iterate through. - As memory improvement, the
Each()
method now uses theIndexes
property and does not pre-cache the data. Select()
now also accepts keys (or paths), to - for example - select an object of entries of a row.- Internal changes related to the path caster.
Lastly, I have implemented the base version of Pools.
- Instantiate a Pool with
new QDB.Pool(PathURL: Pathlike, PoolOptions: PoolOptions?) -> Pool
. - As per the PathURL, you can direct it to a directory of databases or one file. Both will initialise a Connection to all the tables in the file(s).
- Select a Connection using
<Pool>.$(Base: DatabaseIdentifier)
with the argument being either the file name or table of the Connection.
Backups of entire Pools are not possible quite yet. Individual backups are disabled in favour of mass-backups. Either externally backup the database(s), or wait until the next release when I have implemented them.
Finally, in future releases, I'm going to implement Pool multithreading for database efficiency. The Pool selection method already takes into account whether it's a ThreadProvider
or a standard Connection
, but it would always return a Connection (or an undefined value) in this beta release.