Struct DictionaryValueConverter

template<typename TARGET_TYPE>
struct DictionaryValueConverter : public NumericValueConverter<int64_t, TARGET_TYPE>

Public Types

template<>
using ElementsDataColumnPtr = typename NumericValueConverter<int64_t, TARGET_TYPE>::ColumnDataPtr
template<>
using ElementsBufferColumnPtr = std::unique_ptr<std::vector<int32_t>>

Public Functions

DictionaryValueConverter(const Catalog_Namespace::Catalog &cat, int32_t sourceDictId, const ColumnDescriptor *targetDescriptor, size_t num_rows, TARGET_TYPE nullValue, int64_t nullCheckValue, bool doNullCheck, StringDictionaryProxy *literals_dict, StringDictionaryProxy *source_dict_proxy)
~DictionaryValueConverter()
ElementsBufferColumnPtr allocateColumnarBuffer(size_t num_rows)
void convertElementToColumnarFormat(size_t row, typename ElementsBufferColumnPtr::pointer columnBuffer, const ScalarTargetValue *scalarValue)
void convertToColumnarFormat(size_t row, const ScalarTargetValue *scalarValue)
void convertToColumnarFormat(size_t row, const TargetValue *value)
int32_t convertTransientStringIdToPermanentId(int32_t &transient_string_id)
NumericValueConverter<int64_t, TARGET_TYPE>::ColumnDataPtr processBuffer(ElementsBufferColumnPtr buffer)
void processArrayBuffer(std::unique_ptr<std::vector<std::pair<size_t, ElementsBufferColumnPtr>>> &array_buffer, std::unique_ptr<std::vector<ArrayDatum>>::pointer arrayData)
void finalizeDataBlocksForInsertData()
void addDataBlocksToInsertData(Fragmenter_Namespace::InsertData &insertData)

Public Members

ElementsBufferColumnPtr column_buffer_
const DictDescriptor *target_dict_desc_
const DictDescriptor *source_dict_desc_
StringDictionaryProxy *source_dict_proxy_
const int32_t buffer_null_sentinal_ = std::numeric_limits<int32_t>::min()
const StringDictionaryProxy *literals_dict_
std::unordered_map<int32_t, int32_t> literals_lookup_
bool use_literals_