mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-23 07:05:36 +03:00
206 lines
6.5 KiB
Plaintext
206 lines
6.5 KiB
Plaintext
# -------------------------------------------------------------- #
|
|
# Test case migrated from regression test suite: bug2976.sql
|
|
#
|
|
# Author: Daniel Lee, daniel.lee@mariadb.com
|
|
# -------------------------------------------------------------- #
|
|
#
|
|
--source ../include/have_columnstore.inc
|
|
#
|
|
USE tpch1;
|
|
#
|
|
#
|
|
# Bug 2976. Lost connection with from clause subselect against MyISAM tables in an InfiniDB instance.
|
|
#
|
|
|
|
--disable_warnings
|
|
drop table if exists a;
|
|
drop table if exists b;
|
|
--enable_warnings
|
|
|
|
create table a (c1 int)engine=myisam;
|
|
create table b (c2 int)engine=myisam;
|
|
insert into a values (1), (2);
|
|
insert into b values (1), (2);
|
|
select * from a, (select * from b) x;
|
|
--disable_warnings
|
|
drop table a;
|
|
drop table b;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Skinit example.
|
|
#
|
|
--disable_warnings
|
|
drop table if exists shipamounts;
|
|
drop table if exists ship1;
|
|
drop table if exists ship2;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE `shipamounts` (
|
|
`OrderNum` varchar(50) DEFAULT NULL,
|
|
`OrderLine` int(11) DEFAULT NULL,
|
|
`ShippingAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingOrderAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountOrderAmount` decimal(10,2) DEFAULT NULL
|
|
) ENGINE=myisam DEFAULT CHARSET=latin1;
|
|
|
|
CREATE TABLE `ship1` (
|
|
`OrderNum` varchar(50) DEFAULT NULL,
|
|
`OrderLine` int(11) DEFAULT NULL,
|
|
`ShippingAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingOrderAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountOrderAmount` decimal(10,2) DEFAULT NULL
|
|
) ENGINE=myisam DEFAULT CHARSET=latin1;
|
|
|
|
CREATE TABLE `ship2` (
|
|
`OrderNum` varchar(50) DEFAULT NULL,
|
|
`OrderLine` int(11) DEFAULT NULL,
|
|
`ShippingAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingOrderAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountAmount` decimal(10,2) DEFAULT NULL,
|
|
`ShippingDiscountOrderAmount` decimal(10,2) DEFAULT NULL
|
|
) ENGINE=myisam DEFAULT CHARSET=latin1;
|
|
|
|
insert into shipamounts values (2357203684, 352338, 0, 0, 0, 0);
|
|
insert into ship1 values (2357203684, 352338, 0, 0, 0, 0);
|
|
insert into ship2 values (2357203684, 352338, 0, 0, 0, 0);
|
|
|
|
SELECT s.OrderNum, s.OrderLine, s.ShippingAmount, s.ShippingOrderAmount,
|
|
total.ShippingTotalAmount, s.ShippingDiscountAmount,
|
|
s.ShippingDiscountOrderAmount,
|
|
total.ShippingDiscountTotalAmount,
|
|
IF( s.OrderLine = t.MinOrderLine, 1, 0 )
|
|
FROM shipAmounts AS s
|
|
LEFT OUTER JOIN (
|
|
SELECT OrderNum, MIN(OrderLine) AS MinOrderLine
|
|
FROM ship1
|
|
GROUP BY OrderNum
|
|
) AS t ON s.OrderNum = t.OrderNum
|
|
LEFT OUTER JOIN (
|
|
SELECT OrderNum, SUM(ShippingAmount) AS ShippingTotalAmount,
|
|
SUM(ShippingDiscountAmount) AS ShippingDiscountTotalAmount
|
|
FROM ship2 GROUP BY OrderNum
|
|
) AS total ON s.OrderNum = total.OrderNum;
|
|
|
|
SELECT s.OrderNum, s.OrderLine, s.ShippingAmount, s.ShippingOrderAmount,
|
|
total.ShippingTotalAmount, s.ShippingDiscountAmount,
|
|
s.ShippingDiscountOrderAmount,
|
|
total.ShippingDiscountTotalAmount,
|
|
IF( s.OrderLine = t.MinOrderLine, 1, 0 )
|
|
FROM shipAmounts AS s
|
|
JOIN (
|
|
SELECT sa.OrderNum, MIN(ship1.OrderLine) AS MinOrderLine
|
|
FROM shipAmounts sa left join ship1
|
|
on (sa.OrderNum = ship1.OrderNum)
|
|
GROUP BY OrderNum
|
|
) AS t ON s.OrderNum = t.OrderNum
|
|
LEFT OUTER JOIN (
|
|
SELECT OrderNum, SUM(ShippingAmount) AS ShippingTotalAmount,
|
|
SUM(ShippingDiscountAmount) AS ShippingDiscountTotalAmount
|
|
FROM ship2 GROUP BY OrderNum
|
|
) AS total ON s.OrderNum = total.OrderNum;
|
|
|
|
--disable_warnings
|
|
drop table if exists shipamounts;
|
|
drop table if exists ship1;
|
|
drop table if exists ship2;
|
|
--enable_warnings
|
|
#
|
|
# Lurn India example.
|
|
#
|
|
--disable_warnings
|
|
drop table if exists users;
|
|
drop table if exists user_login_log;
|
|
drop table if exists user_groups;
|
|
drop table if exists user_types;
|
|
drop table if exists system;
|
|
drop table if exists user_system;
|
|
--enable_warnings
|
|
|
|
create table users(
|
|
id int,
|
|
users_id int,
|
|
fullname varchar(40),
|
|
email varchar(40),
|
|
countries_name varchar(40),
|
|
state_name varchar(7),
|
|
tel_no varchar(12),
|
|
affiliate_id varchar(30),
|
|
created datetime,
|
|
milestone varchar(20),
|
|
tel_no2 varchar(12),
|
|
class int,
|
|
status varchar(20)
|
|
)engine=myisam;
|
|
|
|
create table user_login_log
|
|
(
|
|
user_id int,
|
|
dw_system_id int,
|
|
login_time datetime
|
|
)engine=myisam;
|
|
|
|
create table user_groups
|
|
(
|
|
user_id int,
|
|
status varchar(7),
|
|
start_date date,
|
|
end_date date,
|
|
user_type_id int
|
|
)engine=myisam;
|
|
|
|
create table user_types
|
|
(
|
|
id int,
|
|
user_type_id int,
|
|
name varchar(20)
|
|
)engine=myisam;
|
|
|
|
create table user_system
|
|
(
|
|
user_id int,
|
|
system_id int
|
|
)engine=myisam;
|
|
|
|
create table system
|
|
(
|
|
id int,
|
|
dw_system_id int
|
|
)engine=myisam;
|
|
|
|
SELECT u.users_id as user_id, u.fullname as fullname, u.email as email, u.countries_name as country, u.state_name as state, COALESCE(tel_no, tel_no2, 'No Number') as contact,
|
|
IFNULL((SELECT users.fullname FROM users WHERE users.id = affiliate_id), 'No Affiliate') as affiliate_name,
|
|
IFNULL((SELECT users.email FROM users WHERE users.id = affiliate_id), 'No Affiliate') as affiliate_email,
|
|
DATE_FORMAT( ug.start_date, '%W %D, %M %Y' ) as start_date, DATE_FORMAT( ug.end_date, '%W %D, %M %Y' ) as end_date, ug.status AS status , ug.name AS product, DATE_FORMAT( u.created, '%W %D, %M %Y' ) as created,
|
|
(SELECT DATE_FORMAT( max(ull.login_time), '%W %D, %M %Y' ) FROM user_login_log as ull WHERE ull.user_id = ug.user_id AND ull.dw_system_id = (SELECT dw_system_id from system where id = 6) AND ull.login_time BETWEEN '2010-06-01' AND '2010-06-30') as 'Last Log In',
|
|
(SELECT count(id) FROM user_login_log as ull WHERE ull.user_id = ug.user_id AND ull.dw_system_id = (SELECT dw_system_id from system where id = 6) AND ull.login_time BETWEEN '2010-06-01' AND '2010-06-30') as login_count,
|
|
u.milestone as milestone_level,
|
|
u.class as class_level
|
|
FROM users u, (
|
|
SELECT user_id, user_groups.user_type_id, start_date, end_date, user_groups.status, user_types.name
|
|
FROM user_groups, user_types
|
|
WHERE user_types.user_type_id IN (54)
|
|
AND user_groups.user_type_id = user_types.id
|
|
AND user_groups.status IN ('active')
|
|
GROUP BY user_id
|
|
ORDER BY user_type_id DESC ) ug, user_system as us
|
|
WHERE ug.user_id = u.id
|
|
AND u.id = us.user_id
|
|
AND us.system_id IN (6)
|
|
AND u.status IN ('active')
|
|
AND ug.start_date BETWEEN '2010-06-01' AND '2010-06-30'
|
|
ORDER BY DATE(ug.start_date) DESC, u.users_id DESC;
|
|
|
|
--disable_warnings
|
|
drop table if exists users;
|
|
drop table if exists user_login_log;
|
|
drop table if exists user_groups;
|
|
drop table if exists user_types;
|
|
drop table if exists system;
|
|
drop table if exists user_system;
|
|
--enable_warnings
|
|
#
|
|
|