Skip to content

Commit

Permalink
modify style
Browse files Browse the repository at this point in the history
  • Loading branch information
lingtaolf committed Oct 12, 2023
1 parent 8f82d64 commit 4499dd3
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 7 deletions.
7 changes: 6 additions & 1 deletion docs/en/sql-reference/statements/rename.md
Expand Up @@ -16,7 +16,7 @@ The `RENAME` query is supported by the [Atomic](../../engines/database-engines/a
**Syntax**

```sql
RENAME DATABASE|TABLE|DICTIONARY name TO new_name [,...] [ON CLUSTER cluster]
RENAME DATABASE|[TABLE|DICTIONARY] name TO new_name [,...] [ON CLUSTER cluster]
```

## RENAME DATABASE
Expand Down Expand Up @@ -48,6 +48,11 @@ RENAME TABLE [db1.]name1 TO [db2.]name2 [,...] [ON CLUSTER cluster]
RENAME TABLE table_A TO table_A_bak, table_B TO table_B_bak;
```

And you can use a simpler sql:
```sql
RENAME table_A TO table_A_bak, table_B TO table_B_bak;
```

## RENAME DICTIONARY

Renames one or several dictionaries. This query can be used to move dictionaries between databases.
Expand Down
2 changes: 1 addition & 1 deletion src/Parsers/ParserRenameQuery.cpp
Expand Up @@ -57,7 +57,7 @@ bool ParserRenameQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected)
node = query;
return true;
}
else if(s_rename_table.ignore(pos, expected))
else if (s_rename_table.ignore(pos, expected))
;
else if (s_exchange_tables.ignore(pos, expected))
exchange = true;
Expand Down
@@ -1,3 +1,8 @@
r1
r2
r3
r1_bak
r1
r1_bak
r2_bak
test_dictionary
test_dictionary_2
UNKNOWN_TABLE
57 changes: 57 additions & 0 deletions tests/queries/0_stateless/02891_rename_table_without_keyword.sh
@@ -0,0 +1,57 @@
#!/usr/bin/env bash

CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=../shell_config.sh
. "$CUR_DIR"/../shell_config.sh

db_name=db_$(echo $RANDOM |md5sum |cut -c 1-4)

$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="DROP DATABASE IF EXISTS {db:Identifier};
CREATE DATABASE {db:Identifier};
CREATE TABLE IF NOT EXISTS {db:Identifier}.r1 (name String) Engine=Memory();
SHOW TABLES FROM {db:Identifier}"

$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="RENAME TABLE {db:Identifier}.r1 TO {db:Identifier}.r1_bak;
SHOW TABLES FROM {db:Identifier};"

$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="RENAME {db:Identifier}.r1_bak TO {db:Identifier}.r1;
SHOW TABLES FROM {db:Identifier};"

$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="CREATE TABLE IF NOT EXISTS {db:Identifier}.r2 (name String) Engine=Memory();
RENAME {db:Identifier}.r1 TO {db:Identifier}.r1_bak, {db:Identifier}.r2 TO {db:Identifier}.r2_bak;
SHOW TABLES FROM {db:Identifier};"


$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="CREATE TABLE IF NOT EXISTS {db:Identifier}.source_table (
id UInt64,
value String
) ENGINE = Memory;
CREATE DICTIONARY IF NOT EXISTS {db:Identifier}.test_dictionary
(
id UInt64,
value String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(TABLE '{db:Identifier}.source_table'))
LAYOUT(FLAT())
LIFETIME(MIN 0 MAX 1000);
SHOW DICTIONARIES FROM {db:Identifier};"


$CLICKHOUSE_CLIENT --param_db="${db_name}" --multiquery \
--query="RENAME {db:Identifier}.test_dictionary TO {db:Identifier}.test_dictionary_2;
SHOW DICTIONARIES FROM {db:Identifier};"

todb_name=db_$(echo $RANDOM |md5sum |cut -c 1-4)

$CLICKHOUSE_CLIENT --param_todb="${todb_name}" --param_db="${db_name}" --query="RENAME {db:Identifier} TO {todb:Identifier}; -- { serverError 60 }" 2>&1 | grep -o "UNKNOWN_TABLE" | uniq

$CLICKHOUSE_CLIENT --param_db="${db_name}" --query="DROP DATABASE IF EXISTS {db:Identifier}"

30 changes: 27 additions & 3 deletions tests/queries/0_stateless/02891_rename_table_without_keyword.sql
@@ -1,7 +1,7 @@
DROP DATABASE IF EXISTS rename_db;
CREATE DATABASE rename_db;
CREATE DATABASE IF NOT EXISTS rename_db;

CREATE TABLE rename_db.r1 (name String) Engine=Memory();
CREATE TABLE IF NOT EXISTS rename_db.r1 (name String) Engine=Memory();
SHOW TABLES FROM rename_db;

RENAME TABLE rename_db.r1 TO rename_db.r2;
Expand All @@ -10,5 +10,29 @@ SHOW TABLES FROM rename_db;
RENAME rename_db.r2 TO rename_db.r3;
SHOW TABLES FROM rename_db;

DROP DATABASE rename_db;
CREATE TABLE IF NOT EXISTS rename_db.source_table (
id UInt64,
value String
) ENGINE = Memory;

CREATE DICTIONARY IF NOT EXISTS rename_db.test_dictionary
(
id UInt64,
value String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(TABLE 'rename_db.dictionary_table'))
LAYOUT(FLAT())
LIFETIME(MIN 0 MAX 1000);

SHOW DICTIONARIES FROM rename_db;

RENAME rename_db.test_dictionary TO rename_db.test_dictionary_2; -- { serverError UNKNOWN_TABLE }
SHOW DICTIONARIES FROM rename_db;

SHOW DATABASES LIKE 'rename_db';
RENAME rename_db TO rename_db_2; -- { serverError UNKNOWN_TABLE }
SHOW DATABASES LIKE 'rename_db';

DROP DATABASE IF EXISTS rename_db;

0 comments on commit 4499dd3

Please sign in to comment.