ct_liveness.slt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. # Start from a pristine state
  11. reset-server
  12. query T
  13. SHOW CLUSTER;
  14. ----
  15. quickstart
  16. simple conn=mz_system,user=mz_system
  17. ALTER CLUSTER quickstart OWNER TO materialize
  18. ----
  19. COMPLETE 0
  20. statement ok
  21. CREATE TABLE append_only (key INT, val STRING)
  22. statement ok
  23. CREATE CONTINUAL TASK upsert_snap WITH (SNAPSHOT = true) ON INPUT append_only AS (
  24. DELETE FROM upsert_snap WHERE key IN (SELECT key FROM append_only);
  25. INSERT INTO upsert_snap SELECT key, max(val) FROM append_only GROUP BY key;
  26. )
  27. statement ok
  28. CREATE CONTINUAL TASK upsert_no_snap WITH (SNAPSHOT = false) ON INPUT append_only AS (
  29. DELETE FROM upsert_no_snap WHERE key IN (SELECT key FROM append_only);
  30. INSERT INTO upsert_no_snap SELECT key, max(val) FROM append_only GROUP BY key;
  31. )
  32. statement ok
  33. INSERT INTO append_only VALUES (1, 'A');
  34. query IT
  35. SELECT * FROM upsert_snap
  36. ----
  37. 1 A
  38. query IT
  39. SELECT * FROM upsert_no_snap
  40. ----
  41. 1 A
  42. # The upsert CT and restarting the dataflow repeatedly turns out to be a great
  43. # way to shake out liveness issues without the full overhead of testdrive.
  44. statement ok
  45. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  46. statement ok
  47. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  48. statement ok
  49. INSERT INTO append_only VALUES (1, 'B');
  50. query IT
  51. SELECT * FROM upsert_snap
  52. ----
  53. 1 B
  54. query IT
  55. SELECT * FROM upsert_no_snap
  56. ----
  57. 1 B
  58. statement ok
  59. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  60. statement ok
  61. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  62. statement ok
  63. INSERT INTO append_only VALUES (1, 'C');
  64. query IT
  65. SELECT * FROM upsert_snap
  66. ----
  67. 1 C
  68. query IT
  69. SELECT * FROM upsert_no_snap
  70. ----
  71. 1 C
  72. statement ok
  73. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  74. statement ok
  75. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  76. statement ok
  77. INSERT INTO append_only VALUES (1, 'D');
  78. query IT
  79. SELECT * FROM upsert_snap
  80. ----
  81. 1 D
  82. query IT
  83. SELECT * FROM upsert_no_snap
  84. ----
  85. 1 D
  86. statement ok
  87. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  88. statement ok
  89. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  90. statement ok
  91. INSERT INTO append_only VALUES (1, 'E');
  92. query IT
  93. SELECT * FROM upsert_snap
  94. ----
  95. 1 E
  96. query IT
  97. SELECT * FROM upsert_no_snap
  98. ----
  99. 1 E
  100. statement ok
  101. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  102. statement ok
  103. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  104. statement ok
  105. INSERT INTO append_only VALUES (1, 'F');
  106. query IT
  107. SELECT * FROM upsert_snap
  108. ----
  109. 1 F
  110. query IT
  111. SELECT * FROM upsert_no_snap
  112. ----
  113. 1 F
  114. statement ok
  115. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  116. statement ok
  117. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  118. statement ok
  119. INSERT INTO append_only VALUES (1, 'G');
  120. query IT
  121. SELECT * FROM upsert_snap
  122. ----
  123. 1 G
  124. query IT
  125. SELECT * FROM upsert_no_snap
  126. ----
  127. 1 G
  128. statement ok
  129. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  130. statement ok
  131. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  132. statement ok
  133. INSERT INTO append_only VALUES (1, 'H');
  134. query IT
  135. SELECT * FROM upsert_snap
  136. ----
  137. 1 H
  138. query IT
  139. SELECT * FROM upsert_no_snap
  140. ----
  141. 1 H
  142. statement ok
  143. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 0);
  144. statement ok
  145. ALTER CLUSTER quickstart SET (REPLICATION FACTOR = 1);
  146. statement ok
  147. INSERT INTO append_only VALUES (1, 'I');
  148. query IT
  149. SELECT * FROM upsert_snap
  150. ----
  151. 1 I
  152. query IT
  153. SELECT * FROM upsert_no_snap
  154. ----
  155. 1 I