You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +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
 | 
						|
#
 | 
						|
 |