| 728 | } |
| 729 | |
| 730 | GArrowDatum * |
| 731 | garrow_datum_new_raw(arrow::Datum *arrow_datum) |
| 732 | { |
| 733 | switch (arrow_datum->kind()) { |
| 734 | case arrow::Datum::SCALAR: |
| 735 | { |
| 736 | auto arrow_scalar = arrow_datum->scalar(); |
| 737 | auto scalar = garrow_scalar_new_raw(&arrow_scalar); |
| 738 | auto scalar_datum = garrow_scalar_datum_new_raw(arrow_datum, scalar); |
| 739 | g_object_unref(scalar); |
| 740 | return GARROW_DATUM(scalar_datum); |
| 741 | } |
| 742 | case arrow::Datum::ARRAY: |
| 743 | { |
| 744 | auto arrow_array = arrow_datum->make_array(); |
| 745 | auto array = garrow_array_new_raw(&arrow_array); |
| 746 | auto array_datum = garrow_array_datum_new_raw(arrow_datum, array); |
| 747 | g_object_unref(array); |
| 748 | return GARROW_DATUM(array_datum); |
| 749 | } |
| 750 | case arrow::Datum::CHUNKED_ARRAY: |
| 751 | { |
| 752 | auto arrow_chunked_array = arrow_datum->chunked_array(); |
| 753 | auto chunked_array = garrow_chunked_array_new_raw(&arrow_chunked_array); |
| 754 | auto chunked_array_datum = |
| 755 | garrow_chunked_array_datum_new_raw(arrow_datum, chunked_array); |
| 756 | g_object_unref(chunked_array); |
| 757 | return GARROW_DATUM(chunked_array_datum); |
| 758 | } |
| 759 | case arrow::Datum::RECORD_BATCH: |
| 760 | { |
| 761 | auto arrow_record_batch = arrow_datum->record_batch(); |
| 762 | auto record_batch = garrow_record_batch_new_raw(&arrow_record_batch); |
| 763 | auto record_batch_datum = |
| 764 | garrow_record_batch_datum_new_raw(arrow_datum, record_batch); |
| 765 | g_object_unref(record_batch); |
| 766 | return GARROW_DATUM(record_batch_datum); |
| 767 | } |
| 768 | case arrow::Datum::TABLE: |
| 769 | { |
| 770 | auto arrow_table = arrow_datum->table(); |
| 771 | auto table = garrow_table_new_raw(&arrow_table); |
| 772 | auto table_datum = garrow_table_datum_new_raw(arrow_datum, table); |
| 773 | g_object_unref(table); |
| 774 | return GARROW_DATUM(table_datum); |
| 775 | } |
| 776 | default: |
| 777 | // TODO |
| 778 | return NULL; |
| 779 | } |
| 780 | } |
| 781 | |
| 782 | GArrowScalarDatum * |
| 783 | garrow_scalar_datum_new_raw(arrow::Datum *arrow_datum, GArrowScalar *value) |
no test coverage detected