4paradigm / OpenMLDB

OpenMLDB is an open-source machine learning database that provides a feature platform computing consistent features for training and inference.
https://openmldb.ai
Apache License 2.0
1.57k stars 314 forks source link

feat(parser): simple ANSI SQL rewriter #3934

Closed aceforeverd closed 1 month ago

codecov[bot] commented 1 month ago

Codecov Report

Attention: Patch coverage is 84.87654% with 49 lines in your changes are missing coverage. Please review.

Project coverage is 75.22%. Comparing base (21184d5) to head (1295708).

Files Patch % Lines
hybridse/src/rewriter/ast_rewriter.cc 85.13% 44 Missing :warning:
src/sdk/sql_cluster_router.cc 75.00% 4 Missing :warning:
hybridse/src/rewriter/ast_rewriter_test.cc 91.66% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #3934 +/- ## ============================================= + Coverage 41.62% 75.22% +33.60% Complexity 711 711 ============================================= Files 196 754 +558 Lines 11792 135572 +123780 Branches 2012 2012 ============================================= + Hits 4908 101983 +97075 - Misses 6581 33286 +26705 Partials 303 303 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 1 month ago

SDK Test Report

102 files  ±0  102 suites  ±0   2m 12s :stopwatch: -11s 359 tests ±0  345 :white_check_mark: ±0  14 :zzz: ±0  0 :x: ±0  487 runs  ±0  473 :white_check_mark: ±0  14 :zzz: ±0  0 :x: ±0 

Results for commit 12957081. ± Comparison against base commit 21184d56.

This pull request removes 30 and adds 9 tests. Note that renamed tests count towards both. ``` PARTITION BY db1.t1.col2 ORDER BY db1.t1.col1 PARTITION BY t1.col2 ORDER BY t1.col1 ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW ) limit 10;](1) ) limit 10;](2) ) limit 10;](3) FROM db1.t1 FROM t1 WINDOW w1 AS ( last join db2.t2 order by db2.t2.col1 … ``` ``` com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[, SELECT sum(db1.t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1 FROM db1.t1 last join db2.t2 order by db2.t2.col1 on db1.t1.col1 = db2.t2.col1 and db1.t1.col2 = db2.t2.col0 WINDOW w1 AS ( PARTITION BY db1.t1.col2 ORDER BY db1.t1.col1 ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW ) limit 10;](2) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[db1, SELECT sum(t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0 WINDOW w1 AS ( PARTITION BY t1.col2 ORDER BY t1.col1 ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW ) limit 10;](1) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlLastJoinWithMultipleDB[null, SELECT sum(db1.t1.col1) over w1 as sum_t1_col1, db2.t2.str1 as t2_str1 FROM db1.t1 last join db2.t2 order by db2.t2.col1 on db1.t1.col1 = db2.t2.col1 and db1.t1.col2 = db2.t2.col0 WINDOW w1 AS ( PARTITION BY db1.t1.col2 ORDER BY db1.t1.col1 ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW ) limit 10;](3) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[, SELECT db2.t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0; , SQL parse error: Fail to transform data provider op: table t1 not exists in database []](4) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT db1.t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0; , SQL parse error: Column Not found: db1.t2.str1](2) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT db2.t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = t2.col1 and t1.col2 = db2.t2.col0; , SQL parse error: Column Not found: .t2.col1](3) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[db1, SELECT t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0; , SQL parse error: Column Not found: .t2.str1](1) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlMultipleDBErrorTest[null, SELECT db2.t2.str1 as t2_str1 FROM t1 last join db2.t2 order by db2.t2.col1 on t1.col1 = db2.t2.col1 and t1.col2 = db2.t2.col0; , SQL parse error: Fail to transform data provider op: table t1 not exists in database []](5) com._4paradigm.hybridse.sdk.SqlEngineTest ‑ sqlWindowLastJoin[ SELECT sum(t1.col1) over w1 as sum_t1_col1, t2.str1 as t2_str1 FROM t1 last join t2 order by t2.col1 on t1.col1 = t2.col1 and t1.col2 = t2.col0 WINDOW w1 AS ( PARTITION BY t1.col2 ORDER BY t1.col1 ROWS_RANGE BETWEEN 3 PRECEDING AND CURRENT ROW ) limit 10;](1) ```

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

HybridSE Mac Test Report

0 tests   0 :white_check_mark:  0s :stopwatch: 0 suites  0 :zzz: 0 files    0 :x:

Results for commit 12957081.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

HybridSE Linux Test Report

20 375 tests   20 373 :white_check_mark:  6m 33s :stopwatch:    262 suites       2 :zzz:     69 files         0 :x:

Results for commit 12957081.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

Linux Test Report

    59 files  ±0     252 suites  ±0   1h 41m 21s :stopwatch: - 5m 39s 13 520 tests ±0  13 513 :white_check_mark: +1  7 :zzz: ±0  0 :x:  - 1  19 197 runs  ±0  19 190 :white_check_mark: +1  7 :zzz: ±0  0 :x:  - 1 

Results for commit 12957081. ± Comparison against base commit 21184d56.

:recycle: This comment has been updated with latest results.