Skip to content

Commit

Permalink
chore: use raw sql as task SQL instead of pretty one (databendlabs#14281
Browse files Browse the repository at this point in the history
)
  • Loading branch information
ZhiHanZ authored Jan 10, 2024
1 parent 7dd91a0 commit 91f4930
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 20 deletions.
4 changes: 1 addition & 3 deletions src/query/ast/src/parser/statement.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,7 @@ pub fn statement(i: Input) -> IResult<StatementWithFormat> {
_,
sql,
)| {
let sql = pretty_statement(sql.stmt, 10)
.map_err(|_| ErrorKind::Other("invalid statement"))
.unwrap();
let sql = format!("{}", sql.stmt);
Statement::CreateTask(CreateTaskStmt {
if_not_exists: opt_if_not_exists.is_some(),
name: task.to_string(),
Expand Down
1 change: 1 addition & 0 deletions src/query/ast/tests/it/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,7 @@ fn test_statement() {
r#"CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = 'MyWarehouse' SCHEDULE = 1215 SECOND SUSPEND_TASK_AFTER_NUM_FAILURES = 3 COMMENT = 'This is test task 1' AS SELECT * FROM MyTable1"#,
r#"CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE = USING CRON '0 6 * * *' 'America/Los_Angeles' COMMENT = 'serverless + cron' AS insert into t (c1, c2) values (1, 2), (3, 4)"#,
r#"CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE = USING CRON '0 12 * * *' AS VACUUM TABLE t"#,
r#"CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE = USING CRON '0 13 * * *' AS COPY INTO @my_internal_stage FROM canadian_city_population FILE_FORMAT = (TYPE = PARQUET)"#,
r#"CREATE TASK IF NOT EXISTS MyTask1 AFTER 'task2', 'task3' WHEN SYSTEM$GET_PREDECESSOR_RETURN_VALUE('task_name') != 'VALIDATION' AS VACUUM TABLE t"#,
r#"ALTER TASK MyTask1 RESUME"#,
r#"ALTER TASK MyTask1 SUSPEND"#,
Expand Down
52 changes: 35 additions & 17 deletions src/query/ast/tests/it/testdata/statement.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13842,9 +13842,7 @@ AlterNetworkPolicy(
---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = 'MyWarehouse' SCHEDULE = 15 MINUTE SUSPEND_TASK_AFTER_NUM_FAILURES = 3 COMMENT = 'This is test task 1' AS SELECT * FROM MyTable1
---------- Output ---------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 900 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT *
FROM
MyTable1
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 900 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT * FROM MyTable1
---------- AST ------------
CreateTask(
CreateTaskStmt {
Expand All @@ -13866,17 +13864,15 @@ CreateTask(
comments: "This is test task 1",
after: [],
when_condition: None,
sql: "SELECT *\nFROM\n MyTable1",
sql: "SELECT * FROM MyTable1",
},
)


---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = 'MyWarehouse' SCHEDULE = 15 SECOND SUSPEND_TASK_AFTER_NUM_FAILURES = 3 COMMENT = 'This is test task 1' AS SELECT * FROM MyTable1
---------- Output ---------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 15 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT *
FROM
MyTable1
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 15 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT * FROM MyTable1
---------- AST ------------
CreateTask(
CreateTaskStmt {
Expand All @@ -13898,17 +13894,15 @@ CreateTask(
comments: "This is test task 1",
after: [],
when_condition: None,
sql: "SELECT *\nFROM\n MyTable1",
sql: "SELECT * FROM MyTable1",
},
)


---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = 'MyWarehouse' SCHEDULE = 1215 SECOND SUSPEND_TASK_AFTER_NUM_FAILURES = 3 COMMENT = 'This is test task 1' AS SELECT * FROM MyTable1
---------- Output ---------
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 1215 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT *
FROM
MyTable1
CREATE TASK IF NOT EXISTS MyTask1 WAREHOUSE = MyWarehouse SCHEDULE 1215 SECOND SUSPEND TASK AFTER 3 FAILURES COMMENTS = 'This is test task 1' AS SELECT * FROM MyTable1
---------- AST ------------
CreateTask(
CreateTaskStmt {
Expand All @@ -13930,18 +13924,15 @@ CreateTask(
comments: "This is test task 1",
after: [],
when_condition: None,
sql: "SELECT *\nFROM\n MyTable1",
sql: "SELECT * FROM MyTable1",
},
)


---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE = USING CRON '0 6 * * *' 'America/Los_Angeles' COMMENT = 'serverless + cron' AS insert into t (c1, c2) values (1, 2), (3, 4)
---------- Output ---------
CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE CRON '0 6 * * *' TIMEZONE 'America/Los_Angeles' COMMENTS = 'serverless + cron' AS INSERT INTO
t (c1, c2)
VALUES
(1, 2), (3, 4)
CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE CRON '0 6 * * *' TIMEZONE 'America/Los_Angeles' COMMENTS = 'serverless + cron' AS INSERT INTO t (c1, c2) VALUES (1, 2), (3, 4)
---------- AST ------------
CreateTask(
CreateTaskStmt {
Expand All @@ -13962,7 +13953,7 @@ CreateTask(
comments: "serverless + cron",
after: [],
when_condition: None,
sql: "INSERT INTO\n t (c1, c2)\nVALUES\n (1, 2), (3, 4)",
sql: "INSERT INTO t (c1, c2) VALUES (1, 2), (3, 4)",
},
)

Expand Down Expand Up @@ -13994,6 +13985,33 @@ CreateTask(
)


---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE = USING CRON '0 13 * * *' AS COPY INTO @my_internal_stage FROM canadian_city_population FILE_FORMAT = (TYPE = PARQUET)
---------- Output ---------
CREATE TASK IF NOT EXISTS MyTask1 SCHEDULE CRON '0 13 * * *' AS COPY INTO @my_internal_stage FROM canadian_city_population FILE_FORMAT = (type = 'PARQUET') SINGLE = false MAX_FILE_SIZE= 0
---------- AST ------------
CreateTask(
CreateTaskStmt {
if_not_exists: true,
name: "MyTask1",
warehouse_opts: WarehouseOptions {
warehouse: None,
},
schedule_opts: Some(
CronExpression(
"0 13 * * *",
None,
),
),
suspend_task_after_num_failures: None,
comments: "",
after: [],
when_condition: None,
sql: "COPY INTO @my_internal_stage FROM canadian_city_population FILE_FORMAT = (type = 'PARQUET') SINGLE = false MAX_FILE_SIZE= 0",
},
)


---------- Input ----------
CREATE TASK IF NOT EXISTS MyTask1 AFTER 'task2', 'task3' WHEN SYSTEM$GET_PREDECESSOR_RETURN_VALUE('task_name') != 'VALIDATION' AS VACUUM TABLE t
---------- Output ---------
Expand Down

0 comments on commit 91f4930

Please sign in to comment.