Merge branch '2.2' into 2.3
This commit is contained in:
@ -232,10 +232,11 @@ char* json_new_schema_from_table(const STableMapEvent& map, const STableCreateEv
|
||||
json_array_append_new(array,
|
||||
json_pack_ex(&err,
|
||||
0,
|
||||
"{s:s, s:s, s:s, s:i}",
|
||||
"{s:s, s:[s, s], s:s, s:i}",
|
||||
"name",
|
||||
create->columns[i].name.c_str(),
|
||||
"type",
|
||||
"null",
|
||||
column_type_to_avro_type(map->column_types[i]),
|
||||
"real_type",
|
||||
create->columns[i].type.c_str(),
|
||||
@ -449,23 +450,16 @@ void AvroConverter::column(int i, uint8_t* value, int len)
|
||||
void AvroConverter::column(int i)
|
||||
{
|
||||
set_active(i);
|
||||
|
||||
if (column_is_blob(m_map->column_types[i]))
|
||||
{
|
||||
uint8_t nullvalue = 0;
|
||||
avro_value_set_bytes(&m_field, &nullvalue, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
avro_value_set_null(&m_field);
|
||||
}
|
||||
avro_value_set_branch(&m_union_value, 0, &m_field);
|
||||
avro_value_set_null(&m_field);
|
||||
}
|
||||
|
||||
void AvroConverter::set_active(int i)
|
||||
{
|
||||
MXB_AT_DEBUG(int rc = ) avro_value_get_by_name(&m_record,
|
||||
m_create->columns[i].name.c_str(),
|
||||
&m_field,
|
||||
&m_union_value,
|
||||
NULL);
|
||||
mxb_assert(rc == 0);
|
||||
avro_value_set_branch(&m_union_value, 1, &m_field);
|
||||
}
|
||||
|
@ -65,6 +65,7 @@ private:
|
||||
avro_value_iface_t* m_writer_iface;
|
||||
avro_file_writer_t* m_avro_file;
|
||||
avro_value_t m_record;
|
||||
avro_value_t m_union_value;
|
||||
avro_value_t m_field;
|
||||
std::string m_avrodir;
|
||||
AvroTables m_open_tables;
|
||||
|
@ -264,7 +264,10 @@ uint8_t* process_row_event_data(STableMapEvent map,
|
||||
{
|
||||
if (bit_is_set(columns_present, ncolumns, i))
|
||||
{
|
||||
avro_value_t field;
|
||||
avro_value_set_branch(&union_value, 1, &field);
|
||||
npresent++;
|
||||
|
||||
if (bit_is_set(null_bitmap, ncolumns, i))
|
||||
{
|
||||
sprintf(trace[i], "[%ld] NULL", i);
|
||||
|
Reference in New Issue
Block a user