quasardb C API
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
ts.h File Reference
#include "arrow_abi.h"
#include "client.h"
#include <math.h>

Data Structures

struct  qdb_ts_double_point
 A timestamped data with a double-precision floating-point value. More...
 
struct  qdb_ts_blob_point
 A timestamped data with a binary content. More...
 
struct  qdb_ts_int64_point
 A timestamped data with a signed 64-bit integer value. More...
 
struct  qdb_ts_timestamp_point
 A timestamped data with a signed 64-bit integer value. More...
 
struct  qdb_ts_string_point
 A timestamped data with a string content. More...
 
struct  qdb_ts_range_t
 Time interval. More...
 
struct  qdb_ts_blob_aggregation_t
 Aggregation input and result for columns of blobs. More...
 
struct  qdb_ts_double_aggregation_t
 Aggregation input and result for columns of numeric floating-point values. More...
 
struct  qdb_ts_int64_aggregation_t
 Aggregation input and result for columns of numeric integer values. More...
 
struct  qdb_ts_string_aggregation_t
 Aggregation input and result for columns of strings. More...
 
struct  qdb_ts_timestamp_aggregation_t
 Aggregation input and result for columns of timestamp values. More...
 
struct  qdb_ts_column_info_t
 Description of a time series column. More...
 
struct  qdb_ts_column_info_ex_t
 Description of a time series column, perhaps with its symtable. More...
 
struct  qdb_ts_batch_column_info_t
 Description of a batch column info. More...
 
struct  qdb_ts_batch_unchecked_column_info_t
 Description of a batch column that will not be checked. More...
 
struct  qdb_blob_t
 A representation of binary data. More...
 
struct  qdb_exp_batch_push_column_t
 Column sent to the server in a batch. More...
 
struct  qdb_exp_batch_push_column_schema_t
 Schema of a column sent to the server in a batch. More...
 
struct  qdb_exp_batch_push_table_data_t
 Data of a table sent to the server in a batch. More...
 
struct  qdb_string_array_t
 String array. More...
 
struct  qdb_exp_batch_push_table_t
 Data and metadata of a table sent to the server in a batch. More...
 
struct  qdb_exp_batch_push_table_schema_t
 Schema of a table sent to the server in a batch. Indexed by the table and column names given in qdb_exp_batch_push_table_t. More...
 
struct  qdb_exp_batch_options_t
 Options that apply to all tables being pushed in this call. More...
 
struct  qdb_arrow_column_t
 Holds a column in Arrow format. More...
 
struct  qdb_exp_batch_push_arrow_data_t
 Holds the table in Arrow format. More...
 
struct  qdb_exp_batch_push_arrow_table_t
 Data and metadata of a table sent to the server in a batch. More...
 
struct  qdb_ts_aggregated_column_info_t
 Description of a time series aggregated column. More...
 
struct  qdb_aggregated_table_t
 The aggregated table parameters. More...
 
struct  qdb_ts_metadata_t
 A time series metadata. More...
 
struct  qdb_bulk_reader_table_t
 

Macros

#define QDB_IS_NULL_DOUBLE(pt)   (isnan(pt.value))
 True if and only if the qdb_ts_double_point represents a null value.
 
#define QDB_IS_NULL_BLOB(pt)   (pt.content_length == 0)
 True if and only if the qdb_ts_blob_point represents a null value.
 
#define QDB_IS_NULL_INT64(pt)   (pt.value == ((qdb_int_t)0x8000000000000000ll))
 True if and only if the qdb_ts_int64_point represents a null value.
 
#define QDB_IS_NULL_TIMESTAMP(pt)
 True if and only if the qdb_ts_timestamp_point represents a null value.
 
#define QDB_IS_NULL_STRING(pt)   (pt.content_length == 0)
 True if and only if the qdb_ts_string_point represents a null value.
 

Typedefs

typedef enum
qdb_ts_aggregation_type_t 
qdb_ts_aggregation_type_t
 Types of aggregations that can be computed on a time series.
 
typedef enum qdb_ts_column_type_t qdb_ts_column_type_t
 Types of time series columns.
 
typedef qdb_uint_t qdb_ts_column_index_t
 Index of a time series columns. Does not necessarily match the column position at table creation due to modifications to the table schema (by adding, renaming or removing columns).
 
typedef struct
qdb_local_table_internal * 
qdb_local_table_t
 An opaque local table structure used for bulk insertions.
 
typedef struct
qdb_batch_table_internal * 
qdb_batch_table_t
 An opaque batch table structure used for bulk insertions.
 
