TINYINT Data Type

A 1-byte integer data type used in CREATE TABLE and ALTER TABLE statements.

Syntax:

In the column definition of a CREATE TABLE statement:

column_name TINYINT

Range: -128 .. 127. There is no UNSIGNED subtype.

Conversions: Impala automatically converts to a larger integer type (SMALLINT,
INT, or BIGINT) or a floating-point type (FLOAT or
DOUBLE) automatically. Use CAST() to convert to STRING or
TIMESTAMP.
Casting an integer or floating-point value N to
TIMESTAMP produces a value that is N seconds past the start of the epoch
date (January 1, 1970). By default, the result value represents a date and time in the UTC time zone.
If the setting -use_local_tz_for_unix_timestamp_conversions=true is in effect,
the resulting TIMESTAMP represents a date and time in the local time zone.

Impala does not return column overflows as NULL, so that customers can distinguish
between NULL data and overflow conditions similar to how they do so with traditional
database systems. Impala returns the largest or smallest value in the range for the type. For example,
valid values for a tinyint range from -128 to 127. In Impala, a tinyint
with a value of -200 returns -128 rather than NULL. A tinyint with a
value of 200 returns 127.

Usage notes:

For a convenient and automated way to check the bounds of the TINYINT type, call the
functions MIN_TINYINT() and MAX_TINYINT().

If an integer value is too large to be represented as a TINYINT, use a
SMALLINT instead.

NULL considerations: Casting any non-numeric value to this type produces a NULL
value.

Examples:

CREATE TABLE t1 (x TINYINT);
SELECT CAST(100 AS TINYINT);

Parquet considerations:

Physically, Parquet files represent TINYINT and SMALLINT values as 32-bit
integers. Although Impala rejects attempts to insert out-of-range values into such columns, if you create a
new table with the CREATE TABLE ... LIKE PARQUET syntax, any TINYINT or
SMALLINT columns in the original table turn into INT columns in the new
table.