mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-5103: server crashed on singular Item_equal
Singular Item_equal support added. The problem was that during constant table substitution Item_equal become containing only one constant which was not supported internally.
This commit is contained in:
@ -42,3 +42,47 @@ select * from t1 where a in ('4828532208463511553');
|
||||
a
|
||||
4828532208463511553
|
||||
drop table t1;
|
||||
#End of 4.1 tests
|
||||
#
|
||||
# MDEV-5103: server crashed on singular Item_equal
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`tipo` enum('p','r') NOT NULL DEFAULT 'r',
|
||||
`arquivo_id` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`arquivo_md5` char(32) NOT NULL,
|
||||
`conteudo` longblob NOT NULL,
|
||||
`usuario` varchar(15) NOT NULL,
|
||||
`datahora_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`tipo_arquivo` varchar(255) NOT NULL,
|
||||
`nome_arquivo` varchar(255) NOT NULL,
|
||||
`tamanho_arquivo` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`tipo`,`arquivo_id`),
|
||||
UNIQUE KEY `tipo` (`tipo`,`arquivo_md5`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
INSERT INTO `t1` (`tipo`, `arquivo_id`, `arquivo_md5`, `conteudo`, `usuario`, `datahora_gmt`, `tipo_arquivo`, `nome_arquivo`, `tamanho_arquivo`) VALUES
|
||||
('r', 1, 'ad18832202b199728921807033a8a515', '', 'rspadim', '2013-10-05 13:55:50', '001_cbr643', 'CBR6431677410201314132.ret', 21306);
|
||||
CREATE TABLE `t2` (
|
||||
`tipo` enum('p','r') NOT NULL DEFAULT 'p',
|
||||
`arquivo_id` bigint(20) NOT NULL DEFAULT '0',
|
||||
`usuario` varchar(25) NOT NULL,
|
||||
`datahora` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`erros` longblob NOT NULL,
|
||||
`importados` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`n_importados` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`tipo`,`arquivo_id`,`datahora`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
INSERT INTO `t2` (`tipo`, `arquivo_id`, `usuario`, `datahora`, `erros`, `importados`, `n_importados`) VALUES
|
||||
('r', 1, 'rspadim', '2013-10-05 14:25:30', '', 32, 0);
|
||||
SELECT
|
||||
arquivo_id,usuario,datahora_gmt,tipo_arquivo,nome_arquivo,tamanho_arquivo
|
||||
FROM t1 AS a
|
||||
WHERE datahora_gmt>='0000-00-00 00:00:00' AND
|
||||
datahora_gmt<='2013-10-07 02:59:59' AND tipo='r' AND
|
||||
(tipo_arquivo,arquivo_id) NOT IN
|
||||
(SELECT tipo_arquivo,arquivo_id
|
||||
FROM t2
|
||||
WHERE (tipo_arquivo,arquivo_id)=(a.tipo_arquivo,a.arquivo_id))
|
||||
ORDER BY arquivo_id DESC;
|
||||
arquivo_id usuario datahora_gmt tipo_arquivo nome_arquivo tamanho_arquivo
|
||||
drop table t2, t1;
|
||||
#End of 5.3 tests
|
||||
|
@ -43,4 +43,54 @@ select * from t1 where a = '4828532208463511553';
|
||||
select * from t1 where a in ('4828532208463511553');
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
--echo #End of 4.1 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-5103: server crashed on singular Item_equal
|
||||
--echo #
|
||||
|
||||
CREATE TABLE `t1` (
|
||||
`tipo` enum('p','r') NOT NULL DEFAULT 'r',
|
||||
`arquivo_id` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`arquivo_md5` char(32) NOT NULL,
|
||||
`conteudo` longblob NOT NULL,
|
||||
`usuario` varchar(15) NOT NULL,
|
||||
`datahora_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`tipo_arquivo` varchar(255) NOT NULL,
|
||||
`nome_arquivo` varchar(255) NOT NULL,
|
||||
`tamanho_arquivo` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`tipo`,`arquivo_id`),
|
||||
UNIQUE KEY `tipo` (`tipo`,`arquivo_md5`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
|
||||
INSERT INTO `t1` (`tipo`, `arquivo_id`, `arquivo_md5`, `conteudo`, `usuario`, `datahora_gmt`, `tipo_arquivo`, `nome_arquivo`, `tamanho_arquivo`) VALUES
|
||||
('r', 1, 'ad18832202b199728921807033a8a515', '', 'rspadim', '2013-10-05 13:55:50', '001_cbr643', 'CBR6431677410201314132.ret', 21306);
|
||||
|
||||
|
||||
CREATE TABLE `t2` (
|
||||
`tipo` enum('p','r') NOT NULL DEFAULT 'p',
|
||||
`arquivo_id` bigint(20) NOT NULL DEFAULT '0',
|
||||
`usuario` varchar(25) NOT NULL,
|
||||
`datahora` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`erros` longblob NOT NULL,
|
||||
`importados` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`n_importados` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`tipo`,`arquivo_id`,`datahora`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1;
|
||||
|
||||
INSERT INTO `t2` (`tipo`, `arquivo_id`, `usuario`, `datahora`, `erros`, `importados`, `n_importados`) VALUES
|
||||
('r', 1, 'rspadim', '2013-10-05 14:25:30', '', 32, 0);
|
||||
|
||||
SELECT
|
||||
arquivo_id,usuario,datahora_gmt,tipo_arquivo,nome_arquivo,tamanho_arquivo
|
||||
FROM t1 AS a
|
||||
WHERE datahora_gmt>='0000-00-00 00:00:00' AND
|
||||
datahora_gmt<='2013-10-07 02:59:59' AND tipo='r' AND
|
||||
(tipo_arquivo,arquivo_id) NOT IN
|
||||
(SELECT tipo_arquivo,arquivo_id
|
||||
FROM t2
|
||||
WHERE (tipo_arquivo,arquivo_id)=(a.tipo_arquivo,a.arquivo_id))
|
||||
ORDER BY arquivo_id DESC;
|
||||
|
||||
drop table t2, t1;
|
||||
--echo #End of 5.3 tests
|
||||
|
Reference in New Issue
Block a user