typedef struct
qdb_bulk_reader_internal * 
qdb_reader_handle_t
 An opaque bulk reader structure used for the data paging.
 
typedef
qdb_exp_batch_push_table_data_t 
qdb_bulk_reader_table_data_t
 A bulk reader data structure returned to user.
 

Enumerations

enum  qdb_ts_aggregation_type_t {
  qdb_agg_first = 0, qdb_agg_last = 1, qdb_agg_min = 2, qdb_agg_max = 3,
  qdb_agg_arithmetic_mean = 4, qdb_agg_harmonic_mean = 5, qdb_agg_geometric_mean = 6, qdb_agg_quadratic_mean = 7,
  qdb_agg_count = 8, qdb_agg_sum = 9, qdb_agg_sum_of_squares = 10, qdb_agg_spread = 11,
  qdb_agg_sample_variance = 12, qdb_agg_sample_stddev = 13, qdb_agg_population_variance = 14, qdb_agg_population_stddev = 15,
  qdb_agg_abs_min, qdb_agg_abs_max, qdb_agg_product = 18, qdb_agg_skewness = 19,
  qdb_agg_kurtosis = 20, qdb_agg_none = 21, qdb_agg_distinct_count = 22, qdb_agg_adjacent_count = 29,
  qdb_agg_sum_of_abs = 32, qdb_agg_sum_of_abs_changes, qdb_agg_median = 41, qdb_agg_approximate_median = 42,
  qdb_agg_first_timestamp, qdb_agg_last_timestamp, qdb_agg_min_timestamp, qdb_agg_max_timestamp,
  qdb_agg_abs_min_timestamp = 50, qdb_agg_abs_max_timestamp = 51
}
 Types of aggregations that can be computed on a time series. More...
 
enum  qdb_ts_column_type_t { ,
  qdb_ts_column_double = 0, qdb_ts_column_blob = 1, qdb_ts_column_int64 = 2, qdb_ts_column_timestamp,
  qdb_ts_column_string = 4, qdb_ts_column_symbol
}
 Types of time series columns. More...
 
enum  qdb_exp_batch_deduplication_mode_t { qdb_exp_batch_deduplication_mode_disabled = 0, qdb_exp_batch_deduplication_mode_drop = 1, qdb_exp_batch_deduplication_mode_upsert = 2 }
 How deduplication is handled by qdb_exp_batch_push. More...
 
enum  qdb_exp_batch_creation_mode_t { qdb_exp_batch_dont_create = 0, qdb_exp_batch_create_tables = 1 }
 Ways of creating tables and columns for timeseries with qdb_exp_batch_push. More...
 
enum  qdb_exp_batch_push_mode_t { qdb_exp_batch_push_transactional = 0, qdb_exp_batch_push_truncate = 1, qdb_exp_batch_push_fast = 2, qdb_exp_batch_push_async = 3 }
 Ways of pushing data to timeseries with qdb_exp_batch_push. More...
 
enum  qdb_exp_batch_push_flags_t { qdb_exp_batch_push_flag_none = 0, qdb_exp_batch_push_flag_write_through = 1, qdb_exp_batch_push_flag_asynchronous_client_push = 2 }
 Flags that control the global behavior of the push for all tables Unless otherwise noted flags can be combined. More...
 
enum  qdb_aggregation_window_type_t
 The aggregation window type.
 

Functions

