collatedstring_constraint.slt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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/collatedstring_constraint
  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. # English collation chart: http://www.unicode.org/cldr/charts/30/collation/en_US_POSIX.html
  21. statement ok
  22. CREATE TABLE p (
  23. a TEXT COLLATE en_u_ks_level1 PRIMARY KEY
  24. )
  25. statement ok
  26. INSERT INTO p VALUES ('a' COLLATE en_u_ks_level1)
  27. statement error duplicate key value \(a\)=\('a' COLLATE en_u_ks_level1\) violates unique constraint "primary"
  28. INSERT INTO p VALUES ('A' COLLATE en_u_ks_level1)
  29. statement ok
  30. INSERT INTO p VALUES ('b' COLLATE en_u_ks_level1)
  31. statement ok
  32. CREATE TABLE c1 (
  33. a TEXT COLLATE en_u_ks_level1 PRIMARY KEY,
  34. b TEXT COLLATE en_u_ks_level1
  35. ) INTERLEAVE IN PARENT p (a)
  36. statement ok
  37. INSERT INTO c1 VALUES ('A' COLLATE en_u_ks_level1, 'apple' COLLATE en_u_ks_level1)
  38. statement ok
  39. INSERT INTO c1 VALUES ('b' COLLATE en_u_ks_level1, 'banana' COLLATE en_u_ks_level1)
  40. statement ok
  41. INSERT INTO c1 VALUES ('p' COLLATE en_u_ks_level1, 'pear' COLLATE en_u_ks_level1)
  42. query T
  43. SELECT a FROM p ORDER BY a
  44. ----
  45. a
  46. b
  47. query T
  48. SELECT a FROM c1 ORDER BY a
  49. ----
  50. A
  51. b
  52. p
  53. query T
  54. SELECT b FROM c1 ORDER BY a
  55. ----
  56. apple
  57. banana
  58. pear
  59. statement ok
  60. CREATE TABLE c2 (
  61. a TEXT COLLATE en_u_ks_level1 PRIMARY KEY,
  62. b TEXT COLLATE en_u_ks_level1,
  63. CONSTRAINT fk_p FOREIGN KEY (a) REFERENCES p
  64. ) INTERLEAVE IN PARENT p (a)
  65. statement ok
  66. INSERT INTO c2 VALUES ('A' COLLATE en_u_ks_level1, 'apple' COLLATE en_u_ks_level1)
  67. statement ok
  68. INSERT INTO c2 VALUES ('b' COLLATE en_u_ks_level1, 'banana' COLLATE en_u_ks_level1)
  69. statement error foreign key violation: value \['p' COLLATE en_u_ks_level1\] not found in p@primary \[a\]
  70. INSERT INTO c2 VALUES ('p' COLLATE en_u_ks_level1, 'pear' COLLATE en_u_ks_level1)
  71. query T
  72. SELECT a FROM p ORDER BY a
  73. ----
  74. a
  75. b
  76. query T
  77. SELECT a FROM c2 ORDER BY a
  78. ----
  79. A
  80. b
  81. query T
  82. SELECT b FROM c2 ORDER BY a
  83. ----
  84. apple
  85. banana