mindsdb / mindsdb_sql

SQL parser and planner used by MindsDB
https://mindsdb.com
GNU General Public License v3.0
55 stars 21 forks source link

Better error messaging #360

Closed ea-rus closed 6 months ago

ea-rus commented 6 months ago

Better error messaging Lexer:

Parser:

Example: image

Demo https://www.loom.com/share/b64a24b81f8e4bb595cc934e002472e8

Fixes: #241

github-actions[bot] commented 6 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
mindsdb_sql
   __about__.py10100%1–10
   __init__.py1292283%43, 47, 93, 110, 134–153, 160–161, 178
mindsdb_sql/parser
   lexer.py165199%243
   logger.py19479%14, 17, 23, 26
   parser.py4563193%48, 53, 73, 77, 81, 87, 91–93, 121–128, 182, 199, 249, 253, 317, 346–347, 367, 378, 491, 526, 557, 567, 581, 657
   utils.py46491%73–79
mindsdb_sql/parser/ast
   base.py36781%13, 28, 31, 49–52
   create.py63887%7–8, 78–83
   drop.py52296%10, 13
   insert.py62592%32, 35–37, 42
   show.py48198%18
   update.py53591%40–42, 75–76
mindsdb_sql/parser/ast/select
   case.py26292%19, 22
   constant.py36197%23
   data.py11282%15, 19
   identifier.py64789%43, 80–85
   native_query.py13192%25
   operation.py121794%27–30, 56, 65, 166, 185
   parameter.py11191%10
   select.py97397%148–153
   star.py12283%8–9
   union.py23196%18
mindsdb_sql/parser/dialects/mindsdb
   create_predictor.py92199%55
   knowledge_base.py40198%71
   lexer.py2552192%336, 338, 340, 352, 354, 356, 362–380
   parser.py9472797%120, 124, 263, 288, 375, 377, 568, 585, 609–610, 753, 806, 860, 877, 1006, 1016, 1054–1055, 1080, 1091, 1227, 1280, 1708, 1716, 1769–1772
mindsdb_sql/parser/dialects/mysql
   lexer.py23674%16, 18, 20, 32, 34, 36
   parser.py6092496%131, 133, 226–227, 326, 356, 373, 423, 427, 501, 511, 549–550, 570, 581, 702, 730, 735–737, 741, 758, 902, 1046
   show_index.py171135%10–12, 15–23, 26–27
mindsdb_sql/planner
   plan_join.py2741296%137, 173, 182, 209, 213, 302, 350, 368, 377–378, 406, 408
   plan_join_ts.py1791094%53, 60, 83–84, 129, 181, 185, 193, 265, 332
   query_plan.py22864%13–21, 30
   query_planner.py3856384%41–42, 65–66, 75, 152, 177, 382, 410–488, 531–532, 537, 563, 625, 655, 683, 708–710
   query_prepare.py2846179%76, 78, 86–116, 227, 249, 272, 315, 336, 360, 389–443, 446–452, 483, 496–498, 507, 526
   step_result.py14286%7, 12
   steps.py1742287%14, 19, 27, 32–34, 55–60, 67–73, 110–115
   ts_utils.py66691%59, 61, 81–84, 88
   utils.py2422789%60, 106, 112, 127, 139, 151, 154, 166, 196, 209, 224, 230, 235, 242, 244, 249, 262, 267, 273, 279, 293, 310, 340–341, 352–353, 368
mindsdb_sql/render
   sqlalchemy_render.py3987382%51, 85, 87, 99, 104, 176, 179–180, 193–194, 205–206, 224, 254, 256, 285, 297, 303, 354, 417–428, 439–443, 473, 488, 493–503, 512–513, 537–548, 567, 590–614, 622, 626, 648–651, 671–674
TOTAL634450292% 

Tests Skipped Failures Errors Time
666 1 :zzz: 0 :x: 0 :fire: 22.039s :stopwatch: