0001
0002
0003
0004
0005
0006
0007
0008
0009 CREATE TABLE INT8_TBL(q1 bigint, q2 bigint) USING parquet;
0010
0011
0012
0013 INSERT INTO INT8_TBL VALUES(bigint(trim(' 123 ')),bigint(trim(' 456')));
0014 INSERT INTO INT8_TBL VALUES(bigint(trim('123 ')),bigint('4567890123456789'));
0015 INSERT INTO INT8_TBL VALUES(bigint('4567890123456789'),bigint('123'));
0016 INSERT INTO INT8_TBL VALUES(+4567890123456789,bigint('4567890123456789'));
0017 INSERT INTO INT8_TBL VALUES(bigint('+4567890123456789'),bigint('-4567890123456789'));
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 SELECT * FROM INT8_TBL;
0030
0031
0032 SELECT * FROM INT8_TBL WHERE q2 = 4567890123456789;
0033 SELECT * FROM INT8_TBL WHERE q2 <> 4567890123456789;
0034 SELECT * FROM INT8_TBL WHERE q2 < 4567890123456789;
0035 SELECT * FROM INT8_TBL WHERE q2 > 4567890123456789;
0036 SELECT * FROM INT8_TBL WHERE q2 <= 4567890123456789;
0037 SELECT * FROM INT8_TBL WHERE q2 >= 4567890123456789;
0038
0039
0040 SELECT * FROM INT8_TBL WHERE q2 = 456;
0041 SELECT * FROM INT8_TBL WHERE q2 <> 456;
0042 SELECT * FROM INT8_TBL WHERE q2 < 456;
0043 SELECT * FROM INT8_TBL WHERE q2 > 456;
0044 SELECT * FROM INT8_TBL WHERE q2 <= 456;
0045 SELECT * FROM INT8_TBL WHERE q2 >= 456;
0046
0047
0048 SELECT * FROM INT8_TBL WHERE 123 = q1;
0049 SELECT * FROM INT8_TBL WHERE 123 <> q1;
0050 SELECT * FROM INT8_TBL WHERE 123 < q1;
0051 SELECT * FROM INT8_TBL WHERE 123 > q1;
0052 SELECT * FROM INT8_TBL WHERE 123 <= q1;
0053 SELECT * FROM INT8_TBL WHERE 123 >= q1;
0054
0055
0056 SELECT * FROM INT8_TBL WHERE q2 = smallint('456');
0057 SELECT * FROM INT8_TBL WHERE q2 <> smallint('456');
0058 SELECT * FROM INT8_TBL WHERE q2 < smallint('456');
0059 SELECT * FROM INT8_TBL WHERE q2 > smallint('456');
0060 SELECT * FROM INT8_TBL WHERE q2 <= smallint('456');
0061 SELECT * FROM INT8_TBL WHERE q2 >= smallint('456');
0062
0063
0064 SELECT * FROM INT8_TBL WHERE smallint('123') = q1;
0065 SELECT * FROM INT8_TBL WHERE smallint('123') <> q1;
0066 SELECT * FROM INT8_TBL WHERE smallint('123') < q1;
0067 SELECT * FROM INT8_TBL WHERE smallint('123') > q1;
0068 SELECT * FROM INT8_TBL WHERE smallint('123') <= q1;
0069 SELECT * FROM INT8_TBL WHERE smallint('123') >= q1;
0070
0071
0072
0073 SELECT '' AS five, q1 AS plus, -q1 AS `minus` FROM INT8_TBL;
0074
0075 SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL;
0076 SELECT '' AS five, q1, q2, q1 - q2 AS `minus` FROM INT8_TBL;
0077 SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
0078 SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL
0079 WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
0080 SELECT '' AS five, q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
0081
0082 SELECT '' AS five, q1, double(q1) FROM INT8_TBL;
0083 SELECT '' AS five, q2, double(q2) FROM INT8_TBL;
0084
0085 SELECT 37 + q1 AS plus4 FROM INT8_TBL;
0086 SELECT 37 - q1 AS minus4 FROM INT8_TBL;
0087 SELECT '' AS five, 2 * q1 AS `twice int4` FROM INT8_TBL;
0088 SELECT '' AS five, q1 * 2 AS `twice int4` FROM INT8_TBL;
0089
0090
0091 SELECT q1 + int(42) AS `8plus4`, q1 - int(42) AS `8minus4`, q1 * int(42) AS `8mul4`, q1 / int(42) AS `8div4` FROM INT8_TBL;
0092
0093 SELECT int(246) + q1 AS `4plus8`, int(246) - q1 AS `4minus8`, int(246) * q1 AS `4mul8`, int(246) / q1 AS `4div8` FROM INT8_TBL;
0094
0095
0096 SELECT q1 + smallint(42) AS `8plus2`, q1 - smallint(42) AS `8minus2`, q1 * smallint(42) AS `8mul2`, q1 / smallint(42) AS `8div2` FROM INT8_TBL;
0097
0098 SELECT smallint(246) + q1 AS `2plus8`, smallint(246) - q1 AS `2minus8`, smallint(246) * q1 AS `2mul8`, smallint(246) / q1 AS `2div8` FROM INT8_TBL;
0099
0100 SELECT q2, abs(q2) FROM INT8_TBL;
0101 SELECT min(q1), min(q2) FROM INT8_TBL;
0102 SELECT max(q1), max(q2) FROM INT8_TBL;
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154 select bigint('9223372036854775800') / bigint('0');
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170 select bigint('-9223372036854775808') / smallint('0');
0171
0172
0173
0174
0175 select smallint('100') / bigint('0');
0176
0177 SELECT CAST(q1 AS int) FROM int8_tbl WHERE q2 = 456;
0178 SELECT CAST(q1 AS int) FROM int8_tbl WHERE q2 <> 456;
0179
0180 SELECT CAST(q1 AS smallint) FROM int8_tbl WHERE q2 = 456;
0181 SELECT CAST(q1 AS smallint) FROM int8_tbl WHERE q2 <> 456;
0182
0183 SELECT CAST(smallint('42') AS bigint), CAST(smallint('-37') AS bigint);
0184
0185 SELECT CAST(q1 AS float), CAST(q2 AS double) FROM INT8_TBL;
0186 SELECT CAST(float('36854775807.0') AS bigint);
0187 SELECT CAST(double('922337203685477580700.0') AS bigint);
0188
0189
0190
0191
0192
0193
0194 SELECT q1, q2, q1 & q2 AS `and`, q1 | q2 AS `or`, ~q1 AS `not` FROM INT8_TBL;
0195
0196
0197
0198
0199
0200 SELECT * FROM range(bigint('+4567890123456789'), bigint('+4567890123456799'));
0201 SELECT * FROM range(bigint('+4567890123456789'), bigint('+4567890123456799'), 0);
0202 SELECT * FROM range(bigint('+4567890123456789'), bigint('+4567890123456799'), 2);
0203
0204
0205 SELECT string(shiftleft(bigint(-1), 63));
0206 SELECT string(int(shiftleft(bigint(-1), 63))+1);
0207
0208
0209
0210 SELECT bigint((-9223372036854775808)) * bigint((-1));
0211 SELECT bigint((-9223372036854775808)) / bigint((-1));
0212 SELECT bigint((-9223372036854775808)) % bigint((-1));
0213 SELECT bigint((-9223372036854775808)) * int((-1));
0214 SELECT bigint((-9223372036854775808)) / int((-1));
0215 SELECT bigint((-9223372036854775808)) % int((-1));
0216 SELECT bigint((-9223372036854775808)) * smallint((-1));
0217 SELECT bigint((-9223372036854775808)) / smallint((-1));
0218 SELECT bigint((-9223372036854775808)) % smallint((-1));
0219
0220
0221
0222 SELECT x, bigint(x) AS int8_value
0223 FROM (VALUES (double(-2.5)),
0224 (double(-1.5)),
0225 (double(-0.5)),
0226 (double(0.0)),
0227 (double(0.5)),
0228 (double(1.5)),
0229 (double(2.5))) t(x);
0230
0231
0232 SELECT x, bigint(x) AS int8_value
0233 FROM (VALUES cast(-2.5 as decimal(38, 18)),
0234 cast(-1.5 as decimal(38, 18)),
0235 cast(-0.5 as decimal(38, 18)),
0236 cast(-0.0 as decimal(38, 18)),
0237 cast(0.5 as decimal(38, 18)),
0238 cast(1.5 as decimal(38, 18)),
0239 cast(2.5 as decimal(38, 18))) t(x);
0240
0241 DROP TABLE INT8_TBL;