const short FLAG_AUTO_INCREMENT = 1;
const short FLAG_CASE_SENSITIVE = 2;
const short FLAG_CURRENCY = 4;
const short FLAG_SEARCHABLE = 8;
const short FLAG_UNSIGNED = 16;
const short NULLABLE_NO = 0;
const short NULLABLE_UNKNOWN = 2;
const short NULLABLE_YES = 1;
const long ROW_DELETED = 1;
const long ROW_INSERTED = 2;
const long ROW_UPDATED = 3;
const short TYPE_BINARY = 1;
const short TYPE_BOOLEAN = 3;
const short TYPE_BYTE = 11;
const short TYPE_DATE = 17;
const short TYPE_DATE_TIME = 19;
const short TYPE_DECIMAL = 6;
const short TYPE_DOUBLE = 5;
const short TYPE_DURATION = 16;
const short TYPE_FLOAT = 4;
const short TYPE_INT = 9;
const short TYPE_INTEGER = 7;
const short TYPE_JAVA_OBJECT = 20;
const short TYPE_LONG = 8;
const short TYPE_NULL = 0;
const short TYPE_SHORT = 10;
const short TYPE_STRING = 2;
const short TYPE_TIME = 18;
const short TYPE_UNSIGNED_BYTE = 15;
const short TYPE_UNSIGNED_INT = 13;
const short TYPE_UNSIGNED_LONG = 12;
const short TYPE_UNSIGNED_SHORT = 14;
const short WRITABLE_NO = 0;
const short WRITABLE_UNKNOWN = 2;
const short WRITABLE_YES = 1;
union AnyValue switch (short) { case TYPE_NULL: short nullValue; case TYPE_BINARY: XDT::Binary binaryValue; case TYPE_STRING: string stringValue; case TYPE_BOOLEAN: boolean booleanValue; case TYPE_FLOAT: float floatValue; case TYPE_DOUBLE: double doubleValue; case TYPE_DECIMAL: XDT::Decimal decimalValue; case TYPE_INTEGER: XDT::Integer integerValue; case TYPE_LONG: XDT::LongInt longValue; case TYPE_INT: XDT::Int intValue; case TYPE_SHORT: XDT::ShortInt shortValue; case TYPE_BYTE: XDT::Byte byteValue; case TYPE_UNSIGNED_LONG: XDT::UnsignedLong unsignedLongValue; case TYPE_UNSIGNED_INT: XDT::UnsignedInt unsignedIntValue; case TYPE_UNSIGNED_SHORT: XDT::UnsignedShort unsignedShortValue; case TYPE_UNSIGNED_BYTE: XDT::UnsignedByte unsignedByteValue; case TYPE_DURATION: XDT::Duration durationValue; case TYPE_DATE: XDT::Date dateValue; case TYPE_TIME: XDT::Time timeValue; case TYPE_DATE_TIME: XDT::DateTime dateTimeValue; case TYPE_JAVA_OBJECT: XDT::JavaObject javaObjectValue; };
typedef sequence < XDT::AnyValue > AnyValueSeq;
typedef sequence < octet > Binary;
struct BinaryValue { XDT::Binary value; boolean isNull; };
typedef octet Byte;
struct ByteValue { XDT::Byte value; boolean isNull; };
The Column
type holds row set meta-data for a single column.
struct Column { short type; short flags; string name; string label; long sqlType; XDT::List enumeration; short displaySize; short isNullable; short isWritable; short precision; short scale; XDT::Properties props; };
The fields are defined as:
Field | Description | Legal Values |
---|---|---|
type | XDT type | (see union AnyValue) |
flags | Sum of zero or more flag values | FLAG_AUTO_INCREMENT, FLAG_CASE_SENSITIVE, FLAG_CURRENCY, FLAG_SEARCHABLE, FLAG_UNSIGNED |
name | Column name | (may be empty) |
label | Display label | (may be empty) |
sqlType | JDBC/XOPEN SQL type | zero (unknown / unspecified) or see java.sql.Types.* constants |
enumeration | List of allowable values | (empty list means unspecified) |
displaySize | Normal maximum width in characters | zero (unknown / unspecified) or positive |
isNullable | Are column values nullable? | NULLABLE_NO, NULLABLE_YES, NULLABLE_UNKNOWN |
isWritable | Are column values writable? | WRITABLE_NO, WRITABLE_YES, WRITABLE_UNKNOWN |
precision | Maximum number of decimal digits | zero (not applicable / unknown / unspecified) or positive |
scale | Maximum number of decimal digits in the fractional part | zero or positive, ignored if precision is zero |
props | Additional meta-data | (see below) |
Additional meta-data is optionally specified using pre-defined and user-defined properties. The pre-defined properties are:
Name | Type | Value |
---|---|---|
xsdType | TYPE_STRING | (see XML Schema Part 2 - Datatypes) |
length | (any integer type) | (see XML Schema Part 2 - Datatypes) |
maxLength | (any integer type) | (see XML Schema Part 2 - Datatypes) |
minLength | (any integer type) | (see XML Schema Part 2 - Datatypes) |
maxExclusive | (column type) | (see XML Schema Part 2 - Datatypes) |
maxInclusive | (column type) | (see XML Schema Part 2 - Datatypes) |
minExclusive | (column type) | (see XML Schema Part 2 - Datatypes) |
minInclusive | (column type) | (see XML Schema Part 2 - Datatypes) |
pattern | TYPE_STRING | (see XML Schema Part 2 - Datatypes) |
whiteSpace | TYPE_STRING | (see XML Schema Part 2 - Datatypes) |
javaClassName | TYPE_STRING | (see java.sql.RowSetMetaData.getColumnClassName) |
sqlCatalogName | TYPE_STRING | (see java.sql.RowSetMetaData.getCatalogName) |
sqlSchemaName | TYPE_STRING | (see java.sql.RowSetMetaData.getSchemaName) |
sqlTableName | TYPE_STRING | (see java.sql.RowSetMetaData.getTableName) |
sqlTypeName | TYPE_STRING | (see java.sql.RowSetMetaData.getColumnTypeName) |
typedef sequence < XDT::Column > ColumnSeq;
struct Date { XDT::DateInfo datePart; XDT::ZoneInfo timeZone; };
struct DateInfo { long year; octet month; octet day; };
struct DateTime { XDT::DateInfo datePart; XDT::TimeInfo timePart; XDT::ZoneInfo timeZone; };
struct DateTimeValue { XDT::DateTime value; boolean isNull; };
struct DateValue { XDT::Date value; boolean isNull; };
struct Decimal { XDT::Binary value; };
struct DecimalValue { XDT::Decimal value; boolean isNull; };
struct Duration { boolean negative; long years; long months; long days; long hours; long minutes; long seconds; XDT::Decimal fsec; };
struct DurationValue { XDT::Duration value; boolean isNull; };
typedef long Int;
struct Integer { XDT::Binary value; };
struct IntegerValue { XDT::Integer value; boolean isNull; };
struct IntValue { XDT::Int value; boolean isNull; };
struct JavaObject { XDT::Binary value; };
struct List { XDT::AnyValueSeq item; };
typedef long long LongInt;
struct LongValue { XDT::LongInt value; boolean isNull; };
struct Map { XDT::MapEntrySeq item; };
struct MapEntry { XDT::AnyValue key; XDT::AnyValue value; };
typedef sequence < XDT::MapEntry > MapEntrySeq;
struct Properties { XDT::PropertySeq item; };
struct Property { string name; XDT::AnyValue value; };
typedef sequence < XDT::Property > PropertySeq;
The Row
type holds row set data for a single row.
struct Row { long rowStatus; XDT::AnyValueSeq oldValues; XDT::AnyValueSeq newValues; XDT::Properties props; };
typedef sequence < XDT::Row > RowSeq;
The RowSet
type holds row set data and meta-data.
struct RowSet { XDT::Properties props; XDT::ColumnSeq columns; XDT::RowSeq rows; };
Row sets can hold original, deleted, inserted, and updated rows.
The meta-data at all levels (row set, row and column) is extensible.
struct Set { XDT::AnyValueSeq item; };
typedef short ShortInt;
struct ShortValue { XDT::ShortInt value; boolean isNull; };
struct StringValue { string value; boolean isNull; };
struct Time { XDT::TimeInfo timePart; XDT::ZoneInfo timeZone; };
struct TimeInfo { octet hour; octet minute; octet second; XDT::Decimal fsec; };
Deprecated. Use DateTime.
struct TimeInstant { XDT::DateInfo datePart; XDT::TimeInfo timePart; XDT::ZoneInfo timeZone; };
struct TimeValue { XDT::Time value; boolean isNull; };
typedef octet UnsignedByte;
struct UnsignedByteValue { XDT::UnsignedByte value; boolean isNull; };
typedef unsigned long UnsignedInt;
struct UnsignedIntValue { XDT::UnsignedInt value; boolean isNull; };
typedef unsigned long long UnsignedLong;
struct UnsignedLongValue { XDT::UnsignedLong value; boolean isNull; };
typedef unsigned short UnsignedShort;
struct UnsignedShortValue { XDT::UnsignedShort value; boolean isNull; };
struct ZoneInfo { short offset; };