1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

fix(funcexp): MCOL-4671 Fix behaviour of LEFT/RIGHT functions when negative trim length value is passedB

This commit is contained in:
Alexander Presnyakov
2024-07-03 19:11:19 +04:00
committed by Leonid Fedorov
parent 37852e9234
commit 57e2375dbc
4 changed files with 97 additions and 5 deletions

View File

@ -0,0 +1,44 @@
DROP DATABASE IF EXISTS `mcol 4671`;
CREATE DATABASE `mcol 4671`;
USE `mcol 4671`;
CREATE TABLE t_tinyint (a TINYINT) ENGINE=ColumnStore;
INSERT INTO t_tinyint VALUES (-1);
SELECT LEFT('abc',a) FROM t_tinyint;
LEFT('abc',a)
SELECT RIGHT('abc',a) FROM t_tinyint;
RIGHT('abc',a)
CREATE TABLE t_smallint (a SMALLINT) ENGINE=ColumnStore;
INSERT INTO t_smallint VALUES (-1);
SELECT LEFT('abc',a) FROM t_smallint;
LEFT('abc',a)
SELECT RIGHT('abc',a) FROM t_smallint;
RIGHT('abc',a)
CREATE TABLE t_mediumint (a MEDIUMINT) ENGINE=ColumnStore;
INSERT INTO t_mediumint VALUES (-1);
SELECT LEFT('abc',a) FROM t_mediumint;
LEFT('abc',a)
SELECT RIGHT('abc',a) FROM t_mediumint;
RIGHT('abc',a)
CREATE TABLE t_int (a INT) ENGINE=ColumnStore;
INSERT INTO t_int VALUES (-1);
SELECT LEFT('abc',a) FROM t_int;
LEFT('abc',a)
SELECT RIGHT('abc',a) FROM t_int;
RIGHT('abc',a)
CREATE TABLE t_bigint (a BIGINT) ENGINE=ColumnStore;
INSERT INTO t_bigint VALUES (-1);
SELECT LEFT('abc',a) FROM t_bigint;
LEFT('abc',a)
SELECT RIGHT('abc',a) FROM t_bigint;
RIGHT('abc',a)
DROP DATABASE `mcol 4671`;

View File

@ -0,0 +1,44 @@
--source ../include/have_columnstore.inc
--disable_warnings
DROP DATABASE IF EXISTS `mcol 4671`;
--enable_warnings
CREATE DATABASE `mcol 4671`;
USE `mcol 4671`;
# tinyint
CREATE TABLE t_tinyint (a TINYINT) ENGINE=ColumnStore;
INSERT INTO t_tinyint VALUES (-1);
SELECT LEFT('abc',a) FROM t_tinyint;
SELECT RIGHT('abc',a) FROM t_tinyint;
# smallint
CREATE TABLE t_smallint (a SMALLINT) ENGINE=ColumnStore;
INSERT INTO t_smallint VALUES (-1);
SELECT LEFT('abc',a) FROM t_smallint;
SELECT RIGHT('abc',a) FROM t_smallint;
# mediumint
CREATE TABLE t_mediumint (a MEDIUMINT) ENGINE=ColumnStore;
INSERT INTO t_mediumint VALUES (-1);
SELECT LEFT('abc',a) FROM t_mediumint;
SELECT RIGHT('abc',a) FROM t_mediumint;
# int
CREATE TABLE t_int (a INT) ENGINE=ColumnStore;
INSERT INTO t_int VALUES (-1);
SELECT LEFT('abc',a) FROM t_int;
SELECT RIGHT('abc',a) FROM t_int;
# bigint
CREATE TABLE t_bigint (a BIGINT) ENGINE=ColumnStore;
INSERT INTO t_bigint VALUES (-1);
SELECT LEFT('abc',a) FROM t_bigint;
SELECT RIGHT('abc',a) FROM t_bigint;
# cleanup
DROP DATABASE `mcol 4671`;