This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 07208332171f4ed9f0acfda303877634321826bf
Author: AKIRA <[email protected]>
AuthorDate: Mon Sep 18 18:27:10 2023 +0900

    [fix](stats) Fix analyze failed when there are thousands of partitions. 
(#24521)
    
    It's caused by we used same query id for multiple queries of same olap 
analyze task, but many structures related to query execution depends on query 
id.
---
 .../java/org/apache/doris/qe/StmtExecutor.java     |   4 +
 .../doris/statistics/util/StatisticsUtil.java      |   5 -
 .../suites/statistics/analyze_stats.groovy         | 814 ++++++++++++++++++++-
 3 files changed, 817 insertions(+), 6 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 7203acd577a..c835aab93f2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -2453,6 +2453,10 @@ public class StmtExecutor {
     }
 
     public List<ResultRow> executeInternalQuery() {
+        LOG.debug("INTERNAL QUERY: " + originStmt.toString());
+        UUID uuid = UUID.randomUUID();
+        TUniqueId queryId = new TUniqueId(uuid.getMostSignificantBits(), 
uuid.getLeastSignificantBits());
+        context.setQueryId(queryId);
         try {
             List<ResultRow> resultRows = new ArrayList<>();
             try {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java
index 76f947792cd..89a5ae1f3e6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java
@@ -68,7 +68,6 @@ import org.apache.doris.statistics.Histogram;
 import org.apache.doris.statistics.StatisticConstants;
 import org.apache.doris.statistics.util.InternalQueryResult.ResultRow;
 import org.apache.doris.system.SystemInfoService;
-import org.apache.doris.thrift.TUniqueId;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
@@ -96,7 +95,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.StringJoiner;
-import java.util.UUID;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -184,9 +182,6 @@ public class StatisticsUtil {
         connectContext.setDatabase(FeConstants.INTERNAL_DB_NAME);
         connectContext.setQualifiedUser(UserIdentity.ROOT.getQualifiedUser());
         connectContext.setCurrentUserIdentity(UserIdentity.ROOT);
-        UUID uuid = UUID.randomUUID();
-        TUniqueId queryId = new TUniqueId(uuid.getMostSignificantBits(), 
uuid.getLeastSignificantBits());
-        connectContext.setQueryId(queryId);
         connectContext.setStartTime();
         connectContext.setCluster(SystemInfoService.DEFAULT_CLUSTER);
         return new AutoCloseConnectContext(connectContext);
diff --git a/regression-test/suites/statistics/analyze_stats.groovy 
b/regression-test/suites/statistics/analyze_stats.groovy
index 8f50a8a7023..3064a89d3f4 100644
--- a/regression-test/suites/statistics/analyze_stats.groovy
+++ b/regression-test/suites/statistics/analyze_stats.groovy
@@ -235,7 +235,819 @@ suite("test_analyze") {
         return false
     }
 
-    assert  expected_result(part_tbl_analyze_result)
+    assert expected_result(part_tbl_analyze_result)
+
+    sql """
+        DROP TABLE IF EXISTS test_600_partition_table_analyze;
+    """
+
+    sql """
+        
+    CREATE TAbLE IF NOT EXISTS test_600_partition_table_analyze (
+    `id` INT NOT NULL
+    ) ENGINE=OLAP
+    DUPLICATE KEY(id)
+    PARTITION BY LIST(id)
+    (
+    PARTITION `p0` VALUES IN (0),
+PARTITION `p1` VALUES IN (1),
+PARTITION `p2` VALUES IN (2),
+PARTITION `p3` VALUES IN (3),
+PARTITION `p4` VALUES IN (4),
+PARTITION `p5` VALUES IN (5),
+PARTITION `p6` VALUES IN (6),
+PARTITION `p7` VALUES IN (7),
+PARTITION `p8` VALUES IN (8),
+PARTITION `p9` VALUES IN (9),
+PARTITION `p10` VALUES IN (10),
+PARTITION `p11` VALUES IN (11),
+PARTITION `p12` VALUES IN (12),
+PARTITION `p13` VALUES IN (13),
+PARTITION `p14` VALUES IN (14),
+PARTITION `p15` VALUES IN (15),
+PARTITION `p16` VALUES IN (16),
+PARTITION `p17` VALUES IN (17),
+PARTITION `p18` VALUES IN (18),
+PARTITION `p19` VALUES IN (19),
+PARTITION `p20` VALUES IN (20),
+PARTITION `p21` VALUES IN (21),
+PARTITION `p22` VALUES IN (22),
+PARTITION `p23` VALUES IN (23),
+PARTITION `p24` VALUES IN (24),
+PARTITION `p25` VALUES IN (25),
+PARTITION `p26` VALUES IN (26),
+PARTITION `p27` VALUES IN (27),
+PARTITION `p28` VALUES IN (28),
+PARTITION `p29` VALUES IN (29),
+PARTITION `p30` VALUES IN (30),
+PARTITION `p31` VALUES IN (31),
+PARTITION `p32` VALUES IN (32),
+PARTITION `p33` VALUES IN (33),
+PARTITION `p34` VALUES IN (34),
+PARTITION `p35` VALUES IN (35),
+PARTITION `p36` VALUES IN (36),
+PARTITION `p37` VALUES IN (37),
+PARTITION `p38` VALUES IN (38),
+PARTITION `p39` VALUES IN (39),
+PARTITION `p40` VALUES IN (40),
+PARTITION `p41` VALUES IN (41),
+PARTITION `p42` VALUES IN (42),
+PARTITION `p43` VALUES IN (43),
+PARTITION `p44` VALUES IN (44),
+PARTITION `p45` VALUES IN (45),
+PARTITION `p46` VALUES IN (46),
+PARTITION `p47` VALUES IN (47),
+PARTITION `p48` VALUES IN (48),
+PARTITION `p49` VALUES IN (49),
+PARTITION `p50` VALUES IN (50),
+PARTITION `p51` VALUES IN (51),
+PARTITION `p52` VALUES IN (52),
+PARTITION `p53` VALUES IN (53),
+PARTITION `p54` VALUES IN (54),
+PARTITION `p55` VALUES IN (55),
+PARTITION `p56` VALUES IN (56),
+PARTITION `p57` VALUES IN (57),
+PARTITION `p58` VALUES IN (58),
+PARTITION `p59` VALUES IN (59),
+PARTITION `p60` VALUES IN (60),
+PARTITION `p61` VALUES IN (61),
+PARTITION `p62` VALUES IN (62),
+PARTITION `p63` VALUES IN (63),
+PARTITION `p64` VALUES IN (64),
+PARTITION `p65` VALUES IN (65),
+PARTITION `p66` VALUES IN (66),
+PARTITION `p67` VALUES IN (67),
+PARTITION `p68` VALUES IN (68),
+PARTITION `p69` VALUES IN (69),
+PARTITION `p70` VALUES IN (70),
+PARTITION `p71` VALUES IN (71),
+PARTITION `p72` VALUES IN (72),
+PARTITION `p73` VALUES IN (73),
+PARTITION `p74` VALUES IN (74),
+PARTITION `p75` VALUES IN (75),
+PARTITION `p76` VALUES IN (76),
+PARTITION `p77` VALUES IN (77),
+PARTITION `p78` VALUES IN (78),
+PARTITION `p79` VALUES IN (79),
+PARTITION `p80` VALUES IN (80),
+PARTITION `p81` VALUES IN (81),
+PARTITION `p82` VALUES IN (82),
+PARTITION `p83` VALUES IN (83),
+PARTITION `p84` VALUES IN (84),
+PARTITION `p85` VALUES IN (85),
+PARTITION `p86` VALUES IN (86),
+PARTITION `p87` VALUES IN (87),
+PARTITION `p88` VALUES IN (88),
+PARTITION `p89` VALUES IN (89),
+PARTITION `p90` VALUES IN (90),
+PARTITION `p91` VALUES IN (91),
+PARTITION `p92` VALUES IN (92),
+PARTITION `p93` VALUES IN (93),
+PARTITION `p94` VALUES IN (94),
+PARTITION `p95` VALUES IN (95),
+PARTITION `p96` VALUES IN (96),
+PARTITION `p97` VALUES IN (97),
+PARTITION `p98` VALUES IN (98),
+PARTITION `p99` VALUES IN (99),
+PARTITION `p100` VALUES IN (100),
+PARTITION `p101` VALUES IN (101),
+PARTITION `p102` VALUES IN (102),
+PARTITION `p103` VALUES IN (103),
+PARTITION `p104` VALUES IN (104),
+PARTITION `p105` VALUES IN (105),
+PARTITION `p106` VALUES IN (106),
+PARTITION `p107` VALUES IN (107),
+PARTITION `p108` VALUES IN (108),
+PARTITION `p109` VALUES IN (109),
+PARTITION `p110` VALUES IN (110),
+PARTITION `p111` VALUES IN (111),
+PARTITION `p112` VALUES IN (112),
+PARTITION `p113` VALUES IN (113),
+PARTITION `p114` VALUES IN (114),
+PARTITION `p115` VALUES IN (115),
+PARTITION `p116` VALUES IN (116),
+PARTITION `p117` VALUES IN (117),
+PARTITION `p118` VALUES IN (118),
+PARTITION `p119` VALUES IN (119),
+PARTITION `p120` VALUES IN (120),
+PARTITION `p121` VALUES IN (121),
+PARTITION `p122` VALUES IN (122),
+PARTITION `p123` VALUES IN (123),
+PARTITION `p124` VALUES IN (124),
+PARTITION `p125` VALUES IN (125),
+PARTITION `p126` VALUES IN (126),
+PARTITION `p127` VALUES IN (127),
+PARTITION `p128` VALUES IN (128),
+PARTITION `p129` VALUES IN (129),
+PARTITION `p130` VALUES IN (130),
+PARTITION `p131` VALUES IN (131),
+PARTITION `p132` VALUES IN (132),
+PARTITION `p133` VALUES IN (133),
+PARTITION `p134` VALUES IN (134),
+PARTITION `p135` VALUES IN (135),
+PARTITION `p136` VALUES IN (136),
+PARTITION `p137` VALUES IN (137),
+PARTITION `p138` VALUES IN (138),
+PARTITION `p139` VALUES IN (139),
+PARTITION `p140` VALUES IN (140),
+PARTITION `p141` VALUES IN (141),
+PARTITION `p142` VALUES IN (142),
+PARTITION `p143` VALUES IN (143),
+PARTITION `p144` VALUES IN (144),
+PARTITION `p145` VALUES IN (145),
+PARTITION `p146` VALUES IN (146),
+PARTITION `p147` VALUES IN (147),
+PARTITION `p148` VALUES IN (148),
+PARTITION `p149` VALUES IN (149),
+PARTITION `p150` VALUES IN (150),
+PARTITION `p151` VALUES IN (151),
+PARTITION `p152` VALUES IN (152),
+PARTITION `p153` VALUES IN (153),
+PARTITION `p154` VALUES IN (154),
+PARTITION `p155` VALUES IN (155),
+PARTITION `p156` VALUES IN (156),
+PARTITION `p157` VALUES IN (157),
+PARTITION `p158` VALUES IN (158),
+PARTITION `p159` VALUES IN (159),
+PARTITION `p160` VALUES IN (160),
+PARTITION `p161` VALUES IN (161),
+PARTITION `p162` VALUES IN (162),
+PARTITION `p163` VALUES IN (163),
+PARTITION `p164` VALUES IN (164),
+PARTITION `p165` VALUES IN (165),
+PARTITION `p166` VALUES IN (166),
+PARTITION `p167` VALUES IN (167),
+PARTITION `p168` VALUES IN (168),
+PARTITION `p169` VALUES IN (169),
+PARTITION `p170` VALUES IN (170),
+PARTITION `p171` VALUES IN (171),
+PARTITION `p172` VALUES IN (172),
+PARTITION `p173` VALUES IN (173),
+PARTITION `p174` VALUES IN (174),
+PARTITION `p175` VALUES IN (175),
+PARTITION `p176` VALUES IN (176),
+PARTITION `p177` VALUES IN (177),
+PARTITION `p178` VALUES IN (178),
+PARTITION `p179` VALUES IN (179),
+PARTITION `p180` VALUES IN (180),
+PARTITION `p181` VALUES IN (181),
+PARTITION `p182` VALUES IN (182),
+PARTITION `p183` VALUES IN (183),
+PARTITION `p184` VALUES IN (184),
+PARTITION `p185` VALUES IN (185),
+PARTITION `p186` VALUES IN (186),
+PARTITION `p187` VALUES IN (187),
+PARTITION `p188` VALUES IN (188),
+PARTITION `p189` VALUES IN (189),
+PARTITION `p190` VALUES IN (190),
+PARTITION `p191` VALUES IN (191),
+PARTITION `p192` VALUES IN (192),
+PARTITION `p193` VALUES IN (193),
+PARTITION `p194` VALUES IN (194),
+PARTITION `p195` VALUES IN (195),
+PARTITION `p196` VALUES IN (196),
+PARTITION `p197` VALUES IN (197),
+PARTITION `p198` VALUES IN (198),
+PARTITION `p199` VALUES IN (199),
+PARTITION `p200` VALUES IN (200),
+PARTITION `p201` VALUES IN (201),
+PARTITION `p202` VALUES IN (202),
+PARTITION `p203` VALUES IN (203),
+PARTITION `p204` VALUES IN (204),
+PARTITION `p205` VALUES IN (205),
+PARTITION `p206` VALUES IN (206),
+PARTITION `p207` VALUES IN (207),
+PARTITION `p208` VALUES IN (208),
+PARTITION `p209` VALUES IN (209),
+PARTITION `p210` VALUES IN (210),
+PARTITION `p211` VALUES IN (211),
+PARTITION `p212` VALUES IN (212),
+PARTITION `p213` VALUES IN (213),
+PARTITION `p214` VALUES IN (214),
+PARTITION `p215` VALUES IN (215),
+PARTITION `p216` VALUES IN (216),
+PARTITION `p217` VALUES IN (217),
+PARTITION `p218` VALUES IN (218),
+PARTITION `p219` VALUES IN (219),
+PARTITION `p220` VALUES IN (220),
+PARTITION `p221` VALUES IN (221),
+PARTITION `p222` VALUES IN (222),
+PARTITION `p223` VALUES IN (223),
+PARTITION `p224` VALUES IN (224),
+PARTITION `p225` VALUES IN (225),
+PARTITION `p226` VALUES IN (226),
+PARTITION `p227` VALUES IN (227),
+PARTITION `p228` VALUES IN (228),
+PARTITION `p229` VALUES IN (229),
+PARTITION `p230` VALUES IN (230),
+PARTITION `p231` VALUES IN (231),
+PARTITION `p232` VALUES IN (232),
+PARTITION `p233` VALUES IN (233),
+PARTITION `p234` VALUES IN (234),
+PARTITION `p235` VALUES IN (235),
+PARTITION `p236` VALUES IN (236),
+PARTITION `p237` VALUES IN (237),
+PARTITION `p238` VALUES IN (238),
+PARTITION `p239` VALUES IN (239),
+PARTITION `p240` VALUES IN (240),
+PARTITION `p241` VALUES IN (241),
+PARTITION `p242` VALUES IN (242),
+PARTITION `p243` VALUES IN (243),
+PARTITION `p244` VALUES IN (244),
+PARTITION `p245` VALUES IN (245),
+PARTITION `p246` VALUES IN (246),
+PARTITION `p247` VALUES IN (247),
+PARTITION `p248` VALUES IN (248),
+PARTITION `p249` VALUES IN (249),
+PARTITION `p250` VALUES IN (250),
+PARTITION `p251` VALUES IN (251),
+PARTITION `p252` VALUES IN (252),
+PARTITION `p253` VALUES IN (253),
+PARTITION `p254` VALUES IN (254),
+PARTITION `p255` VALUES IN (255),
+PARTITION `p256` VALUES IN (256),
+PARTITION `p257` VALUES IN (257),
+PARTITION `p258` VALUES IN (258),
+PARTITION `p259` VALUES IN (259),
+PARTITION `p260` VALUES IN (260),
+PARTITION `p261` VALUES IN (261),
+PARTITION `p262` VALUES IN (262),
+PARTITION `p263` VALUES IN (263),
+PARTITION `p264` VALUES IN (264),
+PARTITION `p265` VALUES IN (265),
+PARTITION `p266` VALUES IN (266),
+PARTITION `p267` VALUES IN (267),
+PARTITION `p268` VALUES IN (268),
+PARTITION `p269` VALUES IN (269),
+PARTITION `p270` VALUES IN (270),
+PARTITION `p271` VALUES IN (271),
+PARTITION `p272` VALUES IN (272),
+PARTITION `p273` VALUES IN (273),
+PARTITION `p274` VALUES IN (274),
+PARTITION `p275` VALUES IN (275),
+PARTITION `p276` VALUES IN (276),
+PARTITION `p277` VALUES IN (277),
+PARTITION `p278` VALUES IN (278),
+PARTITION `p279` VALUES IN (279),
+PARTITION `p280` VALUES IN (280),
+PARTITION `p281` VALUES IN (281),
+PARTITION `p282` VALUES IN (282),
+PARTITION `p283` VALUES IN (283),
+PARTITION `p284` VALUES IN (284),
+PARTITION `p285` VALUES IN (285),
+PARTITION `p286` VALUES IN (286),
+PARTITION `p287` VALUES IN (287),
+PARTITION `p288` VALUES IN (288),
+PARTITION `p289` VALUES IN (289),
+PARTITION `p290` VALUES IN (290),
+PARTITION `p291` VALUES IN (291),
+PARTITION `p292` VALUES IN (292),
+PARTITION `p293` VALUES IN (293),
+PARTITION `p294` VALUES IN (294),
+PARTITION `p295` VALUES IN (295),
+PARTITION `p296` VALUES IN (296),
+PARTITION `p297` VALUES IN (297),
+PARTITION `p298` VALUES IN (298),
+PARTITION `p299` VALUES IN (299),
+PARTITION `p300` VALUES IN (300),
+PARTITION `p301` VALUES IN (301),
+PARTITION `p302` VALUES IN (302),
+PARTITION `p303` VALUES IN (303),
+PARTITION `p304` VALUES IN (304),
+PARTITION `p305` VALUES IN (305),
+PARTITION `p306` VALUES IN (306),
+PARTITION `p307` VALUES IN (307),
+PARTITION `p308` VALUES IN (308),
+PARTITION `p309` VALUES IN (309),
+PARTITION `p310` VALUES IN (310),
+PARTITION `p311` VALUES IN (311),
+PARTITION `p312` VALUES IN (312),
+PARTITION `p313` VALUES IN (313),
+PARTITION `p314` VALUES IN (314),
+PARTITION `p315` VALUES IN (315),
+PARTITION `p316` VALUES IN (316),
+PARTITION `p317` VALUES IN (317),
+PARTITION `p318` VALUES IN (318),
+PARTITION `p319` VALUES IN (319),
+PARTITION `p320` VALUES IN (320),
+PARTITION `p321` VALUES IN (321),
+PARTITION `p322` VALUES IN (322),
+PARTITION `p323` VALUES IN (323),
+PARTITION `p324` VALUES IN (324),
+PARTITION `p325` VALUES IN (325),
+PARTITION `p326` VALUES IN (326),
+PARTITION `p327` VALUES IN (327),
+PARTITION `p328` VALUES IN (328),
+PARTITION `p329` VALUES IN (329),
+PARTITION `p330` VALUES IN (330),
+PARTITION `p331` VALUES IN (331),
+PARTITION `p332` VALUES IN (332),
+PARTITION `p333` VALUES IN (333),
+PARTITION `p334` VALUES IN (334),
+PARTITION `p335` VALUES IN (335),
+PARTITION `p336` VALUES IN (336),
+PARTITION `p337` VALUES IN (337),
+PARTITION `p338` VALUES IN (338),
+PARTITION `p339` VALUES IN (339),
+PARTITION `p340` VALUES IN (340),
+PARTITION `p341` VALUES IN (341),
+PARTITION `p342` VALUES IN (342),
+PARTITION `p343` VALUES IN (343),
+PARTITION `p344` VALUES IN (344),
+PARTITION `p345` VALUES IN (345),
+PARTITION `p346` VALUES IN (346),
+PARTITION `p347` VALUES IN (347),
+PARTITION `p348` VALUES IN (348),
+PARTITION `p349` VALUES IN (349),
+PARTITION `p350` VALUES IN (350),
+PARTITION `p351` VALUES IN (351),
+PARTITION `p352` VALUES IN (352),
+PARTITION `p353` VALUES IN (353),
+PARTITION `p354` VALUES IN (354),
+PARTITION `p355` VALUES IN (355),
+PARTITION `p356` VALUES IN (356),
+PARTITION `p357` VALUES IN (357),
+PARTITION `p358` VALUES IN (358),
+PARTITION `p359` VALUES IN (359),
+PARTITION `p360` VALUES IN (360),
+PARTITION `p361` VALUES IN (361),
+PARTITION `p362` VALUES IN (362),
+PARTITION `p363` VALUES IN (363),
+PARTITION `p364` VALUES IN (364),
+PARTITION `p365` VALUES IN (365),
+PARTITION `p366` VALUES IN (366),
+PARTITION `p367` VALUES IN (367),
+PARTITION `p368` VALUES IN (368),
+PARTITION `p369` VALUES IN (369),
+PARTITION `p370` VALUES IN (370),
+PARTITION `p371` VALUES IN (371),
+PARTITION `p372` VALUES IN (372),
+PARTITION `p373` VALUES IN (373),
+PARTITION `p374` VALUES IN (374),
+PARTITION `p375` VALUES IN (375),
+PARTITION `p376` VALUES IN (376),
+PARTITION `p377` VALUES IN (377),
+PARTITION `p378` VALUES IN (378),
+PARTITION `p379` VALUES IN (379),
+PARTITION `p380` VALUES IN (380),
+PARTITION `p381` VALUES IN (381),
+PARTITION `p382` VALUES IN (382),
+PARTITION `p383` VALUES IN (383),
+PARTITION `p384` VALUES IN (384),
+PARTITION `p385` VALUES IN (385),
+PARTITION `p386` VALUES IN (386),
+PARTITION `p387` VALUES IN (387),
+PARTITION `p388` VALUES IN (388),
+PARTITION `p389` VALUES IN (389),
+PARTITION `p390` VALUES IN (390),
+PARTITION `p391` VALUES IN (391),
+PARTITION `p392` VALUES IN (392),
+PARTITION `p393` VALUES IN (393),
+PARTITION `p394` VALUES IN (394),
+PARTITION `p395` VALUES IN (395),
+PARTITION `p396` VALUES IN (396),
+PARTITION `p397` VALUES IN (397),
+PARTITION `p398` VALUES IN (398),
+PARTITION `p399` VALUES IN (399),
+PARTITION `p400` VALUES IN (400),
+PARTITION `p401` VALUES IN (401),
+PARTITION `p402` VALUES IN (402),
+PARTITION `p403` VALUES IN (403),
+PARTITION `p404` VALUES IN (404),
+PARTITION `p405` VALUES IN (405),
+PARTITION `p406` VALUES IN (406),
+PARTITION `p407` VALUES IN (407),
+PARTITION `p408` VALUES IN (408),
+PARTITION `p409` VALUES IN (409),
+PARTITION `p410` VALUES IN (410),
+PARTITION `p411` VALUES IN (411),
+PARTITION `p412` VALUES IN (412),
+PARTITION `p413` VALUES IN (413),
+PARTITION `p414` VALUES IN (414),
+PARTITION `p415` VALUES IN (415),
+PARTITION `p416` VALUES IN (416),
+PARTITION `p417` VALUES IN (417),
+PARTITION `p418` VALUES IN (418),
+PARTITION `p419` VALUES IN (419),
+PARTITION `p420` VALUES IN (420),
+PARTITION `p421` VALUES IN (421),
+PARTITION `p422` VALUES IN (422),
+PARTITION `p423` VALUES IN (423),
+PARTITION `p424` VALUES IN (424),
+PARTITION `p425` VALUES IN (425),
+PARTITION `p426` VALUES IN (426),
+PARTITION `p427` VALUES IN (427),
+PARTITION `p428` VALUES IN (428),
+PARTITION `p429` VALUES IN (429),
+PARTITION `p430` VALUES IN (430),
+PARTITION `p431` VALUES IN (431),
+PARTITION `p432` VALUES IN (432),
+PARTITION `p433` VALUES IN (433),
+PARTITION `p434` VALUES IN (434),
+PARTITION `p435` VALUES IN (435),
+PARTITION `p436` VALUES IN (436),
+PARTITION `p437` VALUES IN (437),
+PARTITION `p438` VALUES IN (438),
+PARTITION `p439` VALUES IN (439),
+PARTITION `p440` VALUES IN (440),
+PARTITION `p441` VALUES IN (441),
+PARTITION `p442` VALUES IN (442),
+PARTITION `p443` VALUES IN (443),
+PARTITION `p444` VALUES IN (444),
+PARTITION `p445` VALUES IN (445),
+PARTITION `p446` VALUES IN (446),
+PARTITION `p447` VALUES IN (447),
+PARTITION `p448` VALUES IN (448),
+PARTITION `p449` VALUES IN (449),
+PARTITION `p450` VALUES IN (450),
+PARTITION `p451` VALUES IN (451),
+PARTITION `p452` VALUES IN (452),
+PARTITION `p453` VALUES IN (453),
+PARTITION `p454` VALUES IN (454),
+PARTITION `p455` VALUES IN (455),
+PARTITION `p456` VALUES IN (456),
+PARTITION `p457` VALUES IN (457),
+PARTITION `p458` VALUES IN (458),
+PARTITION `p459` VALUES IN (459),
+PARTITION `p460` VALUES IN (460),
+PARTITION `p461` VALUES IN (461),
+PARTITION `p462` VALUES IN (462),
+PARTITION `p463` VALUES IN (463),
+PARTITION `p464` VALUES IN (464),
+PARTITION `p465` VALUES IN (465),
+PARTITION `p466` VALUES IN (466),
+PARTITION `p467` VALUES IN (467),
+PARTITION `p468` VALUES IN (468),
+PARTITION `p469` VALUES IN (469),
+PARTITION `p470` VALUES IN (470),
+PARTITION `p471` VALUES IN (471),
+PARTITION `p472` VALUES IN (472),
+PARTITION `p473` VALUES IN (473),
+PARTITION `p474` VALUES IN (474),
+PARTITION `p475` VALUES IN (475),
+PARTITION `p476` VALUES IN (476),
+PARTITION `p477` VALUES IN (477),
+PARTITION `p478` VALUES IN (478),
+PARTITION `p479` VALUES IN (479),
+PARTITION `p480` VALUES IN (480),
+PARTITION `p481` VALUES IN (481),
+PARTITION `p482` VALUES IN (482),
+PARTITION `p483` VALUES IN (483),
+PARTITION `p484` VALUES IN (484),
+PARTITION `p485` VALUES IN (485),
+PARTITION `p486` VALUES IN (486),
+PARTITION `p487` VALUES IN (487),
+PARTITION `p488` VALUES IN (488),
+PARTITION `p489` VALUES IN (489),
+PARTITION `p490` VALUES IN (490),
+PARTITION `p491` VALUES IN (491),
+PARTITION `p492` VALUES IN (492),
+PARTITION `p493` VALUES IN (493),
+PARTITION `p494` VALUES IN (494),
+PARTITION `p495` VALUES IN (495),
+PARTITION `p496` VALUES IN (496),
+PARTITION `p497` VALUES IN (497),
+PARTITION `p498` VALUES IN (498),
+PARTITION `p499` VALUES IN (499),
+PARTITION `p500` VALUES IN (500),
+PARTITION `p501` VALUES IN (501),
+PARTITION `p502` VALUES IN (502),
+PARTITION `p503` VALUES IN (503),
+PARTITION `p504` VALUES IN (504),
+PARTITION `p505` VALUES IN (505),
+PARTITION `p506` VALUES IN (506),
+PARTITION `p507` VALUES IN (507),
+PARTITION `p508` VALUES IN (508),
+PARTITION `p509` VALUES IN (509),
+PARTITION `p510` VALUES IN (510),
+PARTITION `p511` VALUES IN (511),
+PARTITION `p512` VALUES IN (512),
+PARTITION `p513` VALUES IN (513),
+PARTITION `p514` VALUES IN (514),
+PARTITION `p515` VALUES IN (515),
+PARTITION `p516` VALUES IN (516),
+PARTITION `p517` VALUES IN (517),
+PARTITION `p518` VALUES IN (518),
+PARTITION `p519` VALUES IN (519),
+PARTITION `p520` VALUES IN (520),
+PARTITION `p521` VALUES IN (521),
+PARTITION `p522` VALUES IN (522),
+PARTITION `p523` VALUES IN (523),
+PARTITION `p524` VALUES IN (524),
+PARTITION `p525` VALUES IN (525),
+PARTITION `p526` VALUES IN (526),
+PARTITION `p527` VALUES IN (527),
+PARTITION `p528` VALUES IN (528),
+PARTITION `p529` VALUES IN (529),
+PARTITION `p530` VALUES IN (530),
+PARTITION `p531` VALUES IN (531),
+PARTITION `p532` VALUES IN (532),
+PARTITION `p533` VALUES IN (533),
+PARTITION `p534` VALUES IN (534),
+PARTITION `p535` VALUES IN (535),
+PARTITION `p536` VALUES IN (536),
+PARTITION `p537` VALUES IN (537),
+PARTITION `p538` VALUES IN (538),
+PARTITION `p539` VALUES IN (539),
+PARTITION `p540` VALUES IN (540),
+PARTITION `p541` VALUES IN (541),
+PARTITION `p542` VALUES IN (542),
+PARTITION `p543` VALUES IN (543),
+PARTITION `p544` VALUES IN (544),
+PARTITION `p545` VALUES IN (545),
+PARTITION `p546` VALUES IN (546),
+PARTITION `p547` VALUES IN (547),
+PARTITION `p548` VALUES IN (548),
+PARTITION `p549` VALUES IN (549),
+PARTITION `p550` VALUES IN (550),
+PARTITION `p551` VALUES IN (551),
+PARTITION `p552` VALUES IN (552),
+PARTITION `p553` VALUES IN (553),
+PARTITION `p554` VALUES IN (554),
+PARTITION `p555` VALUES IN (555),
+PARTITION `p556` VALUES IN (556),
+PARTITION `p557` VALUES IN (557),
+PARTITION `p558` VALUES IN (558),
+PARTITION `p559` VALUES IN (559),
+PARTITION `p560` VALUES IN (560),
+PARTITION `p561` VALUES IN (561),
+PARTITION `p562` VALUES IN (562),
+PARTITION `p563` VALUES IN (563),
+PARTITION `p564` VALUES IN (564),
+PARTITION `p565` VALUES IN (565),
+PARTITION `p566` VALUES IN (566),
+PARTITION `p567` VALUES IN (567),
+PARTITION `p568` VALUES IN (568),
+PARTITION `p569` VALUES IN (569),
+PARTITION `p570` VALUES IN (570),
+PARTITION `p571` VALUES IN (571),
+PARTITION `p572` VALUES IN (572),
+PARTITION `p573` VALUES IN (573),
+PARTITION `p574` VALUES IN (574),
+PARTITION `p575` VALUES IN (575),
+PARTITION `p576` VALUES IN (576),
+PARTITION `p577` VALUES IN (577),
+PARTITION `p578` VALUES IN (578),
+PARTITION `p579` VALUES IN (579),
+PARTITION `p580` VALUES IN (580),
+PARTITION `p581` VALUES IN (581),
+PARTITION `p582` VALUES IN (582),
+PARTITION `p583` VALUES IN (583),
+PARTITION `p584` VALUES IN (584),
+PARTITION `p585` VALUES IN (585),
+PARTITION `p586` VALUES IN (586),
+PARTITION `p587` VALUES IN (587),
+PARTITION `p588` VALUES IN (588),
+PARTITION `p589` VALUES IN (589),
+PARTITION `p590` VALUES IN (590),
+PARTITION `p591` VALUES IN (591),
+PARTITION `p592` VALUES IN (592),
+PARTITION `p593` VALUES IN (593),
+PARTITION `p594` VALUES IN (594),
+PARTITION `p595` VALUES IN (595),
+PARTITION `p596` VALUES IN (596),
+PARTITION `p597` VALUES IN (597),
+PARTITION `p598` VALUES IN (598),
+PARTITION `p599` VALUES IN (599)
+
+        )
+    DISTRIBUTED BY HASH(`id`) BUCKETS 16
+    PROPERTIES
+    (
+        "replication_num" = "1"
+    );
+    
+    """
+
+    sql """
+        INSERT INTO test_600_partition_table_analyze VALUES 
(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27),(28),(29),(30),(31),(32),(33),(34),(35),(36),(37),(38),(39),(40),(41),(42),(43),(44),(45),(46),(47),(48),(49),(50),(51),(52),(53),(54),(55),(56),(57),(58),(59),(60),(61),(62),(63),(64),(65),(66),(67),(68),(69),(70),(71),(72),(73),(74),(75),(76),(77),(78),(79),(80),(81),(82),(83),(84),(85),(86),(87),(8
 [...]
+    """
+
+    sql """ANALYZE TABLE test_600_partition_table_analyze WITH SYNC"""
+
+    //  column_name | count | ndv  | num_null | data_size | avg_size_byte | 
min  | max  | updated_time
+    id_col_stats = sql """
+        SHOW COLUMN CACHED STATS test_600_partition_table_analyze(id);
+    """
+
+    def expected_col_stats = { r, expected_value, idx ->
+        return (int) Double.parseDouble(r[0][idx]) == expected_value
+    }
+
+    assert expected_col_stats(id_col_stats, 600, 1)
+    assert expected_col_stats(id_col_stats, 599, 7)
+    assert expected_col_stats(id_col_stats, 0, 6)
+
+    sql """DROP TABLE IF EXISTS increment_analyze_test"""
+    sql """
+        CREATE TABLE increment_analyze_test (
+            id BIGINT
+        ) DUPLICATE KEY(`id`)
+        PARTITION BY RANGE(`id`)
+        (
+            PARTITION `p1` VALUES LESS THAN ('5')
+        )
+        
+        DISTRIBUTED BY HASH(`id`) BUCKETS 3
+        PROPERTIES (
+            "replication_num"="1"
+        );
+    """
+
+    sql """INSERT INTO increment_analyze_test VALUES(1),(2),(3)"""
+    sql """ANALYZE TABLE increment_analyze_test WITH SYNC"""
+    sql """ALTER TABLE increment_analyze_test ADD PARTITION p2 VALUES LESS 
THAN('10')"""
+
+    sql """INSERT INTO increment_analyze_test VALUES(6),(7),(8)"""
+    sql """ANALYZE TABLE increment_analyze_test WITH SYNC WITH INCREMENTAL"""
+    def inc_res = sql """
+        SHOW COLUMN CACHED STATS increment_analyze_test(id)
+    """
+
+    expected_col_stats(inc_res, 6, 1)
+
+    sql """
+        DROP TABLE regression_test_statistics.increment_analyze_test;
+    """
+
+    sql """
+        CREATE TABLE a_partitioned_table_for_analyze_test (
+            id BIGINT,
+            val BIGINT,
+            str VARCHAR(114)
+        ) DUPLICATE KEY(`id`)
+        PARTITION BY RANGE(`id`)
+        (
+            PARTITION `p1` VALUES LESS THAN ('5'),
+            PARTITION `p2` VALUES LESS THAN ('10'),
+            PARTITION `p3` VALUES LESS THAN ('15')
+        )
+        DISTRIBUTED BY HASH(`id`) BUCKETS 3
+        PROPERTIES (
+        "replication_num"="1"
+        );
+    """
+
+    sql """
+        INSERT INTO a_partitioned_table_for_analyze_test VALUES(1, 5, 
11),(6,1,5),(11,8,5);
+    """
+
+    sql """
+        ANALYZE TABLE a_partitioned_table_for_analyze_test(id) WITH SYNC
+    """
+
+    sql """
+        ANALYZE TABLE a_partitioned_table_for_analyze_test(val) WITH SYNC
+    """
+
+    def col_val_res = sql """
+        SHOW COLUMN CACHED STATS a_partitioned_table_for_analyze_test(val)
+    """
+
+    expected_col_stats(col_val_res, 3, 1)
+
+    def col_id_res = sql """
+        SHOW COLUMN CACHED STATS a_partitioned_table_for_analyze_test(id)
+    """
+    expected_col_stats(col_id_res, 3, 1)
+
+    sql """DROP TABLE IF EXISTS `some_complex_type_test`"""
+
+    sql """
+       CREATE TABLE `some_complex_type_test` (
+          `id` int(11) NULL COMMENT "",
+          `c_array` ARRAY<int(11)> NULL COMMENT ""
+        ) ENGINE=OLAP
+        DUPLICATE KEY(`id`)
+        COMMENT "OLAP"
+        DISTRIBUTED BY HASH(`id`) BUCKETS 1
+        PROPERTIES (
+        "replication_allocation" = "tag.location.default: 1",
+        "in_memory" = "false",
+        "storage_format" = "V2"
+        );
+    """
+
+    sql """INSERT INTO `some_complex_type_test` VALUES (1, [1,2,3,4,5]);"""
+    sql """INSERT INTO `some_complex_type_test` VALUES (2, [6,7,8]), (3, []), 
(4, null);"""
+
+    sql """
+        ANALYZE TABLE `some_complex_type_test` WITH SYNC;
+
+    """
+
+    sql """
+        SELECT COUNT(1) FROM `some_complex_type_test`
+    """
+
+    sql """DROP TABLE IF EXISTS `analyze_test_with_schema_update`"""
+
+    sql """
+        CREATE TABLE `analyze_test_with_schema_update` (
+        col1 varchar(11451) not null, col2 int not null, col3 int not null)
+        DUPLICATE KEY(col1)
+        DISTRIBUTED BY HASH(col1)
+        BUCKETS 3
+        PROPERTIES(
+            "replication_num"="1"
+        );
+    """
+
+    sql """insert into analyze_test_with_schema_update values(1, 2, 3);"""
+    sql """insert into analyze_test_with_schema_update values(4, 5, 6);"""
+    sql """insert into analyze_test_with_schema_update values(7, 1, 9);"""
+    sql """insert into analyze_test_with_schema_update values(3, 8, 2);"""
+    sql """insert into analyze_test_with_schema_update values(5, 2, 1);"""
+
+    sql """
+        ANALYZE TABLE analyze_test_with_schema_update WITH SYNC
+    """
+
+    sql """
+        ALTER TABLE analyze_test_with_schema_update ADD COLUMN tbl_name 
VARCHAR(256) DEFAULT NULL;
+    """
+
+    sql """
+        ANALYZE TABLE analyze_test_with_schema_update WITH SYNC
+    """
+
+    sql """
+        SELECT * FROM analyze_test_with_schema_update;
+    """
+
+    sql """
+        DROP STATS analyze_test_with_schema_update(col3);
+    """
+
+    sql """
+        ANALYZE TABLE analyze_test_with_schema_update WITH SYNC
+    """
+
+    sql """
+        SELECT * FROM analyze_test_with_schema_update;
+    """
+
+    sql """
+        DROP TABLE IF EXISTS two_thousand_partition_table_test
+    """
+
+    sql """
+        CREATE TABLE two_thousand_partition_table_test (col1 int(11451) not 
null)
+        DUPLICATE KEY(col1)
+          PARTITION BY RANGE(`col1`)
+                  (
+                  from (0) to (1000001) INTERVAL 500
+                  )
+        DISTRIBUTED BY HASH(col1)
+        BUCKETS 3
+        PROPERTIES(
+            "replication_num"="1"
+        );
+    """
+
+    sql """
+        ANALYZE TABLE two_thousand_partition_table_test WITH SYNC;
+    """
 
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to