mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-22 01:20:39 +00:00
Counters are not supported with tablets, make sure the test works in any ScyllaDB configuration.
135 lines
3.3 KiB
Plaintext
135 lines
3.3 KiB
Plaintext
> -- Error messages contain a keyspace name. Make the output stable.
|
|
> CREATE KEYSPACE ks
|
|
> WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1}
|
|
> AND TABLETS = {'enabled': false};
|
|
OK
|
|
> USE ks;
|
|
OK
|
|
>
|
|
> CREATE TABLE ks.tbl_cnt (pk int PRIMARY KEY, c1 counter);
|
|
OK
|
|
>
|
|
> -- insert some values in one column
|
|
> UPDATE ks.tbl_cnt SET c1 = c1+1 WHERE pk = 1;
|
|
OK
|
|
> UPDATE ks.tbl_cnt SET c1 = c1+2 WHERE pk = 2;
|
|
OK
|
|
> UPDATE ks.tbl_cnt SET c1 = c1+3 WHERE pk = 3;
|
|
OK
|
|
> UPDATE ks.tbl_cnt SET c1 = c1+4 WHERE pk = 4;
|
|
OK
|
|
>
|
|
> -- test various filtering options on counter column
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 < 3 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 1 | 1 |
|
|
| 2 | 2 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 < 1 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 <= 3 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 1 | 1 |
|
|
| 2 | 2 |
|
|
| 3 | 3 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 > 2 AND pk = 4 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 4 | 4 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 >= 3 and pk = 3 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 3 | 3 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 > 4 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 in (-1, 2, 3) ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 2 | 2 |
|
|
| 3 | 3 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 = 0 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 = 1 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 1 | 1 |
|
|
+------+------+
|
|
>
|
|
> -- delete `c1` and make sure it doesn't appear in filtering results
|
|
> DELETE c1 from ks.tbl_cnt WHERE pk = 1;
|
|
OK
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 = 1 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 <= 1000 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 2 | 2 |
|
|
| 4 | 4 |
|
|
| 3 | 3 |
|
|
+------+------+
|
|
> SELECT pk, c1 FROM ks.tbl_cnt WHERE c1 > -1000 ALLOW FILTERING;
|
|
+------+------+
|
|
| pk | c1 |
|
|
|------+------|
|
|
| 2 | 2 |
|
|
| 4 | 4 |
|
|
| 3 | 3 |
|
|
+------+------+
|
|
>
|
|
> -- Test case for gh-7330, counter signed integer overflow in debug mode
|
|
> CREATE TABLE counter_bug (t int, c counter, primary key(t));
|
|
OK
|
|
> UPDATE counter_bug SET c = c + 9223372036854775807 where t = 0;
|
|
OK
|
|
> SELECT * from counter_bug;
|
|
+-----+---------------------+
|
|
| t | c |
|
|
|-----+---------------------|
|
|
| 0 | 9223372036854775807 |
|
|
+-----+---------------------+
|
|
> UPDATE counter_bug SET c = c + 1 where t = 0;
|
|
OK
|
|
> SELECT * from counter_bug;
|
|
+-----+----------------------+
|
|
| t | c |
|
|
|-----+----------------------|
|
|
| 0 | -9223372036854775808 |
|
|
+-----+----------------------+
|
|
> UPDATE counter_bug SET c = c - 1 where t = 0;
|
|
OK
|
|
> SELECT * from counter_bug;
|
|
+-----+---------------------+
|
|
| t | c |
|
|
|-----+---------------------|
|
|
| 0 | 9223372036854775807 |
|
|
+-----+---------------------+
|
|
>
|
|
> -- cleanup
|
|
> DROP KEYSPACE ks;
|
|
OK
|