aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-09-19 00:33:19 +0200
committerShauren <shauren.trinity@gmail.com>2022-09-19 00:33:19 +0200
commit301572212fc54d4972b0e2989f57299f6351f495 (patch)
tree36ae5b11be8b95fb1613babbc0d358847063d5c7 /src/server/database/Database
parentf67cd38312014b13624dcb5fe1d117dac4892b7d (diff)
Core/Misc: Changed string formatting functions to accept std::string_view as format argument instead being templated on it to slightly improve compile times and reduce executable size
Diffstat (limited to 'src/server/database/Database')
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.h24
-rw-r--r--src/server/database/Database/Transaction.h6
2 files changed, 15 insertions, 15 deletions
diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h
index 66d5a55dffa..bf735f244e1 100644
--- a/src/server/database/Database/DatabaseWorkerPool.h
+++ b/src/server/database/Database/DatabaseWorkerPool.h
@@ -72,13 +72,13 @@ class DatabaseWorkerPool
//! Enqueues a one-way SQL operation in string format -with variable args- that will be executed asynchronously.
//! This method should only be used for queries that are only executed once, e.g during startup.
- template<typename Format, typename... Args>
- void PExecute(Format&& sql, Args&&... args)
+ template<typename... Args>
+ void PExecute(std::string_view sql, Args&&... args)
{
if (Trinity::IsFormatEmptyOrNull(sql))
return;
- Execute(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ Execute(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str());
}
//! Enqueues a one-way SQL operation in prepared statement format that will be executed asynchronously.
@@ -95,13 +95,13 @@ class DatabaseWorkerPool
//! Directly executes a one-way SQL operation in string format -with variable args-, that will block the calling thread until finished.
//! This method should only be used for queries that are only executed once, e.g during startup.
- template<typename Format, typename... Args>
- void DirectPExecute(Format&& sql, Args&&... args)
+ template<typename... Args>
+ void DirectPExecute(std::string_view sql, Args&&... args)
{
if (Trinity::IsFormatEmptyOrNull(sql))
return;
- DirectExecute(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ DirectExecute(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str());
}
//! Directly executes a one-way SQL operation in prepared statement format, that will block the calling thread until finished.
@@ -118,24 +118,24 @@ class DatabaseWorkerPool
//! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished.
//! Returns reference counted auto pointer, no need for manual memory management in upper level code.
- template<typename Format, typename... Args>
- QueryResult PQuery(Format&& sql, T* conn, Args&&... args)
+ template<typename... Args>
+ QueryResult PQuery(std::string_view sql, T* conn, Args&&... args)
{
if (Trinity::IsFormatEmptyOrNull(sql))
return QueryResult(nullptr);
- return Query(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str(), conn);
+ return Query(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str(), conn);
}
//! Directly executes an SQL query in string format -with variable args- that will block the calling thread until finished.
//! Returns reference counted auto pointer, no need for manual memory management in upper level code.
- template<typename Format, typename... Args>
- QueryResult PQuery(Format&& sql, Args&&... args)
+ template<typename... Args>
+ QueryResult PQuery(std::string_view sql, Args&&... args)
{
if (Trinity::IsFormatEmptyOrNull(sql))
return QueryResult(nullptr);
- return Query(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ return Query(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str());
}
//! Directly executes an SQL query in prepared format that will block the calling thread until finished.
diff --git a/src/server/database/Database/Transaction.h b/src/server/database/Database/Transaction.h
index 205b06908fd..9e2a426019f 100644
--- a/src/server/database/Database/Transaction.h
+++ b/src/server/database/Database/Transaction.h
@@ -40,10 +40,10 @@ class TC_DATABASE_API TransactionBase
virtual ~TransactionBase() { Cleanup(); }
void Append(char const* sql);
- template<typename Format, typename... Args>
- void PAppend(Format&& sql, Args&&... args)
+ template<typename... Args>
+ void PAppend(std::string_view sql, Args&&... args)
{
- Append(Trinity::StringFormat(std::forward<Format>(sql), std::forward<Args>(args)...).c_str());
+ Append(Trinity::StringFormat(sql, std::forward<Args>(args)...).c_str());
}
std::size_t GetSize() const { return m_queries.size(); }