QDB_API_LINKAGE qdb_error_t qdb_ts_create (qdb_handle_t handle, const char *alias, qdb_duration_t shard_size_ms, const qdb_ts_column_info_t *columns, qdb_size_t column_count)
 Creates a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_create_ex (qdb_handle_t handle, const char *alias, qdb_duration_t shard_size_ms, const qdb_ts_column_info_ex_t *columns, qdb_size_t column_count, qdb_duration_t ttl)
 Creates a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_insert_columns (qdb_handle_t handle, const char *alias, const qdb_ts_column_info_t *columns, qdb_size_t column_count)
 Appends columns to an existing time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_insert_columns_ex (qdb_handle_t handle, const char *alias, const qdb_ts_column_info_ex_t *columns, qdb_size_t column_count)
 Appends columns to an existing time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_get_metadata (qdb_handle_t handle, char const *alias, qdb_ts_metadata_t **metadata)
 Returns a metadata information about a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_set_ttl (qdb_handle_t handle, const char *alias, qdb_duration_t ttl)
 Returns the time to live of a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_list_columns (qdb_handle_t handle, const char *alias, qdb_ts_column_info_t **columns, qdb_size_t *column_count)
 Returns all the columns of a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_list_columns_ex (qdb_handle_t handle, const char *alias, qdb_ts_column_info_ex_t **columns, qdb_size_t *column_count)
 Returns all the columns of a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_blob_insert (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_blob_point *values, qdb_size_t value_count)
 Inserts blob points in a time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_blob_insert_truncate (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, const qdb_ts_blob_point *values, qdb_size_t value_count)
 Inserts blob points in a time series and erases given ranges in the same transaction. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_double_insert (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_double_point *values, qdb_size_t value_count)
 Inserts double points in a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_double_insert_truncate (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, const qdb_ts_double_point *values, qdb_size_t value_count)
 Inserts double points in a time series and erases given ranges in the same transaction. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_int64_insert (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_int64_point *values, qdb_size_t value_count)
 Inserts int64 points in a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_int64_insert_truncate (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, const qdb_ts_int64_point *values, qdb_size_t value_count)
 Inserts int64 points in a time series and erases given ranges in the same transaction. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_string_insert (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_string_point *values, qdb_size_t value_count)
 Inserts string points in a time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_string_insert_truncate (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, const qdb_ts_string_point *values, qdb_size_t value_count)
 Inserts string points in a time series and erases given ranges in the same transaction. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_timestamp_insert (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_timestamp_point *values, qdb_size_t value_count)
 Inserts timestamp points in a time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_timestamp_insert_truncate (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, const qdb_ts_timestamp_point *values, qdb_size_t value_count)
 Inserts timestamp points in a time series and erases given ranges in the same transaction. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_blob_get_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_blob_point **points, qdb_size_t *point_count)
 Retrieves blobs in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_blob_get_ranges_no_copy (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_blob_point *points, qdb_size_t *point_count)
 Retrieves blobs in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_double_get_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_double_point **points, qdb_size_t *point_count)
 Retrieves doubles in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_double_get_ranges_no_copy (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_double_point *points, qdb_size_t *point_count)
 Retrieves doubles in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_int64_get_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_int64_point **points, qdb_size_t *point_count)
 Retrieves 64-bit integers in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_int64_get_ranges_no_copy (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_int64_point *points, qdb_size_t *point_count)
 Retrieves 64-bit integers in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_string_get_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_string_point **points, qdb_size_t *point_count)
 Retrieves strings in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_string_get_ranges_no_copy (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_string_point *points, qdb_size_t *point_count)
 Retrieves strings in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_timestamp_get_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_timestamp_point **points, qdb_size_t *point_count)
 Retrieves timestamps in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_timestamp_get_ranges_no_copy (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_ts_timestamp_point *points, qdb_size_t *point_count)
 Retrieves timestamps in the specified range of the time series column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_blob_aggregate (qdb_handle_t handle, const char *alias, const char *column, qdb_ts_blob_aggregation_t *aggregations, qdb_size_t aggregation_count)
 Aggregate a sub-part of a blob column of the time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_double_aggregate (qdb_handle_t handle, const char *alias, const char *column, qdb_ts_double_aggregation_t *aggregations, qdb_size_t aggregation_count)
 Aggregate a sub-part of the double column of the time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_int64_aggregate (qdb_handle_t handle, const char *alias, const char *column, qdb_ts_int64_aggregation_t *aggregations, qdb_size_t aggregation_count)
 Aggregate a sub-part of the int64 column of the time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_string_aggregate (qdb_handle_t handle, const char *alias, const char *column, qdb_ts_string_aggregation_t *aggregations, qdb_size_t aggregation_count)
 Aggregate a sub-part of a string column of the time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_timestamp_aggregate (qdb_handle_t handle, const char *alias, const char *column, qdb_ts_timestamp_aggregation_t *aggregations, qdb_size_t aggregation_count)
 Aggregate a sub-part of the timestamp column of the time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_get_timestamps (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_timespec_t **timestamps, qdb_size_t *timestamp_count)
 Retrieves the timestamps, not the values, for a given timeseries column or the aggregation of all columns. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_erase_ranges (qdb_handle_t handle, const char *alias, const char *column, const qdb_ts_range_t *ranges, qdb_size_t range_count, qdb_uint_t *erased_count)
 Erase all points in the specified range (left inclusive). More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_local_table_init (qdb_handle_t handle, const char *alias, const qdb_ts_column_info_t *columns, qdb_size_t column_count, qdb_local_table_t *table)
 Initialize a local table for bulk insertion in time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_blob (qdb_local_table_t table, qdb_size_t column_index, const void **content, qdb_size_t *content_length)
 Retrieves blob data from the current row at the specified column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_blob_no_copy (qdb_local_table_t table, qdb_size_t column_index, const void **content, qdb_size_t *content_length)
 Retrieves blob data from the current row at the specified column without performing copy of data internal to data. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_string (qdb_local_table_t table, qdb_size_t column_index, const char **content, qdb_size_t *content_length)
 Retrieves string data from the current row at the specified column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_string_no_copy (qdb_local_table_t table, qdb_size_t column_index, const char **content, qdb_size_t *content_length)
 Retrieves string data from the current row at the specified column without performing copy of data internal to data. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_double (qdb_local_table_t table, qdb_size_t column_index, double *value)
 Retrieves double value from the current row at the specified column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_int64 (qdb_local_table_t table, qdb_size_t column_index, qdb_int_t *value)
 Retrieves signed 64-bit integer value from the current row at the specified column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_row_get_timestamp (qdb_local_table_t table, qdb_size_t column_index, qdb_timespec_t *value)
 Retrieves timestamp value from the current row at the specified column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_table_next_row (qdb_local_table_t table, qdb_timespec_t *timestamp)
 Fetch data and advance to the next row. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_table_get_ranges (qdb_local_table_t table, const qdb_ts_range_t *ranges, qdb_size_t range_count)
 Retrieve all the specified rows from the database. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_table_stream_ranges (qdb_local_table_t table, const qdb_ts_range_t *ranges, qdb_size_t range_count)
 Retrieve shard by shard the specified rows from the database. The table is then seen as it was then this function was called. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_table_init (qdb_handle_t handle, const qdb_ts_batch_column_info_t *columns, qdb_size_t column_count, qdb_batch_table_t *table)
 Initialize a batch table for bulk insertion in time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_table_unchecked_init (qdb_handle_t handle, const qdb_ts_batch_unchecked_column_info_t *columns, qdb_size_t column_count, qdb_batch_table_t *table)
 Initialize a batch table for bulk insertion in time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_table_extra_columns (qdb_batch_table_t table, const qdb_ts_batch_column_info_t *columns, qdb_size_t column_count)
 Add extra columns to a batch table for bulk insertion in time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_table_unchecked_extra_columns (qdb_batch_table_t table, const qdb_ts_batch_unchecked_column_info_t *columns, qdb_size_t column_count)
 Add extra columns to a batch table for bulk insertion in time series. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_start_row (qdb_batch_table_t table, const qdb_timespec_t *timestamp)
 Start a new row to the outcoming data buffer. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_blob (qdb_batch_table_t table, qdb_size_t index, const void *content, qdb_size_t content_length)
 Set a value in the current row in a column of blobs. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_blob_no_copy (qdb_batch_table_t table, qdb_size_t index, const void *content, qdb_size_t content_length)
 Set a value in the current row in a column of blobs without copying data. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_string (qdb_batch_table_t table, qdb_size_t index, const char *content, qdb_size_t content_length)
 Set a value in the current row in a column of strings. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_string_no_copy (qdb_batch_table_t table, qdb_size_t index, const char *content, qdb_size_t content_length)
 Set a value in the current row in a column of strings without copying data. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_double (qdb_batch_table_t table, qdb_size_t index, double value)
 Set a value in the current row in a column of doubles. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_int64 (qdb_batch_table_t table, qdb_size_t index, qdb_int_t value)
 Set a value in the current row in a column of integers. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_row_set_timestamp (qdb_batch_table_t table, qdb_size_t index, const qdb_timespec_t *value)
 Set a value in the current row in a column of timestamps. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_copy_buffer (qdb_batch_table_t table, const void *source_buffer, qdb_size_t source_buffer_size, const void **dest_buffer)
 Copy efficiently a buffer that will live until the next push. Useful to avoid tracking temporary blob or string lifetimes. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_pin_blob_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t capacity, qdb_timespec_t *timestamp, qdb_time_t **timeoffsets, qdb_blob_t **data)
 Resize and get direct access to a blob column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_pin_double_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t capacity, qdb_timespec_t *timestamp, qdb_time_t **timeoffsets, double **data)
 Resize and get direct access to a double column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_pin_int64_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t capacity, qdb_timespec_t *timestamp, qdb_time_t **timeoffsets, qdb_int_t **data)
 Resize and get direct access to a int64 column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_pin_string_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t capacity, qdb_timespec_t *timestamp, qdb_time_t **timeoffsets, qdb_string_t **data)
 Resize and get direct access to a string column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_pin_timestamp_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t capacity, qdb_timespec_t *timestamp, qdb_time_t **timeoffsets, qdb_timespec_t **data)
 Resize and get direct access to a timestamp column. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_shrink_pinned_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t size)
 Resize the column without invalidating the pointers. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_unsafe_resize_pinned_column (qdb_batch_table_t table, qdb_size_t index, qdb_size_t size)
 Resize the column with no guarantee the pointers will not be invalidated. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_release_columns_memory (qdb_batch_table_t table)
 Release memory of all cached columns. The tables metadata are kept. More...
 
