Releases: StormBytePP/StormByte-Database
Release list
Version 1.1.0
[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=SYSTEMandWITH_MARIADB=SYSTEM. - Fixed ownership transfer when moving connected SQLite, PostgreSQL and MariaDB backends.
- Fixed transactions silently continuing after failed
BEGINorCOMMITcommands. - Fixed PostgreSQL connection handling for credentials containing quotes or backslashes.
- Fixed system connector discovery with
- 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
Rowindex access to throw the DatabaseOutOfBoundsexception.
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
[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),
nullptris SQL NULL,ExpectedRowson 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_MARIADBas 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.