28 inline int pg_to_int(PGresult *res,
int row,
int col)
30 return atoi(PQgetvalue(res, row, col));
35 return (u32) atoi(PQgetvalue(res, row, col));
40 return (
float) atof(PQgetvalue(res, row, col));
54 return std::string(PQgetvalue(res, row, col), PQgetlength(res, row, col));
57 inline PGresult *
execPrepared(
const char *stmtName,
const int paramsNumber,
59 const int *paramsLengths = NULL,
const int *paramsFormats = NULL,
60 bool clear =
true,
bool nobinary =
true)
63 (
const char*
const*) params, paramsLengths, paramsFormats,
64 nobinary ? 1 : 0), clear);
67 inline PGresult *
execPrepared(
const char *stmtName,
const int paramsNumber,
68 const char **params,
bool clear =
true,
bool nobinary =
true)
71 (
const void **)params, NULL, NULL, clear, nobinary);
101#define PARENT_CLASS_FUNCS \
102 void beginSave() { Database_PostgreSQL::beginSave(); } \
103 void endSave() { Database_PostgreSQL::endSave(); } \
104 void verifyDatabase() { Database_PostgreSQL::verifyDatabase(); }
175 void getModKeys(
const std::string &modname, std::vector<std::string> *storage);
176 bool getModEntry(
const std::string &modname,
const std::string &key, std::string *value);
177 bool hasModEntry(
const std::string &modname,
const std::string &key);
179 const std::string &key, std::string_view value);
191#undef PARENT_CLASS_FUNCS
Definition database-postgresql.h:146
virtual void writePrivileges(const AuthEntry &authEntry)
virtual bool saveAuth(const AuthEntry &authEntry)
virtual bool getAuth(const std::string &name, AuthEntry &res)
virtual void createDatabase()
virtual ~AuthDatabasePostgreSQL()=default
virtual bool deleteAuth(const std::string &name)
virtual bool createAuth(AuthEntry &authEntry)
virtual void listNames(std::vector< std::string > &res)
virtual void initStatements()
AuthDatabasePostgreSQL(const std::string &connect_string)
Definition database-postgresql.h:13
v3s16 pg_to_v3s16(PGresult *res, int row, int col)
Definition database-postgresql.h:43
void beginSave() override
std::string pg_to_string(PGresult *res, int row, int col)
Definition database-postgresql.h:52
bool initialized() const override
std::string m_connect_string
Definition database-postgresql.h:95
u32 pg_to_uint(PGresult *res, int row, int col)
Definition database-postgresql.h:33
int m_pgversion
Definition database-postgresql.h:97
int getPGVersion() const
Definition database-postgresql.h:85
float pg_to_float(PGresult *res, int row, int col)
Definition database-postgresql.h:38
void createTableIfNotExists(const std::string &table_name, const std::string &definition)
PGconn * m_conn
Definition database-postgresql.h:96
PGresult * execPrepared(const char *stmtName, const int paramsNumber, const char **params, bool clear=true, bool nobinary=true)
Definition database-postgresql.h:67
void verifyDatabase() override
Open and initialize the database if needed.
void prepareStatement(const std::string &name, const std::string &sql)
Definition database-postgresql.h:80
PGresult * checkResults(PGresult *res, bool clear=true)
Database_PostgreSQL(const std::string &connect_string, const char *type)
int pg_to_int(PGresult *res, int row, int col)
Definition database-postgresql.h:28
PGresult * execPrepared(const char *stmtName, const int paramsNumber, const void **params, const int *paramsLengths=NULL, const int *paramsFormats=NULL, bool clear=true, bool nobinary=true)
Definition database-postgresql.h:57
virtual void initStatements()=0
virtual void createDatabase()=0
Definition database-postgresql.h:107
void listAllLoadableBlocks(std::vector< v3s16 > &dst)
virtual void createDatabase()
bool saveBlock(const v3s16 &pos, std::string_view data)
MapDatabasePostgreSQL(const std::string &connect_string)
virtual void initStatements()
bool deleteBlock(const v3s16 &pos)
virtual ~MapDatabasePostgreSQL()=default
void loadBlock(const v3s16 &pos, std::string *block)
Definition database-postgresql.h:169
bool setModEntry(const std::string &modname, const std::string &key, std::string_view value)
bool removeModEntry(const std::string &modname, const std::string &key)
bool hasModEntry(const std::string &modname, const std::string &key)
bool removeModEntries(const std::string &modname)
ModStorageDatabasePostgreSQL(const std::string &connect_string)
~ModStorageDatabasePostgreSQL()=default
void getModKeys(const std::string &modname, std::vector< std::string > *storage)
bool getModEntry(const std::string &modname, const std::string &key, std::string *value)
virtual void initStatements()
void getModEntries(const std::string &modname, StringMap *storage)
virtual void createDatabase()
void listMods(std::vector< std::string > *res)
Definition database-postgresql.h:125
virtual void initStatements()
void savePlayer(RemotePlayer *player)
void listPlayers(std::vector< std::string > &res)
PlayerDatabasePostgreSQL(const std::string &connect_string)
bool playerDataExists(const std::string &playername)
virtual void createDatabase()
bool loadPlayer(RemotePlayer *player, PlayerSAO *sao)
bool removePlayer(const std::string &name)
virtual ~PlayerDatabasePostgreSQL()=default
Definition player_sao.h:58
Definition remoteplayer.h:27
#define PARENT_CLASS_FUNCS
Definition database-postgresql.h:101
core::vector3d< s16 > v3s16
Definition irr_v3d.h:13
std::unordered_map< std::string, std::string > StringMap
Definition string.h:66