@@ -321,6 +321,9 @@ G_BEGIN_DECLS
321321 * #GArrowSelectKOptions is a class to customize the
322322 * `select_k_unstable` function.
323323 *
324+ * #GArrowSkewOptions is a class to customize the `skew` and
325+ * `kurtosis` functions.
326+ *
324327 * There are many functions to compute data on an array.
325328 */
326329
@@ -9501,6 +9504,143 @@ garrow_select_k_options_add_sort_key(GArrowSelectKOptions *options,
95019504 garrow_raw_sort_keys_add (arrow_options->sort_keys , sort_key);
95029505}
95039506
9507+ enum {
9508+ PROP_SKEW_OPTIONS_SKIP_NULLS = 1 ,
9509+ PROP_SKEW_OPTIONS_BIASED,
9510+ PROP_SKEW_OPTIONS_MIN_COUNT,
9511+ };
9512+
9513+ G_DEFINE_TYPE (GArrowSkewOptions, garrow_skew_options, GARROW_TYPE_FUNCTION_OPTIONS)
9514+
9515+ static void
9516+ garrow_skew_options_set_property(GObject *object,
9517+ guint prop_id,
9518+ const GValue *value,
9519+ GParamSpec *pspec)
9520+ {
9521+ auto options = garrow_skew_options_get_raw (GARROW_SKEW_OPTIONS (object));
9522+
9523+ switch (prop_id) {
9524+ case PROP_SKEW_OPTIONS_SKIP_NULLS:
9525+ options->skip_nulls = g_value_get_boolean (value);
9526+ break ;
9527+ case PROP_SKEW_OPTIONS_BIASED:
9528+ options->biased = g_value_get_boolean (value);
9529+ break ;
9530+ case PROP_SKEW_OPTIONS_MIN_COUNT:
9531+ options->min_count = g_value_get_uint (value);
9532+ break ;
9533+ default :
9534+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
9535+ break ;
9536+ }
9537+ }
9538+
9539+ static void
9540+ garrow_skew_options_get_property (GObject *object,
9541+ guint prop_id,
9542+ GValue *value,
9543+ GParamSpec *pspec)
9544+ {
9545+ auto options = garrow_skew_options_get_raw (GARROW_SKEW_OPTIONS (object));
9546+
9547+ switch (prop_id) {
9548+ case PROP_SKEW_OPTIONS_SKIP_NULLS:
9549+ g_value_set_boolean (value, options->skip_nulls );
9550+ break ;
9551+ case PROP_SKEW_OPTIONS_BIASED:
9552+ g_value_set_boolean (value, options->biased );
9553+ break ;
9554+ case PROP_SKEW_OPTIONS_MIN_COUNT:
9555+ g_value_set_uint (value, options->min_count );
9556+ break ;
9557+ default :
9558+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
9559+ break ;
9560+ }
9561+ }
9562+
9563+ static void
9564+ garrow_skew_options_init (GArrowSkewOptions *object)
9565+ {
9566+ auto priv = GARROW_FUNCTION_OPTIONS_GET_PRIVATE (object);
9567+ priv->options =
9568+ static_cast <arrow::compute::FunctionOptions *>(new arrow::compute::SkewOptions ());
9569+ }
9570+
9571+ static void
9572+ garrow_skew_options_class_init (GArrowSkewOptionsClass *klass)
9573+ {
9574+ auto gobject_class = G_OBJECT_CLASS (klass);
9575+
9576+ gobject_class->set_property = garrow_skew_options_set_property;
9577+ gobject_class->get_property = garrow_skew_options_get_property;
9578+
9579+ arrow::compute::SkewOptions options;
9580+
9581+ GParamSpec *spec;
9582+ /* *
9583+ * GArrowSkewOptions:skip-nulls:
9584+ *
9585+ * Whether NULLs are skipped or not.
9586+ *
9587+ * Since: 23.0.0
9588+ */
9589+ spec = g_param_spec_boolean (" skip-nulls" ,
9590+ " Skip NULLs" ,
9591+ " Whether NULLs are skipped or not" ,
9592+ options.skip_nulls ,
9593+ static_cast <GParamFlags>(G_PARAM_READWRITE));
9594+ g_object_class_install_property (gobject_class, PROP_SKEW_OPTIONS_SKIP_NULLS, spec);
9595+
9596+ /* *
9597+ * GArrowSkewOptions:biased:
9598+ *
9599+ * Whether the calculated value is biased.
9600+ * If false, the value computed includes a correction factor to reduce bias.
9601+ *
9602+ * Since: 23.0.0
9603+ */
9604+ spec =
9605+ g_param_spec_boolean (" biased" ,
9606+ " Biased" ,
9607+ " Whether the calculated value is biased. If false, the value "
9608+ " computed includes a correction factor to reduce bias" ,
9609+ options.biased ,
9610+ static_cast <GParamFlags>(G_PARAM_READWRITE));
9611+ g_object_class_install_property (gobject_class, PROP_SKEW_OPTIONS_BIASED, spec);
9612+
9613+ /* *
9614+ * GArrowSkewOptions:min-count:
9615+ *
9616+ * If less than this many non-null values are observed, emit null.
9617+ *
9618+ * Since: 23.0.0
9619+ */
9620+ spec =
9621+ g_param_spec_uint (" min-count" ,
9622+ " Min count" ,
9623+ " If less than this many non-null values are observed, emit null" ,
9624+ 0 ,
9625+ G_MAXUINT,
9626+ options.min_count ,
9627+ static_cast <GParamFlags>(G_PARAM_READWRITE));
9628+ g_object_class_install_property (gobject_class, PROP_SKEW_OPTIONS_MIN_COUNT, spec);
9629+ }
9630+
9631+ /* *
9632+ * garrow_skew_options_new:
9633+ *
9634+ * Returns: A newly created #GArrowSkewOptions.
9635+ *
9636+ * Since: 23.0.0
9637+ */
9638+ GArrowSkewOptions *
9639+ garrow_skew_options_new (void )
9640+ {
9641+ return GARROW_SKEW_OPTIONS (g_object_new (GARROW_TYPE_SKEW_OPTIONS, nullptr ));
9642+ }
9643+
95049644G_END_DECLS
95059645
95069646arrow::Result<arrow::FieldRef>
@@ -9746,6 +9886,11 @@ garrow_function_options_new_raw(const arrow::compute::FunctionOptions *arrow_opt
97469886 static_cast <const arrow::compute::SelectKOptions *>(arrow_options);
97479887 auto options = garrow_select_k_options_new_raw (arrow_select_k_options);
97489888 return GARROW_FUNCTION_OPTIONS (options);
9889+ } else if (arrow_type_name == " SkewOptions" ) {
9890+ const auto arrow_skew_options =
9891+ static_cast <const arrow::compute::SkewOptions *>(arrow_options);
9892+ auto options = garrow_skew_options_new_raw (arrow_skew_options);
9893+ return GARROW_FUNCTION_OPTIONS (options);
97499894 } else {
97509895 auto options = g_object_new (GARROW_TYPE_FUNCTION_OPTIONS, NULL );
97519896 return GARROW_FUNCTION_OPTIONS (options);
@@ -10739,3 +10884,24 @@ garrow_select_k_options_get_raw(GArrowSelectKOptions *options)
1073910884 return static_cast <arrow::compute::SelectKOptions *>(
1074010885 garrow_function_options_get_raw (GARROW_FUNCTION_OPTIONS (options)));
1074110886}
10887+
10888+ GArrowSkewOptions *
10889+ garrow_skew_options_new_raw (const arrow::compute::SkewOptions *arrow_options)
10890+ {
10891+ auto options = g_object_new (GARROW_TYPE_SKEW_OPTIONS,
10892+ " skip-nulls" ,
10893+ arrow_options->skip_nulls ,
10894+ " biased" ,
10895+ arrow_options->biased ,
10896+ " min-count" ,
10897+ arrow_options->min_count ,
10898+ nullptr );
10899+ return GARROW_SKEW_OPTIONS (options);
10900+ }
10901+
10902+ arrow::compute::SkewOptions *
10903+ garrow_skew_options_get_raw (GArrowSkewOptions *options)
10904+ {
10905+ return static_cast <arrow::compute::SkewOptions *>(
10906+ garrow_function_options_get_raw (GARROW_FUNCTION_OPTIONS (options)));
10907+ }
0 commit comments