]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/arrow/c_glib/arrow-glib/composite-data-type.h
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / c_glib / arrow-glib / composite-data-type.h
diff --git a/ceph/src/arrow/c_glib/arrow-glib/composite-data-type.h b/ceph/src/arrow/c_glib/arrow-glib/composite-data-type.h
new file mode 100644 (file)
index 0000000..443347b
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#pragma once
+
+#include <arrow-glib/basic-array.h>
+#include <arrow-glib/basic-data-type.h>
+#include <arrow-glib/field.h>
+#include <arrow-glib/version.h>
+
+G_BEGIN_DECLS
+
+#define GARROW_TYPE_LIST_DATA_TYPE (garrow_list_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowListDataType,
+                         garrow_list_data_type,
+                         GARROW,
+                         LIST_DATA_TYPE,
+                         GArrowDataType)
+struct _GArrowListDataTypeClass
+{
+  GArrowDataTypeClass parent_class;
+};
+
+GArrowListDataType *garrow_list_data_type_new      (GArrowField *field);
+#ifndef GARROW_DISABLE_DEPRECATED
+GARROW_DEPRECATED_IN_0_13_FOR(garrow_list_data_type_get_field)
+GArrowField *garrow_list_data_type_get_value_field (GArrowListDataType *list_data_type);
+#endif
+GARROW_AVAILABLE_IN_0_13
+GArrowField *garrow_list_data_type_get_field (GArrowListDataType *list_data_type);
+
+
+#define GARROW_TYPE_LARGE_LIST_DATA_TYPE (garrow_large_list_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowLargeListDataType,
+                         garrow_large_list_data_type,
+                         GARROW,
+                         LARGE_LIST_DATA_TYPE,
+                         GArrowDataType)
+struct _GArrowLargeListDataTypeClass
+{
+  GArrowDataTypeClass parent_class;
+};
+
+GARROW_AVAILABLE_IN_0_16
+GArrowLargeListDataType *garrow_large_list_data_type_new(GArrowField *field);
+GARROW_AVAILABLE_IN_0_16
+GArrowField *garrow_large_list_data_type_get_field(GArrowLargeListDataType *large_list_data_type);
+
+
+#define GARROW_TYPE_STRUCT_DATA_TYPE (garrow_struct_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowStructDataType,
+                         garrow_struct_data_type,
+                         GARROW,
+                         STRUCT_DATA_TYPE,
+                         GArrowDataType)
+struct _GArrowStructDataTypeClass
+{
+  GArrowDataTypeClass parent_class;
+};
+
+GArrowStructDataType *garrow_struct_data_type_new      (GList *fields);
+gint
+garrow_struct_data_type_get_n_fields(GArrowStructDataType *struct_data_type);
+GList *
+garrow_struct_data_type_get_fields(GArrowStructDataType *struct_data_type);
+GArrowField *
+garrow_struct_data_type_get_field(GArrowStructDataType *struct_data_type,
+                                  gint i);
+GArrowField *
+garrow_struct_data_type_get_field_by_name(GArrowStructDataType *struct_data_type,
+                                          const gchar *name);
+gint
+garrow_struct_data_type_get_field_index(GArrowStructDataType *struct_data_type,
+                                        const gchar *name);
+
+
+#define GARROW_TYPE_MAP_DATA_TYPE (garrow_map_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowMapDataType,
+                         garrow_map_data_type,
+                         GARROW,
+                         MAP_DATA_TYPE,
+                         GArrowListDataType)
+struct _GArrowMapDataTypeClass
+{
+  GArrowListDataTypeClass parent_class;
+};
+
+GARROW_AVAILABLE_IN_0_17
+GArrowMapDataType *
+garrow_map_data_type_new(GArrowDataType *key_type,
+                         GArrowDataType *item_type);
+GARROW_AVAILABLE_IN_0_17
+GArrowDataType *
+garrow_map_data_type_get_key_type(GArrowMapDataType *map_data_type);
+GARROW_AVAILABLE_IN_0_17
+GArrowDataType *
+garrow_map_data_type_get_item_type(GArrowMapDataType *map_data_type);
+
+
+#define GARROW_TYPE_UNION_DATA_TYPE (garrow_union_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowUnionDataType,
+                         garrow_union_data_type,
+                         GARROW,
+                         UNION_DATA_TYPE,
+                         GArrowDataType)
+struct _GArrowUnionDataTypeClass
+{
+  GArrowDataTypeClass parent_class;
+};
+
+gint
+garrow_union_data_type_get_n_fields(GArrowUnionDataType *union_data_type);
+GList *
+garrow_union_data_type_get_fields(GArrowUnionDataType *union_data_type);
+GArrowField *
+garrow_union_data_type_get_field(GArrowUnionDataType *union_data_type,
+                                 gint i);
+gint8 *
+garrow_union_data_type_get_type_codes(GArrowUnionDataType *union_data_type,
+                                      gsize *n_type_codes);
+
+
+#define GARROW_TYPE_SPARSE_UNION_DATA_TYPE      \
+  (garrow_sparse_union_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowSparseUnionDataType,
+                         garrow_sparse_union_data_type,
+                         GARROW,
+                         SPARSE_UNION_DATA_TYPE,
+                         GArrowUnionDataType)
+struct _GArrowSparseUnionDataTypeClass
+{
+  GArrowUnionDataTypeClass parent_class;
+};
+
+GArrowSparseUnionDataType *
+garrow_sparse_union_data_type_new(GList *fields,
+                                  gint8 *type_codes,
+                                  gsize n_type_codes);
+
+
+#define GARROW_TYPE_DENSE_UNION_DATA_TYPE       \
+  (garrow_dense_union_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowDenseUnionDataType,
+                         garrow_dense_union_data_type,
+                         GARROW,
+                         DENSE_UNION_DATA_TYPE,
+                         GArrowUnionDataType)
+struct _GArrowDenseUnionDataTypeClass
+{
+  GArrowUnionDataTypeClass parent_class;
+};
+
+GArrowDenseUnionDataType *
+garrow_dense_union_data_type_new(GList *fields,
+                                 gint8 *type_codes,
+                                 gsize n_type_codes);
+
+
+#define GARROW_TYPE_DICTIONARY_DATA_TYPE (garrow_dictionary_data_type_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowDictionaryDataType,
+                         garrow_dictionary_data_type,
+                         GARROW,
+                         DICTIONARY_DATA_TYPE,
+                         GArrowFixedWidthDataType)
+struct _GArrowDictionaryDataTypeClass
+{
+  GArrowFixedWidthDataTypeClass parent_class;
+};
+
+GArrowDictionaryDataType *
+garrow_dictionary_data_type_new(GArrowDataType *index_data_type,
+                                GArrowDataType *value_data_type,
+                                gboolean ordered);
+GArrowDataType *
+garrow_dictionary_data_type_get_index_data_type(GArrowDictionaryDataType *dictionary_data_type);
+GARROW_AVAILABLE_IN_0_14
+GArrowDataType *
+garrow_dictionary_data_type_get_value_data_type(GArrowDictionaryDataType *dictionary_data_type);
+gboolean
+garrow_dictionary_data_type_is_ordered(GArrowDictionaryDataType *dictionary_data_type);
+
+
+G_END_DECLS