No-op bad alter table auto increment (#1930)

This commit is contained in:
Vinai Rachakonda
2021-07-21 14:24:07 -07:00
committed by GitHub
parent 1d33bde91b
commit 3111cc4a5b
4 changed files with 31 additions and 4 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ require (
github.com/denisbrodbeck/machineid v1.0.1
github.com/dolthub/dolt/go/gen/proto/dolt/services/eventsapi v0.0.0-20201005193433-3ee972b1d078
github.com/dolthub/fslock v0.0.2
github.com/dolthub/go-mysql-server v0.10.1-0.20210716214543-4b21301f5a15
github.com/dolthub/go-mysql-server v0.10.1-0.20210721190541-751f2b303897
github.com/dolthub/ishell v0.0.0-20210205014355-16a4ce758446
github.com/dolthub/mmap-go v1.0.4-0.20201107010347-f9f2a9588a66
github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81
+4 -2
View File
@@ -142,8 +142,10 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dolthub/fslock v0.0.2 h1:8vUh47iKovgrtXNrXVIzsIoWLlspoXg+3nslhUzgKSw=
github.com/dolthub/fslock v0.0.2/go.mod h1:0i7bsNkK+XHwFL3dIsSWeXSV7sykVzzVr6+jq8oeEo0=
github.com/dolthub/go-mysql-server v0.10.1-0.20210716214543-4b21301f5a15 h1:biqjQK89eo6h4gm+XpQeT9ppOUKjo/9qmx9MdOXoHe4=
github.com/dolthub/go-mysql-server v0.10.1-0.20210716214543-4b21301f5a15/go.mod h1:qmYQCdWV7k5y4AbX+DNJjoqNdo4Y2l5UaLbWibEu7d4=
github.com/dolthub/go-mysql-server v0.10.1-0.20210721000736-54546b626b64 h1:NSaotbaqLGw9X/OgKZworSUN8T0mY9aF8KVY7YBV1uM=
github.com/dolthub/go-mysql-server v0.10.1-0.20210721000736-54546b626b64/go.mod h1:qmYQCdWV7k5y4AbX+DNJjoqNdo4Y2l5UaLbWibEu7d4=
github.com/dolthub/go-mysql-server v0.10.1-0.20210721190541-751f2b303897 h1:DhmAJ0pGsnsam3/6MM8n6T0NcSGPLWZXJdzK77QtlS4=
github.com/dolthub/go-mysql-server v0.10.1-0.20210721190541-751f2b303897/go.mod h1:qmYQCdWV7k5y4AbX+DNJjoqNdo4Y2l5UaLbWibEu7d4=
github.com/dolthub/ishell v0.0.0-20210205014355-16a4ce758446 h1:0ol5pj+QlKUKAtqs1LiPM3ZJKs+rHPgLSsMXmhTrCAM=
github.com/dolthub/ishell v0.0.0-20210205014355-16a4ce758446/go.mod h1:dhGBqcCEfK5kuFmeO5+WOx3hqc1k3M29c1oS/R7N4ms=
github.com/dolthub/mmap-go v1.0.4-0.20201107010347-f9f2a9588a66 h1:WRPDbpJWEnPxPmiuOTndT+lUWUeGjx6eoNOK9O4tQQQ=
@@ -147,7 +147,9 @@ func updateTableWithModifiedColumn(ctx context.Context, tbl *doltdb.Table, oldSc
return nil, err
}
var autoVal types.Value
if schema.HasAutoIncrement(newSch) {
// Note: The correct way to add an auto increment value to an existing schema is to you use the
// ALTER TABLE CHANGE COLUMN syntax not ALTER TABLE autoincrement. (see auto_increment.bats)
if schema.HasAutoIncrement(newSch) && schema.HasAutoIncrement(oldSch) {
autoVal, err = tbl.GetAutoIncrementValue(ctx)
if err != nil {
return nil, err
@@ -557,3 +557,26 @@ SQL
[[ "${lines[4]}" =~ "5,5" ]] || false
[[ "${lines[5]}" =~ "6,6" ]] || false
}
@test "auto_increment: alter table autoincrement on table with no AI key nops" {
dolt sql -q "create table test2(pk int primary key, name varchar(255), type int);"
run dolt sql -q "alter table test2 auto_increment = 2;"
[ "$status" -eq 0 ]
dolt sql -q "insert into test2 values (0, 'john', 0)"
run dolt sql -q "SELECT * from test2" -r csv
[ "$status" -eq 0 ]
[[ "$output" =~ "0,john,0" ]] || false
}
@test "auto_increment: alter table change column works" {
dolt sql -q "create table t(pk int primary key);"
dolt sql -q "ALTER TABLE t CHANGE COLUMN pk pk int NOT NULL AUTO_INCREMENT PRIMARY KEY;"
dolt sql -q 'insert into t values (NULL), (NULL), (NULL)'
run dolt sql -q "SELECT * FROM t" -r csv
[[ "${lines[0]}" =~ "pk" ]] || false
[[ "${lines[1]}" =~ "1" ]] || false
[[ "${lines[2]}" =~ "2" ]] || false
[[ "${lines[3]}" =~ "3" ]] || false
}