A 2-byte integer data type used in CREATE TABLE
and ALTER TABLE
statements.
Syntax:
In the column definition of a CREATE TABLE
statement:
column_name SMALLINT
Range: -32768 .. 32767. There is no UNSIGNED
subtype.
Conversions: Impala automatically converts to a larger integer type (INT
or
BIGINT
) or a floating-point type (FLOAT
or DOUBLE
)
automatically. Use CAST()
to convert to TINYINT
, 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.
Usage notes:
For a convenient and automated way to check the bounds of the SMALLINT
type, call the
functions MIN_SMALLINT()
and MAX_SMALLINT()
.
If an integer value is too large to be represented as a SMALLINT
, use an
INT
instead.
NULL considerations: Casting any non-numeric value to this type produces a
NULL
value.
Examples:
CREATE TABLE t1 (x SMALLINT);
SELECT CAST(1000 AS SMALLINT);
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.
Partitioning: Prefer to use this type for a partition key column. Impala can
process the numeric type more efficiently than a STRING
representation
of the value.
HBase considerations: This data type is fully compatible with HBase tables.
Text table considerations: Values of this type are potentially larger in text tables than in tables using Parquet or other binary formats.
Internal details: Represented in memory as a 2-byte value.
Added in: Available in all versions of Impala.
Column statistics considerations: Because this type has a fixed size, the maximum
and average size fields are always filled in for column statistics, even before you run
the COMPUTE STATS
statement.
Related information:
Numeric Literals, TINYINT Data Type, SMALLINT Data Type, INT Data Type, BIGINT Data Type, DECIMAL Data Type (Impala 3.0 or higher only), Impala Mathematical Functions