1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-04-21 19:45:56 +03:00

125 lines
6.0 KiB
Plaintext

DROP DATABASE IF EXISTS func_bit;
CREATE DATABASE func_bit;
USE func_bit;
CREATE TABLE t1 (a DECIMAL(30,1) NOT NULL);
INSERT INTO t1 VALUES (99999999999999999999999999999.9);
INSERT INTO t1 VALUES (28446744073709551615);
INSERT INTO t1 VALUES (2.9);
INSERT INTO t1 VALUES (-2.9);
INSERT INTO t1 VALUES (-28446744073709551615);
INSERT INTO t1 VALUES (-99999999999999999999999999999.9);
SELECT a, a & a, a | a, a^0, a<<2, a>>2, bit_count(a) FROM t1;
a a & a a | a a^0 a<<2 a>>2 bit_count(a)
99999999999999999999999999999.9 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551612 4611686018427387903 64
28446744073709551615.0 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551612 4611686018427387903 64
2.9 3 3 3 12 0 2
-2.9 18446744073709551613 18446744073709551613 18446744073709551613 18446744073709551604 4611686018427387903 63
-28446744073709551615.0 9223372036854775808 9223372036854775808 9223372036854775808 0 2305843009213693952 1
-99999999999999999999999999999.9 9223372036854775808 9223372036854775808 9223372036854775808 0 2305843009213693952 1
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL(20,0) NOT NULL);
INSERT INTO t1 VALUES (99999999999999999999);
INSERT INTO t1 VALUES (28446744073709551615);
INSERT INTO t1 VALUES (-28446744073709551615);
INSERT INTO t1 VALUES (-99999999999999999999);
SELECT a, a & a, a | a, a^0, a<<2, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<2 a<<0 a>>1 bit_count(a)
99999999999999999999 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551612 18446744073709551615 9223372036854775807 64
28446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551612 18446744073709551615 9223372036854775807 64
-28446744073709551615 9223372036854775808 9223372036854775808 9223372036854775808 0 9223372036854775808 4611686018427387904 1
-99999999999999999999 9223372036854775808 9223372036854775808 9223372036854775808 0 9223372036854775808 4611686018427387904 1
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL(10,1) NOT NULL);
INSERT INTO t1 VALUES (999999999.9);
INSERT INTO t1 VALUES (3.5);
INSERT INTO t1 VALUES (3.4);
INSERT INTO t1 VALUES (2.9);
INSERT INTO t1 VALUES (-2.9);
INSERT INTO t1 VALUES (-3.4);
INSERT INTO t1 VALUES (-3.5);
INSERT INTO t1 VALUES (-999999999.9);
SELECT a, a & a, a | a, a^0, a<<2, a>>2, bit_count(a) FROM t1;
a a & a a | a a^0 a<<2 a>>2 bit_count(a)
999999999.9 1000000000 1000000000 1000000000 4000000000 250000000 13
3.5 4 4 4 16 1 1
3.4 3 3 3 12 0 2
2.9 3 3 3 12 0 2
-2.9 18446744073709551613 18446744073709551613 18446744073709551613 18446744073709551604 4611686018427387903 63
-3.4 18446744073709551613 18446744073709551613 18446744073709551613 18446744073709551604 4611686018427387903 63
-3.5 18446744073709551612 18446744073709551612 18446744073709551612 18446744073709551600 4611686018427387903 62
-999999999.9 18446744072709551616 18446744072709551616 18446744072709551616 18446744069709551616 4611686018177387904 43
DROP TABLE t1;
CREATE TABLE t1 (a DECIMAL(10,0) NOT NULL);
INSERT INTO t1 VALUES (9999999999);
INSERT INTO t1 VALUES (3);
INSERT INTO t1 VALUES (-3);
INSERT INTO t1 VALUES (-9999999999);
SELECT a, a & a, a | a, a^0, a<<2, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<2 a<<0 a>>1 bit_count(a)
9999999999 9999999999 9999999999 9999999999 39999999996 9999999999 4999999999 20
3 3 3 3 12 3 1 2
-3 18446744073709551613 18446744073709551613 18446744073709551613 18446744073709551604 18446744073709551613 9223372036854775806 63
-9999999999 18446744063709551617 18446744063709551617 18446744063709551617 18446744033709551620 18446744063709551617 9223372031854775808 45
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(30) NOT NULL);
INSERT INTO t1 VALUES ('2.9');
INSERT INTO t1 VALUES ('18446744073709551610');
SELECT a, a & a, a | a, a^0, a<<1, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<1 a<<0 a>>1 bit_count(a)
2.9 3 3 3 6 3 1 2
18446744073709551610 18446744073709551610 18446744073709551610 18446744073709551610 18446744073709551604 18446744073709551610 9223372036854775805 62
DROP TABLE t1;
CREATE TABLE t1 (a DOUBLE NOT NULL);
INSERT INTO t1 VALUES (2.9);
INSERT INTO t1 VALUES (10e30);
SELECT a, a & a, a | a, a^0, a<<2, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<2 a<<0 a>>1 bit_count(a)
2.9 3 3 3 12 3 1 2
1e31 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551612 18446744073709551615 9223372036854775807 64
DROP TABLE t1;
CREATE TABLE t1 (a TIME(1) NOT NULL);
INSERT INTO t1 VALUES ('00:00:02.9');
INSERT INTO t1 VALUES ('800:00:02.9');
INSERT INTO t1 VALUES ('-800:00:02.9');
SELECT a, a & a, a | a, a^0, a<<1, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<1 a<<0 a>>1 bit_count(a)
00:00:02.9 3 3 3 6 3 1 2
800:00:02.9 8000003 8000003 8000003 16000006 8000003 4000001 9
-800:00:02.9 18446744073701551613 18446744073701551613 18446744073701551613 18446744073693551610 18446744073701551613 9223372036850775806 56
DROP TABLE t1;
CREATE TABLE t1 (a DATETIME(1) NOT NULL);
INSERT INTO t1 VALUES ('2001-01-01 00:00:02.9');
INSERT INTO t1 VALUES ('2001-01-01 23:59:59.9');
INSERT INTO t1 VALUES ('9999-12-31 23:59:59.9');
SELECT a, a & a, a | a, a^0, a<<1, a<<0, a>>1, bit_count(a) FROM t1;
a a & a a | a a^0 a<<1 a<<0 a>>1 bit_count(a)
2001-01-01 00:00:02.9 20010101000003 20010101000003 20010101000003 40020202000006 20010101000003 10005050500001 24
2001-01-01 23:59:59.9 20010101235960 20010101235960 20010101235960 40020202471920 20010101235960 10005050617980 25
9999-12-31 23:59:59.9 99991231235960 99991231235960 99991231235960 199982462471920 99991231235960 49995615617980 23
DROP TABLE t1;
CREATE TABLE t1 (a INT NOT NULL);
INSERT INTO t1 VALUES (63),(64),(65);
SELECT a, 1<<a,1>>a FROM t1;
a 1<<a 1>>a
63 9223372036854775808 0
64 0 0
65 0 0
DROP TABLE t1;
#
# MCOL-4666 Empty set when using BIT OR and BIT AND functions in WHERE
#
CREATE TABLE t1 (a DECIMAL(18,2));
INSERT INTO t1 VALUES (3.4);
SELECT a, a|4, a&4 FROM t1;
a a|4 a&4
3.40 7 0
SELECT * FROM t1 WHERE (a|4) <> a;
a
3.40
SELECT * FROM t1 WHERE (a&4) <> a;
a
3.40
DROP TABLE t1;
DROP DATABASE func_bit;
USE test;