VeloDB Cloud
SQL Manual
SQL Functions
Bitwise Functions
BIT_SHIFT_LEFT

bit_shift_left

description

syntax

BIT_SHIFT_LEFT(BIGINT x, TINYINT c)

Do logical left shift to BIGINT type x by c bits, and return result as a BIGINT. Return zero if c is less than 0.

example

Normal case

select 8 as x, number as c, bit_shift_left(8, number) as bit_shift_left from numbers("number"="5")
--------------
 
+------+------+----------------+
| x    | c    | bit_shift_left |
+------+------+----------------+
|    8 |    0 |              8 |
|    8 |    1 |             16 |
|    8 |    2 |             32 |
|    8 |    3 |             64 |
|    8 |    4 |            128 |
+------+------+----------------+
5 rows in set (0.04 sec)

Left shift result of 9223372036854775807 which is BIGINT_MAX by 1 bit will get -2.

WITH tbl AS (
  SELECT 9223372036854775807 AS BIGINT_MAX
)
SELECT BIGINT_MAX, bit_shift_left(BIGINT_MAX, 1)
FROM tbl
--------------
 
+---------------------+-------------------------------+
| BIGINT_MAX          | bit_shift_left(BIGINT_MAX, 1) |
+---------------------+-------------------------------+
| 9223372036854775807 |                            -2 |
+---------------------+-------------------------------+
1 row in set (0.05 sec)

keywords

BITSHIFT, BITSHIFTLEFT