qdb_time_t qdb_ts_bucket_base_time (qdb_timespec_t timestamp, qdb_duration_t shard_size)
 Returns the base time of the bucket given a timestamp and the shard_size of the timeseries. More...
 
qdb_time_t qdb_ts_bucket_offset (qdb_timespec_t timestamp, qdb_duration_t shard_size)
 Returns the offset of the bucket (from its base time) given a timestamp and the shard_size of the timeseries. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_push (qdb_batch_table_t table)
 Push the current batch table. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_push_fast (qdb_batch_table_t table)
 Push the current batch table, non transactional. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_push_async (qdb_batch_table_t table)
 Push asynchronously the current batch table. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_batch_push_truncate (qdb_batch_table_t table, const qdb_ts_range_t *ranges, qdb_size_t range_count)
 Push the current batch table, erasing previously stored points in the given ranges, transactionally. More...
 
QDB_API_LINKAGE qdb_error_t qdb_exp_batch_push (qdb_handle_t handle, qdb_exp_batch_push_mode_t mode, const qdb_exp_batch_push_table_t *tables, const qdb_exp_batch_push_table_schema_t **table_schemas, qdb_size_t table_count)
 Push the tables content to the server. Sort given rows if needed. Write table info if asked. More...
 
QDB_API_LINKAGE qdb_error_t qdb_exp_batch_push_with_options (qdb_handle_t handle, const qdb_exp_batch_options_t *options, const qdb_exp_batch_push_table_t *tables, const qdb_exp_batch_push_table_schema_t **table_schemas, qdb_size_t table_count)
 Push the tables content to the server. Sort given rows if needed. Write table info if asked. More...
 
