-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b27b4e3
commit 57ec832
Showing
2 changed files
with
300 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,298 @@ | ||
# Copyright (c) 2023 vesoft inc. All rights reserved. | ||
# | ||
# This source code is licensed under Apache 2.0 License. | ||
Feature: DDL test | ||
|
||
Background: | ||
Given an empty graph | ||
And create a space with following options: | ||
| partition_num | 1 | | ||
| replica_factor | 1 | | ||
| vid_type | FIXED_STRING(30) | | ||
| charset | utf8 | | ||
| collate | utf8_bin | | ||
|
||
Scenario: Tag DDL | ||
When executing query: | ||
""" | ||
CREATE TAG A(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG IF NOT EXISTS A(id int, name string); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG B( | ||
id int NOT NULL DEFAULT 0+0 COMMENT "primary key", | ||
name string NOT NULL, | ||
createDate DATETIME, location geography(polygon), | ||
isVisited bool COMMENT "kHop search flag", | ||
nickName TIME DEFAULT time() | ||
) | ||
TTL_DURATION = 100, TTL_COL = "id", COMMENT = "TAG B"; | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
DESC TAG A; | ||
""" | ||
Then the result should be, in any order: | ||
| Field | Type | Null | Default | Comment | | ||
When executing query: | ||
""" | ||
DESC TAG B; | ||
""" | ||
Then the result should be, in any order: | ||
| Field | Type | Null | Default | Comment | | ||
| "id" | "int64" | "NO" | 0 | "primary key" | | ||
| "name" | "string" | "NO" | | | | ||
| "createDate" | "datetime" | "YES" | | | | ||
| "location" | "geography(polygon)" | "YES" | | | | ||
| "isVisited" | "bool" | "YES" | | "kHop search flag" | | ||
| "nickName" | "time" | "YES" | "time()" | | | ||
When executing query: | ||
""" | ||
ALTER TAG B DROP (name) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_A_1 on A(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_A_2 on A(id); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Key not existed! | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX IF NOT EXISTS idx_A_3 on A(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_1 on B(isVisited, id, nickName, name(1), createDate); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Key not existed! | ||
When executing query: | ||
""" | ||
ALTER TAG B ADD (name string) | ||
""" | ||
# IMHO, this is really confusing. https://github.com/vesoft-inc/nebula/issues/2671 | ||
Then a ExecutionError should be raised at runtime: Existed! | ||
When executing query: | ||
""" | ||
ALTER TAG B ADD (namex string) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
ALTER TAG B CHANGE (isVisited bool) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
ALTER TAG B CHANGE (isVisited int) | ||
""" | ||
Then a ExecutionError should be raised at runtime: Unsupported! | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_2 on B(id); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_4 on B(namex); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Invalid param! | ||
When executing query: | ||
""" | ||
DROP TAG INDEX IF EXISTS idx_B_4; | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_5 on B(createDate); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_6 on B(location); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_7 on B(isVisited); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_8 on B(nickName); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_9 on B(id, nickName, namex(1), createDate); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_10 on B(id, nickName, namex(1)); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_E2_11 on E2(id, nickName, namex(1)); | ||
""" | ||
Then a ExecutionError should be raised at runtime: TagNotFound: Tag not existed! | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_B_1 on B(isVisited, id, nickName, namex(1), createDate); | ||
""" | ||
Then the execution should be successful | ||
|
||
Scenario: Edge DDL | ||
When executing query: | ||
""" | ||
CREATE EDGE E1(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE IF NOT EXISTS E1(id int, name string); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE E2( | ||
id int NOT NULL DEFAULT 0+0 COMMENT "primary key", | ||
name string NOT NULL, | ||
createDate DATETIME, location geography(polygon), | ||
isVisited bool COMMENT "kHop search flag", | ||
nickName TIME DEFAULT time() | ||
) | ||
TTL_DURATION = 100, TTL_COL = "id", COMMENT = "EDGE E2"; | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
DESC EDGE E1; | ||
""" | ||
Then the result should be, in any order: | ||
| Field | Type | Null | Default | Comment | | ||
When executing query: | ||
""" | ||
DESC EDGE E2; | ||
""" | ||
Then the result should be, in any order: | ||
| Field | Type | Null | Default | Comment | | ||
| "id" | "int64" | "NO" | 0 | "primary key" | | ||
| "name" | "string" | "NO" | | | | ||
| "createDate" | "datetime" | "YES" | | | | ||
| "location" | "geography(polygon)" | "YES" | | | | ||
| "isVisited" | "bool" | "YES" | | "kHop search flag" | | ||
| "nickName" | "time" | "YES" | "time()" | | | ||
When executing query: | ||
""" | ||
ALTER EDGE E2 DROP (name) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E1_1 on E1(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E1_2 on E1(id); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Key not existed! | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX IF NOT EXISTS idx_E1_3 on E1(); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_1 on E2(isVisited, id, nickName, name(1), createDate); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Key not existed! | ||
When executing query: | ||
""" | ||
ALTER EDGE E2 ADD (name string) | ||
""" | ||
Then a ExecutionError should be raised at runtime: Existed! | ||
When executing query: | ||
""" | ||
ALTER EDGE E2 ADD (namex string) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
ALTER EDGE E2 CHANGE (isVisited bool) | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
ALTER EDGE E2 CHANGE (isVisited int) | ||
""" | ||
Then a ExecutionError should be raised at runtime: Unsupported! | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_2 on E2(id); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_4 on E2(namex); | ||
""" | ||
Then a ExecutionError should be raised at runtime: Invalid param! | ||
When executing query: | ||
""" | ||
DROP EDGE INDEX IF EXISTS idx_E2_4; | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_5 on E2(createDate); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_6 on E2(location); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_7 on E2(isVisited); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_8 on E2(nickName); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_9 on E2(id, nickName, namex(1), createDate); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_10 on E2(id, nickName, namex(1)); | ||
""" | ||
Then the execution should be successful | ||
When executing query: | ||
""" | ||
CREATE TAG INDEX idx_E2_11 on E2(id, nickName, namex(1)); | ||
""" | ||
Then a ExecutionError should be raised at runtime: TagNotFound: Tag not existed! | ||
When executing query: | ||
""" | ||
CREATE EDGE INDEX idx_E2_1 on E2(isVisited, id, nickName, namex(1), createDate); | ||
""" | ||
Then the execution should be successful |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters