|
quasardb C API
|
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 numeric integer values. More... | |
| struct | qdb_ts_column_info_t |
| Description of a time series column. 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... | |
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) (pt.value.tv_sec == qdb_min_time && pt.value.tv_nsec == qdb_min_time) |
| 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 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. | |
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 = 16, qdb_agg_abs_max = 17, 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 } |
| 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 } |
| Types of time series columns. More... | |
Functions | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_create (qdb_handle_t handle, const char *alias, qdb_uint_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_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_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_shard_size (qdb_handle_t handle, const char *alias, qdb_uint_t *shard_size) |
| Returns the shard size 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_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_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_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_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_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_set_double (qdb_local_table_t table, qdb_size_t column_index, double value) |
| Set a value in the current row in a column of doubles indicated by the given index. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_int64 (qdb_local_table_t table, qdb_size_t column_index, qdb_int_t value) |
| Set a value in the current row in a column of integers indicated by the given index. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_timestamp (qdb_local_table_t table, qdb_size_t column_index, const qdb_timespec_t *value) |
| Set a value in the current row in a column of timestamps indicated by the given index. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_blob (qdb_local_table_t table, qdb_size_t column_index, const void *content, qdb_size_t content_length) |
| Set a value in the current row in a column of blobs indicated by the given index, copy data. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_blob_no_copy (qdb_local_table_t table, qdb_size_t column_index, const void *content, qdb_size_t content_length) |
| Set a value in the current row in a column of blobs indicated by the given index without copying data. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_string (qdb_local_table_t table, qdb_size_t column_index, const char *content, qdb_size_t content_length) |
| Set a value in the current row in a column of strings indicated by the given index, copy data. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_row_set_string_no_copy (qdb_local_table_t table, qdb_size_t column_index, const char *content, qdb_size_t content_length) |
| Set a value in the current row in a column of strings indicated by the given index without copying data. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_table_row_append (qdb_local_table_t table, const qdb_timespec_t *timestamp, qdb_size_t *row_index) |
| Append current row to the outcoming data buffer. More... | |
| QDB_API_LINKAGE qdb_error_t | qdb_ts_push (qdb_local_table_t table) |
| Push all the appended rows to the database. 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_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 qdb_id_t *reference) |
| 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... | |
1.8.5