QDB_API_LINKAGE qdb_error_t qdb_exp_batch_push_arrow (qdb_handle_t handle, qdb_exp_batch_push_mode_t mode, qdb_exp_batch_push_arrow_table_t *tables, const qdb_exp_batch_push_table_schema_t **table_schemas, qdb_size_t table_count)
 Push the tables content to the server in Arrow format. If needed, data rows will be sorted. Optionally, export table schemas. More...
 
QDB_API_LINKAGE qdb_error_t qdb_exp_batch_push_arrow_with_options (qdb_handle_t handle, const qdb_exp_batch_options_t *options, qdb_exp_batch_push_arrow_table_t *tables, const qdb_exp_batch_push_table_schema_t **table_schemas, qdb_size_t table_count)
 Push the tables content to the server in Arrow format. If needed, data rows will be sorted. Optionally, export table schemas. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_expire_by_size (qdb_handle_t handle, const char *alias, qdb_uint_t size)
 Trim the timeseries, so that it uses approximately the provided size. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_bucket_nuke_by_id (qdb_handle_t handle, const char *bucket_id)
 Remove the given shard. More...
 
QDB_API_LINKAGE qdb_error_t qdb_ts_bucket_nuke_by_name (qdb_handle_t handle, const char *table, qdb_time_t shard_base_time)
 Remove the given shard. More...
 
QDB_API_LINKAGE qdb_error_t qdb_bulk_reader_fetch (qdb_handle_t handle, const qdb_bulk_reader_table_t *tables, qdb_size_t table_count, qdb_reader_handle_t *reader)
 Initiate the bulk reader and collect data from the server. More...
 
QDB_API_LINKAGE qdb_error_t qdb_bulk_reader_get_data (qdb_reader_handle_t reader, qdb_bulk_reader_table_data_t **data, qdb_size_t rows_to_get)
 Get a next portion of the collected by the bulk reader data. More...
 

Function Documentation

QDB_API_LINKAGE qdb_error_t qdb_ts_batch_copy_buffer ( qdb_batch_table_t  table,
const void *  source_buffer,
qdb_size_t  source_buffer_size,
const void **  dest_buffer 
)

Copy efficiently a buffer that will live until the next push. Useful to avoid tracking temporary blob or string lifetimes.

Parameters
tableA valid batch table previously initialized by qdb_ts_batch_table_init.
source_bufferA valid pointer to the buffer you want to copy.
source_buffer_sizeThe buffer size.
[out]dest_bufferA pointer to access the copied buffer.
Returns
A qdb_error_t code indicating success or failure.