where.slt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. # Copyright 2015 - 2019 The Cockroach Authors. All rights reserved.
  2. # Copyright Materialize, Inc. and contributors. All rights reserved.
  3. #
  4. # Use of this software is governed by the Business Source License
  5. # included in the LICENSE file at the root of this repository.
  6. #
  7. # As of the Change Date specified in that file, in accordance with
  8. # the Business Source License, use of this software will be governed
  9. # by the Apache License, Version 2.0.
  10. #
  11. # This file is derived from the logic test suite in CockroachDB. The
  12. # original file was retrieved on June 10, 2019 from:
  13. #
  14. # https://github.com/cockroachdb/cockroach/blob/d2f7fbf5dd1fc1a099bbad790a2e1f7c60a66cc3/pkg/sql/logictest/testdata/logic_test/where
  15. #
  16. # The original source code is subject to the terms of the Apache
  17. # 2.0 license, a copy of which can be found in the LICENSE file at the
  18. # root of this repository.
  19. mode cockroach
  20. simple conn=mz_system,user=mz_system
  21. ALTER SYSTEM SET unsafe_enable_table_keys = true
  22. ----
  23. COMPLETE 0
  24. statement ok
  25. CREATE TABLE kv (
  26. k INT PRIMARY KEY,
  27. v INT
  28. )
  29. statement ok
  30. INSERT INTO kv VALUES (1, 2), (3, 4), (5, 6), (7, 8)
  31. statement ok
  32. CREATE TABLE kvString (
  33. k TEXT PRIMARY KEY,
  34. v TEXT
  35. )
  36. statement ok
  37. INSERT INTO kvString VALUES ('like1', 'hell%'), ('like2', 'worl%')
  38. query II rowsort
  39. SELECT * FROM kv WHERE True
  40. ----
  41. 1 2
  42. 3 4
  43. 5 6
  44. 7 8
  45. query II
  46. SELECT * FROM kv WHERE False
  47. ----
  48. query II rowsort
  49. SELECT * FROM kv WHERE k IN (1, 3)
  50. ----
  51. 1 2
  52. 3 4
  53. query II
  54. SELECT * FROM kv WHERE v IN (6)
  55. ----
  56. 5 6
  57. query II rowsort
  58. SELECT * FROM kv WHERE k IN (SELECT k FROM kv)
  59. ----
  60. 1 2
  61. 3 4
  62. 5 6
  63. 7 8
  64. query II rowsort
  65. SELECT * FROM kv WHERE (k,v) IN (SELECT * FROM kv)
  66. ----
  67. 1 2
  68. 3 4
  69. 5 6
  70. 7 8
  71. query error column "nonexistent" does not exist
  72. SELECT * FROM kv WHERE nonexistent = 1
  73. query B
  74. SELECT 'hello' LIKE v FROM kvString WHERE k LIKE 'like%' ORDER BY k
  75. ----
  76. true
  77. false
  78. # query B
  79. # SELECT 'hello' SIMILAR TO v FROM kvString WHERE k SIMILAR TO 'like[1-2]' ORDER BY k
  80. # ----
  81. # true
  82. # false
  83. query B
  84. SELECT 'hello' ~ replace(v, '%', '.*') FROM kvString WHERE k ~ 'like[1-2]' ORDER BY k
  85. ----
  86. true
  87. false
  88. # Test mixed type tuple comparison.
  89. query II rowsort
  90. SELECT * FROM kv WHERE k IN (1, 5.0, 9)
  91. ----
  92. 1 2
  93. 5 6
  94. # Regression tests for materialize#22670.
  95. statement ok
  96. CREATE TABLE ab (a INT, b INT)
  97. statement ok
  98. INSERT INTO ab VALUES (1, 10), (2, 20), (3, 30), (4, NULL), (NULL, 50), (NULL, NULL)
  99. query II rowsort
  100. SELECT * FROM ab WHERE a IN (1, 3, 4)
  101. ----
  102. 1 10
  103. 3 30
  104. 4 NULL
  105. query II rowsort
  106. SELECT * FROM ab WHERE a IN (1, 3, 4, NULL)
  107. ----
  108. 1 10
  109. 3 30
  110. 4 NULL
  111. query II rowsort
  112. SELECT * FROM ab WHERE (a, b) IN ((1, 10), (3, 30), (4, 40))
  113. ----
  114. 1 10
  115. 3 30
  116. query II rowsort
  117. SELECT * FROM ab WHERE (a, b) IN ((1, 10), (4, NULL), (NULL, 50))
  118. ----
  119. 1 10