aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/MySQLConnection.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-11-01 16:21:14 +0100
committerShauren <shauren.trinity@gmail.com>2019-11-09 13:49:27 +0100
commit5f06c476f6b0c6542afdb5e64c1dcfbbcf39dc39 (patch)
tree7d66be6729bf4615001e72f3c7fc78faff70308d /src/server/database/Database/MySQLConnection.h
parented2c2941a74ec720c5e4db3cb33367235e6c3655 (diff)
Core/DBLayer: Support using mysql 8
(cherry picked from commit c3a9d56b56b665133707f587ecb1bd1c272f6911)
Diffstat (limited to 'src/server/database/Database/MySQLConnection.h')
-rw-r--r--src/server/database/Database/MySQLConnection.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/server/database/Database/MySQLConnection.h b/src/server/database/Database/MySQLConnection.h
index 2e0a7ad1a24..93ad48e83ce 100644
--- a/src/server/database/Database/MySQLConnection.h
+++ b/src/server/database/Database/MySQLConnection.h
@@ -66,19 +66,18 @@ class TC_DATABASE_API MySQLConnection
bool PrepareStatements();
- public:
bool Execute(char const* sql);
bool Execute(PreparedStatement* stmt);
ResultSet* Query(char const* sql);
PreparedResultSet* Query(PreparedStatement* stmt);
- bool _Query(char const* sql, MYSQL_RES** pResult, MYSQL_FIELD** pFields, uint64* pRowCount, uint32* pFieldCount);
- bool _Query(PreparedStatement* stmt, MYSQL_RES** pResult, uint64* pRowCount, uint32* pFieldCount);
+ bool _Query(char const* sql, MySQLResult** pResult, MySQLField** pFields, uint64* pRowCount, uint32* pFieldCount);
+ bool _Query(PreparedStatement* stmt, MySQLResult** pResult, uint64* pRowCount, uint32* pFieldCount);
void BeginTransaction();
void RollbackTransaction();
void CommitTransaction();
int ExecuteTransaction(SQLTransaction& transaction);
-
+ size_t EscapeString(char* to, const char* from, size_t length);
void Ping();
uint32 GetLastError();
@@ -91,13 +90,12 @@ class TC_DATABASE_API MySQLConnection
/// Called by parent databasepool. Will let other threads access this connection
void Unlock();
- MYSQL* GetHandle() { return m_Mysql; }
+ uint32 GetServerVersion() const;
MySQLPreparedStatement* GetPreparedStatement(uint32 index);
void PrepareStatement(uint32 index, std::string const& sql, ConnectionFlags flags);
virtual void DoPrepareStatements() = 0;
- protected:
typedef std::vector<std::unique_ptr<MySQLPreparedStatement>> PreparedStatementContainer;
PreparedStatementContainer m_stmts; //! PreparedStatements storage
@@ -107,10 +105,9 @@ class TC_DATABASE_API MySQLConnection
private:
bool _HandleMySQLErrno(uint32 errNo, uint8 attempts = 5);
- private:
ProducerConsumerQueue<SQLOperation*>* m_queue; //! Queue shared with other asynchronous connections.
std::unique_ptr<DatabaseWorker> m_worker; //! Core worker task.
- MYSQL* m_Mysql; //! MySQL Handle.
+ MySQLHandle* m_Mysql; //! MySQL Handle.
MySQLConnectionInfo& m_connectionInfo; //! Connection info (used for logging)
ConnectionFlags m_connectionFlags; //! Connection flags (for preparing relevant statements)
std::mutex m_Mutex;