Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Impressum sum_distinct-big.test   Sprache: C

 

Spracherkennung für: .test vermutete Sprache: SQL {SQL[156] ABAP[114] VDM[84]} [Methode: maximale Elemente, drei Dimensionen]

#
# Various tests for SUM(DISTINCT ...)
#

--source include/big_test.inc
# Test will take more than one hour with valgrind
--source include/not_valgrind.inc
--source include/not_msan_with_debug.inc
--source include/have_innodb.inc
--source include/have_sequence.inc

set @save_tmp_table_size=@@tmp_table_size;
set @save_max_heap_table_size=@@max_heap_table_size;

#
# Test the case when distinct values doesn't fit in memory and 
# filesort is used (see uniques.cc:merge_walk)
#

set default_storage_engine=MYISAM;

CREATE TABLE t1 (id INTEGER);
CREATE TABLE t2 (id INTEGER);

INSERT INTO t1 SELECT b.seq FROM seq_1_to_128,seq_1_to_1024 b;

# Just test that AVG(DISTINCT) is there
SELECT AVG(DISTINCT id) FROM t1 GROUP BY id % 13;
SELECT SUM(DISTINCT id)/COUNT(DISTINCT id) FROM t1 GROUP BY id % 13;

INSERT INTO t1 SELECT b.seq FROM seq_1_to_128,seq_1025_to_16384 b;
INSERT INTO t2 SELECT b.seq FROM seq_1_to_128 a,seq_1_to_16384 b
ORDER by (a.seq*0+b.seq)*rand();

# SELECT '++++++++++++++++++++++++++++++++++++++++++++++++++';

SELECT SUM(DISTINCT id) sm FROM t1;
SELECT SUM(DISTINCT id) sm FROM t2;
SELECT SUM(DISTINCT id) sm FROM t1 group by id % 13;

# this limit for max_heap_table_size is set to force testing the case, when
# all distinct sum values can not fit in memory and must be stored in a
# temporary table

SET max_heap_table_size=16384;

# to check that max_heap_table_size was actually set (hard limit for minimum
# max_heap_table_size is set in mysqld.cc):

SHOW variables LIKE 'max_heap_table_size';

SELECT SUM(DISTINCT id) sm FROM t1;
SELECT SUM(DISTINCT id) sm FROM t2;
SELECT SUM(DISTINCT id) sm FROM t1 GROUP BY id % 13;

--echo # 
--echo # Bug mdev-4063: SUM(DISTINCT...) with small'max_heap_table_size 
--echo # (bug #56927)
--echo # 

SET max_heap_table_size=default;

INSERT INTO t1 SELECT b.seq FROM seq_1_to_128,seq_16385_to_32768 b;
TRUNCATE t2;
INSERT INTO t2 SELECT b.seq FROM seq_1_to_128 a,seq_1_to_32768 b
ORDER BY (a.seq*0+b.seq)*rand();

SELECT SUM(DISTINCT id) sm FROM t2;

SET max_heap_table_size=16384;

SELECT SUM(DISTINCT id) sm FROM t2;

DROP TABLE t1;
DROP TABLE t2;

SET @@tmp_table_size=@save_tmp_table_size;
SET @@max_heap_table_size=@save_max_heap_table_size;

--echo #
--echo # MDEV-4311: COUNT(DISTINCT...) requiring a file for UNIQUE (bug #68749)
--echo #
CREATE TABLE t2 (id INTEGER) ENGINE=InnoDB;

--disable_view_protocol
BEGIN;
INSERT INTO t2 SELECT b.seq FROM seq_1_to_128 a, seq_1_to_16384 b
ORDER BY b.seq*rand();
INSERT INTO t2 VALUE(NULL);

--echo # With default tmp_table_size / max_heap_table_size
SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2;

set @@tmp_table_size=1024*256;

--echo # With reduced tmp_table_size
SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2;

set @@tmp_table_size=@save_tmp_table_size;
SET @@max_heap_table_size=1024*256;

--echo # With reduced max_heap_table_size
SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2;

SET @@max_heap_table_size=@save_max_heap_table_size;

--echo # Back to default tmp_table_size / max_heap_table_size
SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2;
COMMIT;
--enable_view_protocol

DROP TABLE t2;

¤ Dauer der Verarbeitung: 0.34 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691