Scalar Factories#

group scalar_factories

Functions

std::unique_ptr<scalar> make_numeric_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar with uninitialized storage to hold a value of the specified numeric data_type.

Throws:
  • std::bad_alloc – if device memory allocation fails

  • cudf::logic_error – if type is not a numeric type

Parameters:
  • type – The desired numeric element type

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

An uninitialized numeric scalar

std::unique_ptr<scalar> make_timestamp_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar with uninitialized storage to hold a value of the specified timestamp data_type.

Throws:
  • std::bad_alloc – if device memory allocation fails

  • cudf::logic_error – if type is not a timestamp type

Parameters:
  • type – The desired timestamp element type

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

An uninitialized timestamp scalar

std::unique_ptr<scalar> make_duration_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar with uninitialized storage to hold a value of the specified duration data_type.

Throws:
  • std::bad_alloc – if device memory allocation fails

  • cudf::logic_error – if type is not a duration type

Parameters:
  • type – The desired duration element type

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

An uninitialized duration scalar

std::unique_ptr<scalar> make_fixed_width_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar with uninitialized storage to hold a value of the specified fixed-width data_type.

Throws:
  • std::bad_alloc – if device memory allocation fails

  • cudf::logic_error – if type is not a fixed-width type

Parameters:
  • type – The desired fixed-width element type

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

An uninitialized fixed-width scalar

std::unique_ptr<scalar> make_string_scalar(std::string const &string, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct STRING type scalar given a std::string. The size of the std::string must not exceed the maximum size of size_type. The string characters are expected to be UTF-8 encoded sequence of char bytes.

Throws:

std::bad_alloc – if device memory allocation fails

Parameters:
  • string – The std::string to copy to device

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A string scalar with the contents of string

std::unique_ptr<scalar> make_default_constructed_scalar(data_type type, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Constructs default constructed scalar of type type

Throws:

std::bad_alloc – if device memory allocation fails

Parameters:
  • type – The desired element type

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A scalar of type type

std::unique_ptr<scalar> make_empty_scalar_like(column_view const &input, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Creates an empty (invalid) scalar of the same type as the input column_view.

Throws:

cudf::logic_error – if the input column is struct type and empty

Parameters:
  • input – Immutable view of input column to emulate

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A scalar of type of input column

template<typename T>
std::unique_ptr<scalar> make_fixed_width_scalar(T value, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar using the given value of fixed width type.

Template Parameters:

T – Datatype of the value to be represented by the scalar

Parameters:
  • value – The value to store in the scalar object

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A scalar of type T

template<typename T>
std::unique_ptr<scalar> make_fixed_point_scalar(typename T::rep value, numeric::scale_type scale, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar using the given value of fixed_point type.

Template Parameters:

T – Datatype of the value to be represented by the scalar

Parameters:
  • value – The value to store in the scalar object

  • scale – The scale of the fixed point value

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A scalar of type T

std::unique_ptr<scalar> make_list_scalar(column_view elements, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct scalar using the given column of elements.

Parameters:
  • elements – Elements of the list

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A list scalar

std::unique_ptr<scalar> make_struct_scalar(table_view const &data, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct a struct scalar using the given table_view.

The columns must have 1 row.

Parameters:
  • data – The columnar data to store in the scalar object

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A struct scalar

std::unique_ptr<scalar> make_struct_scalar(host_span<column_view const> data, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = rmm::mr::get_current_device_resource())#

Construct a struct scalar using the given span of column views.

The columns must have 1 row.

Parameters:
  • data – The columnar data to store in the scalar object

  • stream – CUDA stream used for device memory operations.

  • mr – Device memory resource used to allocate the scalar’s data and is_valid bool.

Returns:

A struct scalar