From d997e821dd7bd26258e6ffb8c40509c58db054fd Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 13 Mar 2025 20:48:27 +0100 Subject: Core/Database: Improve assertion message on duplicate column aliases in queries --- src/server/database/Database/QueryResult.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/server/database/Database/QueryResult.cpp') diff --git a/src/server/database/Database/QueryResult.cpp b/src/server/database/Database/QueryResult.cpp index 6edfff80b9c..0c35ac6688d 100644 --- a/src/server/database/Database/QueryResult.cpp +++ b/src/server/database/Database/QueryResult.cpp @@ -405,8 +405,9 @@ _fields(fields) for (uint32 i = 0; i < _fieldCount; i++) { InitializeDatabaseFieldMetadata(&_fieldMetadata[i], &_fields[i], i, false); - bool success = _fieldIndexByAlias.try_emplace({ Trinity::DB::FieldLookupByAliasKey::RuntimeInit, _fieldMetadata[i].Alias }, i).second; - ASSERT(success); + auto [itr, success] = _fieldIndexByAlias.try_emplace({ Trinity::DB::FieldLookupByAliasKey::RuntimeInit, _fieldMetadata[i].Alias }, i); + ASSERT(success, "Duplicate column alias %s in query for column %s.%s, conflicts with column %s.%s", + _fieldMetadata[i].Alias, _fieldMetadata[i].TableName, _fieldMetadata[i].Name, _fieldMetadata[itr->second].TableName, _fieldMetadata[itr->second].Name); _currentRow[i].SetMetadata(&_fieldMetadata[i]); } } @@ -463,8 +464,9 @@ m_metadataResult(result) rowSize += size; InitializeDatabaseFieldMetadata(&m_fieldMetadata[i], &field[i], i, true); - bool success = m_fieldIndexByAlias.try_emplace({ Trinity::DB::FieldLookupByAliasKey::RuntimeInit, m_fieldMetadata[i].Alias }, i).second; - ASSERT(success); + auto [itr, success] = m_fieldIndexByAlias.try_emplace({ Trinity::DB::FieldLookupByAliasKey::RuntimeInit, m_fieldMetadata[i].Alias }, i); + ASSERT(success, "Duplicate column alias %s in query for column %s.%s, conflicts with column %s.%s", + m_fieldMetadata[i].Alias, m_fieldMetadata[i].TableName, m_fieldMetadata[i].Name, m_fieldMetadata[itr->second].TableName, m_fieldMetadata[itr->second].Name); m_rBind[i].buffer_type = field[i].type; m_rBind[i].buffer_length = size; -- cgit v1.2.3