in holo-client-c/src/worker.c [557:594]
int get_convert_mode_for_unnest(Batch* batch, int colIdx) {
int convertMode = 0;
switch (batch->schema->columns[colIdx].type)
{
case HOLO_TYPE_TIMESTAMP:
case HOLO_TYPE_TIMESTAMPTZ:
if (batch->valueFormats[colIdx] == 1) {
convertMode = 1;
} else {
convertMode = 3;
}
break;
case HOLO_TYPE_INT4:
case HOLO_TYPE_INT8:
case HOLO_TYPE_INT2:
case HOLO_TYPE_BOOL:
case HOLO_TYPE_FLOAT4:
case HOLO_TYPE_FLOAT8:
convertMode = 1;
break;
case HOLO_TYPE_CHAR:
case HOLO_TYPE_VARCHAR:
case HOLO_TYPE_TEXT:
case HOLO_TYPE_JSON:
case HOLO_TYPE_JSONB:
convertMode = 3;
break;
case HOLO_TYPE_BYTEA:
case HOLO_TYPE_NUMERIC:
case HOLO_TYPE_DATE:
convertMode = 3;
break;
default:
LOG_ERROR("Generate convertMode failed for unnest, type is %d.", batch->schema->columns[colIdx].type);
break;
}
return convertMode;
}