Skip to content

Releases: StormBytePP/StormByte-Database

Version 1.1.0

Choose a tag to compare

@StormBytePP StormBytePP released this 13 Sep 19:53

[Summary]

StormByte Database is the C++26 SQL layer of the StormByte suite.

One API covers SQLite, PostgreSQL and MariaDB.
Backends are base classes: you derive your schema, prepare statements and hook connect there.
This repository is not Base, Buffer, Config, Crypto, Logger, Multimedia, Network or System.
It requires StormByte Base 1.1.0 and StormByte-Logger 1.1.0 or newer.

If you landed here from a release link and have not read the tree:

  • What this module is, how to build it, and short examples: README.md
  • License: GNU Lesser General Public License version 3 or later, LICENSE

Fixed

  • Backend connection and transaction handling
    • Fixed system connector discovery with WITH_SQLITE=SYSTEM, WITH_POSTGRES=SYSTEM and WITH_MARIADB=SYSTEM.
    • Fixed ownership transfer when moving connected SQLite, PostgreSQL and MariaDB backends.
    • Fixed transactions silently continuing after failed BEGIN or COMMIT commands.
    • Fixed PostgreSQL connection handling for credentials containing quotes or backslashes.
  • Prepared statements and result handling
    • Fixed PostgreSQL and MariaDB numeric result parsing so invalid values return query errors instead of silent zero values.
    • Fixed PostgreSQL prepared statements with multiple text or numeric parameters.
    • Fixed SQLite prepared statements truncating unsigned integer values.
    • Fixed MariaDB prepared statements interpreting unsigned integers as negative values.
  • Fixed Row index access to throw the Database OutOfBounds exception.

Changed

  • Updated the minimum requirements to StormByte Base 1.1.0 and StormByte-Logger 1.1.0, including component-aware Database exceptions.
  • Adopted StormByte Base type concepts for Database value conversions.

Version 1.0.0

Choose a tag to compare

@StormBytePP StormBytePP released this 04 Sep 23:06

[Summary]

StormByte Database is the C++26 SQL layer of the StormByte suite.

One API covers SQLite, PostgreSQL and MariaDB.
Backends are base classes: you derive your schema, prepare statements and hook connect there.
This repository is not Base, Buffer, Config, Crypto, Logger, Multimedia, Network or System.

If you landed here from a release link and have not read the tree:

  • What this module is, how to build it, and short examples: README.md
  • License: GNU Lesser General Public License version 3 or later, LICENSE

Initial public release of StormByte Database.

Added

  • Database abstract connection: Connect / Disconnect, Query / SilentQuery, named prepared statements, isolation and RAII transactions
  • Inheritance-oriented backends — SQLite3, MariaDB and Postgres with protected constructors
  • Value — type-erased SQL cell (NULL, integers, double, text, blob, bool) with safe Get<T>()
  • NamedValue, Row, Rows — column lookup by name or index
  • PreparedSTMT — positional binds (0-based), nullptr is SQL NULL, ExpectedRows on execute
  • Transaction — rolls back if neither Commit nor Rollback ran
  • SslMode for MariaDB and PostgreSQL (SQLite ignores it)
  • IsolationLevel mapped per backend
  • Optional backends: WITH_SQLITE / WITH_POSTGRES / WITH_MARIADB as OFF, SYSTEM or BUNDLED
  • Exception types: ConnectionError, WrongValueType, ColumnNotFound, OutOfBounds, QueryException, UnknownSTMT, ExecuteError

Notes

  • First stable release of StormByte Database.
  • Not thread-safe: one connection per thread.
  • Needs a C++26 compiler and CMake ≥ 3.28.