123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- # Copyright 2015 - 2019 The Cockroach Authors. All rights reserved.
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- #
- # This file is derived from the logic test suite in CockroachDB. The
- # original file was retrieved on June 10, 2019 from:
- #
- # https://github.com/cockroachdb/cockroach/blob/d2f7fbf5dd1fc1a099bbad790a2e1f7c60a66cc3/pkg/sql/logictest/testdata/logic_test/collatedstring_index2
- #
- # The original source code is subject to the terms of the Apache
- # 2.0 license, a copy of which can be found in the LICENSE file at the
- # root of this repository.
- # not supported yet
- halt
- mode cockroach
- ##
- # Test a primary key with a collated string in second position (cannot get a key range).
- #
- # German collation chart: http://www.unicode.org/cldr/charts/30/collation/de.html
- statement ok
- CREATE TABLE t (
- a STRING COLLATE de,
- b INT,
- c BOOL,
- PRIMARY KEY (b, a)
- )
- statement ok
- INSERT INTO t VALUES
- ('A' COLLATE de, 1, TRUE),
- ('A' COLLATE de, 2, NULL),
- ('a' COLLATE de, 2, FALSE),
- ('a' COLLATE de, 3, TRUE),
- ('B' COLLATE de, 3, NULL),
- ('b' COLLATE de, 4, FALSE),
- ('ü' COLLATE de, 6, TRUE),
- ('ü' COLLATE de, 5, NULL),
- ('x' COLLATE de, 5, FALSE)
- query TI
- SELECT a, b FROM t ORDER BY a, b
- ----
- a 2
- a 3
- A 1
- A 2
- b 4
- B 3
- ü 5
- ü 6
- x 5
- query IT
- SELECT b, a FROM t ORDER BY b, a
- ----
- 1 A
- 2 a
- 2 A
- 3 a
- 3 B
- 4 b
- 5 ü
- 5 x
- 6 ü
- query I
- SELECT COUNT (a) FROM t WHERE a = ('a' COLLATE de)
- ----
- 2
- query I
- SELECT COUNT (a) FROM t WHERE a = ('y' COLLATE de)
- ----
- 0
- query I
- SELECT COUNT (a) FROM t WHERE a > ('a' COLLATE de) AND a < ('c' COLLATE de)
- ----
- 4
- # Create an index and try again.
- statement ok
- CREATE INDEX ON t (a, b) STORING (c)
- query TI
- SELECT a, b FROM t ORDER BY a, b
- ----
- a 2
- a 3
- A 1
- A 2
- b 4
- B 3
- ü 5
- ü 6
- x 5
- query IT
- SELECT b, a FROM t ORDER BY b, a
- ----
- 1 A
- 2 a
- 2 A
- 3 a
- 3 B
- 4 b
- 5 ü
- 5 x
- 6 ü
- query I
- SELECT COUNT (a) FROM t WHERE a = ('a' COLLATE de)
- ----
- 2
- query I
- SELECT COUNT (a) FROM t WHERE a = ('y' COLLATE de)
- ----
- 0
- query I
- SELECT COUNT (a) FROM t WHERE a > ('a' COLLATE de) AND a < ('c' COLLATE de)
- ----
- 4
- # Update and try again.
- statement ok
- UPDATE t SET a = (a :: STRING || a :: STRING) COLLATE de
- query TI
- SELECT a, b FROM t ORDER BY a, b
- ----
- aa 2
- aa 3
- AA 1
- AA 2
- bb 4
- BB 3
- üü 5
- üü 6
- xx 5
- query IT
- SELECT b, a FROM t ORDER BY b, a
- ----
- 1 AA
- 2 aa
- 2 AA
- 3 aa
- 3 BB
- 4 bb
- 5 üü
- 5 xx
- 6 üü
- # Delete and try again
- statement ok
- DELETE FROM t WHERE a > ('a' COLLATE de) AND a < ('c' COLLATE de)
- query TI
- SELECT a, b FROM t ORDER BY a, b
- ----
- üü 5
- üü 6
- xx 5
- query IT
- SELECT b, a FROM t ORDER BY b, a
- ----
- 5 üü
- 5 xx
- 6 üü
|