aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/QueryResult.h
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2025-01-23 12:21:13 +0100
committerShauren <shauren.trinity@gmail.com>2025-03-13 12:41:00 +0100
commit6de1e51a2f59deb020d7839dade76b9909cb34e4 (patch)
tree48ca63ff20be7c2c309c5bddf1f3a984a6b6a222 /src/server/database/Database/QueryResult.h
parent64e5f9cce90a751cb3608178982aeb7a632bd197 (diff)
Core/Database: Implement accessing query result fields by name
Diffstat (limited to 'src/server/database/Database/QueryResult.h')
-rw-r--r--src/server/database/Database/QueryResult.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/database/Database/QueryResult.h b/src/server/database/Database/QueryResult.h
index a6d964f846d..381fd9d368c 100644
--- a/src/server/database/Database/QueryResult.h
+++ b/src/server/database/Database/QueryResult.h
@@ -20,6 +20,7 @@
#include "Define.h"
#include "DatabaseEnvFwd.h"
+#include <unordered_map>
#include <vector>
class TC_DATABASE_API ResultSet
@@ -34,11 +35,13 @@ class TC_DATABASE_API ResultSet
Field* Fetch() const { return _currentRow; }
Field const& operator[](std::size_t index) const;
+ Field const& operator[](std::string_view const& alias) const;
QueryResultFieldMetadata const& GetFieldMetadata(std::size_t index) const;
protected:
std::vector<QueryResultFieldMetadata> _fieldMetadata;
+ std::unordered_map<std::string_view, std::size_t> _fieldIndexByAlias;
uint64 _rowCount;
Field* _currentRow;
uint32 _fieldCount;
@@ -64,11 +67,13 @@ class TC_DATABASE_API PreparedResultSet
Field* Fetch() const;
Field const& operator[](std::size_t index) const;
+ Field const& operator[](std::string_view const& alias) const;
QueryResultFieldMetadata const& GetFieldMetadata(std::size_t index) const;
protected:
std::vector<QueryResultFieldMetadata> m_fieldMetadata;
+ std::unordered_map<std::string_view, std::size_t> m_fieldIndexByAlias;
std::vector<Field> m_rows;
uint64 m_rowCount;
uint64 m_rowPosition;