123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- /* Copyright HCL Technologies Ltd. 2017. All Rights Reserved. */
- /****************************************************************************/
- /* */
- /* Licensed Materials - Property of IBM */
- /* */
- /* "Restricted Materials of IBM" */
- /* */
- /* IBM Informix TimeSeries DataBlade */
- /* (c) Copyright IBM Corporation 1996-2014 All rights reserved. */
- /* */
- /****************************************************************************/
- /* Title: tseries.h
- *
- * Public header for time series
- */
- #ifndef _TSERIES_H_
- #define _TSERIES_H_
- #include "mi.h"
- #define TS_API_VERSION 1
- typedef struct _ts_tscan ts_tscan;
- typedef mi_lvarchar ts_timeseries;
- typedef struct _ts_tselem MI_FAR *ts_tselem;
- typedef struct _ts_tsdesc ts_tsdesc;
- # ifndef _TS_AM_H_
- typedef struct _ts_elem_desc_struc TS_ELEM_DESC;
- /* defines for compares */
- # define TS_LT 1
- # define TS_LE 2
- # define TS_EQ 3
- # define TS_GE 4
- # define TS_GT 5
- /* defines for return values */
- # define TS_ERROR -1
- # define TS_SUCCESS 0
- # define TS_HAVE_DUP 1
- /* args for writing */
- # define TS_PUT_PUT 1
- # define TS_PUT_INSERT 2
- # define TS_PUT_UPDATE 3
- # define TS_PUT_DELETE 4
- # define TS_PUT_NODUPS 5
- # endif
- # ifndef _TS_AMDESC_H_
- typedef struct _ts_amdesc ts_amdesc;
- # endif
- typedef struct _ts_typeinfo {
- MI_TYPEID *ti_typeid; /* type oid */
- mi_integer ti_typelen; /* internal length */
- mi_smallint ti_typealign; /* internal alignment */
- mi_smallint ti_typebyvalue; /* internal byvalue flag */
- mi_integer ti_typebound; /* internal bound */
- mi_integer ti_typeparameter; /* internal parameter */
- mi_string MI_FAR *ti_typename; /* name of the type */
- } ts_typeinfo;
- /*
- * flags which may be passed to ts_begin_scan
- */
- #define TS_OUTPUT_BSON_TO_JSON 0x0800 /* output json instead of bson */
- #define TS_SCAN_DISCREET 0x0400
- #define TS_SCAN_HIDDEN 0x0200
- #define TS_SCAN_EXACT_START 0x0100
- #define TS_SCAN_EXACT_END 0x0080
- #define TS_SCAN_FIRST 0x0040 /* used internally */
- #define TS_SCAN_NO_NULLS 0x0020
- #define TS_SCAN_SKIP_END 0x0010
- #define TS_SCAN_SKIP_BEGIN 0x0008
- #define TS_SCAN_SKIP_HIDDEN 0x0004
- #define TS_SCAN_ALL_FLAGS (TS_SCAN_SKIP_HIDDEN | TS_SCAN_SKIP_BEGIN | TS_SCAN_SKIP_END | TS_SCAN_NO_NULLS | TS_SCAN_EXACT_END | TS_SCAN_EXACT_START | TS_SCAN_HIDDEN | TS_SCAN_DISCREET | TS_OUTPUT_BSON_TO_JSON)
- /*
- * Possible returns from ts_next
- */
- #define TS_SCAN_EOS 0x1
- #define TS_SCAN_NULL 0x2
- #define TS_SCAN_ELEM 0x4
- /*
- * flags which may be passed to ts_create
- */
- #define TS_CREATE_IRR 0x01
- #define TS_CREATE_IRR_HERTZ 0x02
- #define TS_CREATE_IRR_COMPRESS 0x04
- /*
- * flags returned in the null pointer argument to
- * ts_elem, ts_last_elem, ts_first_elem, etc...
- */
- #define TS_NULL_NOTALLOCED 0x01
- #define TS_NULL_HIDDEN 0x02
- /* idsdb00493927: ensure the macro returns 0 for false and 1 for true */
- #define TS_ELEM_HIDDEN(isnull) ((mi_boolean) ((((mi_integer) (isnull)) & TS_NULL_HIDDEN) ? MI_TRUE : MI_FALSE))
- #define TS_ELEM_NULL(isnull) ((mi_boolean) ((((mi_integer) (isnull)) & TS_NULL_NOTALLOCED) ? MI_TRUE : MI_FALSE))
- /*
- * flags for ts_closest_elem function
- */
- #define TS_CLOSEST_NO_FLAGS 0x0
- #define TS_CLOSEST_RETNULLS_FLAGS 0x40
- /* values for ts_get_flags() */
- #define TSFLAGS_IRR 0x01
- #define TSFLAGS_INMEM 0x02
- #define TSFLAGS_ASSIGNED 0x04
- #define TSFLAGS_UPGRADE_XC1_XC4 0x08
- #define TSFLAGS_PACKED 0x10 /* packed elements (compressed or hertz) */
- #define TSFLAGS_COMPRESSED 0x20 /* compressed elements */
- #define TSFLAGS_HERTZ 0x40 /* hertz elements */
- #define TSFLAGS_PACKEDV2 0x80 /* version 2 of compressed and hertz */
- #define TSFLAGS_HERTZ_HIGHBITS 0x700 /* hertz range from 256->2047 */
- /* values for ts_container_lock_sql() */
- #define TS_SHARED 0x0
- #define TS_EXCLUSIVE 0x1
- /* values for flags passed to ts_open */
- #define TSOPEN_RDWRITE 0x0000
- #define TSOPEN_READ_HIDDEN 0x0001
- #define TSOPEN_WRITE_HIDDEN 0x0002
- #define TSOPEN_WRITE_AND_HIDE 0x0004
- #define TSOPEN_WRITE_AND_REVEAL 0x0008
- #define TSOPEN_READ_ONLY 0x0010
- #define TSOPEN_NO_NULLS 0x0020
- #define TSOPEN_DISCREET 0x0040
- #define TSOPEN_REDUCED_LOG_INTERNAL 0x0080
- #define TSOPEN_REDUCED_LOG 0x0100
- #define TSOPEN_PACKED_FLUSH 0x0200
- #define TSOPEN_WRITE_FLAGS (TSOPEN_WRITE_AND_HIDE | TSOPEN_WRITE_AND_REVEAL | TSOPEN_WRITE_HIDDEN)
- #define TSOPEN_ALL_FLAGS (TSOPEN_WRITE_AND_HIDE | TSOPEN_READ_HIDDEN | TSOPEN_WRITE_AND_REVEAL | TSOPEN_READ_ONLY | TSOPEN_WRITE_HIDDEN | TSOPEN_NO_NULLS | TSOPEN_DISCREET | TSOPEN_REDUCED_LOG_INTERNAL | TSOPEN_REDUCED_LOG | TSOPEN_PACKED_FLUSH)
- /* allowable interval arguments to ts_tstamp_{plus,minus,difference} funcs */
- #define TS_SECOND 30
- #define TS_MINUTE 40
- #define TS_HOUR 50
- #define TS_DAY 60
- #define TS_WEEK 70
- #define TS_MONTH 80
- #define TS_YEAR 90
- /*
- * heuristic flags raised when timeseries has element
- * deleted.
- */
- #define TSFLAGS_DEL 0x4
- #define TS_IS_IRREGULAR(ts) ((mi_boolean) ts_get_flags(ts) & TSFLAGS_IRR)
- #define TS_IS_INCONTAINER(ts) ((mi_boolean) !(ts_get_flags(ts) & TSFLAGS_INMEM))
- #define TS_MAX_ELEM_SIZE (0x8000 - 64)
- EXTERNC_BEGIN
- /*
- * functions that operate directly on, or produce,
- * timeseries.
- */
- #include "ts_pubprotos.h"
- EXTERNC_END
- #endif
|