# LogicTest: default parallel-stmts distsql

statement ok
CREATE TABLE users (
  id    INT PRIMARY KEY,
  name  VARCHAR NOT NULL,
  title VARCHAR,
  INDEX foo (name),
  UNIQUE INDEX bar (id, name)
)

statement ok
INSERT INTO users VALUES (1, 'tom', 'cat'),(2, 'jerry', 'rat')

query TTBITTBB colnames
SHOW INDEXES FROM users
----
Table  Name     Unique  Seq  Column  Direction  Storing  Implicit
users  primary  true    1    id      ASC        false    false
users  foo      false   1    name    ASC        false    false
users  foo      false   2    id      ASC        false    true
users  bar      true    1    id      ASC        false    false
users  bar      true    2    name    ASC        false    false

statement error index name "bar" already exists
ALTER INDEX users@foo RENAME TO bar

statement error empty index name
ALTER INDEX users@foo RENAME TO ""

statement error index "ffo" does not exist
ALTER INDEX users@ffo RENAME TO ufo

statement ok
ALTER INDEX IF EXISTS users@ffo RENAME TO ufo

statement ok
ALTER INDEX users@foo RENAME TO ufoo

statement ok
ALTER INDEX ufoo RENAME TO ufo

query TTBITTBB colnames
SHOW INDEXES FROM users
----
Table  Name     Unique  Seq  Column  Direction  Storing  Implicit
users  primary  true    1    id      ASC        false    false
users  ufo      false   1    name    ASC        false    false
users  ufo      false   2    id      ASC        false    true
users  bar      true    1    id      ASC        false    false
users  bar      true    2    name    ASC        false    false

user testuser

statement error user testuser does not have CREATE privilege on table users
ALTER INDEX users@bar RENAME TO rar

user root

statement ok
GRANT CREATE ON TABLE users TO testuser

user testuser

statement ok
ALTER INDEX users@bar RENAME TO rar

query TTBITTBB colnames
SHOW INDEXES FROM users
----
Table  Name     Unique  Seq  Column  Direction  Storing  Implicit
users  primary  true    1    id      ASC        false    false
users  ufo      false   1    name    ASC        false    false
users  ufo      false   2    id      ASC        false    true
users  rar      true    1    id      ASC        false    false
users  rar      true    2    name    ASC        false    false

user root

query ITT rowsort
SELECT * FROM users
----
1 tom   cat
2 jerry rat

statement ok
CREATE VIEW v AS SELECT name FROM users@{FORCE_INDEX=ufo}

statement error cannot rename index "ufo" because view "v" depends on it
ALTER INDEX users@ufo RENAME TO foo

statement ok
ALTER INDEX users@rar RENAME TO bar
