diff --git a/Userland/Libraries/LibSQL/Tuple.cpp b/Userland/Libraries/LibSQL/Tuple.cpp index 8e64b9478c..a25a057cbb 100644 --- a/Userland/Libraries/LibSQL/Tuple.cpp +++ b/Userland/Libraries/LibSQL/Tuple.cpp @@ -132,6 +132,15 @@ Tuple& Tuple::operator+=(Value const& value) return *this; } +void Tuple::extend(Tuple const& other) +{ + VERIFY((descriptor()->size() == size()) || (descriptor()->size() >= size() + other.size())); + if (descriptor()->size() == size()) { + descriptor()->extend(other.descriptor()); + } + m_data.extend(other.m_data); +} + bool Tuple::is_compatible(Tuple const& other) const { if ((m_descriptor->size() == 0) && (other.m_descriptor->size() == 0)) { diff --git a/Userland/Libraries/LibSQL/Tuple.h b/Userland/Libraries/LibSQL/Tuple.h index 9ae1530b2e..8bab7a5023 100644 --- a/Userland/Libraries/LibSQL/Tuple.h +++ b/Userland/Libraries/LibSQL/Tuple.h @@ -55,6 +55,7 @@ public: Value& operator[](String const& name); void append(Value const&); Tuple& operator+=(Value const&); + void extend(Tuple const&); [[nodiscard]] bool is_compatible(Tuple const&) const; [[nodiscard]] u32 pointer() const { return m_pointer; }