/* * Copyright (c) 2021, Jan de Visser * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace SQL { class Key : public Tuple { public: Key(); explicit Key(TupleDescriptor const&); explicit Key(RefPtr); Key(TupleDescriptor const&, ByteBuffer&, size_t& offset); Key(RefPtr, ByteBuffer&, size_t& offset); Key(Key const&) = default; RefPtr index() const { return m_index; } [[nodiscard]] virtual size_t data_length() const override { return Tuple::data_length() + sizeof(u32); } private: RefPtr m_index; }; }