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 
			
		
		
		
	* MCOL-4234: improve GROUP BY and ORDER BY interaction (#3194) This patch fixes the problem in MCOL-4234 and also generally improves behavior of GROUP BY. It does so by introducing a "dummy" aggregate and by wrapping columns into it. This allows for columns that are not in GROUP BY to be used more freely, for example, in SELECT * FROM tbl GROUP BY col - all columns that are not "col" will be wrapped into an aggregate and query will proceed to execution. The dummy aggregate itself does nothing more than remember last value passed into it. There also an additional error message that tries to explain what types of expressions can be wrapped into an aggregate. * MCOL-5772: incorrect ORDER BY ordering for a columns not in GROUP BY (#3214) When ORDER BY column is not in GROUP BY, is not an aggregate and there is a SELECT column that is also not an aggregate, there was a problem: ordering happened on the SELECTed column, not ORDERed one. This patch fixes that particular problem and also performs some tidying around newly added aggregate. --------- Co-authored-by: Leonid Fedorov <79837786+mariadb-LeonidFedorov@users.noreply.github.com>
		
			
				
	
	
		
			29 lines
		
	
	
		
			740 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			740 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Order by a column that is not in GROUP BY and SELECT parts
 | 
						|
# should be correct.
 | 
						|
--disable_warnings
 | 
						|
DROP DATABASE IF EXISTS MCOL5772;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
CREATE DATABASE MCOL5772;
 | 
						|
 | 
						|
USE MCOL5772;
 | 
						|
 | 
						|
CREATE TABLE products (
 | 
						|
product_id INT,
 | 
						|
product_name VARCHAR(100),
 | 
						|
category VARCHAR(50),
 | 
						|
unit_price DECIMAL(10, 2),
 | 
						|
stock_quantity INT
 | 
						|
) ENGINE=Columnstore;
 | 
						|
 | 
						|
INSERT INTO products VALUES
 | 
						|
(1, 'Laptop', 'Electronics', 1200.00, 50),
 | 
						|
(2, 'Smartphone', 'Electronics', 800.00, 100),
 | 
						|
(3, 'Coffee Maker', 'Appliances', 50.00, 30),
 | 
						|
(4, 'Backpack', 'Fashion', 40.00, 80),
 | 
						|
(5, 'Desk Chair', 'Furniture', 150.00, 20);
 | 
						|
 | 
						|
SELECT product_name, SUM(stock_quantity) AS total_stock FROM products GROUP BY category ORDER BY stock_quantity;
 | 
						|
 | 
						|
DROP DATABASE MCOL5772;
 |