Skip to content

Commit fbc18ff

Browse files
committed
Core/DBLayer: Add field metadata getters to query result classes
(cherry picked from commit d4998bd04a27237aba635401d5aff0d7aafa12e5)
1 parent 9237dee commit fbc18ff

2 files changed

Lines changed: 25 additions & 11 deletions

File tree

src/server/database/Database/QueryResult.cpp

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -486,12 +486,12 @@ m_metadataResult(result)
486486
return;
487487
}
488488

489-
m_rows.resize(uint32(m_rowCount) * m_fieldCount);
489+
m_rows.resize(std::size_t(m_rowCount) * m_fieldCount);
490490
while (_NextRow())
491491
{
492492
for (uint32 fIndex = 0; fIndex < m_fieldCount; ++fIndex)
493493
{
494-
m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetMetadata(&m_fieldMetadata[fIndex]);
494+
m_rows[std::size_t(m_rowPosition) * m_fieldCount + fIndex].SetMetadata(&m_fieldMetadata[fIndex]);
495495

496496
unsigned long buffer_length = m_rBind[fIndex].buffer_length;
497497
unsigned long fetched_length = *m_rBind[fIndex].length;
@@ -518,7 +518,7 @@ m_metadataResult(result)
518518
break;
519519
}
520520

521-
m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetValue(
521+
m_rows[std::size_t(m_rowPosition) * m_fieldCount + fIndex].SetValue(
522522
(char const*)buffer,
523523
fetched_length);
524524

@@ -527,7 +527,7 @@ m_metadataResult(result)
527527
}
528528
else
529529
{
530-
m_rows[uint32(m_rowPosition) * m_fieldCount + fIndex].SetValue(
530+
m_rows[std::size_t(m_rowPosition) * m_fieldCount + fIndex].SetValue(
531531
nullptr,
532532
*m_rBind[fIndex].length);
533533
}
@@ -552,12 +552,10 @@ PreparedResultSet::~PreparedResultSet()
552552

553553
bool ResultSet::NextRow()
554554
{
555-
MYSQL_ROW row;
556-
557555
if (!_result)
558556
return false;
559557

560-
row = mysql_fetch_row(_result);
558+
MYSQL_ROW row = mysql_fetch_row(_result);
561559
if (!row)
562560
{
563561
CleanUp();
@@ -616,21 +614,33 @@ void ResultSet::CleanUp()
616614

617615
Field const& ResultSet::operator[](std::size_t index) const
618616
{
619-
ASSERT(index < _fieldCount);
617+
ASSERT(index < std::size_t(_fieldCount));
620618
return _currentRow[index];
621619
}
622620

621+
QueryResultFieldMetadata const& ResultSet::GetFieldMetadata(std::size_t index) const
622+
{
623+
ASSERT(index < std::size_t(_fieldCount));
624+
return _fieldMetadata[index];
625+
}
626+
623627
Field* PreparedResultSet::Fetch() const
624628
{
625629
ASSERT(m_rowPosition < m_rowCount);
626-
return const_cast<Field*>(&m_rows[uint32(m_rowPosition) * m_fieldCount]);
630+
return const_cast<Field*>(&m_rows[std::size_t(m_rowPosition) * m_fieldCount]);
627631
}
628632

629633
Field const& PreparedResultSet::operator[](std::size_t index) const
630634
{
631635
ASSERT(m_rowPosition < m_rowCount);
632-
ASSERT(index < m_fieldCount);
633-
return m_rows[uint32(m_rowPosition) * m_fieldCount + index];
636+
ASSERT(index < std::size_t(m_fieldCount));
637+
return m_rows[std::size_t(m_rowPosition) * m_fieldCount + index];
638+
}
639+
640+
QueryResultFieldMetadata const& PreparedResultSet::GetFieldMetadata(std::size_t index) const
641+
{
642+
ASSERT(index < std::size_t(m_fieldCount));
643+
return m_fieldMetadata[index];
634644
}
635645

636646
void PreparedResultSet::CleanUp()

src/server/database/Database/QueryResult.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ class TC_DATABASE_API ResultSet
3535
Field* Fetch() const { return _currentRow; }
3636
Field const& operator[](std::size_t index) const;
3737

38+
QueryResultFieldMetadata const& GetFieldMetadata(std::size_t index) const;
39+
3840
protected:
3941
std::vector<QueryResultFieldMetadata> _fieldMetadata;
4042
uint64 _rowCount;
@@ -63,6 +65,8 @@ class TC_DATABASE_API PreparedResultSet
6365
Field* Fetch() const;
6466
Field const& operator[](std::size_t index) const;
6567

68+
QueryResultFieldMetadata const& GetFieldMetadata(std::size_t index) const;
69+
6670
protected:
6771
std::vector<QueryResultFieldMetadata> m_fieldMetadata;
6872
std::vector<Field> m_rows;

0 commit comments

Comments
 (0)