MindsDB 25.2.1.0__py3-none-any.whl → 25.2.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of MindsDB might be problematic. Click here for more details.
- {MindsDB-25.2.1.0.dist-info → MindsDB-25.2.2.0.dist-info}/METADATA +245 -245
- {MindsDB-25.2.1.0.dist-info → MindsDB-25.2.2.0.dist-info}/RECORD +24 -24
- mindsdb/__about__.py +1 -1
- mindsdb/api/executor/command_executor.py +0 -56
- mindsdb/api/executor/planner/query_planner.py +7 -2
- mindsdb/api/executor/sql_query/steps/fetch_dataframe.py +19 -11
- mindsdb/api/executor/sql_query/steps/subselect_step.py +44 -2
- mindsdb/integrations/handlers/file_handler/file_handler.py +13 -320
- mindsdb/integrations/handlers/file_handler/tests/test_file_handler.py +60 -156
- mindsdb/integrations/handlers/ms_one_drive_handler/ms_graph_api_one_drive_client.py +3 -3
- mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_tables.py +2 -20
- mindsdb/integrations/handlers/salesforce_handler/connection_args.py +9 -1
- mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py +2 -1
- mindsdb/integrations/utilities/files/file_reader.py +120 -61
- mindsdb/integrations/utilities/handlers/api_utilities/microsoft/ms_graph_api_utilities.py +1 -8
- mindsdb/integrations/utilities/query_traversal.py +42 -37
- mindsdb/interfaces/agents/langfuse_callback_handler.py +205 -27
- mindsdb/interfaces/file/file_controller.py +1 -1
- mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py +4 -0
- mindsdb/utilities/config.py +2 -2
- mindsdb/utilities/render/sqlalchemy_render.py +52 -19
- {MindsDB-25.2.1.0.dist-info → MindsDB-25.2.2.0.dist-info}/LICENSE +0 -0
- {MindsDB-25.2.1.0.dist-info → MindsDB-25.2.2.0.dist-info}/WHEEL +0 -0
- {MindsDB-25.2.1.0.dist-info → MindsDB-25.2.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
mindsdb/__about__.py,sha256=
|
|
1
|
+
mindsdb/__about__.py,sha256=elArHLWXLa0sWr7cffvwoRFQIOpKcs-In00uySlBHGk,444
|
|
2
2
|
mindsdb/__init__.py,sha256=fZopLiAYa9MzMZ0d48JgHc_LddfFKDzh7n_8icsjrVs,54
|
|
3
3
|
mindsdb/__main__.py,sha256=VQ3RetGs34NhFRT9d76o5S3UpKxdr-G3c0138kz3f8Y,21435
|
|
4
4
|
mindsdb/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
mindsdb/api/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
mindsdb/api/common/check_auth.py,sha256=cQEZqsnCbrRtUf8j4H6uPF98cDPu79t8TdtwBi5g30w,1345
|
|
7
7
|
mindsdb/api/executor/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
8
|
-
mindsdb/api/executor/command_executor.py,sha256=
|
|
8
|
+
mindsdb/api/executor/command_executor.py,sha256=ywHyqQnX6FvoyFTmQ068-K6IPuBtoZeu-ujz3BZhtdY,78210
|
|
9
9
|
mindsdb/api/executor/exceptions.py,sha256=SoxhetIKIVOAwbVP_NatfoKnwt-Xj2yFCiAIqSDxpIE,566
|
|
10
10
|
mindsdb/api/executor/controllers/__init__.py,sha256=px47lPVKqfpqgcoEBHyWoax-ad01rNOTJQCgQmG0Flo,50
|
|
11
11
|
mindsdb/api/executor/controllers/session_controller.py,sha256=2Jf-V0nj7k0aB4scujNVyx91h54odkDrdK1ydsCo46g,3072
|
|
@@ -27,7 +27,7 @@ mindsdb/api/executor/planner/exceptions.py,sha256=rvLQoFZgCpVsGWomSBdPeuOyr_6FM-
|
|
|
27
27
|
mindsdb/api/executor/planner/plan_join.py,sha256=rZn21LGxWyRou4iVOpNpt9IY4TytPoIDJy8rfGqfhoE,22506
|
|
28
28
|
mindsdb/api/executor/planner/plan_join_ts.py,sha256=LeQWq1dnhkLo36EaQG5B-EAlGfTFHT1szvEve75uMk8,16369
|
|
29
29
|
mindsdb/api/executor/planner/query_plan.py,sha256=T2KAz19cYrtPwJp4JKAYU9WeBzFppCH3btAQZLknsNw,716
|
|
30
|
-
mindsdb/api/executor/planner/query_planner.py,sha256=
|
|
30
|
+
mindsdb/api/executor/planner/query_planner.py,sha256=8cKZPvHh9Iqjc5UA0ZSCzbR6YRBcNhM4L8bPlgY7fnM,31079
|
|
31
31
|
mindsdb/api/executor/planner/query_prepare.py,sha256=ZH8fZ05tFMMy9aeuLU1R5F-ThSPtiGbvozoCZSNGz7A,16694
|
|
32
32
|
mindsdb/api/executor/planner/step_result.py,sha256=t2xBRVSfqTRk4GY2JIi21cXSUiFlCw5hMbWRBSMtEjM,519
|
|
33
33
|
mindsdb/api/executor/planner/steps.py,sha256=kB7FtJiUjiuDYk8a3qw_-EK4VKqcRZSr-udSTyctq6M,8830
|
|
@@ -40,7 +40,7 @@ mindsdb/api/executor/sql_query/steps/__init__.py,sha256=73K_wevliekB1qX5g6RW_TN6
|
|
|
40
40
|
mindsdb/api/executor/sql_query/steps/apply_predictor_step.py,sha256=Qm_kVTg0fwXWIy26Atmie_bGNa0wQQ7mVengN6Zly2A,16305
|
|
41
41
|
mindsdb/api/executor/sql_query/steps/base.py,sha256=xs3wOJ0fkqMRDNR5jDVaz23zeaD8wSF0L-JVC2WW7_E,557
|
|
42
42
|
mindsdb/api/executor/sql_query/steps/delete_step.py,sha256=YsHVlszYDV2-kxCcMnaGUyf-m7clrFzw0h0o4ZCvZAU,1324
|
|
43
|
-
mindsdb/api/executor/sql_query/steps/fetch_dataframe.py,sha256=
|
|
43
|
+
mindsdb/api/executor/sql_query/steps/fetch_dataframe.py,sha256=uGilR7k9m8H6QJ5ackTQ78SROdnC54SDYvJWA8WhRuk,3879
|
|
44
44
|
mindsdb/api/executor/sql_query/steps/insert_step.py,sha256=xjVSFzopHVW85sq5p5WVp4hcwkS3qdN8Ygc50jMjFJ0,3738
|
|
45
45
|
mindsdb/api/executor/sql_query/steps/join_step.py,sha256=8wW7AmIMhMinpMovSgl-2CGujV3mDX5kTFLxuI1KZfQ,4261
|
|
46
46
|
mindsdb/api/executor/sql_query/steps/map_reduce_step.py,sha256=v1TZy0FBjw_Bqxx-X2KP-jeqrun-FH4yilghiYhsQEM,4452
|
|
@@ -48,7 +48,7 @@ mindsdb/api/executor/sql_query/steps/multiple_step.py,sha256=jAwY8rGUOdecQNP5JSj
|
|
|
48
48
|
mindsdb/api/executor/sql_query/steps/prepare_steps.py,sha256=QATZ17UHZe5h41jqJP0yicXMsr1B7ak4p7CLHogFbAA,1538
|
|
49
49
|
mindsdb/api/executor/sql_query/steps/project_step.py,sha256=WQ23VkfWrVHKRnyy91Kh9uRI7Twb-IBvSQl2TZy_21w,2854
|
|
50
50
|
mindsdb/api/executor/sql_query/steps/sql_steps.py,sha256=RXZ1L05H_MHwVNdf6qDbIStsDjG_3QxEr3wPuFtZMdM,891
|
|
51
|
-
mindsdb/api/executor/sql_query/steps/subselect_step.py,sha256=
|
|
51
|
+
mindsdb/api/executor/sql_query/steps/subselect_step.py,sha256=o7znv6v6mbtm1mrQpJBWHQeD8s02XDKiTSXHClNJDSE,7275
|
|
52
52
|
mindsdb/api/executor/sql_query/steps/union_step.py,sha256=BTVFZz28sGPgbwDOb7pUQxDYC3_WVOjLGBz-9eAmC60,1947
|
|
53
53
|
mindsdb/api/executor/sql_query/steps/update_step.py,sha256=0MeUNsgVsK4pm2VrwM2ZrRua2JFvUHGhvzwzXRc8I1o,4563
|
|
54
54
|
mindsdb/api/executor/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -607,11 +607,11 @@ mindsdb/integrations/handlers/faunadb_handler/tests/__init__.py,sha256=47DEQpj8H
|
|
|
607
607
|
mindsdb/integrations/handlers/faunadb_handler/tests/test_faunadb_handler.py,sha256=JrgVIq6jucZjUCr8FpbC9ByJ3WdZGppZKHdovvFbNiw,1151
|
|
608
608
|
mindsdb/integrations/handlers/file_handler/__about__.py,sha256=UavP5jJ_xWIaJ0oRsEANLulczZ0craaUb3XLfCSBmEc,331
|
|
609
609
|
mindsdb/integrations/handlers/file_handler/__init__.py,sha256=46Hnm3ijRsYw95BkkBxHJK8k4h_2Te0j1W0r3-ptVCg,329
|
|
610
|
-
mindsdb/integrations/handlers/file_handler/file_handler.py,sha256=
|
|
610
|
+
mindsdb/integrations/handlers/file_handler/file_handler.py,sha256=r2EJh31dGygn6T6uiIDEQ1AStYeoExPOu-BF114kHmc,7638
|
|
611
611
|
mindsdb/integrations/handlers/file_handler/icon.svg,sha256=hsXEvUzrO7WQMOPC83LYQt-FW0wey9TCj5EwiIJwKwk,565
|
|
612
612
|
mindsdb/integrations/handlers/file_handler/requirements.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
613
613
|
mindsdb/integrations/handlers/file_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
614
|
-
mindsdb/integrations/handlers/file_handler/tests/test_file_handler.py,sha256=
|
|
614
|
+
mindsdb/integrations/handlers/file_handler/tests/test_file_handler.py,sha256=zc4QU4knxYLNVRq-kKKTwaJqquDeisLvw9DDnDzLuBY,11866
|
|
615
615
|
mindsdb/integrations/handlers/file_handler/tests/data/test.txt,sha256=SUG2Uw_Hmth51gyaCJyeyfAbFssHfsB3qWFcxBX_W1g,570
|
|
616
616
|
mindsdb/integrations/handlers/financial_modeling_prep_handler/__about__.py,sha256=Dz6gPZVoxWJqMgte07pkMKtQq42u7qYtCiaxdHVgANw,392
|
|
617
617
|
mindsdb/integrations/handlers/financial_modeling_prep_handler/__init__.py,sha256=AncBNXt6EECSYDNTlnkxkQ3_dfgEITMKaUUWjV-KSMY,537
|
|
@@ -1031,9 +1031,9 @@ mindsdb/integrations/handlers/monkeylearn_handler/requirements.txt,sha256=T_nkUv
|
|
|
1031
1031
|
mindsdb/integrations/handlers/ms_one_drive_handler/__about__.py,sha256=rUQ0p9bqHSjpEgXe9T-Hq-bfGrMHIU5Rmiwt-orDOCk,369
|
|
1032
1032
|
mindsdb/integrations/handlers/ms_one_drive_handler/__init__.py,sha256=vraI6WlfpNk0C_D0wQH7Wxxy7zpI57rOp2t2XPgHuSk,533
|
|
1033
1033
|
mindsdb/integrations/handlers/ms_one_drive_handler/icon.svg,sha256=52dL1SJWSi44Z2hQUMEyyP8DUmhgUtjvsfN3HU2EBes,2430
|
|
1034
|
-
mindsdb/integrations/handlers/ms_one_drive_handler/ms_graph_api_one_drive_client.py,sha256=
|
|
1034
|
+
mindsdb/integrations/handlers/ms_one_drive_handler/ms_graph_api_one_drive_client.py,sha256=q3Qd-9bBYacurH_rV5cYpLUgrI0kvSHGSDoi_OnkeWY,3508
|
|
1035
1035
|
mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_handler.py,sha256=8Xi8rKFWpEsDw5mzqgR7IW4wEbk-TBNqNqOj4350gL4,9333
|
|
1036
|
-
mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_tables.py,sha256=
|
|
1036
|
+
mindsdb/integrations/handlers/ms_one_drive_handler/ms_one_drive_tables.py,sha256=_Lq02LB_4swYjmxiWX6i-K4sUtpHuI7-Njhzy_LY2zA,2791
|
|
1037
1037
|
mindsdb/integrations/handlers/ms_teams_handler/__about__.py,sha256=CqqxMr2iXyNXzPfcrMnDpK7u7gC6tmYPkOYR3KBXgQM,357
|
|
1038
1038
|
mindsdb/integrations/handlers/ms_teams_handler/__init__.py,sha256=btEl5YvlZMkMn3NR6eChKtfT31OQY1LBEII1qJ4hf7g,518
|
|
1039
1039
|
mindsdb/integrations/handlers/ms_teams_handler/icon.svg,sha256=pso2BBOFF2aiAw28W9lBPnvnVeNib21kvrqfZnO_C0M,3934
|
|
@@ -1322,10 +1322,10 @@ mindsdb/integrations/handlers/s3_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_
|
|
|
1322
1322
|
mindsdb/integrations/handlers/s3_handler/tests/test_s3_handler.py,sha256=WGH7BN3IsJMAA0YBSMWyghI2lnwfAN1Bwwc210eIb14,1249
|
|
1323
1323
|
mindsdb/integrations/handlers/salesforce_handler/__about__.py,sha256=WLr4oUXEPsawa_y4oDxihsqN2iawkNDCbe4ttcF7WUQ,349
|
|
1324
1324
|
mindsdb/integrations/handlers/salesforce_handler/__init__.py,sha256=nH_HnnS5cnDadXEy6ZiGuUPByT_JGu2Nrgx3Nzw0JCg,650
|
|
1325
|
-
mindsdb/integrations/handlers/salesforce_handler/connection_args.py,sha256=
|
|
1325
|
+
mindsdb/integrations/handlers/salesforce_handler/connection_args.py,sha256=XF20-m222AxVvK751lWKV2tb3I1WkRrmR5AJ7qV9PtI,1498
|
|
1326
1326
|
mindsdb/integrations/handlers/salesforce_handler/icon.svg,sha256=sL7XX_vF5Y7gLLklV1h17MXILGYz0f79VH915DQXyV0,8594
|
|
1327
1327
|
mindsdb/integrations/handlers/salesforce_handler/requirements.txt,sha256=jPMerwJUBa5emh7WoOAwQkDxW88lk6wdLiDCCxIIbjk,14
|
|
1328
|
-
mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py,sha256=
|
|
1328
|
+
mindsdb/integrations/handlers/salesforce_handler/salesforce_handler.py,sha256=uGPLIAbyAnB5cdei58zFniMQiGKAW6ZfIFmcWkWyeJI,6458
|
|
1329
1329
|
mindsdb/integrations/handlers/salesforce_handler/salesforce_tables.py,sha256=VV80EeBk9AboUUAJYYtuYOByglUPbsocNdKYoFV4NJ8,5080
|
|
1330
1330
|
mindsdb/integrations/handlers/sap_erp_handler/__about__.py,sha256=yXC_YavBeY0vTZvwkU4EN7DUijGMZ8m3jtQsftKwlhs,340
|
|
1331
1331
|
mindsdb/integrations/handlers/sap_erp_handler/__init__.py,sha256=2rnUX-yeCkCgh4viBttHdG4o4HKJrVI3m82S8GJFCBU,531
|
|
@@ -1704,7 +1704,7 @@ mindsdb/integrations/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
|
1704
1704
|
mindsdb/integrations/utilities/date_utils.py,sha256=TqCyde_jbknQnrJqYIkNwEHUg-dsjRElJZHX_UicYQk,2769
|
|
1705
1705
|
mindsdb/integrations/utilities/handler_utils.py,sha256=UEgEckWFDZXLcu5AbBFrqPJuFFXgejDmDRkr6622CPc,2272
|
|
1706
1706
|
mindsdb/integrations/utilities/install.py,sha256=wbg0pcIn8C8PEfjA45DmwueEZ5nX27t2YsLe1xXhC7s,5018
|
|
1707
|
-
mindsdb/integrations/utilities/query_traversal.py,sha256=
|
|
1707
|
+
mindsdb/integrations/utilities/query_traversal.py,sha256=XtAuZU58un1s40JMoxMZX0JzhBEqgsW95Ux1UqHGLgY,9882
|
|
1708
1708
|
mindsdb/integrations/utilities/sql_utils.py,sha256=WHlXN3Zjn8kS-sh_jqv1Q6abM-8YocS4WCWzpcIqlhY,6713
|
|
1709
1709
|
mindsdb/integrations/utilities/test_utils.py,sha256=eplCMcVjOsrXRhIhAUhgOPIt2zNiyUV67BYnJ2lvPiE,691
|
|
1710
1710
|
mindsdb/integrations/utilities/time_series_utils.py,sha256=qWVqZaXW7gdVM3jJ6WWYt1VP4WoFmaKt7jhNU6OpMvE,8312
|
|
@@ -1714,11 +1714,11 @@ mindsdb/integrations/utilities/datasets/dataset.py,sha256=HjxaMAPuos3HaMsVsAm3q-
|
|
|
1714
1714
|
mindsdb/integrations/utilities/datasets/question_answering/fda_style_qa.csv,sha256=uEOevZwKVjtPScjDVvWfTl4VLvDrhL7D9_9DoRJu7ic,6906
|
|
1715
1715
|
mindsdb/integrations/utilities/datasets/question_answering/squad_v2_val_100_sample.csv,sha256=erj_BGVabfxDFi9TbTXSJ-OiixHRYnDzoJUJcWWeeQY,104035
|
|
1716
1716
|
mindsdb/integrations/utilities/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1717
|
-
mindsdb/integrations/utilities/files/file_reader.py,sha256=
|
|
1717
|
+
mindsdb/integrations/utilities/files/file_reader.py,sha256=Qb43LJY-Kbe6kyL63OFQcpvCmzBPiwtXOcKxUarUJe0,9794
|
|
1718
1718
|
mindsdb/integrations/utilities/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1719
1719
|
mindsdb/integrations/utilities/handlers/api_utilities/__init__.py,sha256=zkvVb54zxtn4_NSwqCD-SVQG_5JI9EYRygb6EABQu7g,43
|
|
1720
1720
|
mindsdb/integrations/utilities/handlers/api_utilities/microsoft/__init__.py,sha256=xmcg0gXVY4WUIazM-aCjXXFikFonS6hI05GbdEs5_I8,56
|
|
1721
|
-
mindsdb/integrations/utilities/handlers/api_utilities/microsoft/ms_graph_api_utilities.py,sha256=
|
|
1721
|
+
mindsdb/integrations/utilities/handlers/api_utilities/microsoft/ms_graph_api_utilities.py,sha256=cNv-zkdParB87dKMd-jqf9p8YFyELtac4O19gX-yGMM,4959
|
|
1722
1722
|
mindsdb/integrations/utilities/handlers/auth_utilities/__init__.py,sha256=lyJdlw4_MFt3w3Iue7npRGwjNPIHzZZGox4dNEXvVaE,139
|
|
1723
1723
|
mindsdb/integrations/utilities/handlers/auth_utilities/exceptions.py,sha256=ZgrImndHmaGkTCcx2W-1SlQTWzv0IKCvQKvCLH5jE4g,259
|
|
1724
1724
|
mindsdb/integrations/utilities/handlers/auth_utilities/google/__init__.py,sha256=badbjE9cfUwgdUzboBXksz8mLHi8pHW5eVr4xdhJYUo,150
|
|
@@ -1769,7 +1769,7 @@ mindsdb/interfaces/agents/callback_handlers.py,sha256=90mGvx6ZIXRA_PAoV6vf8OHjJN
|
|
|
1769
1769
|
mindsdb/interfaces/agents/constants.py,sha256=JUXpSW5PZxDZ84BD9zqZpU8u2tI2kUjHLZ1kVcDM7tY,4556
|
|
1770
1770
|
mindsdb/interfaces/agents/event_dispatch_callback_handler.py,sha256=-76yTtxTHO5AkFTtr_RvYfkdUROJHcKZx6KJDZvj_-M,1331
|
|
1771
1771
|
mindsdb/interfaces/agents/langchain_agent.py,sha256=M4NsaCeUvu9grnAamMI1BqxvV3Cb7CsWYlsuymKQel8,27389
|
|
1772
|
-
mindsdb/interfaces/agents/langfuse_callback_handler.py,sha256
|
|
1772
|
+
mindsdb/interfaces/agents/langfuse_callback_handler.py,sha256=-51IWB5U2_m71xx00IwSOAK6gJ2n-HD_CzbtbmEfbBQ,11598
|
|
1773
1773
|
mindsdb/interfaces/agents/mindsdb_chat_model.py,sha256=9e_LxCKrCSOZWqURHWavw-FQUK9PLJ5O18IGYSHD9us,6051
|
|
1774
1774
|
mindsdb/interfaces/agents/mindsdb_database_agent.py,sha256=lk7UyE7tK807GXLBDr4-b2VVFUUzDtpMx2GjVtywv3o,2459
|
|
1775
1775
|
mindsdb/interfaces/agents/safe_output_parser.py,sha256=x2G27UPT42iVjjj44vGUVNPEUDSHH3nlKJwe3GZDh9A,1605
|
|
@@ -1788,7 +1788,7 @@ mindsdb/interfaces/database/log.py,sha256=tewoKWc-xvfbFC9RVaUUAjQGuRY__Lex8fbR_p
|
|
|
1788
1788
|
mindsdb/interfaces/database/projects.py,sha256=0ZjcqpDf437FmRhUk4z8YJR3MaoxtwJH60uPusLbfPU,15077
|
|
1789
1789
|
mindsdb/interfaces/database/views.py,sha256=CthbUly3OgOyFV8a-VRQwhjLh6I1LXbBUzMAcfu8USI,4404
|
|
1790
1790
|
mindsdb/interfaces/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1791
|
-
mindsdb/interfaces/file/file_controller.py,sha256
|
|
1791
|
+
mindsdb/interfaces/file/file_controller.py,sha256=9WgvdmPIHG-obJmYO9xVLKbW6tRZm_WkewSNdDR0yoU,4601
|
|
1792
1792
|
mindsdb/interfaces/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1793
1793
|
mindsdb/interfaces/functions/controller.py,sha256=8kyWA8TnMsRDyIl2s3JcvdGYeww4_Qmf-jYq_wwOYH4,6057
|
|
1794
1794
|
mindsdb/interfaces/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1814,7 +1814,7 @@ mindsdb/interfaces/skills/skills_controller.py,sha256=CUY0B_9DBCUX7LzeODrdBs4WDN
|
|
|
1814
1814
|
mindsdb/interfaces/skills/sql_agent.py,sha256=QlhGaAPVrlFJYQB0x9jQMT4bqbs1QSBaVeaPRQpxwK0,14283
|
|
1815
1815
|
mindsdb/interfaces/skills/custom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1816
1816
|
mindsdb/interfaces/skills/custom/text2sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1817
|
-
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py,sha256=
|
|
1817
|
+
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py,sha256=n7r08idG9Qaa0C41HokUf-w72yyACoINOFKGgtNVHLA,1375
|
|
1818
1818
|
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py,sha256=xDMSe00nxdYe0m-rQM-awJnb6j5A2uR9Ve_Zx0HPMcc,7002
|
|
1819
1819
|
mindsdb/interfaces/storage/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
1820
1820
|
mindsdb/interfaces/storage/db.py,sha256=L-nXGVVkt4izM2VgORfCitLUg3xVup8nwLi7B9PyKCg,19351
|
|
@@ -1894,7 +1894,7 @@ mindsdb/migrations/versions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
1894
1894
|
mindsdb/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1895
1895
|
mindsdb/utilities/auth.py,sha256=6ycLJgXySghgFdzK6emxdStElzt5aOPafjDCRR_g_q0,2336
|
|
1896
1896
|
mindsdb/utilities/cache.py,sha256=6VV5BJ0EWPYK2h80KEM1ETMhw_OCgDKyU6Pejvj1s3E,7431
|
|
1897
|
-
mindsdb/utilities/config.py,sha256=
|
|
1897
|
+
mindsdb/utilities/config.py,sha256=kYzpQkbvGVtTJCHUUEEFzOWBplQ0gShK5B7lW1KA3M0,20691
|
|
1898
1898
|
mindsdb/utilities/context.py,sha256=LyKNgtavQnAfZpaPHINhrA_9L_SjfURUBD9fZNtuQMQ,1813
|
|
1899
1899
|
mindsdb/utilities/context_executor.py,sha256=6ByyeulMePEfRrGxR9vlKYF87R8z1wHFwc1GdfhlGCk,1946
|
|
1900
1900
|
mindsdb/utilities/exception.py,sha256=q-9cwMLmQvuPpwdjRG0xNZ23z9cxHSfyT2295Rk6waA,1034
|
|
@@ -1929,9 +1929,9 @@ mindsdb/utilities/otel/metric_handlers/__init__.py,sha256=3jGsLt5KkdhqaAUUw8ALxE
|
|
|
1929
1929
|
mindsdb/utilities/profiler/__init__.py,sha256=d4VXl80uSm1IotR-WwbBInPmLmACiK0AzxXGBA40I-0,251
|
|
1930
1930
|
mindsdb/utilities/profiler/profiler.py,sha256=KCUtOupkbM_nCoof9MtiuhUzDGezx4a4NsBX6vGWbPA,3936
|
|
1931
1931
|
mindsdb/utilities/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1932
|
-
mindsdb/utilities/render/sqlalchemy_render.py,sha256
|
|
1933
|
-
MindsDB-25.2.
|
|
1934
|
-
MindsDB-25.2.
|
|
1935
|
-
MindsDB-25.2.
|
|
1936
|
-
MindsDB-25.2.
|
|
1937
|
-
MindsDB-25.2.
|
|
1932
|
+
mindsdb/utilities/render/sqlalchemy_render.py,sha256=-7iLVSXYcgta3p4Ihf2Si-D4aY2qFaD0b0Ea2wuqAHE,29816
|
|
1933
|
+
MindsDB-25.2.2.0.dist-info/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
|
|
1934
|
+
MindsDB-25.2.2.0.dist-info/METADATA,sha256=TyPbUu3lzGhje1vi-S4hEJ-HYE0GqiYKeHI7KoTDaU0,42706
|
|
1935
|
+
MindsDB-25.2.2.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
1936
|
+
MindsDB-25.2.2.0.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
|
|
1937
|
+
MindsDB-25.2.2.0.dist-info/RECORD,,
|
mindsdb/__about__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
__title__ = 'MindsDB'
|
|
2
2
|
__package_name__ = 'mindsdb'
|
|
3
|
-
__version__ = '25.2.
|
|
3
|
+
__version__ = '25.2.2.0'
|
|
4
4
|
__description__ = "MindsDB's AI SQL Server enables developers to build AI tools that need access to real-time data to perform their tasks"
|
|
5
5
|
__email__ = "jorge@mindsdb.com"
|
|
6
6
|
__author__ = 'MindsDB Inc'
|
|
@@ -20,7 +20,6 @@ from mindsdb_sql_parser.ast import (
|
|
|
20
20
|
DropTables,
|
|
21
21
|
DropView,
|
|
22
22
|
Explain,
|
|
23
|
-
Function,
|
|
24
23
|
Identifier,
|
|
25
24
|
Insert,
|
|
26
25
|
NativeQuery,
|
|
@@ -34,7 +33,6 @@ from mindsdb_sql_parser.ast import (
|
|
|
34
33
|
Union,
|
|
35
34
|
Update,
|
|
36
35
|
Use,
|
|
37
|
-
Variable,
|
|
38
36
|
Tuple,
|
|
39
37
|
)
|
|
40
38
|
|
|
@@ -70,7 +68,6 @@ from mindsdb_sql_parser.ast.mindsdb import (
|
|
|
70
68
|
|
|
71
69
|
import mindsdb.utilities.profiler as profiler
|
|
72
70
|
|
|
73
|
-
from mindsdb.integrations.utilities.query_traversal import query_traversal
|
|
74
71
|
from mindsdb.api.executor.sql_query.result_set import Column, ResultSet
|
|
75
72
|
from mindsdb.api.executor.sql_query import SQLQuery
|
|
76
73
|
from mindsdb.api.executor.data_types.answer import ExecuteAnswer
|
|
@@ -108,7 +105,6 @@ from mindsdb.utilities.context import context as ctx
|
|
|
108
105
|
from mindsdb.utilities.functions import mark_process, resolve_model_identifier, get_handler_install_message
|
|
109
106
|
from mindsdb.utilities.exception import EntityExistsError, EntityNotExistsError
|
|
110
107
|
from mindsdb.utilities import log
|
|
111
|
-
from mindsdb.api.mysql.mysql_proxy.utilities import ErParseError
|
|
112
108
|
|
|
113
109
|
logger = log.getLogger(__name__)
|
|
114
110
|
|
|
@@ -599,8 +595,6 @@ class ExecuteCommands:
|
|
|
599
595
|
):
|
|
600
596
|
return ExecuteAnswer()
|
|
601
597
|
elif type(statement) is Select:
|
|
602
|
-
if statement.from_table is None:
|
|
603
|
-
return self.answer_single_row_select(statement, database_name)
|
|
604
598
|
query = SQLQuery(statement, session=self.session, database=database_name)
|
|
605
599
|
return self.answer_select(query)
|
|
606
600
|
elif type(statement) is Union:
|
|
@@ -1598,56 +1592,6 @@ class ExecuteCommands:
|
|
|
1598
1592
|
query = SQLQuery(new_statement, session=self.session, database=database_name)
|
|
1599
1593
|
return self.answer_select(query)
|
|
1600
1594
|
|
|
1601
|
-
def answer_single_row_select(self, statement, database_name):
|
|
1602
|
-
|
|
1603
|
-
def adapt_query(node, is_table, **kwargs):
|
|
1604
|
-
if is_table:
|
|
1605
|
-
return
|
|
1606
|
-
|
|
1607
|
-
if isinstance(node, Identifier):
|
|
1608
|
-
if node.parts[-1].lower() == "session_user":
|
|
1609
|
-
return Constant(self.session.username, alias=node)
|
|
1610
|
-
if node.parts[-1].lower() == '$$':
|
|
1611
|
-
# NOTE: sinve version 9.0 mysql client sends query 'select $$'.
|
|
1612
|
-
# Connection can be continued only if answer is parse error.
|
|
1613
|
-
raise ErParseError(
|
|
1614
|
-
"You have an error in your SQL syntax; check the manual that corresponds to your server "
|
|
1615
|
-
"version for the right syntax to use near '$$' at line 1"
|
|
1616
|
-
)
|
|
1617
|
-
|
|
1618
|
-
if isinstance(node, Function):
|
|
1619
|
-
function_name = node.op.lower()
|
|
1620
|
-
|
|
1621
|
-
functions_results = {
|
|
1622
|
-
"database": database_name,
|
|
1623
|
-
"current_user": self.session.username,
|
|
1624
|
-
"user": self.session.username,
|
|
1625
|
-
"version": "8.0.17",
|
|
1626
|
-
"current_schema": "public",
|
|
1627
|
-
"connection_id": self.context.get('connection_id')
|
|
1628
|
-
}
|
|
1629
|
-
if function_name in functions_results:
|
|
1630
|
-
return Constant(functions_results[function_name], alias=Identifier(parts=[function_name]))
|
|
1631
|
-
|
|
1632
|
-
if isinstance(node, Variable):
|
|
1633
|
-
var_name = node.value
|
|
1634
|
-
column_name = f"@@{var_name}"
|
|
1635
|
-
result = SERVER_VARIABLES.get(column_name)
|
|
1636
|
-
if result is None:
|
|
1637
|
-
logger.error(f"Unknown variable: {column_name}")
|
|
1638
|
-
raise Exception(f"Unknown variable '{var_name}'")
|
|
1639
|
-
else:
|
|
1640
|
-
return Constant(result[0], alias=Identifier(parts=[column_name]))
|
|
1641
|
-
|
|
1642
|
-
query_traversal(statement, adapt_query)
|
|
1643
|
-
|
|
1644
|
-
statement.from_table = Identifier('t')
|
|
1645
|
-
df = query_df(pd.DataFrame([[0]]), statement, session=self.session)
|
|
1646
|
-
|
|
1647
|
-
return ExecuteAnswer(
|
|
1648
|
-
data=ResultSet().from_df(df, table_name="")
|
|
1649
|
-
)
|
|
1650
|
-
|
|
1651
1595
|
def answer_show_create_table(self, table):
|
|
1652
1596
|
columns = [
|
|
1653
1597
|
Column(table_name="", name="Table", type=TYPES.MYSQL_TYPE_VAR_STRING),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
3
5
|
from mindsdb_sql_parser import ast
|
|
4
6
|
from mindsdb_sql_parser.ast import (
|
|
5
7
|
Select, Identifier, Join, Star, BinaryOperation, Constant, Union, CreateTable,
|
|
@@ -12,7 +14,7 @@ from mindsdb.api.executor.planner.query_plan import QueryPlan
|
|
|
12
14
|
from mindsdb.api.executor.planner.steps import (
|
|
13
15
|
FetchDataframeStep, ProjectStep, ApplyPredictorStep,
|
|
14
16
|
ApplyPredictorRowStep, UnionStep, GetPredictorColumns, SaveToTable,
|
|
15
|
-
InsertToTable, UpdateToTable, SubSelectStep,
|
|
17
|
+
InsertToTable, UpdateToTable, SubSelectStep, QueryStep,
|
|
16
18
|
DeleteStep, DataStep, CreateTableStep
|
|
17
19
|
)
|
|
18
20
|
from mindsdb.api.executor.planner.utils import (
|
|
@@ -746,7 +748,10 @@ class QueryPlanner:
|
|
|
746
748
|
step = DataStep(from_table.data)
|
|
747
749
|
last_step = self.plan.add_step(step)
|
|
748
750
|
return self.plan_sub_select(query, last_step, add_absent_cols=True)
|
|
749
|
-
|
|
751
|
+
elif from_table is None:
|
|
752
|
+
# one line select
|
|
753
|
+
step = QueryStep(query, from_table=pd.DataFrame([None]))
|
|
754
|
+
self.plan.add_step(step)
|
|
750
755
|
else:
|
|
751
756
|
raise PlanningException(f'Unsupported from_table {type(from_table)}')
|
|
752
757
|
|
|
@@ -46,17 +46,25 @@ def get_table_alias(table_obj, default_db_name):
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
def get_fill_param_fnc(steps_data):
|
|
49
|
-
def fill_params(node,
|
|
50
|
-
if isinstance(node,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
def fill_params(node, callstack=None, **kwargs):
|
|
50
|
+
if isinstance(node, Parameter):
|
|
51
|
+
rs = steps_data[node.value.step_num]
|
|
52
|
+
items = [Constant(i) for i in rs.get_column_values(col_idx=0)]
|
|
53
|
+
|
|
54
|
+
is_single_item = True
|
|
55
|
+
if callstack:
|
|
56
|
+
node_prev = callstack[0]
|
|
57
|
+
if isinstance(node_prev, BinaryOperation):
|
|
58
|
+
# Check case: 'something IN Parameter()'
|
|
59
|
+
if node_prev.op.lower() == 'in' and node_prev.args[1] is node:
|
|
60
|
+
is_single_item = False
|
|
61
|
+
|
|
62
|
+
if is_single_item and len(items) == 1:
|
|
63
|
+
# extract one value for option 'col=(subselect)'
|
|
64
|
+
node = items[0]
|
|
65
|
+
else:
|
|
66
|
+
node = Tuple(items)
|
|
67
|
+
return node
|
|
60
68
|
|
|
61
69
|
if isinstance(node, Parameter):
|
|
62
70
|
rs = steps_data[node.value.step_num]
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
3
5
|
from mindsdb_sql_parser.ast import (
|
|
4
6
|
Identifier,
|
|
5
7
|
Select,
|
|
6
8
|
Star,
|
|
7
9
|
Constant,
|
|
8
|
-
Parameter
|
|
10
|
+
Parameter,
|
|
11
|
+
Function,
|
|
12
|
+
Variable
|
|
9
13
|
)
|
|
14
|
+
|
|
15
|
+
from mindsdb.api.mysql.mysql_proxy.libs.constants.mysql import SERVER_VARIABLES
|
|
16
|
+
|
|
10
17
|
from mindsdb.api.executor.planner.step_result import Result
|
|
11
18
|
from mindsdb.api.executor.planner.steps import SubSelectStep, QueryStep
|
|
12
19
|
from mindsdb.integrations.utilities.query_traversal import query_traversal
|
|
@@ -84,7 +91,10 @@ class QueryStepCall(BaseStepCall):
|
|
|
84
91
|
query = step.query
|
|
85
92
|
|
|
86
93
|
if step.from_table is not None:
|
|
87
|
-
|
|
94
|
+
if isinstance(step.from_table, pd.DataFrame):
|
|
95
|
+
result_set = ResultSet().from_df(step.from_table)
|
|
96
|
+
else:
|
|
97
|
+
result_set = self.steps_data[step.from_table.step_num]
|
|
88
98
|
else:
|
|
89
99
|
# only from_table can content result
|
|
90
100
|
prev_step_num = query.from_table.value.step_num
|
|
@@ -109,6 +119,28 @@ class QueryStepCall(BaseStepCall):
|
|
|
109
119
|
|
|
110
120
|
# analyze condition and change name of columns
|
|
111
121
|
def check_fields(node, is_target=None, **kwargs):
|
|
122
|
+
if isinstance(node, Function):
|
|
123
|
+
function_name = node.op.lower()
|
|
124
|
+
|
|
125
|
+
functions_results = {
|
|
126
|
+
"database": self.session.database,
|
|
127
|
+
"current_user": self.session.username,
|
|
128
|
+
"user": self.session.username,
|
|
129
|
+
"version": "8.0.17",
|
|
130
|
+
"current_schema": "public",
|
|
131
|
+
"connection_id": self.context.get('connection_id')
|
|
132
|
+
}
|
|
133
|
+
if function_name in functions_results:
|
|
134
|
+
return Constant(functions_results[function_name], alias=Identifier(parts=[function_name]))
|
|
135
|
+
|
|
136
|
+
if isinstance(node, Variable):
|
|
137
|
+
var_name = node.value
|
|
138
|
+
column_name = f"@@{var_name}"
|
|
139
|
+
result = SERVER_VARIABLES.get(column_name)
|
|
140
|
+
if result is None:
|
|
141
|
+
raise ValueError(f"Unknown variable '{var_name}'")
|
|
142
|
+
else:
|
|
143
|
+
return Constant(result[0], alias=Identifier(parts=[column_name]))
|
|
112
144
|
|
|
113
145
|
if isinstance(node, Identifier):
|
|
114
146
|
# only column name
|
|
@@ -125,6 +157,16 @@ class QueryStepCall(BaseStepCall):
|
|
|
125
157
|
for col in tbl_idx.get(table_name, [])
|
|
126
158
|
]
|
|
127
159
|
|
|
160
|
+
if node.parts[-1].lower() == "session_user":
|
|
161
|
+
return Constant(self.session.username, alias=node)
|
|
162
|
+
if node.parts[-1].lower() == '$$':
|
|
163
|
+
# NOTE: sinve version 9.0 mysql client sends query 'select $$'.
|
|
164
|
+
# Connection can be continued only if answer is parse error.
|
|
165
|
+
raise ValueError(
|
|
166
|
+
"You have an error in your SQL syntax; check the manual that corresponds to your server "
|
|
167
|
+
"version for the right syntax to use near '$$' at line 1"
|
|
168
|
+
)
|
|
169
|
+
|
|
128
170
|
if len(node.parts) == 1:
|
|
129
171
|
key = col_name
|
|
130
172
|
if key in aliases:
|