Skip to content

Commit 1fefa07

Browse files
committed
sql: add tests for updated value on ALTER TABLE identity
The changes in #154489 addressed inconsistencies with PG sequence manipulation (the `ALTER SEQUENCE` commands didn't correctly update the current value). Those changes weren't applied to `ALTER TABLE ALTER COLUMN`. This change describes the current behavior to ensure consistency when #157030 is merged. Part of: #142914 Epic: CRDB-31283 Informs: #52552 Informs: #21564 Release note: None
1 parent 01a8e6a commit 1fefa07

File tree

2 files changed

+77
-2
lines changed

2 files changed

+77
-2
lines changed

pkg/sql/logictest/testdata/logic_test/alter_sequence

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ subtest issue-52552
400400

401401
statement ok
402402
CREATE SEQUENCE test_52552_asc INCREMENT BY 3 MINVALUE 1 MAXVALUE 12;
403-
ALTER SEQUENCE test_52552_asc INCREMENT BY 8 MINVALUE 1 MAXVALUE 12;
403+
ALTER SEQUENCE test_52552_asc INCREMENT BY 8;
404404

405405
query II
406406
SELECT nextval('test_52552_asc'), nextval('test_52552_asc');
@@ -423,7 +423,7 @@ SELECT nextval('test_52552_asc');
423423

424424
statement ok
425425
CREATE SEQUENCE test_52552_desc INCREMENT BY -5 MINVALUE 1 MAXVALUE 12;
426-
ALTER SEQUENCE test_52552_desc INCREMENT BY -8 MINVALUE 1 MAXVALUE 12;
426+
ALTER SEQUENCE test_52552_desc INCREMENT BY -8;
427427

428428
query II
429429
SELECT nextval('test_52552_desc'), nextval('test_52552_desc');

pkg/sql/logictest/testdata/logic_test/alter_table

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4439,6 +4439,81 @@ SELECT b from t_alter_identity ORDER BY b;
44394439
20
44404440
22
44414441

4442+
subtest issue-52552
4443+
4444+
statement ok
4445+
CREATE TABLE test_52552_asc (c1 int GENERATED ALWAYS AS IDENTITY);
4446+
ALTER TABLE test_52552_asc ALTER COLUMN c1 SET INCREMENT BY 3 SET MINVALUE 1 SET MAXVALUE 12 RESTART;
4447+
ALTER TABLE test_52552_asc ALTER COLUMN c1 SET INCREMENT BY 8;
4448+
INSERT INTO test_52552_asc DEFAULT VALUES;
4449+
INSERT INTO test_52552_asc DEFAULT VALUES;
4450+
4451+
query I rowsort
4452+
SELECT c1 FROM test_52552_asc
4453+
----
4454+
9
4455+
1
4456+
4457+
statement error pq: reached maximum value of sequence "test_52552_asc_c1_seq"
4458+
INSERT INTO test_52552_asc DEFAULT VALUES;
4459+
4460+
statement error pq: reached maximum value of sequence "test_52552_asc_c1_seq"
4461+
INSERT INTO test_52552_asc DEFAULT VALUES;
4462+
4463+
statement ok
4464+
ALTER TABLE test_52552_asc ALTER COLUMN c1 SET NO MAXVALUE;
4465+
INSERT INTO test_52552_asc DEFAULT VALUES;
4466+
4467+
query I rowsort
4468+
SELECT c1 FROM test_52552_asc
4469+
----
4470+
1
4471+
9
4472+
17
4473+
4474+
statement ok
4475+
CREATE TABLE test_52552_desc (c1 int GENERATED ALWAYS AS IDENTITY);
4476+
ALTER TABLE test_52552_desc ALTER COLUMN c1 SET INCREMENT BY -5 SET MINVALUE 1 SET MAXVALUE 12 SET START 12 RESTART;
4477+
ALTER TABLE test_52552_desc ALTER COLUMN c1 SET INCREMENT BY -8;
4478+
INSERT INTO test_52552_desc DEFAULT VALUES;
4479+
INSERT INTO test_52552_desc DEFAULT VALUES;
4480+
4481+
query I rowsort
4482+
SELECT c1 FROM test_52552_desc
4483+
----
4484+
12
4485+
4
4486+
4487+
statement error pq: reached minimum value of sequence "test_52552_desc_c1_seq" \(1\)
4488+
INSERT INTO test_52552_desc DEFAULT VALUES;
4489+
4490+
statement error pq: reached minimum value of sequence "test_52552_desc_c1_seq" \(1\)
4491+
INSERT INTO test_52552_desc DEFAULT VALUES;
4492+
4493+
statement ok
4494+
ALTER TABLE test_52552_desc ALTER COLUMN c1 SET NO MINVALUE;
4495+
INSERT INTO test_52552_desc DEFAULT VALUES;
4496+
4497+
query I rowsort
4498+
SELECT c1 FROM test_52552_desc
4499+
----
4500+
12
4501+
4
4502+
-4
4503+
4504+
statement ok
4505+
CREATE TABLE test_52552_start (c1 int GENERATED ALWAYS AS IDENTITY);
4506+
ALTER TABLE test_52552_start ALTER COLUMN c1 SET INCREMENT 3 SET MINVALUE 1 SET MAXVALUE 100 SET START 50;
4507+
ALTER TABLE test_52552_start ALTER COLUMN c1 SET INCREMENT 8;
4508+
INSERT INTO test_52552_start DEFAULT VALUES;
4509+
4510+
query I
4511+
SELECT c1 FROM test_52552_start;
4512+
----
4513+
50
4514+
4515+
subtest end
4516+
44424517
statement ok
44434518
CREATE TABLE t_identity_drop (a int GENERATED ALWAYS AS IDENTITY (START WITH 10), b int GENERATED BY DEFAULT AS IDENTITY);
44444519

0 commit comments

Comments
 (0)