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]
