#pragma once #include namespace duckdb { //! a saner size_t for loop indices etc typedef uint64_t idx_t; //! The type used for row identifiers typedef int64_t row_t; //! The type used for hashes typedef uint64_t hash_t; //! data pointers typedef uint8_t data_t; typedef data_t *data_ptr_t; typedef const data_t *const_data_ptr_t; //! Type used for the selection vector typedef uint32_t sel_t; //! Type used for transaction timestamps typedef idx_t transaction_t; //! Type used for column identifiers typedef idx_t column_t; //! Type used for storage (column) identifiers typedef idx_t storage_t; template data_ptr_t data_ptr_cast(SRC *src) { return reinterpret_cast(src); } template const_data_ptr_t const_data_ptr_cast(const SRC *src) { return reinterpret_cast(src); } template char *char_ptr_cast(SRC *src) { return reinterpret_cast(src); } template const char *const_char_ptr_cast(const SRC *src) { return reinterpret_cast(src); } template const unsigned char *const_uchar_ptr_cast(const SRC *src) { return reinterpret_cast(src); } template uintptr_t CastPointerToValue(SRC *src) { return uintptr_t(src); } } // namespace duckdb