FAVE-SPI
FLAM Anti Virus Exit (FAVE) Service Provider Interface (SPI) Version: 5.2.1-42969

Table element types (see: FLMMAT_TYP_TABELM). More...

Macros

#define FLMELM_FLAG_NULLID   0x01000000U
 Flag for null indication.
#define FLMELM_FLAG_EMPTID   0x02000000U
 Flag for empty indication.
#define FLMELM_TYPTAB_NONE   0x00000000U
 No element type.
#define FLMELM_TYPTAB_BINARY   0x00000001U
 Binary element type.
#define FLMELM_TYPTAB_STRING   0x00000002U
 String element type.
#define FLMELM_TYPTAB_INTEGER   0x00000003U
 Integer element type.
#define FLMELM_TYPTAB_FLOAT   0x00000004U
 Float element type.
#define FLMELM_TYPTAB_INT64   0x00000005U
 Int64 element type.
#define FLMELM_TYPTAB_DATE   0x00000006U
 Date/timestamp element type.
#define FLMELM_TYPTAB_DETECT   0x00000009U
 Auto-detect column type from data (type.detect()).
#define FLMELM_TYPTAB_HEADER   0x0000000AU
 Table header element type.

Detailed Description

Table element types (see: FLMMAT_TYP_TABELM).

A table matrix consists of a number of different element types of which each reflects the data type of the column. Additional bits in the second byte are used for different kind of attributes (e.g. tag of an TLV). The attribute length are encoded in the high oder 2 bytes\0.

Macro Definition Documentation

◆ FLMELM_FLAG_EMPTID

#define FLMELM_FLAG_EMPTID   0x02000000U

Flag for empty indication.

This flag is added to each element to indicate a default value for an empty data item (e.g. a integer string of length 0 replaced by a default value (e.g. 0)).

◆ FLMELM_FLAG_NULLID

#define FLMELM_FLAG_NULLID   0x01000000U

Flag for null indication.

This flag are add to each element to indicate a default value for an optional item that was not part of the data.

◆ FLMELM_TYPTAB_BINARY

#define FLMELM_TYPTAB_BINARY   0x00000001U

Binary element type.

A binary data type is a black box for each kind of data in a certain length. The external representation can be different encodings. Internally representation if always the binary form.

◆ FLMELM_TYPTAB_DATE

#define FLMELM_TYPTAB_DATE   0x00000006U

Date/timestamp element type.

A date or timestamp value read from an external representation (string, BCD zoned/packed, binary integer, or C/Java memory type) and written as an ISO-8601 formatted UTF-8 string. The INFMT pattern controls how the input bytes are decoded; OUTFMT controls the output string layout (default: auto-derived from INFMT tokens, typically YYYY-MM-DD).

The pipeline PAYLOAD of a date is ISO-8601 text in UTF-8, but the element keeps its own type tag FLMELM_TYPTAB_DATE – it is not neutralised to FLMELM_TYPTAB_STRING. A consumer that reconstructs the element type from a stored column type (FLMMAT, i.e. the FLAM5 archive) therefore sees the same tag that FMTTAB emits, which is what makes an archive round-trip of a date column work.

Because the payload is text, STRING and DATE are accepted interchangeably where an element meets a column: a date is always a valid string, while a string is only a valid date if it really is one. Validating that is the job of the date converter (DATCNV), not of the type check – a non-date is refused there rather than silently written.

◆ FLMELM_TYPTAB_DETECT

#define FLMELM_TYPTAB_DETECT   0x00000009U

Auto-detect column type from data (type.detect()).

Marker type set by the COB2ROW converter and the type.detect() CLP syntax to flag a column for atomic type-detection (TYPDET) at read time. FMTTAB resolves each DETECT column to its actual type before invoking the column converter. No write-side conversion exists for this type.

◆ FLMELM_TYPTAB_FLOAT

#define FLMELM_TYPTAB_FLOAT   0x00000004U

Float element type.

A float data type is a byte array in a certain length. The external representation can be in different encodings (IEEE, BCD, string). The internal representation is a hidden complex data structure (black box).

◆ FLMELM_TYPTAB_HEADER

#define FLMELM_TYPTAB_HEADER   0x0000000AU

Table header element type.

This is a special element type to detect a table header in a element list of tables. Each table starts with a CLP string containing the table name and a list of column names. The names can have optional different kind of path variants preceded to support XML and other hierarchical data formats. And the name can be appended optional the DTL for this column in parenthesis. Such a row specification all the information needed to reproduce the data.

The high order 24 bit contains additional the column count for this table. The low order 8 bit contain this this value. The column count can be used to determine the records by this amount of elements.

This is the maximum type for the matrix type EMLTAB.

◆ FLMELM_TYPTAB_INT64

#define FLMELM_TYPTAB_INT64   0x00000005U

Int64 element type.

The Int64 data type is a 64 bit value in two's complement (with sign) which is encoded neutrally as big-endian. The external representation can be in different encodings (two's complement, BCD, string).

◆ FLMELM_TYPTAB_INTEGER

#define FLMELM_TYPTAB_INTEGER   0x00000003U

Integer element type.

A integer data type is a byte array in a certain length. The external representation can be in different encodings (two's complement, BCD, string). The internal representation is a hidden complex data structure (black box).

◆ FLMELM_TYPTAB_NONE

#define FLMELM_TYPTAB_NONE   0x00000000U

No element type.

This element type contains elements which are only parsed from a row. There is no data type defined, it is simply a part (blob) from a row. This element type is handled like a binary element at write.

Attention: The net data of table element list are only consists of such elements.

◆ FLMELM_TYPTAB_STRING

#define FLMELM_TYPTAB_STRING   0x00000002U

String element type.

A string data type is a character array in a certain length. The external representation can be in different encodings (character sets). The internal representation if always Unicode in UTF-8.