distinct_arrangements.slt 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. mode cockroach
  10. reset-server
  11. # When updating this file, make sure that the number of arrangements doesn't
  12. # increase unexpectedly. This is to prevent issues like this:
  13. # https://github.com/MaterializeInc/database-issues/issues/6038
  14. # Introspection subscribes add noise to the introspection sources, so disable them.
  15. simple conn=mz_system,user=mz_system
  16. ALTER SYSTEM SET enable_introspection_subscribes = false;
  17. ----
  18. COMPLETE 0
  19. # Run the majority of this test on its own cluster to ensure it doesn't
  20. # interfere with any other tests.
  21. statement ok
  22. CREATE CLUSTER distinct_arrangements REPLICAS (r1 (SIZE '1'))
  23. statement ok
  24. SET cluster TO distinct_arrangements
  25. statement ok
  26. SET cluster_replica = r1
  27. # from attributes/mir_unique_keys.slt
  28. statement ok
  29. CREATE TABLE u (c int, d int)
  30. statement ok
  31. CREATE VIEW v as SELECT c, d FROM u GROUP BY c, d
  32. statement ok
  33. CREATE DEFAULT INDEX on v
  34. statement ok
  35. SELECT mz_unsafe.mz_sleep(4)
  36. query T
  37. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  38. ----
  39. Arrange bundle err
  40. Arranged DistinctBy
  41. DistinctBy
  42. DistinctByErrorCheck
  43. statement ok
  44. DROP TABLE u CASCADE
  45. # from cte.slt
  46. statement ok
  47. CREATE TABLE squares (x int, y int)
  48. statement ok
  49. CREATE TABLE roots (x int, y int);
  50. statement ok
  51. CREATE MATERIALIZED VIEW v AS
  52. SELECT * FROM squares
  53. WHERE x IN (
  54. WITH squares_y AS (
  55. SELECT squares.y
  56. )
  57. SELECT y FROM roots
  58. WHERE y IN (
  59. SELECT y FROM squares_y
  60. )
  61. );
  62. statement ok
  63. SELECT mz_unsafe.mz_sleep(4)
  64. query T
  65. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  66. ----
  67. ArrangeBy[[Column(0), Column(1)]]
  68. ArrangeBy[[Column(0)]]
  69. ArrangeBy[[Column(0)]]
  70. Arranged DistinctBy
  71. Arranged DistinctBy
  72. DistinctBy
  73. DistinctBy
  74. DistinctByErrorCheck
  75. DistinctByErrorCheck
  76. statement ok
  77. DROP TABLE squares CASCADE
  78. statement ok
  79. DROP TABLE roots CASCADE
  80. # from explain/decorrelated_plan_as_json.slt
  81. statement ok
  82. CREATE TABLE t (
  83. a int,
  84. b int
  85. )
  86. statement ok
  87. CREATE VIEW v AS SELECT * FROM t ORDER BY b asc, a desc LIMIT 5
  88. statement ok
  89. CREATE DEFAULT INDEX ON v
  90. statement ok
  91. CREATE MATERIALIZED VIEW mv AS
  92. SELECT * FROM t WHERE a IS NOT NULL
  93. statement ok
  94. SELECT mz_unsafe.mz_sleep(4)
  95. query T
  96. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  97. ----
  98. ArrangeBy[[Column(0, "a"), Column(1, "b")]]
  99. ArrangeBy[[Column(0, "a"), Column(1, "b")]]-errors
  100. Arranged TopK input
  101. Arranged TopK input
  102. Arranged TopK input
  103. Arranged TopK input
  104. Arranged TopK input
  105. Arranged TopK input
  106. Arranged TopK input
  107. Arranged TopK input
  108. Reduced TopK input
  109. Reduced TopK input
  110. Reduced TopK input
  111. Reduced TopK input
  112. Reduced TopK input
  113. Reduced TopK input
  114. Reduced TopK input
  115. Reduced TopK input
  116. statement ok
  117. DROP TABLE t CASCADE
  118. # from list.slt
  119. statement ok
  120. CREATE TABLE t3(f1 int, f2 int, f3 int, f4 int, f5 int, f6 int, f7 int, f8 int, n int, m int, l int list)
  121. statement ok
  122. CREATE VIEW m3 AS SELECT * FROM t3
  123. statement ok
  124. CREATE DEFAULT INDEX ON m3
  125. statement ok
  126. SELECT mz_unsafe.mz_sleep(4)
  127. query T
  128. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  129. ----
  130. ArrangeBy[[Column(0, "f1"), Column(1, "f2"), Column(2, "f3"), Column(3, "f4"), Column(4, "f5"), Column(5, "f6"), Column(6, "f7"), Column(7, "f8"), Column(8, "n"), Column(9, "m"), Column(10, "l")]]
  131. ArrangeBy[[Column(0, "f1"), Column(1, "f2"), Column(2, "f3"), Column(3, "f4"), Column(4, "f5"), Column(5, "f6"), Column(6, "f7"), Column(7, "f8"), Column(8, "n"), Column(9, "m"), Column(10, "l")]]-errors
  132. statement ok
  133. DROP TABLE t3 CASCADE
  134. # from mztimestamp.slt
  135. statement ok
  136. CREATE VIEW intervals (a, b) AS VALUES (1, 10), (1, 2), (2, 13), (3, 1), (-3, 10), (5, 18446744073709551616)
  137. statement ok
  138. CREATE MATERIALIZED VIEW valid AS
  139. SELECT *
  140. FROM intervals
  141. WHERE mz_now() BETWEEN a AND b;
  142. statement ok
  143. SELECT mz_unsafe.mz_sleep(4)
  144. query T
  145. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  146. ----
  147. statement ok
  148. DROP VIEW intervals CASCADE
  149. # from outer_join_simpliciation.slt
  150. statement ok
  151. create table foo_raw (a int4, b int8, u text)
  152. statement ok
  153. create table bar_raw (a int4, v text)
  154. statement ok
  155. create materialized view foo as select * from foo_raw where a is not null and b is not null;
  156. statement ok
  157. create materialized view bar as select distinct on (a) a, v from bar_raw
  158. statement ok
  159. create materialized view ban_nn as select * from bar where a is not null
  160. statement ok
  161. create table baz_raw (b int8, c int2, w text)
  162. statement ok
  163. create materialized view baz as select distinct on (b) b, c, w from baz_raw where b is not null
  164. statement ok
  165. create table quux_raw (c int2, x text)
  166. statement ok
  167. create materialized view quux as select distinct on (c) c, x from quux_raw where c is not null
  168. statement ok
  169. SELECT mz_unsafe.mz_sleep(4)
  170. query T
  171. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  172. ----
  173. Arranged TopK input
  174. Arranged TopK input
  175. Arranged TopK input
  176. Arranged TopK input
  177. Arranged TopK input
  178. Arranged TopK input
  179. Arranged TopK input
  180. Arranged TopK input
  181. Arranged TopK input
  182. Arranged TopK input
  183. Arranged TopK input
  184. Arranged TopK input
  185. Arranged TopK input
  186. Arranged TopK input
  187. Arranged TopK input
  188. Arranged TopK input
  189. Arranged TopK input
  190. Arranged TopK input
  191. Arranged TopK input
  192. Arranged TopK input
  193. Arranged TopK input
  194. Arranged TopK input
  195. Arranged TopK input
  196. Arranged TopK input
  197. Reduced TopK input
  198. Reduced TopK input
  199. Reduced TopK input
  200. Reduced TopK input
  201. Reduced TopK input
  202. Reduced TopK input
  203. Reduced TopK input
  204. Reduced TopK input
  205. Reduced TopK input
  206. Reduced TopK input
  207. Reduced TopK input
  208. Reduced TopK input
  209. Reduced TopK input
  210. Reduced TopK input
  211. Reduced TopK input
  212. Reduced TopK input
  213. Reduced TopK input
  214. Reduced TopK input
  215. Reduced TopK input
  216. Reduced TopK input
  217. Reduced TopK input
  218. Reduced TopK input
  219. Reduced TopK input
  220. Reduced TopK input
  221. statement ok
  222. DROP TABLE foo_raw CASCADE
  223. statement ok
  224. DROP TABLE bar_raw CASCADE
  225. statement ok
  226. DROP TABLE baz_raw CASCADE
  227. statement ok
  228. DROP TABLE quux_raw CASCADE
  229. # from session-window-wmr.slt
  230. statement ok
  231. CREATE TABLE events (
  232. id int,
  233. event_time timestamp,
  234. user_id int,
  235. worth decimal
  236. );
  237. statement ok
  238. CREATE MATERIALIZED VIEW event_session AS
  239. WITH MUTUALLY RECURSIVE
  240. make_session (user_id int4, session tsrange)
  241. AS (
  242. SELECT
  243. user_id, tsrange(event_time, event_time + '5 m'::INTERVAL) AS session
  244. FROM
  245. events
  246. ),
  247. merge_session (user_id int4, session tsrange)
  248. AS (
  249. SELECT
  250. DISTINCT user_id, l_session + r_session
  251. FROM
  252. (
  253. SELECT
  254. l.user_id AS user_id, l.session AS l_session, r.session AS r_session
  255. FROM
  256. make_session AS l, make_session AS r
  257. WHERE
  258. l.user_id = r.user_id
  259. AND (l.session && r.session OR l.session -|- r.session)
  260. UNION ALL
  261. SELECT
  262. make_session.user_id, make_session.session, merge_session.session
  263. FROM
  264. make_session, merge_session
  265. WHERE
  266. make_session.user_id = merge_session.user_id
  267. AND (
  268. make_session.session && merge_session.session
  269. OR make_session.session -|- merge_session.session
  270. )
  271. )
  272. ),
  273. reduce_session (user_id int4, session tsrange)
  274. AS (
  275. SELECT
  276. user_id, tsrange(lower, upper)
  277. FROM
  278. (
  279. SELECT
  280. user_id, min(lower) AS lower, upper
  281. FROM
  282. (
  283. SELECT
  284. user_id, lower(session), max(upper(session)) AS upper
  285. FROM
  286. merge_session
  287. GROUP BY
  288. user_id, lower(session)
  289. )
  290. GROUP BY
  291. user_id, upper
  292. )
  293. )
  294. SELECT
  295. *
  296. FROM
  297. reduce_session;
  298. statement ok
  299. CREATE MATERIALIZED VIEW user_session_worth AS
  300. SELECT
  301. user_id, id, count, upper(session) - lower(session) AS session_len, sum AS worth
  302. FROM
  303. (
  304. SELECT
  305. events.user_id, session, min(id) AS id, count(id), sum(worth)
  306. FROM
  307. events
  308. JOIN event_session ON
  309. events.user_id = event_session.user_id
  310. AND event_session.session @> events.event_time
  311. GROUP BY
  312. events.user_id, session
  313. );
  314. statement ok
  315. SELECT mz_unsafe.mz_sleep(4)
  316. query T
  317. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  318. ----
  319. AccumulableErrorCheck
  320. Arrange ReduceCollation
  321. Arrange ReduceMinsMaxes
  322. Arrange ReduceMinsMaxes
  323. Arrange ReduceMinsMaxes
  324. Arrange recursive err
  325. ArrangeAccumulable [val: empty]
  326. ArrangeBy[[Column(0, "user_id")]]
  327. ArrangeBy[[Column(0, "user_id")]]
  328. ArrangeBy[[Column(0, "user_id")]]
  329. ArrangeBy[[Column(2, "user_id")]]
  330. Arranged DistinctBy
  331. Arranged MinsMaxesHierarchical input
  332. Arranged MinsMaxesHierarchical input
  333. Arranged MinsMaxesHierarchical input
  334. Arranged MinsMaxesHierarchical input
  335. Arranged MinsMaxesHierarchical input
  336. Arranged MinsMaxesHierarchical input
  337. Arranged MinsMaxesHierarchical input
  338. Arranged MinsMaxesHierarchical input
  339. Arranged MinsMaxesHierarchical input
  340. Arranged MinsMaxesHierarchical input
  341. Arranged MinsMaxesHierarchical input
  342. Arranged MinsMaxesHierarchical input
  343. Arranged MinsMaxesHierarchical input
  344. Arranged MinsMaxesHierarchical input
  345. Arranged MinsMaxesHierarchical input
  346. Arranged MinsMaxesHierarchical input
  347. Arranged MinsMaxesHierarchical input
  348. Arranged MinsMaxesHierarchical input
  349. Arranged MinsMaxesHierarchical input
  350. Arranged MinsMaxesHierarchical input
  351. Arranged MinsMaxesHierarchical input
  352. Distinct recursive err
  353. DistinctBy
  354. DistinctByErrorCheck
  355. ReduceAccumulable
  356. ReduceCollation
  357. ReduceCollation Errors
  358. ReduceMinsMaxes
  359. ReduceMinsMaxes
  360. ReduceMinsMaxes
  361. Reduced Fallibly MinsMaxesHierarchical
  362. Reduced Fallibly MinsMaxesHierarchical
  363. Reduced Fallibly MinsMaxesHierarchical
  364. Reduced Fallibly MinsMaxesHierarchical
  365. Reduced Fallibly MinsMaxesHierarchical
  366. Reduced Fallibly MinsMaxesHierarchical
  367. Reduced Fallibly MinsMaxesHierarchical
  368. Reduced Fallibly MinsMaxesHierarchical
  369. Reduced Fallibly MinsMaxesHierarchical
  370. Reduced Fallibly MinsMaxesHierarchical
  371. Reduced Fallibly MinsMaxesHierarchical
  372. Reduced Fallibly MinsMaxesHierarchical
  373. Reduced Fallibly MinsMaxesHierarchical
  374. Reduced Fallibly MinsMaxesHierarchical
  375. Reduced Fallibly MinsMaxesHierarchical
  376. Reduced Fallibly MinsMaxesHierarchical
  377. Reduced Fallibly MinsMaxesHierarchical
  378. Reduced Fallibly MinsMaxesHierarchical
  379. Reduced Fallibly MinsMaxesHierarchical
  380. Reduced Fallibly MinsMaxesHierarchical
  381. Reduced Fallibly MinsMaxesHierarchical
  382. statement ok
  383. DROP TABLE events CASCADE
  384. # from transactions.slt
  385. statement ok
  386. CREATE TABLE t (a int)
  387. statement ok
  388. CREATE MATERIALIZED VIEW v AS SELECT COUNT(*) FROM T
  389. statement ok
  390. SELECT mz_unsafe.mz_sleep(4)
  391. query T
  392. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  393. ----
  394. AccumulableErrorCheck
  395. ArrangeAccumulable [val: empty]
  396. ReduceAccumulable
  397. statement ok
  398. DROP TABLE t CASCADE
  399. # from with mutually_recursive.slt
  400. statement ok
  401. CREATE TABLE t1 (f1 INTEGER);
  402. statement ok
  403. CREATE MATERIALIZED VIEW v1 AS
  404. WITH MUTUALLY RECURSIVE (RETURN AT RECURSION LIMIT 2)
  405. cnt (f1 INTEGER) AS (
  406. SELECT f1 FROM t1 UNION ALL SELECT f1+1 AS f1 FROM cnt
  407. )
  408. SELECT * FROM cnt;
  409. statement ok
  410. SELECT mz_unsafe.mz_sleep(4)
  411. query T
  412. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  413. ----
  414. Arrange recursive err
  415. Distinct recursive err
  416. statement ok
  417. DROP TABLE t1 CASCADE
  418. statement ok
  419. CREATE TABLE t1 (f1 INTEGER);
  420. statement ok
  421. CREATE VIEW v1 AS
  422. WITH MUTUALLY RECURSIVE (RETURN AT RECURSION LIMIT 2)
  423. cnt (f1 INTEGER) AS (
  424. SELECT f1 FROM t1 UNION ALL SELECT f1+1 AS f1 FROM cnt
  425. )
  426. SELECT * FROM cnt;
  427. statement ok
  428. CREATE DEFAULT INDEX ON v1;
  429. statement ok
  430. SELECT mz_unsafe.mz_sleep(4)
  431. query T
  432. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  433. ----
  434. Arrange export iterative
  435. Arrange export iterative err
  436. Arrange recursive err
  437. Distinct recursive err
  438. statement ok
  439. DROP TABLE t1 CASCADE
  440. # from fetch-tail-as-of.td
  441. statement ok
  442. CREATE TABLE t1 (f1 INTEGER)
  443. statement ok
  444. CREATE DEFAULT INDEX ON t1
  445. statement ok
  446. SELECT mz_unsafe.mz_sleep(4)
  447. query T
  448. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  449. ----
  450. ArrangeBy[[Column(0, "f1")]]
  451. ArrangeBy[[Column(0, "f1")]]-errors
  452. statement ok
  453. DROP TABLE t1 CASCADE
  454. # from fetch-tail-query.td
  455. statement ok
  456. CREATE TABLE t1 (f1 INTEGER)
  457. statement ok
  458. CREATE MATERIALIZED VIEW v1 AS SELECT count(*) FROM t1
  459. statement ok
  460. SELECT mz_unsafe.mz_sleep(4)
  461. query T
  462. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  463. ----
  464. AccumulableErrorCheck
  465. ArrangeAccumulable [val: empty]
  466. ReduceAccumulable
  467. statement ok
  468. DROP TABLE t1 CASCADE
  469. # from fetch-tail-retraction.td
  470. statement ok
  471. CREATE TABLE inserts (f1 INTEGER)
  472. statement ok
  473. CREATE TABLE deletes (f1 INTEGER)
  474. statement ok
  475. CREATE MATERIALIZED VIEW v1 AS SELECT * FROM inserts EXCEPT ALL SELECT * FROM deletes
  476. statement ok
  477. SELECT mz_unsafe.mz_sleep(4)
  478. query T
  479. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  480. ----
  481. ArrangeBy[[Column(0)]]
  482. Threshold local
  483. statement ok
  484. DROP TABLE inserts CASCADE
  485. statement ok
  486. DROP TABLE deletes CASCADE
  487. # from introspection-sources.td
  488. statement ok
  489. CREATE TABLE t (a int)
  490. statement ok
  491. CREATE MATERIALIZED VIEW mv AS SELECT * FROM t
  492. statement ok
  493. CREATE VIEW vv AS SELECT * FROM t
  494. statement ok
  495. CREATE DEFAULT INDEX ON vv
  496. statement ok
  497. CREATE MATERIALIZED VIEW mvv AS SELECT * FROM vv
  498. statement ok
  499. CREATE TABLE t1 (a int)
  500. statement ok
  501. CREATE TABLE t2 (b int)
  502. statement ok
  503. CREATE MATERIALIZED VIEW mv1 AS SELECT * FROM t1, t2
  504. statement ok
  505. CREATE DEFAULT INDEX ON mv1
  506. statement ok
  507. CREATE MATERIALIZED VIEW mv2 AS SELECT 1
  508. statement ok
  509. CREATE MATERIALIZED VIEW my_unique_mv_name AS SELECT * FROM t1
  510. statement ok
  511. CREATE VIEW vv_arr AS SELECT sum(a) FROM t JOIN t2 ON t.a = t2.b
  512. statement ok
  513. CREATE MATERIALIZED VIEW mv_arr AS SELECT * FROM vv_arr
  514. statement ok
  515. CREATE DEFAULT INDEX ii_arr ON vv_arr
  516. statement ok
  517. CREATE TABLE t3 (c int)
  518. statement ok
  519. CREATE DEFAULT INDEX ii_empty ON t3
  520. statement ok
  521. SELECT mz_unsafe.mz_sleep(4)
  522. query T
  523. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  524. ----
  525. AccumulableErrorCheck
  526. AccumulableErrorCheck
  527. ArrangeAccumulable [val: empty]
  528. ArrangeAccumulable [val: empty]
  529. ArrangeBy[[Column(0, "a"), Column(1, "b")]]
  530. ArrangeBy[[Column(0, "a"), Column(1, "b")]]-errors
  531. ArrangeBy[[Column(0, "a")]]
  532. ArrangeBy[[Column(0, "a")]]
  533. ArrangeBy[[Column(0, "a")]]
  534. ArrangeBy[[Column(0, "a")]]-errors
  535. ArrangeBy[[Column(0, "b")]]
  536. ArrangeBy[[Column(0, "b")]]
  537. ArrangeBy[[Column(0, "c")]]
  538. ArrangeBy[[Column(0, "c")]]-errors
  539. ArrangeBy[[Column(0, "sum")]]
  540. ArrangeBy[[Column(0, "sum")]]-errors
  541. ArrangeBy[[]]
  542. ArrangeBy[[]]
  543. ReduceAccumulable
  544. ReduceAccumulable
  545. statement ok
  546. DROP TABLE t3 CASCADE
  547. statement ok
  548. DROP TABLE t2 CASCADE
  549. statement ok
  550. DROP TABLE t1 CASCADE
  551. statement ok
  552. DROP TABLE t CASCADE
  553. # from joins.td
  554. statement ok
  555. CREATE TABLE names (num bigint, name text)
  556. statement ok
  557. CREATE TABLE mods (num bigint, mod text)
  558. statement ok
  559. CREATE MATERIALIZED VIEW test1 AS
  560. SELECT * FROM names JOIN mods USING (num)
  561. statement ok
  562. CREATE MATERIALIZED VIEW test2 (names_num, names_name, mods_num, mods_mod) AS
  563. SELECT * FROM names JOIN mods ON names.num = mods.num
  564. statement ok
  565. CREATE MATERIALIZED VIEW test3 (names_num, names_name, mods_num, mods_mod) AS
  566. SELECT * FROM names, mods WHERE names.num = mods.num
  567. statement ok
  568. CREATE MATERIALIZED VIEW test4 (names_num, names_name, mods_num, mods_mod) AS
  569. SELECT * FROM names, mods WHERE names.num = mods.num AND mods.mod = 'even'
  570. statement ok
  571. CREATE MATERIALIZED VIEW test5 (names_num, names_name, mods_num, mods_mod) AS
  572. SELECT * FROM names LEFT JOIN mods ON names.num = mods.num
  573. statement ok
  574. CREATE MATERIALIZED VIEW test6 (names_num, names_name, mods_num, mods_mod) AS
  575. SELECT * FROM names RIGHT JOIN mods ON names.num = mods.num
  576. statement ok
  577. CREATE MATERIALIZED VIEW test7 (names_num, names_name, mods_num, mods_mod) AS
  578. SELECT * FROM names, mods WHERE names.num = mods.num AND mods.mod = 'even'
  579. statement ok
  580. CREATE MATERIALIZED VIEW test8 AS
  581. SELECT mods.* FROM names, mods WHERE names.num = mods.num AND mods.mod = 'even'
  582. statement ok
  583. CREATE MATERIALIZED VIEW test9 AS
  584. SELECT foo.mod, foo.num, bar.name FROM names as bar, mods as foo
  585. WHERE bar.num = foo.num AND foo.mod = 'even'
  586. statement ok
  587. CREATE MATERIALIZED VIEW test10 (names_num, names_name, mods_num, mods_mod) AS
  588. SELECT * FROM names, mods
  589. statement ok
  590. CREATE MATERIALIZED VIEW test11 (names_num, names_name, mods_num, mods_mod) AS
  591. SELECT * FROM names CROSS JOIN mods
  592. statement ok
  593. CREATE MATERIALIZED VIEW test12 (names_num, names_name, mods_num, mods_mod) AS
  594. SELECT * FROM names LEFT JOIN mods ON 1 = 0
  595. statement ok
  596. CREATE MATERIALIZED VIEW test13 (names_num, names_name, mods_num, mods_mod) AS
  597. SELECT * FROM names RIGHT JOIN mods ON 1 = 0
  598. statement ok
  599. CREATE MATERIALIZED VIEW test14 (names_num, names_name, mods_num, mods_mod) AS
  600. SELECT * FROM names FULL OUTER JOIN mods ON 1 = 0
  601. statement ok
  602. SELECT mz_unsafe.mz_sleep(4)
  603. query T
  604. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  605. ----
  606. ArrangeBy[[Column(0, "num")]]
  607. ArrangeBy[[Column(0, "num")]]
  608. ArrangeBy[[Column(0, "num")]]
  609. ArrangeBy[[Column(0, "num")]]
  610. ArrangeBy[[Column(0, "num")]]
  611. ArrangeBy[[Column(0, "num")]]
  612. ArrangeBy[[Column(0, "num")]]
  613. ArrangeBy[[Column(0, "num")]]
  614. ArrangeBy[[Column(0, "num")]]
  615. ArrangeBy[[Column(0, "num")]]
  616. ArrangeBy[[Column(0, "num")]]
  617. ArrangeBy[[Column(0, "num")]]
  618. ArrangeBy[[Column(0, "num")]]
  619. ArrangeBy[[Column(0, "num")]]
  620. ArrangeBy[[Column(0, "num")]]
  621. ArrangeBy[[Column(0, "num")]]
  622. ArrangeBy[[Column(0, "num")]]
  623. ArrangeBy[[Column(0, "num")]]
  624. ArrangeBy[[]]
  625. ArrangeBy[[]]
  626. ArrangeBy[[]]
  627. ArrangeBy[[]]
  628. Arranged DistinctBy
  629. Arranged DistinctBy
  630. DistinctBy
  631. DistinctBy
  632. DistinctByErrorCheck
  633. DistinctByErrorCheck
  634. statement ok
  635. DROP TABLE names CASCADE
  636. statement ok
  637. DROP TABLE mods CASCADE
  638. # from linear-join-fuel.td
  639. statement ok
  640. CREATE CLUSTER linear_join REPLICAS (r1 (SIZE '1'))
  641. statement ok
  642. SET cluster=linear_join
  643. statement ok
  644. CREATE TABLE t1 (a int)
  645. statement ok
  646. CREATE MATERIALIZED VIEW v1 IN CLUSTER linear_join AS
  647. SELECT SUM(a1.a + a2.a * 10000) FROM t1 AS a1, t1 AS a2
  648. statement ok
  649. CREATE DEFAULT INDEX ON v1
  650. statement ok
  651. SELECT mz_unsafe.mz_sleep(4)
  652. query T
  653. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  654. ----
  655. AccumulableErrorCheck
  656. ArrangeAccumulable [val: empty]
  657. ArrangeBy[[Column(0, "sum")]]
  658. ArrangeBy[[Column(0, "sum")]]-errors
  659. ArrangeBy[[]]
  660. ReduceAccumulable
  661. statement ok
  662. DROP TABLE t1 CASCADE
  663. statement ok
  664. SET cluster=distinct_arrangements
  665. statement ok
  666. DROP CLUSTER linear_join CASCADE
  667. # from negative-multiplicities.td
  668. simple conn=mz_system,user=mz_system
  669. ALTER SYSTEM SET enable_repeat_row = true
  670. ----
  671. COMPLETE 0
  672. statement ok
  673. CREATE TABLE base (data bigint, diff bigint)
  674. statement ok
  675. CREATE MATERIALIZED VIEW data AS SELECT data FROM base, repeat_row(diff)
  676. statement ok
  677. CREATE VIEW topk AS
  678. SELECT grp.id, count(t.data) AS top_2_count,
  679. (SELECT COUNT(d.data) FROM data d WHERE d.data % 2 = grp.id) AS total_count
  680. FROM (SELECT generate_series(0,1) id) grp,
  681. LATERAL (SELECT data FROM data WHERE data % 2 = grp.id ORDER BY data LIMIT 2) t
  682. GROUP BY grp.id
  683. statement ok
  684. CREATE DEFAULT INDEX ON topk
  685. statement ok
  686. CREATE VIEW max_data AS
  687. SELECT MAX(data) FROM data
  688. statement ok
  689. CREATE DEFAULT INDEX ON max_data
  690. statement ok
  691. CREATE VIEW collation AS
  692. SELECT
  693. data,
  694. COUNT(DISTINCT data),
  695. STRING_AGG(data::text || '1', ',') AS data_1,
  696. MIN(data),
  697. MAX(DISTINCT data),
  698. SUM(data),
  699. STRING_AGG(data::text || '2', ',') AS data_2
  700. FROM data
  701. GROUP BY data
  702. statement ok
  703. CREATE DEFAULT INDEX ON collation
  704. statement ok
  705. SELECT mz_unsafe.mz_sleep(4)
  706. query T
  707. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  708. ----
  709. AccumulableErrorCheck
  710. AccumulableErrorCheck
  711. AccumulableErrorCheck
  712. Arrange ReduceCollation
  713. Arrange ReduceMinsMaxes
  714. Arrange ReduceMinsMaxes
  715. Arrange bundle err
  716. ArrangeAccumulable [val: empty]
  717. ArrangeAccumulable [val: empty]
  718. ArrangeAccumulable [val: empty]
  719. ArrangeBy[[CallBinary(ModInt64, Column(0, "data"), Literal(Ok(Row{[Int64(2)]}), ColumnType { scalar_type: Int64, nullable: false }))]]
  720. ArrangeBy[[CallUnary(CastInt32ToInt64(CastInt32ToInt64), Column(0, "id"))]]
  721. ArrangeBy[[Column(0)]]
  722. ArrangeBy[[Column(0, "id")]]
  723. ArrangeBy[[Column(0, "id")]]-errors
  724. ArrangeBy[[Column(0, "max")]]
  725. ArrangeBy[[Column(0, "max")]]-errors
  726. Arranged Accumulable Distinct [val: empty]
  727. Arranged MinsMaxesHierarchical input
  728. Arranged MinsMaxesHierarchical input
  729. Arranged MinsMaxesHierarchical input
  730. Arranged MinsMaxesHierarchical input
  731. Arranged MinsMaxesHierarchical input
  732. Arranged MinsMaxesHierarchical input
  733. Arranged MinsMaxesHierarchical input
  734. Arranged MinsMaxesHierarchical input
  735. Arranged MinsMaxesHierarchical input
  736. Arranged MinsMaxesHierarchical input
  737. Arranged MinsMaxesHierarchical input
  738. Arranged MinsMaxesHierarchical input
  739. Arranged MinsMaxesHierarchical input
  740. Arranged MinsMaxesHierarchical input
  741. Arranged ReduceFuseBasic input
  742. Arranged ReduceInaccumulable
  743. Arranged ReduceInaccumulable
  744. Arranged TopK input
  745. Arranged TopK input
  746. Arranged TopK input
  747. Arranged TopK input
  748. Arranged TopK input
  749. Arranged TopK input
  750. Arranged TopK input
  751. Arranged TopK input
  752. ReduceAccumulable
  753. ReduceAccumulable
  754. ReduceAccumulable
  755. ReduceCollation
  756. ReduceCollation Errors
  757. ReduceFuseBasic
  758. ReduceInaccumulable
  759. ReduceInaccumulable
  760. ReduceInaccumulable Error Check
  761. ReduceMinsMaxes
  762. ReduceMinsMaxes
  763. Reduced Accumulable Distinct [val: empty]
  764. Reduced Fallibly MinsMaxesHierarchical
  765. Reduced Fallibly MinsMaxesHierarchical
  766. Reduced Fallibly MinsMaxesHierarchical
  767. Reduced Fallibly MinsMaxesHierarchical
  768. Reduced Fallibly MinsMaxesHierarchical
  769. Reduced Fallibly MinsMaxesHierarchical
  770. Reduced Fallibly MinsMaxesHierarchical
  771. Reduced Fallibly MinsMaxesHierarchical
  772. Reduced Fallibly MinsMaxesHierarchical
  773. Reduced Fallibly MinsMaxesHierarchical
  774. Reduced Fallibly MinsMaxesHierarchical
  775. Reduced Fallibly MinsMaxesHierarchical
  776. Reduced Fallibly MinsMaxesHierarchical
  777. Reduced Fallibly MinsMaxesHierarchical
  778. Reduced TopK input
  779. Reduced TopK input
  780. Reduced TopK input
  781. Reduced TopK input
  782. Reduced TopK input
  783. Reduced TopK input
  784. Reduced TopK input
  785. Reduced TopK input
  786. statement ok
  787. DROP TABLE base CASCADE
  788. # from orms.td
  789. statement ok
  790. CREATE TABLE t (i bigint, t text)
  791. statement ok
  792. CREATE DEFAULT INDEX ON t
  793. statement ok
  794. CREATE INDEX complex_index ON t (t::varchar, i::string)
  795. statement ok
  796. SELECT mz_unsafe.mz_sleep(4)
  797. query T
  798. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  799. ----
  800. ArrangeBy[[CallUnary(CastStringToVarChar(CastStringToVarChar { length: None, fail_on_len: false }), Column(1, "t")), CallUnary(CastInt64ToString(CastInt64ToString), Column(0, "i"))]]
  801. ArrangeBy[[CallUnary(CastStringToVarChar(CastStringToVarChar { length: None, fail_on_len: false }), Column(1, "t")), CallUnary(CastInt64ToString(CastInt64ToString), Column(0, "i"))]]-errors
  802. ArrangeBy[[Column(0, "i"), Column(1, "t")]]
  803. ArrangeBy[[Column(0, "i"), Column(1, "t")]]-errors
  804. statement ok
  805. DROP TABLE t CASCADE
  806. statement ok
  807. BEGIN
  808. # Check mz_catalog_server
  809. statement ok
  810. SET cluster TO mz_catalog_server
  811. statement ok
  812. SELECT mz_unsafe.mz_sleep(16)
  813. query TI
  814. SELECT mdod.name, count(*)
  815. FROM mz_introspection.mz_arrangement_sharing mash
  816. JOIN mz_introspection.mz_dataflow_operator_dataflows mdod ON mash.operator_id = mdod.id
  817. WHERE mdod.dataflow_name NOT LIKE '%introspection-subscribe%'
  818. GROUP BY mdod.name
  819. ORDER BY mdod.name;
  820. ----
  821. AccumulableErrorCheck 10
  822. Arrange␠ReduceCollation 1
  823. Arrange␠ReduceMinsMaxes 3
  824. Arrange␠export␠iterative 2
  825. Arrange␠export␠iterative␠err 2
  826. Arrange␠recursive␠err 3
  827. ArrangeAccumulable␠[val:␠empty] 10
  828. ArrangeBy[[CallBinary(JsonbGetStringStringify,␠Column(1,␠"details"),␠Literal(Ok(Row{[String("id")]}),␠ColumnType␠{␠scalar_type:␠String,␠nullable:␠false␠}))]] 2
  829. ArrangeBy[[CallBinary(JsonbGetStringStringify,␠Column(2,␠"details"),␠Literal(Ok(Row{[String("id")]}),␠ColumnType␠{␠scalar_type:␠String,␠nullable:␠false␠}))]] 1
  830. ArrangeBy[[CallVariadic(Coalesce,␠[Column(2,␠"parent"),␠Column(3,␠"parent")])]] 2
  831. ArrangeBy[[Column(0),␠Column(1),␠Column(2),␠Column(3),␠Column(4),␠Column(5),␠Column(6),␠Column(7),␠Column(8),␠Column(9),␠Column(10),␠Column(11),␠Column(12),␠Column(13),␠Column(14),␠Column(15),␠Column(16),␠Column(17),␠Column(18),␠Column(19),␠Column(20),␠Column(21),␠Column(22),␠Column(23),␠Column(24),␠Column(25),␠Column(26),␠Column(27)]] 2
  832. ArrangeBy[[Column(0),␠Column(1)]] 1
  833. ArrangeBy[[Column(0),␠Column(3)]] 1
  834. ArrangeBy[[Column(0)]] 34
  835. ArrangeBy[[Column(0,␠"attrelid"),␠Column(1,␠"attname"),␠Column(2,␠"atttypid"),␠Column(3,␠"attlen"),␠Column(4,␠"attnum"),␠Column(5,␠"atttypmod"),␠Column(6,␠"attnotnull"),␠Column(7,␠"atthasdef"),␠Column(8,␠"attidentity"),␠Column(9,␠"attgenerated"),␠Column(10,␠"attisdropped"),␠Column(11,␠"attcollation"),␠Column(12,␠"database_name"),␠Column(13,␠"pg_type_database_name")]] 1
  836. ArrangeBy[[Column(0,␠"attrelid"),␠Column(1,␠"attname"),␠Column(2,␠"atttypid"),␠Column(3,␠"attlen"),␠Column(4,␠"attnum"),␠Column(5,␠"atttypmod"),␠Column(6,␠"attnotnull"),␠Column(7,␠"atthasdef"),␠Column(8,␠"attidentity"),␠Column(9,␠"attgenerated"),␠Column(10,␠"attisdropped"),␠Column(11,␠"attcollation"),␠Column(12,␠"database_name"),␠Column(13,␠"pg_type_database_name")]]-errors 1
  837. ArrangeBy[[Column(0,␠"cluster")]] 1
  838. ArrangeBy[[Column(0,␠"cluster")]]-errors 1
  839. ArrangeBy[[Column(0,␠"cluster_id"),␠Column(2,␠"cluster_name")]] 1
  840. ArrangeBy[[Column(0,␠"database_id")]] 1
  841. ArrangeBy[[Column(0,␠"database_id")]]-errors 1
  842. ArrangeBy[[Column(0,␠"id"),␠CallUnary(CastInt32ToNumeric(CastInt32ToNumeric(None)),␠Column(1,␠"object_sub_id"))]] 1
  843. ArrangeBy[[Column(0,␠"id"),␠CallUnary(CastUint64ToNumeric(CastUint64ToNumeric(None)),␠Column(2,␠"position"))]] 1
  844. ArrangeBy[[Column(0,␠"id"),␠CallUnary(Lower(Lower),␠Column(1,␠"object_type"))]] 1
  845. ArrangeBy[[Column(0,␠"id"),␠CallUnary(Lower(Lower),␠Column(2,␠"type"))]] 1
  846. ArrangeBy[[Column(0,␠"id"),␠Column(1,␠"replica_id")]] 3
  847. ArrangeBy[[Column(0,␠"id"),␠Column(1,␠"replica_id")]]-errors 3
  848. ArrangeBy[[Column(0,␠"id"),␠Column(2,␠"id")]] 1
  849. ArrangeBy[[Column(0,␠"id"),␠Column(2,␠"position")]] 1
  850. ArrangeBy[[Column(0,␠"id")]] 81
  851. ArrangeBy[[Column(0,␠"id")]]-errors 17
  852. ArrangeBy[[Column(0,␠"index_id")]] 1
  853. ArrangeBy[[Column(0,␠"name")]] 3
  854. ArrangeBy[[Column(0,␠"name")]]-errors 3
  855. ArrangeBy[[Column(0,␠"object_id"),␠Column(1,␠"replica_id")]] 1
  856. ArrangeBy[[Column(0,␠"object_id")]] 8
  857. ArrangeBy[[Column(0,␠"object_id")]]-errors 5
  858. ArrangeBy[[Column(0,␠"objoid"),␠Column(1,␠"classoid"),␠Column(2,␠"objsubid"),␠Column(3,␠"description"),␠Column(4,␠"oid_database_name"),␠Column(5,␠"class_database_name")]] 1
  859. ArrangeBy[[Column(0,␠"objoid"),␠Column(1,␠"classoid"),␠Column(2,␠"objsubid"),␠Column(3,␠"description"),␠Column(4,␠"oid_database_name"),␠Column(5,␠"class_database_name")]]-errors 1
  860. ArrangeBy[[Column(0,␠"oid"),␠Column(1,␠"adrelid"),␠Column(2,␠"adnum"),␠Column(3,␠"adbin"),␠Column(4,␠"adsrc")]] 1
  861. ArrangeBy[[Column(0,␠"oid"),␠Column(1,␠"adrelid"),␠Column(2,␠"adnum"),␠Column(3,␠"adbin"),␠Column(4,␠"adsrc")]]-errors 1
  862. ArrangeBy[[Column(0,␠"oid")]] 2
  863. ArrangeBy[[Column(0,␠"oid")]]-errors 1
  864. ArrangeBy[[Column(0,␠"replica_id"),␠Column(3,␠"bucket_start")]] 3
  865. ArrangeBy[[Column(0,␠"replica_id"),␠Column(4,␠"bucket_start")]] 1
  866. ArrangeBy[[Column(0,␠"replica_id")]] 11
  867. ArrangeBy[[Column(0,␠"replica_id")]]-errors 5
  868. ArrangeBy[[Column(0,␠"schema_id")]] 6
  869. ArrangeBy[[Column(0,␠"schema_id")]]-errors 6
  870. ArrangeBy[[Column(0,␠"self")]] 1
  871. ArrangeBy[[Column(0,␠"session_id")]] 1
  872. ArrangeBy[[Column(0,␠"shard_id"),␠Column(2,␠"collection_timestamp")]] 1
  873. ArrangeBy[[Column(0,␠"size")]] 1
  874. ArrangeBy[[Column(0,␠"size")]]-errors 1
  875. ArrangeBy[[Column(0,␠"source_id")]] 1
  876. ArrangeBy[[Column(0,␠"sql_hash")]] 1
  877. ArrangeBy[[Column(0,␠"sql_hash")]]-errors 1
  878. ArrangeBy[[Column(0,␠"y")]] 1
  879. ArrangeBy[[Column(1),␠Column(0)]] 1
  880. ArrangeBy[[Column(1)]] 2
  881. ArrangeBy[[Column(1,␠"cluster_id"),␠Column(2,␠"cluster_name")]] 1
  882. ArrangeBy[[Column(1,␠"cluster_id")]] 3
  883. ArrangeBy[[Column(1,␠"database_id")]] 1
  884. ArrangeBy[[Column(1,␠"dependency_id")]] 1
  885. ArrangeBy[[Column(1,␠"dependency_id")]]-errors 1
  886. ArrangeBy[[Column(1,␠"element_id")]] 1
  887. ArrangeBy[[Column(1,␠"id")]] 1
  888. ArrangeBy[[Column(1,␠"id")]]-errors 1
  889. ArrangeBy[[Column(1,␠"id_to_use")]] 1
  890. ArrangeBy[[Column(1,␠"name")]] 1
  891. ArrangeBy[[Column(1,␠"name")]]-errors 1
  892. ArrangeBy[[Column(1,␠"nspname")]] 1
  893. ArrangeBy[[Column(1,␠"nspname")]]-errors 1
  894. ArrangeBy[[Column(1,␠"oid")]] 1
  895. ArrangeBy[[Column(1,␠"on_id"),␠Column(3,␠"on_position")]] 1
  896. ArrangeBy[[Column(1,␠"on_id")]] 1
  897. ArrangeBy[[Column(1,␠"prepared_statement_id")]] 1
  898. ArrangeBy[[Column(1,␠"referenced_object_id")]] 1
  899. ArrangeBy[[Column(1,␠"relname")]] 1
  900. ArrangeBy[[Column(1,␠"relname")]]-errors 1
  901. ArrangeBy[[Column(1,␠"replica_id")]] 2
  902. ArrangeBy[[Column(1,␠"session_id")]] 1
  903. ArrangeBy[[Column(1,␠"shard_id"),␠Column(2,␠"collection_timestamp")]] 1
  904. ArrangeBy[[Column(1,␠"shard_id")]] 1
  905. ArrangeBy[[Column(1,␠"sink_id")]] 1
  906. ArrangeBy[[Column(1,␠"sink_id")]]-errors 1
  907. ArrangeBy[[Column(1,␠"size")]] 1
  908. ArrangeBy[[Column(1,␠"source_id")]] 2
  909. ArrangeBy[[Column(1,␠"source_id")]]-errors 1
  910. ArrangeBy[[Column(1,␠"y")]] 1
  911. ArrangeBy[[Column(13,␠"database_id")]] 1
  912. ArrangeBy[[Column(15,␠"cluster_id")]] 1
  913. ArrangeBy[[Column(15,␠"cluster_id")]]-errors 1
  914. ArrangeBy[[Column(2)]] 1
  915. ArrangeBy[[Column(2,␠"cluster_id")]] 1
  916. ArrangeBy[[Column(2,␠"database_id")]] 1
  917. ArrangeBy[[Column(2,␠"database_id")]]-errors 1
  918. ArrangeBy[[Column(2,␠"id")]] 1
  919. ArrangeBy[[Column(2,␠"name")]] 1
  920. ArrangeBy[[Column(2,␠"name")]]-errors 1
  921. ArrangeBy[[Column(2,␠"on_id")]] 6
  922. ArrangeBy[[Column(2,␠"owner_id")]] 1
  923. ArrangeBy[[Column(2,␠"schema_id")]] 8
  924. ArrangeBy[[Column(2,␠"schema_id")]]-errors 5
  925. ArrangeBy[[Column(21,␠"sql_hash")]] 1
  926. ArrangeBy[[Column(21,␠"sql_hash")]]-errors 1
  927. ArrangeBy[[Column(3,␠"cluster_id")]] 2
  928. ArrangeBy[[Column(3,␠"name")]] 1
  929. ArrangeBy[[Column(3,␠"name")]]-errors 1
  930. ArrangeBy[[Column(3,␠"on_id")]] 2
  931. ArrangeBy[[Column(3,␠"schema_id")]] 1
  932. ArrangeBy[[Column(3,␠"schema_id")]]-errors 1
  933. ArrangeBy[[Column(4)]] 1
  934. ArrangeBy[[Column(4,␠"cluster_id")]] 1
  935. ArrangeBy[[Column(4,␠"owner_id")]] 1
  936. ArrangeBy[[Column(4,␠"schema_id")]] 2
  937. ArrangeBy[[Column(4,␠"schema_id")]]-errors 2
  938. ArrangeBy[[Column(5,␠"owner_id")]] 1
  939. ArrangeBy[[Column(5,␠"type_oid")]] 1
  940. ArrangeBy[[Column(6,␠"database_id")]] 1
  941. ArrangeBy[[Column(6,␠"dropped_at")]] 1
  942. ArrangeBy[[Column(6,␠"dropped_at")]]-errors 1
  943. ArrangeBy[[Column(6,␠"schema_id")]] 1
  944. ArrangeBy[[Column(6,␠"schema_id")]]-errors 1
  945. ArrangeBy[[Column(9,␠"database_id")]] 1
  946. ArrangeBy[[]] 11
  947. Arranged␠DistinctBy 47
  948. Arranged␠MinsMaxesHierarchical␠input 14
  949. Arranged␠ReduceInaccumulable 3
  950. Arranged␠TopK␠input 108
  951. Distinct␠recursive␠err 3
  952. DistinctBy 47
  953. DistinctByErrorCheck 47
  954. ReduceAccumulable 10
  955. ReduceCollation 1
  956. ReduceCollation␠Errors 1
  957. ReduceInaccumulable 3
  958. ReduceInaccumulable␠Error␠Check 3
  959. ReduceMinsMaxes 3
  960. ReduceMinsMaxes␠Error␠Check 1
  961. Reduced␠Fallibly␠MinsMaxesHierarchical 14
  962. Reduced␠TopK␠input 108
  963. Threshold␠local 10
  964. statement ok
  965. COMMIT
  966. # Check dataflows of our logging infrastructure with log_logging
  967. statement ok
  968. ALTER CLUSTER distinct_arrangements SET (MANAGED = false);
  969. statement ok
  970. CREATE CLUSTER REPLICA distinct_arrangements.replica SIZE = '2', INTROSPECTION DEBUGGING = true;
  971. statement ok
  972. BEGIN
  973. statement ok
  974. SET cluster = distinct_arrangements
  975. statement ok
  976. SET cluster_replica = replica
  977. statement ok
  978. SELECT mz_unsafe.mz_sleep(4)
  979. query T
  980. SELECT mdo.name FROM mz_introspection.mz_arrangement_sharing mash JOIN mz_introspection.mz_dataflow_operators mdo ON mash.operator_id = mdo.id ORDER BY mdo.name;
  981. ----
  982. Arrange Compute(ArrangementHeapAllocations)
  983. Arrange Compute(ArrangementHeapCapacity)
  984. Arrange Compute(ArrangementHeapSize)
  985. Arrange Compute(DataflowCurrent)
  986. Arrange Compute(DataflowGlobal)
  987. Arrange Compute(ErrorCount)
  988. Arrange Compute(FrontierCurrent)
  989. Arrange Compute(HydrationTime)
  990. Arrange Compute(ImportFrontierCurrent)
  991. Arrange Compute(LirMapping)
  992. Arrange Compute(PeekCurrent)
  993. Arrange Compute(PeekDuration)
  994. Arrange Compute(ShutdownDuration)
  995. Arrange Differential(ArrangementBatches)
  996. Arrange Differential(ArrangementRecords)
  997. Arrange Differential(BatcherAllocations)
  998. Arrange Differential(BatcherCapacity)
  999. Arrange Differential(BatcherRecords)
  1000. Arrange Differential(BatcherSize)
  1001. Arrange Differential(Sharing)
  1002. Arrange Timely(Addresses)
  1003. Arrange Timely(BatchesReceived)
  1004. Arrange Timely(BatchesSent)
  1005. Arrange Timely(Channels)
  1006. Arrange Timely(Elapsed)
  1007. Arrange Timely(Histogram)
  1008. Arrange Timely(MessagesReceived)
  1009. Arrange Timely(MessagesSent)
  1010. Arrange Timely(Operates)
  1011. Arrange Timely(Parks)
  1012. Arrange Timely(Reachability)
  1013. statement ok
  1014. COMMIT
  1015. # Check dataflows installed by introspection subscribes.
  1016. simple conn=mz_system,user=mz_system
  1017. ALTER SYSTEM SET enable_introspection_subscribes = true
  1018. ----
  1019. COMPLETE 0
  1020. # Flipping `enable_introspection_subscribes` affects new replicas, so force a
  1021. # restart.
  1022. statement ok
  1023. DROP CLUSTER REPLICA distinct_arrangements.replica
  1024. statement ok
  1025. ALTER CLUSTER distinct_arrangements SET (MANAGED = true)
  1026. statement ok
  1027. ALTER CLUSTER distinct_arrangements SET (REPLICATION FACTOR = 0)
  1028. statement ok
  1029. ALTER CLUSTER distinct_arrangements SET (REPLICATION FACTOR = 1)
  1030. statement ok
  1031. RESET cluster_replica
  1032. statement ok
  1033. SELECT mz_unsafe.mz_sleep(4)
  1034. statement ok
  1035. BEGIN
  1036. statement ok
  1037. SET cluster = distinct_arrangements
  1038. query TI
  1039. SELECT mdod.name, count(*)
  1040. FROM mz_introspection.mz_arrangement_sharing mash
  1041. JOIN mz_introspection.mz_dataflow_operator_dataflows mdod ON mash.operator_id = mdod.id
  1042. GROUP BY mdod.name
  1043. ORDER BY mdod.name
  1044. ----
  1045. AccumulableErrorCheck 2
  1046. Arrange␠ReduceCollation 1
  1047. Arrange␠ReduceMinsMaxes 1
  1048. ArrangeAccumulable␠[val:␠empty] 2
  1049. ReduceAccumulable 2
  1050. ReduceCollation 1
  1051. ReduceCollation␠Errors 1
  1052. ReduceMinsMaxes 1
  1053. ReduceMinsMaxes␠Error␠Check 1
  1054. statement ok
  1055. COMMIT