MindsDB 25.2.1.2__py3-none-any.whl → 25.2.2.1__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.2.dist-info → MindsDB-25.2.2.1.dist-info}/METADATA +234 -230
- {MindsDB-25.2.1.2.dist-info → MindsDB-25.2.2.1.dist-info}/RECORD +33 -33
- mindsdb/__about__.py +1 -1
- mindsdb/api/executor/command_executor.py +1 -57
- mindsdb/api/executor/datahub/datanodes/system_tables.py +34 -33
- 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/byom_handler/byom_handler.py +1 -1
- mindsdb/integrations/handlers/byom_handler/requirements.txt +1 -1
- 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/huggingface_handler/requirements.txt +1 -1
- mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt +1 -1
- mindsdb/integrations/handlers/lancedb_handler/requirements.txt +1 -1
- mindsdb/integrations/handlers/lightwood_handler/requirements.txt +3 -3
- 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/handlers/snowflake_handler/snowflake_handler.py +1 -1
- mindsdb/integrations/handlers/writer_handler/requirements.txt +1 -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_toolkit.py +12 -2
- mindsdb/utilities/config.py +2 -2
- mindsdb/utilities/render/sqlalchemy_render.py +52 -19
- {MindsDB-25.2.1.2.dist-info → MindsDB-25.2.2.1.dist-info}/LICENSE +0 -0
- {MindsDB-25.2.1.2.dist-info → MindsDB-25.2.2.1.dist-info}/WHEEL +0 -0
- {MindsDB-25.2.1.2.dist-info → MindsDB-25.2.2.1.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
mindsdb/__about__.py,sha256=
|
|
1
|
+
mindsdb/__about__.py,sha256=cXoHk72JCuA2YGQFO8tg_9d1m4nY9k7CitOwdgLfyKY,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=_2Y-WgEDdfh-nZSEb93Qp8tFl0Y-CgRJB-kQcUfec5k,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
|
|
@@ -21,13 +21,13 @@ mindsdb/api/executor/datahub/datanodes/information_schema_datanode.py,sha256=9gs
|
|
|
21
21
|
mindsdb/api/executor/datahub/datanodes/integration_datanode.py,sha256=HowB1lnbs__qiVOE63uAuOqhDEj-2IcuiPh5bb3RgPg,9797
|
|
22
22
|
mindsdb/api/executor/datahub/datanodes/mindsdb_tables.py,sha256=OQJbmzGLYzbA0v-_rwmzB5gvwpJVO0c9h6oNjeGjGPU,12554
|
|
23
23
|
mindsdb/api/executor/datahub/datanodes/project_datanode.py,sha256=KAYGMEDY4hVf7hZtyB26ehEwu1SCooql3mtoaN0itHs,6336
|
|
24
|
-
mindsdb/api/executor/datahub/datanodes/system_tables.py,sha256=
|
|
24
|
+
mindsdb/api/executor/datahub/datanodes/system_tables.py,sha256=9WCgY8hodKrzwivRypN7Far5v8Z-A8-pVP_OAxC2jyc,14014
|
|
25
25
|
mindsdb/api/executor/planner/__init__.py,sha256=Ysh8feXwejpVhJ9yDbrE_lBA3EsGqyWnrbIPdmtE1Oc,143
|
|
26
26
|
mindsdb/api/executor/planner/exceptions.py,sha256=rvLQoFZgCpVsGWomSBdPeuOyr_6FM-QKmseVvUIw5E8,46
|
|
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
|
|
@@ -333,11 +333,11 @@ mindsdb/integrations/handlers/box_handler/icon.svg,sha256=LhDX_Yikte5esxe9qOtHNn
|
|
|
333
333
|
mindsdb/integrations/handlers/box_handler/requirements.txt,sha256=FQc6GqJL5eYYA9-oPcRQbmJR0HrSmnSz-5Q82yiR2sE,11
|
|
334
334
|
mindsdb/integrations/handlers/byom_handler/__about__.py,sha256=5MMwfPjVWxerbcXI564QKIUaYW43COokSWU8KBBlOEg,330
|
|
335
335
|
mindsdb/integrations/handlers/byom_handler/__init__.py,sha256=Z7tZblShNgUwwbfWQrhQGIGJOcAIaJKd5TaWmRTk64c,503
|
|
336
|
-
mindsdb/integrations/handlers/byom_handler/byom_handler.py,sha256=
|
|
336
|
+
mindsdb/integrations/handlers/byom_handler/byom_handler.py,sha256=uI-UN2XLx7jAx7PxqOO_vlWcluUpPJJ4GEYZ5jP9jno,24818
|
|
337
337
|
mindsdb/integrations/handlers/byom_handler/connection_args.py,sha256=chqPtpiEBtko8kxS15ImkZ6Q3kuhv7vwOzV3JeyU4cU,522
|
|
338
338
|
mindsdb/integrations/handlers/byom_handler/icon.svg,sha256=q8G2Qws-_E79MdxpSDHtNCqLwK0RWauNmRwGszIs_FE,2542
|
|
339
339
|
mindsdb/integrations/handlers/byom_handler/proc_wrapper.py,sha256=GqOB8Zw4-SYsn4lu3tkYORaNfgM4bm0HMDPyOJtErKk,5644
|
|
340
|
-
mindsdb/integrations/handlers/byom_handler/requirements.txt,sha256=
|
|
340
|
+
mindsdb/integrations/handlers/byom_handler/requirements.txt,sha256=WIPqhfnSGN4zXV7N9gor-Mjk5xsua3vH9ENBltRP9dY,27
|
|
341
341
|
mindsdb/integrations/handlers/cassandra_handler/__about__.py,sha256=rMC_DPK11JoHKA9UceTm_jkUOggj04XKkAUqw5P8wXg,347
|
|
342
342
|
mindsdb/integrations/handlers/cassandra_handler/__init__.py,sha256=US2TGuaKp48HJX_ayeNypltbagOASrnKSSUsCMNjsl4,564
|
|
343
343
|
mindsdb/integrations/handlers/cassandra_handler/cassandra_handler.py,sha256=HoQPp0Ox20BDCNB8rtrwAEoGLuh7gWDiP4YQC4_pQhU,787
|
|
@@ -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
|
|
@@ -776,8 +776,8 @@ mindsdb/integrations/handlers/huggingface_handler/__init__.py,sha256=f-LxhPOlZsX
|
|
|
776
776
|
mindsdb/integrations/handlers/huggingface_handler/finetune.py,sha256=gDf5yC-ot2IZdONMIcQ5bEvKMtk-nci5OcSYmvmEGQg,8085
|
|
777
777
|
mindsdb/integrations/handlers/huggingface_handler/huggingface_handler.py,sha256=2wSfHCnAFbiHco37Eq_1f71vwSfoZ_ntz9f-d7pmlvI,13620
|
|
778
778
|
mindsdb/integrations/handlers/huggingface_handler/icon.svg,sha256=yU820GpXed8h9CloppHH0D1-EJjrorSLlbjciV91b9k,9064
|
|
779
|
-
mindsdb/integrations/handlers/huggingface_handler/requirements.txt,sha256=
|
|
780
|
-
mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt,sha256=
|
|
779
|
+
mindsdb/integrations/handlers/huggingface_handler/requirements.txt,sha256=b06gV4B6G_4Jpu2_4wc2_TdvCOletzs0f3RAcNRB-Tk,58
|
|
780
|
+
mindsdb/integrations/handlers/huggingface_handler/requirements_cpu.txt,sha256=QpOXH_fRN7ZmQSRi_DOZaC3-ArP-PnCePEiEy1VTw1c,183
|
|
781
781
|
mindsdb/integrations/handlers/huggingface_handler/settings.py,sha256=1dAcKyjEcuK1LSktqK_5tPLJzQGCNTs0GR9CMe8qTvk,984
|
|
782
782
|
mindsdb/integrations/handlers/ibm_cos_handler/__about__.py,sha256=wGXqgk6YqX5TxD4ZGaZDRvMF5G-3NIhSD8O5DhPlnHo,374
|
|
783
783
|
mindsdb/integrations/handlers/ibm_cos_handler/__init__.py,sha256=e5IvCKw0wMTcbljak3k1JPFRFzpYIyEk5EBvxXB-apQ,666
|
|
@@ -850,7 +850,7 @@ mindsdb/integrations/handlers/lancedb_handler/__init__.py,sha256=nwShTdkEcKKhiDL
|
|
|
850
850
|
mindsdb/integrations/handlers/lancedb_handler/connection_args.py,sha256=KtHvSBLPS9P7LKlXULwRlUTUCvpG69bES2DUL-e2xME,956
|
|
851
851
|
mindsdb/integrations/handlers/lancedb_handler/icon.svg,sha256=UHDcgJDgSbA74qyN6dLXKquPHXjYHd93g-TyQlIR84s,3475
|
|
852
852
|
mindsdb/integrations/handlers/lancedb_handler/lancedb_handler.py,sha256=zQik_f_QjArzSrla_uxwYPQIdiKIwnYZIIABQmI__Zc,12399
|
|
853
|
-
mindsdb/integrations/handlers/lancedb_handler/requirements.txt,sha256=
|
|
853
|
+
mindsdb/integrations/handlers/lancedb_handler/requirements.txt,sha256=yBw6h3zm01B_3qmewTg3ymJ1U_nRAenRda4t0i5wvTo,37
|
|
854
854
|
mindsdb/integrations/handlers/lancedb_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
855
855
|
mindsdb/integrations/handlers/lancedb_handler/tests/test_lancedb_handler.py,sha256=dHFnAMplZCfXk0DwpDM1gKIsG42vEypx9-51nRoCQZc,3351
|
|
856
856
|
mindsdb/integrations/handlers/langchain_embedding_handler/__about__.py,sha256=CqrMPm5gho1vYeXuFNSisjwl32JpHR3IoKv3xw_7fx8,388
|
|
@@ -898,7 +898,7 @@ mindsdb/integrations/handlers/lightwood_handler/__init__.py,sha256=iW8kT1kCcBjfe
|
|
|
898
898
|
mindsdb/integrations/handlers/lightwood_handler/functions.py,sha256=WkeI0J19WPh_36wZvezpnV2SW6wc9tEkumKil3qTB-4,9139
|
|
899
899
|
mindsdb/integrations/handlers/lightwood_handler/icon.svg,sha256=q8G2Qws-_E79MdxpSDHtNCqLwK0RWauNmRwGszIs_FE,2542
|
|
900
900
|
mindsdb/integrations/handlers/lightwood_handler/lightwood_handler.py,sha256=H-Xq0Zxc3hfGHGmmWSXkAmT79V_8R6DQ00nnPRUl-3M,23643
|
|
901
|
-
mindsdb/integrations/handlers/lightwood_handler/requirements.txt,sha256=
|
|
901
|
+
mindsdb/integrations/handlers/lightwood_handler/requirements.txt,sha256=lDcJLjnHmKIaJhJnzlHLn5miNYJo3lJ8PCu_fmf5_AA,91
|
|
902
902
|
mindsdb/integrations/handlers/lightwood_handler/utils.py,sha256=3dEI41hsgCzt_GeyXQ5k4U-w_NEZ_sLpbChS0wywANw,2242
|
|
903
903
|
mindsdb/integrations/handlers/lightwood_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
904
904
|
mindsdb/integrations/handlers/lightwood_handler/tests/test_lightwood_handler.py,sha256=kQlcLZqpZEgn03-SMGOxHS5Z-2ayOO-wyaU_r4d-754,10985
|
|
@@ -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
|
|
@@ -1402,7 +1402,7 @@ mindsdb/integrations/handlers/snowflake_handler/__init__.py,sha256=tPpKf8KwyX2DI
|
|
|
1402
1402
|
mindsdb/integrations/handlers/snowflake_handler/connection_args.py,sha256=7pnJbHpbXMZwQbAS4U7LJUk8OWLLpPN2_q9IPr7wpec,1778
|
|
1403
1403
|
mindsdb/integrations/handlers/snowflake_handler/icon.svg,sha256=Syi1A_eltgZH6HjPuKi8bi9Pzf8T879RfVAZnNzK0Qo,4088
|
|
1404
1404
|
mindsdb/integrations/handlers/snowflake_handler/requirements.txt,sha256=RC9MdPLYC6oRsCC2k5sLfgxDTEuEPvqe8OpyjMYEECs,63
|
|
1405
|
-
mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py,sha256=
|
|
1405
|
+
mindsdb/integrations/handlers/snowflake_handler/snowflake_handler.py,sha256=m6ShR8yZYn7hxDkNRbe-AJDuNF9OlrfhrxCRM3f6Qqg,11098
|
|
1406
1406
|
mindsdb/integrations/handlers/snowflake_handler/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1407
1407
|
mindsdb/integrations/handlers/snowflake_handler/tests/test_snowflake_handler.py,sha256=2_zTKNxqbvhzwVhU9JRmv5Chhh9rulGnMfj-GVIPA60,7369
|
|
1408
1408
|
mindsdb/integrations/handlers/solace_handler/__about__.py,sha256=C-y1qVOGsPDdMEjUocH_juhmrpRwN2-U61sJT_lwzE0,354
|
|
@@ -1633,7 +1633,7 @@ mindsdb/integrations/handlers/writer_handler/evaluate.py,sha256=NWXfHO6YutIJ4tuM
|
|
|
1633
1633
|
mindsdb/integrations/handlers/writer_handler/icon.svg,sha256=nx6KAU1Genn-XnAPvrucTZqU2MQC4WOBTaiImAP04Vg,1814
|
|
1634
1634
|
mindsdb/integrations/handlers/writer_handler/ingest.py,sha256=4N783Eg2nqKwmt0Hf7Mgp_ieycw9mYuwMN_V52gJC18,338
|
|
1635
1635
|
mindsdb/integrations/handlers/writer_handler/rag.py,sha256=KSkMYPZ9gRRGP4C47yhhRTsDJ7bqJ_FPUm9tI0-5WAY,415
|
|
1636
|
-
mindsdb/integrations/handlers/writer_handler/requirements.txt,sha256=
|
|
1636
|
+
mindsdb/integrations/handlers/writer_handler/requirements.txt,sha256=lNCsHd4W-UUS9lDEAcO9QkCK9CWYV3eGbCjnHTl5YHI,97
|
|
1637
1637
|
mindsdb/integrations/handlers/writer_handler/settings.py,sha256=dwihPL0hGY3AEcA_THVyG6mM3s99PYcID_JRV114iLU,2835
|
|
1638
1638
|
mindsdb/integrations/handlers/writer_handler/writer_handler.py,sha256=cnwoyq1XIcvIaX5Zgm1SrWFJCIz0h6qiw1HJzix0wbI,6885
|
|
1639
1639
|
mindsdb/integrations/handlers/xata_handler/__about__.py,sha256=g-EqC8OMmbjncIYQnLG-kaiLahhKCJZmBJCzLfUKLbY,331
|
|
@@ -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
|
|
@@ -1815,7 +1815,7 @@ mindsdb/interfaces/skills/sql_agent.py,sha256=QlhGaAPVrlFJYQB0x9jQMT4bqbs1QSBaVe
|
|
|
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
1817
|
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_tool.py,sha256=n7r08idG9Qaa0C41HokUf-w72yyACoINOFKGgtNVHLA,1375
|
|
1818
|
-
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py,sha256=
|
|
1818
|
+
mindsdb/interfaces/skills/custom/text2sql/mindsdb_sql_toolkit.py,sha256=08WyJXYJ_hP7JYLvwaSWuJN6Q1PLgIAvh7bcgsV-0XU,7962
|
|
1819
1819
|
mindsdb/interfaces/storage/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
1820
1820
|
mindsdb/interfaces/storage/db.py,sha256=L-nXGVVkt4izM2VgORfCitLUg3xVup8nwLi7B9PyKCg,19351
|
|
1821
1821
|
mindsdb/interfaces/storage/fs.py,sha256=4Nyo-h23UtZc2nz_LWyVzboC_e1jlU58aph1_en8MdE,21155
|
|
@@ -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.1.
|
|
1934
|
-
MindsDB-25.2.1.
|
|
1935
|
-
MindsDB-25.2.1.
|
|
1936
|
-
MindsDB-25.2.1.
|
|
1937
|
-
MindsDB-25.2.1.
|
|
1932
|
+
mindsdb/utilities/render/sqlalchemy_render.py,sha256=-7iLVSXYcgta3p4Ihf2Si-D4aY2qFaD0b0Ea2wuqAHE,29816
|
|
1933
|
+
MindsDB-25.2.2.1.dist-info/LICENSE,sha256=ziqdjujs6WDn-9g3t0SISjHCBc2pLRht3gnRbQoXmIs,5804
|
|
1934
|
+
MindsDB-25.2.2.1.dist-info/METADATA,sha256=S1Hbsjgvm1aWQcrmBqYcJnawQIxhg2FjZR3MXXoLI08,42853
|
|
1935
|
+
MindsDB-25.2.2.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
1936
|
+
MindsDB-25.2.2.1.dist-info/top_level.txt,sha256=10wPR96JDf3hM8aMP7Fz0lDlmClEP480zgXISJKr5jE,8
|
|
1937
|
+
MindsDB-25.2.2.1.dist-info/RECORD,,
|
mindsdb/__about__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
__title__ = 'MindsDB'
|
|
2
2
|
__package_name__ = 'mindsdb'
|
|
3
|
-
__version__ = '25.2.1
|
|
3
|
+
__version__ = '25.2.2.1'
|
|
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
|
|
|
@@ -460,7 +456,7 @@ class ExecuteCommands:
|
|
|
460
456
|
raise TableNotExistError(err_str)
|
|
461
457
|
return self.answer_show_table_status(table_name)
|
|
462
458
|
elif sql_category == "columns":
|
|
463
|
-
is_full = statement.modes is not None and "
|
|
459
|
+
is_full = statement.modes is not None and "FULL" in statement.modes
|
|
464
460
|
return self.answer_show_columns(
|
|
465
461
|
statement.from_table,
|
|
466
462
|
statement.where,
|
|
@@ -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,6 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
import pandas as pd
|
|
3
|
-
from mindsdb_sql_parser.ast import BinaryOperation, Constant, Identifier, Select
|
|
4
3
|
from mindsdb_sql_parser.ast.base import ASTNode
|
|
5
4
|
from mindsdb.integrations.utilities.sql_utils import extract_comparison_conditions
|
|
6
5
|
|
|
@@ -13,6 +12,26 @@ from mindsdb.utilities import log
|
|
|
13
12
|
logger = log.getLogger(__name__)
|
|
14
13
|
|
|
15
14
|
|
|
15
|
+
def _get_scope(query):
|
|
16
|
+
databases, tables = None, None
|
|
17
|
+
conditions = extract_comparison_conditions(query.where)
|
|
18
|
+
for op, arg1, arg2 in conditions:
|
|
19
|
+
if op == '=':
|
|
20
|
+
scope = [arg2]
|
|
21
|
+
elif op == 'in':
|
|
22
|
+
if not isinstance(arg2, list):
|
|
23
|
+
arg2 = [arg2]
|
|
24
|
+
scope = arg2
|
|
25
|
+
else:
|
|
26
|
+
continue
|
|
27
|
+
|
|
28
|
+
if arg1.lower() == 'table_schema':
|
|
29
|
+
databases = scope
|
|
30
|
+
elif arg1.lower() == 'table_name':
|
|
31
|
+
tables = scope
|
|
32
|
+
return databases, tables
|
|
33
|
+
|
|
34
|
+
|
|
16
35
|
class Table:
|
|
17
36
|
|
|
18
37
|
deletable: bool = False
|
|
@@ -73,33 +92,19 @@ class TablesTable(Table):
|
|
|
73
92
|
@classmethod
|
|
74
93
|
def get_data(cls, query: ASTNode = None, inf_schema=None, **kwargs):
|
|
75
94
|
|
|
76
|
-
|
|
77
|
-
if (
|
|
78
|
-
type(query) is Select
|
|
79
|
-
and type(query.where) is BinaryOperation
|
|
80
|
-
and query.where.op == "and"
|
|
81
|
-
):
|
|
82
|
-
for arg in query.where.args:
|
|
83
|
-
if (
|
|
84
|
-
type(arg) is BinaryOperation
|
|
85
|
-
and arg.op == "="
|
|
86
|
-
and type(arg.args[0]) is Identifier
|
|
87
|
-
and arg.args[0].parts[-1].upper() == "TABLE_SCHEMA"
|
|
88
|
-
and type(arg.args[1]) is Constant
|
|
89
|
-
):
|
|
90
|
-
target_table = arg.args[1].value
|
|
91
|
-
break
|
|
95
|
+
databases, _ = _get_scope(query)
|
|
92
96
|
|
|
93
97
|
data = []
|
|
94
98
|
for name in inf_schema.tables.keys():
|
|
95
|
-
if
|
|
99
|
+
if databases is not None and name not in databases:
|
|
96
100
|
continue
|
|
97
101
|
row = TablesRow(TABLE_TYPE=TABLES_ROW_TYPE.SYSTEM_VIEW, TABLE_NAME=name)
|
|
98
102
|
data.append(row.to_list())
|
|
99
103
|
|
|
100
104
|
for ds_name, ds in inf_schema.persis_datanodes.items():
|
|
101
|
-
if
|
|
105
|
+
if databases is not None and ds_name not in databases:
|
|
102
106
|
continue
|
|
107
|
+
|
|
103
108
|
if hasattr(ds, 'get_tables_rows'):
|
|
104
109
|
ds_tables = ds.get_tables_rows()
|
|
105
110
|
else:
|
|
@@ -127,8 +132,9 @@ class TablesTable(Table):
|
|
|
127
132
|
data.append(row.to_list())
|
|
128
133
|
|
|
129
134
|
for ds_name in inf_schema.get_integrations_names():
|
|
130
|
-
if
|
|
135
|
+
if databases is not None and ds_name not in databases:
|
|
131
136
|
continue
|
|
137
|
+
|
|
132
138
|
try:
|
|
133
139
|
ds = inf_schema.get(ds_name)
|
|
134
140
|
ds_tables = ds.get_tables()
|
|
@@ -139,8 +145,9 @@ class TablesTable(Table):
|
|
|
139
145
|
logger.error(f"Can't get tables from '{ds_name}'")
|
|
140
146
|
|
|
141
147
|
for project_name in inf_schema.get_projects_names():
|
|
142
|
-
if
|
|
148
|
+
if databases is not None and project_name not in databases:
|
|
143
149
|
continue
|
|
150
|
+
|
|
144
151
|
project_dn = inf_schema.get(project_name)
|
|
145
152
|
project_tables = project_dn.get_tables()
|
|
146
153
|
for row in project_tables:
|
|
@@ -279,16 +286,7 @@ class ColumnsTable(Table):
|
|
|
279
286
|
|
|
280
287
|
result = []
|
|
281
288
|
|
|
282
|
-
databases =
|
|
283
|
-
conditions = extract_comparison_conditions(query.where)
|
|
284
|
-
for op, arg1, arg2 in conditions:
|
|
285
|
-
if arg1.lower() == 'table_schema':
|
|
286
|
-
if op == '=':
|
|
287
|
-
databases = [arg2]
|
|
288
|
-
elif op == 'in':
|
|
289
|
-
if not isinstance(arg2, list):
|
|
290
|
-
arg2 = [arg2]
|
|
291
|
-
databases = arg2
|
|
289
|
+
databases, tables_names = _get_scope(query)
|
|
292
290
|
|
|
293
291
|
if databases is None:
|
|
294
292
|
databases = ['information_schema', 'mindsdb', 'files']
|
|
@@ -304,8 +302,11 @@ class ColumnsTable(Table):
|
|
|
304
302
|
dn = inf_schema.get(db_name)
|
|
305
303
|
if dn is None:
|
|
306
304
|
continue
|
|
307
|
-
|
|
308
|
-
|
|
305
|
+
|
|
306
|
+
if tables_names is None:
|
|
307
|
+
tables_names = [t.TABLE_NAME for t in dn.get_tables()]
|
|
308
|
+
for table_name in tables_names:
|
|
309
|
+
tables[table_name] = dn.get_table_columns(table_name)
|
|
309
310
|
|
|
310
311
|
for table_name, table_columns in tables.items():
|
|
311
312
|
for i, column in enumerate(table_columns):
|
|
@@ -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:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
virtualenv
|
|
2
|
-
pyarrow==
|
|
2
|
+
pyarrow==19.0.0
|