Skip to content

4.0.0-beta.3

Pre-release
Pre-release
Compare
Choose a tag to compare
@QSmally QSmally released this 14 Sep 16:07
· 761 commits to v4 since this release

This 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 raw Serialiser property of the Schema class.
    • This allows you to do <Schema>.Serialise(...Properties: Any) and will always return a function.
  • 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 the Indexes 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.