Hitachi

Hitachi Advanced Database Application Development Guide


7.6.3 Overflow handling

This subsection discusses the possibility of overflow when a setXXX or getXXX method is executed.

Organization of this subsection

(1) Possibility of overflow when a setXXX method (other than the setObject method) is executed

The following table shows whether overflow might occur when a setXXX method (other than the setObject method) is executed.

Table 7‒11: Possibility of overflow when a setXXX method (other than the setObject method) is executed

Method executed

HADB data type

SML

INT

DBL PREC

DCML

CHAR, VCHR

DATE#

TIME#

TSTMP#

ROW

BIN, VARBIN

setByte

N

N

N

Y

N

--

--

--

--

--

setShort

N

N

N

Y

N

--

--

--

--

--

setInt

N

N

N

Y

N

--

--

--

--

--

setLong

Y

N

N

Y

N

--

--

--

--

--

setFloat

Y

Y

N

Y

N

--

--

--

--

--

setDouble

Y

Y

N

Y

N

--

--

--

--

--

setBigDecimal

Y

Y

N

Y

N

--

--

--

--

--

setBoolean

N

N

N

N

N

--

--

--

--

--

setString

Y

Y

N

Y

N

Y

N

Y

--

N

setBytes

--

--

--

--

--

--

--

--

N

N

setDate

--

--

--

--

N

Y

N

Y

--

--

setTime

--

--

--

--

N

--

N

Y

--

--

setTimestamp

--

--

--

--

N

Y

N

Y

--

--

setAsciiStream

--

--

--

--

N

--

--

--

--

N

setBinaryStream

--

--

--

--

N

--

--

--

--

N

setCharacterStream

--

--

--

--

N

--

--

--

--

N

Legend:

SML: SMALLINT

INT: INTEGER

DBL PREC: DOUBLE PRECISION

DCML: DECIMAL

VCHR: VARCHAR

TSTMP: TIMESTAMP

BIN: BINARY

VARBIN: VARBINARY

N: Overflow does not occur regardless of the value.

Y: Overflow might occur depending on the value.

--: Combination that is not allowed.

#

Overflow occurs when the value obtained by the getTime method of the java.sql.Date, java.sql.Time, or java.sql.Timestamp class is an object larger than 253,402,268,399,999 or smaller than -62,135,802,000,000. The getTime method returns the number of milliseconds since 1970-01-01 00:00:00 (Greenwich Mean Time).

The methods shown below can be used to obtain 253,402,268,399,999 from the maximum value that can be stored in HADB's TIMESTAMP type, and -62,135,802,000,000 from the minimum value that can be represented by the java.sql.Timestamp class.

253,402,268,399,999

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(2) Possibility of overflow when the setObject method is executed

The following table shows whether overflow might occur when the setObject method is executed.

Table 7‒12: Possibility of overflow when the setObject method is executed

Data type of object specified by the setObject method

HADB data type

SML

INT

DBL PREC

DCML

CHAR, VCHR

DATE#

TIME#

TSTMP#

ROW

BIN, VARBIN

Byte

N

N

N

Y

N

--

--

--

--

--

Short

N

N

N

Y

N

--

--

--

--

--

Integer

N

N

N

Y

N

--

--

--

--

--

Long

Y

N

N

Y

N

--

--

--

--

--

Decimal

Y

Y

N

Y

N

--

--

--

--

--

Float

Y

Y

N

Y

N

--

--

--

--

--

Double

Y

Y

N

Y

N

--

--

--

--

--

Boolean

N

N

N

N

N

--

--

--

--

--

String

Y

Y

N

Y

N

Y

N

Y

--

--

Date

--

--

--

--

N

Y

N

Y

--

--

Time

--

--

--

--

N

--

N

--

--

--

Timestamp

--

--

--

--

N

Y

N

Y

--

--

byte[]

--

--

--

--

N

--

--

--

N

N

Legend:

SML: SMALLINT

INT: INTEGER

DBL PREC: DOUBLE PRECISION

DCML: DECIMAL

VCHR: VARCHAR

TSTMP: TIMESTAMP

BIN: BINARY

VARBIN: VARBINARY

N: Overflow does not occur regardless of the value.

Y: Overflow might occur depending on the value.

--: Combination that is not allowed.

#

