blob: 63ba6e0eae507bc928c666ba6bf15741fc3e43fc [file] [log] [blame]
/*
* 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/datum.h>
G_BEGIN_DECLS
#define GARROW_TYPE_EXECUTE_CONTEXT (garrow_execute_context_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowExecuteContext,
garrow_execute_context,
GARROW,
EXECUTE_CONTEXT,
GObject)
struct _GArrowExecuteContextClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_1_0
GArrowExecuteContext *garrow_execute_context_new(void);
#define GARROW_TYPE_FUNCTION_OPTIONS (garrow_function_options_get_type())
G_DECLARE_INTERFACE(GArrowFunctionOptions,
garrow_function_options,
GARROW,
FUNCTION_OPTIONS,
GObject)
#define GARROW_TYPE_FUNCTION (garrow_function_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowFunction,
garrow_function,
GARROW,
FUNCTION,
GObject)
struct _GArrowFunctionClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_1_0
GArrowFunction *garrow_function_find(const gchar *name);
GARROW_AVAILABLE_IN_1_0
GArrowDatum *garrow_function_execute(GArrowFunction *function,
GList *args,
GArrowFunctionOptions *options,
GArrowExecuteContext *context,
GError **error);
#define GARROW_TYPE_CAST_OPTIONS (garrow_cast_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowCastOptions,
garrow_cast_options,
GARROW,
CAST_OPTIONS,
GObject)
struct _GArrowCastOptionsClass
{
GObjectClass parent_class;
};
GArrowCastOptions *garrow_cast_options_new(void);
/**
* GArrowCountMode:
* @GARROW_COUNT_ALL: Count all non-null values.
* @GARROW_COUNT_NULL: Count all null values.
*
* They are corresponding to `arrow::compute::CountOptions::Mode` values.
*/
typedef enum {
GARROW_COUNT_ALL,
GARROW_COUNT_NULL,
} GArrowCountMode;
#define GARROW_TYPE_COUNT_OPTIONS (garrow_count_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowCountOptions,
garrow_count_options,
GARROW,
COUNT_OPTIONS,
GObject)
struct _GArrowCountOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_0_13
GArrowCountOptions *
garrow_count_options_new(void);
/**
* GArrowFilterNullSelectionBehavior:
* @GARROW_FILTER_NULL_SELECTION_DROP:
* Filtered value will be removed in the output.
* @GARROW_FILTER_NULL_SELECTION_EMIT_NULL:
* Filtered value will be null in the output.
*
* They are corresponding to
* `arrow::compute::FilterOptions::NullSelectionBehavior` values.
*/
typedef enum {
GARROW_FILTER_NULL_SELECTION_DROP,
GARROW_FILTER_NULL_SELECTION_EMIT_NULL,
} GArrowFilterNullSelectionBehavior;
#define GARROW_TYPE_FILTER_OPTIONS (garrow_filter_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowFilterOptions,
garrow_filter_options,
GARROW,
FILTER_OPTIONS,
GObject)
struct _GArrowFilterOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_0_17
GArrowFilterOptions *
garrow_filter_options_new(void);
#define GARROW_TYPE_TAKE_OPTIONS (garrow_take_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowTakeOptions,
garrow_take_options,
GARROW,
TAKE_OPTIONS,
GObject)
struct _GArrowTakeOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_0_14
GArrowTakeOptions *
garrow_take_options_new(void);
/**
* GArrowCompareOperator:
* @GARROW_COMPARE_EQUAL: Equal operator.
* @GARROW_COMPARE_NOT_EQUAL: Not equal operator.
* @GARROW_COMPARE_GREATER: Greater operator.
* @GARROW_COMPARE_GREATER_EQUAL: Greater equal operator.
* @GARROW_COMPARE_LESS: Less operator.
* @GARROW_COMPARE_LESS_EQUAL: Less equal operator.
*
* They are corresponding to `arrow::compute::CompareOperator` values.
*/
typedef enum {
GARROW_COMPARE_EQUAL,
GARROW_COMPARE_NOT_EQUAL,
GARROW_COMPARE_GREATER,
GARROW_COMPARE_GREATER_EQUAL,
GARROW_COMPARE_LESS,
GARROW_COMPARE_LESS_EQUAL
} GArrowCompareOperator;
#define GARROW_TYPE_COMPARE_OPTIONS (garrow_compare_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowCompareOptions,
garrow_compare_options,
GARROW,
COMPARE_OPTIONS,
GObject)
struct _GArrowCompareOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_0_14
GArrowCompareOptions *
garrow_compare_options_new(void);
/**
* GArrowSortOrder:
* @GARROW_SORT_ORDER_ASCENDING: Sort in ascending order.
* @GARROW_SORT_ORDER_DESCENDING: Sort in descending order.
*
* They are corresponding to `arrow::compute::SortOrder` values.
*
* Since: 3.0.0
*/
typedef enum {
GARROW_SORT_ORDER_ASCENDING,
GARROW_SORT_ORDER_DESCENDING,
} GArrowSortOrder;
#define GARROW_TYPE_ARRAY_SORT_OPTIONS (garrow_array_sort_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowArraySortOptions,
garrow_array_sort_options,
GARROW,
ARRAY_SORT_OPTIONS,
GObject)
struct _GArrowArraySortOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
GArrowArraySortOptions *
garrow_array_sort_options_new(GArrowSortOrder order);
GARROW_AVAILABLE_IN_3_0
gboolean
garrow_array_sort_options_equal(GArrowArraySortOptions *options,
GArrowArraySortOptions *other_options);
#define GARROW_TYPE_SORT_KEY (garrow_sort_key_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowSortKey,
garrow_sort_key,
GARROW,
SORT_KEY,
GObject)
struct _GArrowSortKeyClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
GArrowSortKey *
garrow_sort_key_new(const gchar *name, GArrowSortOrder order);
GARROW_AVAILABLE_IN_3_0
gboolean
garrow_sort_key_equal(GArrowSortKey *sort_key,
GArrowSortKey *other_sort_key);
#define GARROW_TYPE_SORT_OPTIONS (garrow_sort_options_get_type())
G_DECLARE_DERIVABLE_TYPE(GArrowSortOptions,
garrow_sort_options,
GARROW,
SORT_OPTIONS,
GObject)
struct _GArrowSortOptionsClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
GArrowSortOptions *
garrow_sort_options_new(GList *sort_keys);
GARROW_AVAILABLE_IN_3_0
gboolean
garrow_sort_options_equal(GArrowSortOptions *options,
GArrowSortOptions *other_options);
GARROW_AVAILABLE_IN_3_0
GList *
garrow_sort_options_get_sort_keys(GArrowSortOptions *options);
GARROW_AVAILABLE_IN_3_0
void
garrow_sort_options_set_sort_keys(GArrowSortOptions *options,
GList *sort_keys);
GARROW_AVAILABLE_IN_3_0
void
garrow_sort_options_add_sort_key(GArrowSortOptions *options,
GArrowSortKey *sort_key);
GArrowArray *garrow_array_cast(GArrowArray *array,
GArrowDataType *target_data_type,
GArrowCastOptions *options,
GError **error);
GArrowArray *garrow_array_unique(GArrowArray *array,
GError **error);
GArrowDictionaryArray *garrow_array_dictionary_encode(GArrowArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gint64 garrow_array_count(GArrowArray *array,
GArrowCountOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_13
GArrowStructArray *garrow_array_count_values(GArrowArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
GArrowBooleanArray *garrow_boolean_array_invert(GArrowBooleanArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
GArrowBooleanArray *garrow_boolean_array_and(GArrowBooleanArray *left,
GArrowBooleanArray *right,
GError **error);
GARROW_AVAILABLE_IN_0_13
GArrowBooleanArray *garrow_boolean_array_or(GArrowBooleanArray *left,
GArrowBooleanArray *right,
GError **error);
GARROW_AVAILABLE_IN_0_13
GArrowBooleanArray *garrow_boolean_array_xor(GArrowBooleanArray *left,
GArrowBooleanArray *right,
GError **error);
GARROW_AVAILABLE_IN_0_13
gdouble garrow_numeric_array_mean(GArrowNumericArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gint64 garrow_int8_array_sum(GArrowInt8Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
guint64 garrow_uint8_array_sum(GArrowUInt8Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gint64 garrow_int16_array_sum(GArrowInt16Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
guint64 garrow_uint16_array_sum(GArrowUInt16Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gint64 garrow_int32_array_sum(GArrowInt32Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
guint64 garrow_uint32_array_sum(GArrowUInt32Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gint64 garrow_int64_array_sum(GArrowInt64Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
guint64 garrow_uint64_array_sum(GArrowUInt64Array *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gdouble garrow_float_array_sum(GArrowFloatArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_13
gdouble garrow_double_array_sum(GArrowDoubleArray *array,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowArray *garrow_array_take(GArrowArray *array,
GArrowArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowChunkedArray *
garrow_array_take_chunked_array(GArrowArray *array,
GArrowChunkedArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowTable *
garrow_table_take(GArrowTable *table,
GArrowArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowTable *
garrow_table_take_chunked_array(GArrowTable *table,
GArrowChunkedArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowChunkedArray *
garrow_chunked_array_take(GArrowChunkedArray *chunked_array,
GArrowArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowChunkedArray *
garrow_chunked_array_take_chunked_array(GArrowChunkedArray *chunked_array,
GArrowChunkedArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowRecordBatch *
garrow_record_batch_take(GArrowRecordBatch *record_batch,
GArrowArray *indices,
GArrowTakeOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_int8_array_compare(GArrowInt8Array *array,
gint8 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_uint8_array_compare(GArrowUInt8Array *array,
guint8 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_int16_array_compare(GArrowInt16Array *array,
gint16 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_uint16_array_compare(GArrowUInt16Array *array,
guint16 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_int32_array_compare(GArrowInt32Array *array,
gint32 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_uint32_array_compare(GArrowUInt32Array *array,
guint32 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_int64_array_compare(GArrowInt64Array *array,
gint64 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_uint64_array_compare(GArrowUInt64Array *array,
guint64 value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_float_array_compare(GArrowFloatArray *array,
gfloat value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_14
GArrowBooleanArray *
garrow_double_array_compare(GArrowDoubleArray *array,
gdouble value,
GArrowCompareOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_15
GArrowArray *
garrow_array_filter(GArrowArray *array,
GArrowBooleanArray *filter,
GArrowFilterOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_15
GArrowBooleanArray *
garrow_array_is_in(GArrowArray *left,
GArrowArray *right,
GError **error);
GARROW_AVAILABLE_IN_0_15
GArrowBooleanArray *
garrow_array_is_in_chunked_array(GArrowArray *left,
GArrowChunkedArray *right,
GError **error);
GARROW_AVAILABLE_IN_3_0
GArrowUInt64Array *
garrow_array_sort_indices(GArrowArray *array,
GArrowSortOrder order,
GError **error);
GARROW_DEPRECATED_IN_3_0_FOR(garrow_array_sort_indices)
GARROW_AVAILABLE_IN_0_15
GArrowUInt64Array *
garrow_array_sort_to_indices(GArrowArray *array,
GError **error);
GARROW_AVAILABLE_IN_3_0
GArrowUInt64Array *
garrow_chunked_array_sort_indices(GArrowChunkedArray *chunked_array,
GArrowSortOrder order,
GError **error);
GARROW_AVAILABLE_IN_3_0
GArrowUInt64Array *
garrow_record_batch_sort_indices(GArrowRecordBatch *record_batch,
GArrowSortOptions *options,
GError **error);
GARROW_AVAILABLE_IN_3_0
GArrowUInt64Array *
garrow_table_sort_indices(GArrowTable *table,
GArrowSortOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowTable *
garrow_table_filter(GArrowTable *table,
GArrowBooleanArray *filter,
GArrowFilterOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowTable *
garrow_table_filter_chunked_array(GArrowTable *table,
GArrowChunkedArray *filter,
GArrowFilterOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowChunkedArray *
garrow_chunked_array_filter(GArrowChunkedArray *chunked_array,
GArrowBooleanArray *filter,
GArrowFilterOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowChunkedArray *
garrow_chunked_array_filter_chunked_array(GArrowChunkedArray *chunked_array,
GArrowChunkedArray *filter,
GArrowFilterOptions *options,
GError **error);
GARROW_AVAILABLE_IN_0_16
GArrowRecordBatch *
garrow_record_batch_filter(GArrowRecordBatch *record_batch,
GArrowBooleanArray *filter,
GArrowFilterOptions *options,
GError **error);
G_END_DECLS