diff options
author | Ovahlord <dreadkiller@gmx.de> | 2025-01-23 12:21:13 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-03-13 12:41:00 +0100 |
commit | 6de1e51a2f59deb020d7839dade76b9909cb34e4 (patch) | |
tree | 48ca63ff20be7c2c309c5bddf1f3a984a6b6a222 /src/server/database/Database/QueryResult.h | |
parent | 64e5f9cce90a751cb3608178982aeb7a632bd197 (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.h | 5 |
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; |