Overflow occurs when the value obtained by the getTime method of the java.sql.Date, java.sql.Time, or java.sql.Timestamp class is an object larger than 253,402,268,399,999 or smaller than -62,135,802,000,000. The getTime method returns the number of milliseconds since 1970-01-01 00:00:00 (Greenwich Mean Time).

The methods shown below can be used to obtain 253,402,268,399,999 from the maximum value that can be stored in HADB's TIMESTAMP type, and -62,135,802,000,000 from the minimum value that can be represented by the java.sql.Timestamp class.

253,402,268,399,999

Timestamp.valueOf("9999-12-31 23:59:59.999999").getTime()

-62,135,802,000,000

Timestamp.valueOf("0001-01-01 00:00:00.0").getTime()

(3) Possibility of overflow when a getXXX method (other than the getObject method) is executed

The following table shows whether overflow might occur when a getXXX method (other than the getObject method) is executed.

Table 7‒13: Possibility of overflow when a getXXX method (other than the getObject method) is executed

Method executed

HADB data type

SML

INT

DBL PREC

DCML

CHAR, VCHR

DATE

TIME

TSTMP

ROW

BIN, VARBIN

getByte

Y

Y

Y

Y

Y

--

--

--

--

--

getShort

Y

Y

Y

Y

Y

--

--

--

--

--

getInt

N

Y

Y

Y

Y

--

--

--

--

--

getLong

N

N

Y

Y

Y

--

--

--

--

--

getFloat

N

N

N

N

N

--

--

--

--

--

getDouble

N

N

N

N

N

--

--

--

--

--

getBigDecimal

N

N

N

N

N

--

--

--

--

--

getBoolean

N

N

N

N

N

--

--

--

--

--

getString

N

N

N

N

N

N

N

N

--

N

getBytes

--

--

--

--

--

--

--

--

N

N

getDate

--

--

--

--

N

N

N

N

--

--

getTime

--

--

--

--

N

--

N

N

--

--

getTimestamp

--

--

--

--

N

N

N

N

--

--

getAsciiStream

--

--

--

--

N

--

--

--

--

N

getBinaryStream

--

--

--

--

N

--

--

--

--

N

getCharacterStream

--

--

--

--

N

--

--

--

--

N

Legend:

SML: SMALLINT

INT: INTEGER

DBL PREC: DOUBLE PRECISION

DCML: DECIMAL

VCHR: VARCHAR

TSTMP: TIMESTAMP

BIN: BINARY

VARBIN: VARBINARY

N: Overflow does not occur regardless of the value.

Y: Overflow might occur depending on the value.

--: Combination that is not allowed.

(4) Possibility of overflow when the getObject method is executed

The following table shows whether overflow might occur when the getObject method is executed.

Table 7‒14: Possibility of overflow when the getObject method is executed

Data type of object obtained by the getObject method

HADB data type

SML

INT

DBL PREC

DCML

CHAR, VCHR

DATE

TIME

TSTMP

ROW

BIN, VARBIN

Byte

Y

Y

Y

Y

Y

--

--

--

--

--

Short

Y

Y

Y

Y

Y

--

--

--

--

--

Int

N

Y

Y

Y

Y

--

--

--

--

--

Long

N

N

Y

Y

Y

--

--

--

--

--

Float

N

N

Y

Y

Y

--

--

--

--

--

Double

N

N

N

Y

Y

--

--

--

--

--

BigDecimal

N

N

N

Y

Y

--

--

--

--

--

Boolean

N

N

N

N

N

--

--

--

--

--

String

N

N

N

N

N

N

N

N

--

N

Bytes

--

--

--

--

--

--

--

--

N

N

Date

--

--

--

--

N

N

N

N

--

--

Time

--

--

--

--

N

--

N

N

--

--

Timestamp

--

--

--

--

N

N

N

N

--

--

AsciiStream

--

--

--

--

N

--

--

--

--

N

BinaryStream

--

--

--

--

N

--

--

--

--

N

Object

N

N

N

N

N

N

N

N

N

N

CharacterStream

--

--

--

--

N

--

--

--

--

N

Legend:

SML: SMALLINT

INT: INTEGER

DBL PREC: DOUBLE PRECISION

DCML: DECIMAL

VCHR: VARCHAR

TSTMP: TIMESTAMP

BIN: BINARY

VARBIN: VARBINARY

N: Overflow does not occur regardless of the value.

Y: Overflow might occur depending on the value.

--: Combination that is not allowed.