pub struct JsonObjectAgg { /* private fields */ }Expand description
json_object_agg(key, value) -> jsonb
Collects key-value pairs into a JSON object. Duplicate keys use last-value-wins semantics (consistent with PostgreSQL).
Implementations§
Source§impl JsonObjectAgg
impl JsonObjectAgg
Trait Implementations§
Source§impl AggregateUDFImpl for JsonObjectAgg
impl AggregateUDFImpl for JsonObjectAgg
Source§fn signature(&self) -> &Signature
fn signature(&self) -> &Signature
Returns the function’s
Signature for information about what input
types are accepted and the function’s Volatility.Source§fn return_type(&self, _arg_types: &[DataType]) -> Result<DataType>
fn return_type(&self, _arg_types: &[DataType]) -> Result<DataType>
What
DataType will be returned by this function, given the types of
the argumentsSource§fn state_fields(&self, _args: StateFieldsArgs<'_>) -> Result<Vec<Arc<Field>>>
fn state_fields(&self, _args: StateFieldsArgs<'_>) -> Result<Vec<Arc<Field>>>
Return the fields used to store the intermediate state of this accumulator. Read more
Source§fn accumulator(
&self,
_args: AccumulatorArgs<'_>,
) -> Result<Box<dyn Accumulator>>
fn accumulator( &self, _args: AccumulatorArgs<'_>, ) -> Result<Box<dyn Accumulator>>
Return a new
Accumulator that aggregates values for a specific
group during query execution. Read moreSource§fn aliases(&self) -> &[String]
fn aliases(&self) -> &[String]
Returns any aliases (alternate names) for this function. Read more
Source§fn schema_name(
&self,
params: &AggregateFunctionParams,
) -> Result<String, DataFusionError>
fn schema_name( &self, params: &AggregateFunctionParams, ) -> Result<String, DataFusionError>
Returns the name of the column this expression would create Read more
Source§fn human_display(
&self,
params: &AggregateFunctionParams,
) -> Result<String, DataFusionError>
fn human_display( &self, params: &AggregateFunctionParams, ) -> Result<String, DataFusionError>
Returns a human readable expression. Read more
Source§fn window_function_schema_name(
&self,
params: &WindowFunctionParams,
) -> Result<String, DataFusionError>
fn window_function_schema_name( &self, params: &WindowFunctionParams, ) -> Result<String, DataFusionError>
Returns the name of the column this expression would create Read more
Source§fn display_name(
&self,
params: &AggregateFunctionParams,
) -> Result<String, DataFusionError>
fn display_name( &self, params: &AggregateFunctionParams, ) -> Result<String, DataFusionError>
Returns the user-defined display name of function, given the arguments Read more
Source§fn window_function_display_name(
&self,
params: &WindowFunctionParams,
) -> Result<String, DataFusionError>
fn window_function_display_name( &self, params: &WindowFunctionParams, ) -> Result<String, DataFusionError>
Returns the user-defined display name of function, given the arguments Read more
Source§fn return_field(
&self,
arg_fields: &[Arc<Field>],
) -> Result<Arc<Field>, DataFusionError>
fn return_field( &self, arg_fields: &[Arc<Field>], ) -> Result<Arc<Field>, DataFusionError>
What type will be returned by this function, given the arguments? Read more
Source§fn is_nullable(&self) -> bool
fn is_nullable(&self) -> bool
Whether the aggregate function is nullable. Read more
Source§fn groups_accumulator_supported(&self, _args: AccumulatorArgs<'_>) -> bool
fn groups_accumulator_supported(&self, _args: AccumulatorArgs<'_>) -> bool
If the aggregate expression has a specialized
GroupsAccumulator implementation. If this returns true,
[Self::create_groups_accumulator] will be called. Read moreSource§fn create_groups_accumulator(
&self,
_args: AccumulatorArgs<'_>,
) -> Result<Box<dyn GroupsAccumulator>, DataFusionError>
fn create_groups_accumulator( &self, _args: AccumulatorArgs<'_>, ) -> Result<Box<dyn GroupsAccumulator>, DataFusionError>
Return a specialized
GroupsAccumulator that manages state
for all groups. Read moreSource§fn create_sliding_accumulator(
&self,
args: AccumulatorArgs<'_>,
) -> Result<Box<dyn Accumulator>, DataFusionError>
fn create_sliding_accumulator( &self, args: AccumulatorArgs<'_>, ) -> Result<Box<dyn Accumulator>, DataFusionError>
Sliding accumulator is an alternative accumulator that can be used for
window functions. It has retract method to revert the previous update. Read more
Source§fn with_beneficial_ordering(
self: Arc<Self>,
_beneficial_ordering: bool,
) -> Result<Option<Arc<dyn AggregateUDFImpl>>, DataFusionError>
fn with_beneficial_ordering( self: Arc<Self>, _beneficial_ordering: bool, ) -> Result<Option<Arc<dyn AggregateUDFImpl>>, DataFusionError>
Sets the indicator whether ordering requirements of the AggregateUDFImpl is
satisfied by its input. If this is not the case, UDFs with order
sensitivity
AggregateOrderSensitivity::Beneficial can still produce
the correct result with possibly more work internally. Read moreSource§fn order_sensitivity(&self) -> AggregateOrderSensitivity
fn order_sensitivity(&self) -> AggregateOrderSensitivity
Gets the order sensitivity of the UDF. See
AggregateOrderSensitivity
for possible options.Source§fn simplify(
&self,
) -> Option<Box<dyn Fn(AggregateFunction, &dyn SimplifyInfo) -> Result<Expr, DataFusionError>>>
fn simplify( &self, ) -> Option<Box<dyn Fn(AggregateFunction, &dyn SimplifyInfo) -> Result<Expr, DataFusionError>>>
Optionally apply per-UDaF simplification / rewrite rules. Read more
Source§fn reverse_expr(&self) -> ReversedUDAF
fn reverse_expr(&self) -> ReversedUDAF
Returns the reverse expression of the aggregate function.
Source§fn coerce_types(
&self,
_arg_types: &[DataType],
) -> Result<Vec<DataType>, DataFusionError>
fn coerce_types( &self, _arg_types: &[DataType], ) -> Result<Vec<DataType>, DataFusionError>
Coerce arguments of a function call to types that the function can evaluate. Read more
Source§fn is_descending(&self) -> Option<bool>
fn is_descending(&self) -> Option<bool>
If this function is max, return true
If the function is min, return false
Otherwise return None (the default) Read more
Source§fn value_from_stats(
&self,
_statistics_args: &StatisticsArgs<'_>,
) -> Option<ScalarValue>
fn value_from_stats( &self, _statistics_args: &StatisticsArgs<'_>, ) -> Option<ScalarValue>
Return the value of this aggregate function if it can be determined
entirely from statistics and arguments. Read more
Source§fn default_value(
&self,
data_type: &DataType,
) -> Result<ScalarValue, DataFusionError>
fn default_value( &self, data_type: &DataType, ) -> Result<ScalarValue, DataFusionError>
Returns default value of the function given the input is all
null. Read moreSource§fn supports_null_handling_clause(&self) -> bool
fn supports_null_handling_clause(&self) -> bool
If this function supports
[IGNORE NULLS | RESPECT NULLS] SQL clause,
return true. Otherwise, return false which will cause an error to be
raised during SQL parsing if these clauses are detected for this function. Read moreSource§fn supports_within_group_clause(&self) -> bool
fn supports_within_group_clause(&self) -> bool
If this function supports the
WITHIN GROUP (ORDER BY column [ASC|DESC])
SQL syntax, return true. Otherwise, return false (default) which will
cause an error when parsing SQL where this syntax is detected for this
function. Read moreSource§fn documentation(&self) -> Option<&Documentation>
fn documentation(&self) -> Option<&Documentation>
Returns the documentation for this Aggregate UDF. Read more
Source§fn set_monotonicity(&self, _data_type: &DataType) -> SetMonotonicity
fn set_monotonicity(&self, _data_type: &DataType) -> SetMonotonicity
Indicates whether the aggregation function is monotonic as a set
function. See
SetMonotonicity for details.Source§impl Debug for JsonObjectAgg
impl Debug for JsonObjectAgg
Source§impl Default for JsonObjectAgg
impl Default for JsonObjectAgg
Source§impl Hash for JsonObjectAgg
impl Hash for JsonObjectAgg
Source§impl PartialEq for JsonObjectAgg
impl PartialEq for JsonObjectAgg
impl Eq for JsonObjectAgg
Auto Trait Implementations§
impl Freeze for JsonObjectAgg
impl !RefUnwindSafe for JsonObjectAgg
impl Send for JsonObjectAgg
impl Sync for JsonObjectAgg
impl Unpin for JsonObjectAgg
impl UnsafeUnpin for JsonObjectAgg
impl !UnwindSafe for JsonObjectAgg
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.