aboutsummaryrefslogtreecommitdiff
path: root/src/database.cc
Commit message (Collapse)AuthorAge
* sketch out new query queue/worker for async queriesfusion322025-10-06
|
* fix problem with finishing or excluding from auctionsfusion322025-10-04
|
* add check to make sure the database is open with write permissionsfusion322025-08-30
| | | | | | Using `sqlite_open` with `SQLITE_OPEN_READWRITE` doesn't guarantee the database will be open with read-write permissions. - See: https://www.sqlite.org/c3ref/open.html
* fix player index loading + small service config changefusion322025-08-18
|
* wrapping up for a public releasefusion322025-08-15
|
* store world hostname and resolve at runtimefusion322025-08-08
|
* fix problem with concurrent writes + implement website queriesfusion322025-08-01
| | | | | | There was a problem with concurrent writes not being visible until after restart, due to how cached prepared statements work with SQLite (see comment in `database.cc`).
* improvements and bug fixesfusion322025-07-22
| | | | | | | | | - Add support for SIGINT and SIGTERM signals for graceful termination. - Properly check premium account status with `EVICT_FREE_ACCOUNTS` query. - Properly check if character is already online before failing game login with "too many characters" error. - Overall cleanup.
* impl LOGIN_ACCOUNT to be used with the login serverfusion322025-07-17
|
* finish game queriesfusion322025-07-15
|
* impl banishment, deaths, and buddies queriesfusion322025-07-14
|
* impl BANISH_ACCOUNTfusion322025-07-13
|
* reorganize query functions and impl SET_NOTATIONfusion322025-07-13
|
* house related queriesfusion322025-07-12
|
* add `TransactionScope`fusion322025-07-11
|
* implement more queries + overall improvementsfusion322025-07-11
|
* bare bones query managerfusion322025-07-10
This is a bare bones query manager that will respond just enough queries to get the server running. The overall structure of the tables should be almost set but we'd need to handle all queries to get the server running properly. It uses the SQLite3 3.50.2 amalgamation for a database backend so we can completely avoid having to spin up yet another service for a separate database system, effectively turning the query manager into the database itself. This also means that other services such as the login server and website must go through it to access the data but it shouldn't be too difficult to replicate the querying mechanism from the server. This design choice was made with a single game server in mind. The networking protocol is NOT encrypted at all and won't accept remote connections. For a fully multi-world distributed infrastructure, a distributed database system like PostgreSQL and MySQL should be considered.