123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- /*
- *
- * Licensed Materials - Property of IBM and/or HCL
- *
- * IBM Informix TimeSeries DataBlade
- * (c) Copyright IBM Corporation 1996, 2013
- * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
- *
- */
- /* Title: ts_pubprotos.h
- *
- * Public header for time series public procedure prototypes.
- *
- * This header is not stand-alone. It is designed to be included
- * indirectly through tseries.h.
- */
- #ifndef _TS_PUBPROTOS_H_
- #define _TS_PUBPROTOS_H_
- mi_integer ts_datetime_cmp( mi_datetime *tstamp1, mi_datetime *tstamp2);
- mi_datetime *
- ts_make_stamp(MI_CONNECTION * conn, mi_datetime * ts, mi_integer year, mi_integer month, mi_integer day, mi_integer hour, mi_integer minute, mi_integer second, mi_integer ms);
- void
- ts_get_stamp_fields(MI_CONNECTION * conn, mi_datetime * ts, mi_integer * year, mi_integer * month, mi_integer * day, mi_integer * hour, mi_integer * minute, mi_integer * second, mi_integer * ms);
- ts_tscan *ts_begin_scan(ts_tsdesc *tsdesc, mi_integer flags, mi_datetime *start, mi_datetime *end);
- mi_integer ts_next(ts_tscan *tscan, ts_tselem *tselem);
- mi_integer ts_current_offset(ts_tscan *tscan);
- mi_datetime *ts_current_timestamp(ts_tscan *tscan);
- MI_DATUM ts_get_col_by_name(ts_tsdesc *tsdesc, ts_tselem tselem, mi_string *colname, mi_boolean *isNull, mi_integer off);
- MI_DATUM ts_get_col_by_number(ts_tsdesc *tsdesc, ts_tselem tselem, mi_integer colnumber, mi_boolean *isNull, mi_integer off);
- void ts_end_scan(ts_tscan *tscan);
- ts_timeseries *ts_create(MI_CONNECTION *conn, mi_string *calname, mi_datetime *origin, mi_integer threshold, mi_integer flags, MI_TYPEID *ts_typeid, mi_integer nelems, mi_string *container, ...);
- ts_timeseries *ts_create_with_metadata(MI_CONNECTION * conn, mi_string * calname, mi_datetime * origin, mi_integer threshold, mi_integer flags, MI_TYPEID * ts_typeid, mi_integer nelems, mi_string *container, mi_lvarchar *metadata, MI_TYPEID *metadata_typeid, ...);
- ts_timeseries *ts_create_with_rowdesc(MI_CONNECTION *conn, ts_timeseries *ts, MI_ROW_DESC *rowdesc, mi_integer flags, mi_datetime * orig_stamp, mi_integer thresh, mi_integer hertz, mi_string * container, mi_integer nelems, mi_lvarchar *ts_metadata, MI_TYPEID *meta_typeid);
- ts_timeseries *ts_create_with_tsdesc(MI_CONNECTION *conn, ts_tsdesc *tsdesc, mi_integer flags, mi_datetime * orig_stamp, mi_integer thresh, mi_integer hertz, mi_string * container, mi_integer nelems, mi_lvarchar *ts_metadata, MI_TYPEID *meta_typeid);
- ts_tsdesc *ts_open(MI_CONNECTION *conn, ts_timeseries *ts, MI_TYPEID *type_id, mi_integer flags);
- void ts_close(ts_tsdesc *tsdesc);
- ts_timeseries *ts_update_metadata(ts_timeseries *ts, mi_lvarchar *metadata, MI_TYPEID *metadata_typeid);
- mi_lvarchar *ts_get_metadata(ts_timeseries *ts, MI_TYPEID **metadata_typeid);
- ts_timeseries *ts_put_last_elem(ts_tsdesc *tsdesc, ts_tselem tselem);
- ts_timeseries *ts_put_nth_elem(ts_tsdesc *tsdesc, ts_tselem tselem, mi_integer n);
- ts_timeseries *ts_put_elem(ts_tsdesc *tsdesc, ts_tselem tselem, mi_datetime *tstamp);
- ts_timeseries *ts_put_elem_no_dups(ts_tsdesc *tsdesc, ts_tselem tselem, mi_datetime *tstamp);
- ts_timeseries *ts_hide_elem(ts_tsdesc *tsdesc, mi_datetime *tstamp);
- ts_timeseries *ts_reveal_elem(ts_tsdesc *tsdesc, mi_datetime *tstamp);
- ts_timeseries *ts_ins_elem(ts_tsdesc *tsdesc, ts_tselem tselem, mi_datetime *tstamp);
- ts_timeseries *ts_upd_elem(ts_tsdesc *tsdesc, ts_tselem tselem, mi_datetime *tstamp);
- ts_timeseries *ts_del_elem(ts_tsdesc *tsdesc, mi_datetime *tstamp);
- ts_tselem ts_nth_elem(ts_tsdesc *tsdesc, mi_integer N, mi_integer *isNull);
- ts_tselem ts_last_elem(ts_tsdesc *tsdesc, mi_integer *isNull, mi_integer *off);
- ts_tselem ts_first_elem(ts_tsdesc *tsdesc, mi_integer *isNull);
- ts_tselem ts_elem(ts_tsdesc *tsdesc, mi_datetime *tstamp, mi_integer *isNull, mi_integer *off);
- mi_integer ts_index(ts_tsdesc *tsdesc, mi_datetime *tstamp);
- mi_datetime *ts_time(ts_tsdesc *tsdesc, mi_integer N);
- mi_integer ts_nelems(ts_tsdesc *tsdesc);
- ts_timeseries *ts_get_ts(ts_tsdesc *tsdesc);
- ts_tselem ts_make_elem_rowdesc(ts_tsdesc *tsdesc, MI_DATUM *values, mi_boolean *nulls, mi_integer *off, MI_ROW_DESC *rowdesc);
- ts_tselem ts_make_elem(ts_tsdesc *tsdesc, MI_DATUM *values, mi_boolean *nulls, mi_integer *off);
- void ts_get_all_cols(ts_tsdesc *tsdesc, ts_tselem tselem, MI_DATUM * values, mi_boolean *nulls, mi_integer off);
- ts_tselem
- ts_row_to_elem( ts_tsdesc *tsdesc,
- MI_ROW *row,
- mi_integer *offset_ptr);
- void
- ts_free_elem( ts_tsdesc *tsdesc,
- ts_tselem elem);
- MI_ROW *
- ts_elem_to_row( ts_tsdesc *tsdesc,
- ts_tselem elem,
- mi_integer off);
- ts_tselem
- ts_make_elem_with_buf(ts_tsdesc * tsdesc,
- MI_DATUM * values,
- mi_boolean * nulls,
- mi_integer *off,
- ts_tselem elem);
- ts_timeseries *ts_copy(MI_CONNECTION *conn, ts_timeseries *ts, MI_TYPEID *type_id);
- void ts_free(ts_timeseries *ts);
- mi_integer ts_col_id(ts_tsdesc *tsdesc, mi_string *colname);
- mi_string *ts_get_calname(ts_timeseries *ts);
- mi_integer ts_get_threshold(ts_timeseries *ts);
- mi_int1 ts_get_hertz(ts_timeseries *ts);
- mi_integer ts_get_packed(ts_timeseries *ts);
- mi_lvarchar *ts_get_compression(ts_timeseries *ts);
- MI_TYPEID *ts_get_typeid(MI_CONNECTION *conn, ts_timeseries *ts);
- mi_integer ts_col_cnt(ts_tsdesc *tsdesc);
- ts_typeinfo *ts_colinfo_number(ts_tsdesc *tsdesc, mi_integer id);
- ts_typeinfo *ts_colinfo_name(ts_tsdesc *tsdesc, mi_string *colname);
- ts_tselem ts_closest_elem(ts_tsdesc *tsdesc, mi_datetime *tstamp, mi_string *cmp, mi_string *col_list, mi_integer flags, mi_integer *isNull, mi_integer *off);
- ts_tselem ts_next_valid(ts_tsdesc *tsdesc, mi_datetime *tstamp, mi_integer *isNull, mi_integer *off);
- ts_tselem ts_previous_valid(ts_tsdesc *tsdesc, mi_datetime *tstamp, mi_integer *isNull, mi_integer *off);
- ts_tselem ts_last_valid(ts_tsdesc *tsdesc, mi_datetime *tstamp, mi_integer *isNull, mi_integer *off);
- ts_timeseries *ts_put_ts(ts_tsdesc *tsdesc1, ts_tsdesc *tsdesc2, mi_boolean nodups);
- mi_integer ts_get_flags(ts_timeseries *ts);
- mi_datetime *ts_get_origin(ts_timeseries *ts);
- mi_string *ts_get_containername(ts_timeseries *ts);
- mi_datetime * ts_cal_startdate(MI_CONNECTION *conn, mi_string *cal_name);
- mi_datetime * ts_cal_pattstartdate(MI_CONNECTION *conn, mi_string *cal_name);
- mi_datetime *ts_cal_stamp(MI_CONNECTION *conn, mi_string *cal_name, mi_datetime *origin, mi_integer offset);
- mi_integer ts_cal_index(MI_CONNECTION *conn, mi_string *cal_name, mi_datetime *origin, mi_datetime *stamp);
- MI_COLLECTION *ts_cal_range(MI_CONNECTION *conn, mi_string *cal_name, mi_datetime *origin, mi_datetime *stamp);
- MI_COLLECTION *ts_cal_range_index(MI_CONNECTION *conn, mi_string *cal_name, mi_datetime *origin, mi_integer offset);
- mi_datetime *
- ts_tstamp_plus(mi_datetime * startdate, mi_integer cnt,
- mi_integer interval, mi_datetime * result);
- mi_datetime *
- ts_tstamp_minus(mi_datetime * startdate, mi_integer cnt,
- mi_integer interval, mi_datetime * result);
- mi_integer
- ts_tstamp_difference(mi_datetime * dt2_orig, mi_datetime *dt1_orig,
- mi_integer interval);
- ts_tselem
- ts_get_non_null( ts_tsdesc *tsdesc,
- mi_datetime *timestamp,
- mi_string *column_name_str,
- mi_boolean forward,
- mi_integer *offset_ptr);
- ts_amdesc *
- ts_am_open_container(MI_CONNECTION *conn,
- mi_integer partition_id,
- mi_bigint inst_id,
- mi_integer col_count,
- mi_string *cont_name,
- mi_integer flags);
- ts_amdesc *
- ts_am_change_inst(MI_CONNECTION *conn,
- ts_amdesc *amdesc,
- mi_integer partition_id,
- mi_bigint inst_id,
- mi_integer col_count);
- void
- ts_am_close_container(ts_amdesc *amdesc);
- ts_tselem
- ts_am_elem_init(MI_CONNECTION *conn,
- MI_ROW_DESC *rowdesc,
- TS_ELEM_DESC **elem_desc,
- MI_TYPEID *subtype);
- MI_ROW *
- ts_am_elem_to_row(MI_CONNECTION *conn,
- TS_ELEM_DESC *elem_desc,
- MI_ROW_DESC *rowdesc,
- ts_tselem elem,
- mi_integer off);
- ts_tselem
- ts_am_make_elem(MI_CONNECTION *conn,
- TS_ELEM_DESC *elem_desc,
- ts_tselem elem,
- MI_DATUM * values,
- mi_boolean * nulls);
- void
- ts_am_free_elem(MI_CONNECTION *conn,
- ts_tselem elem,
- TS_ELEM_DESC *elem_desc);
- MI_DATUM
- ts_am_column_by_number( MI_CONNECTION *conn,
- TS_ELEM_DESC * elem_desc,
- ts_tselem tselem,
- mi_integer colnumber,
- mi_boolean * isNull);
- mi_integer
- ts_am_write_container(ts_amdesc *amdesc,
- mi_datetime *tstamp,
- ts_tselem elem,
- mi_integer type,
- mi_integer ts_offset,
- mi_integer calid);
- TS_ELEM_DESC *
- ts_am_get_elem_desc( MI_ROW_DESC *row_desc,
- MI_CONNECTION *conn);
- void
- ts_am_read_container(ts_amdesc *amdesc,
- mi_datetime *tstamp,
- mi_integer *isNull,
- mi_integer cmp,
- ts_tselem elem,
- mi_integer ts_offset,
- mi_integer calid);
- void
- ts_vtam_create_helper(mi_lvarchar *vtab_name_lv,
- mi_lvarchar *base_tab_name_lv,
- mi_lvarchar *new_ts,
- mi_integer ts_scan_mode,
- mi_lvarchar *tscol_name_lv);
- #endif
|