mindsdb / mindsdb

The platform for building AI from enterprise data
https://mindsdb.com
Other
26.2k stars 4.79k forks source link

[Bug]: while use mysql jdbc client connect to mindsdb 24.7.4.1(Docker), return "Alias can not contain multiple parts (dots)" #9554

Closed yunqiqiliang closed 1 week ago

yunqiqiliang commented 1 month ago

Short description of current behavior

while use mysql jdbc client connect to mindsdb 24.7.4.1(Docker), return "Alias can not contain multiple parts (dots)"

Video or screenshots

image ![Uploading image.png…]()

Expected behavior

mysql jdbc client connect to mindsdb 24.7.4.1 successfully.

How to reproduce the error

Case1[Error message, while connect via DBVisualizer, with MySQL JDBC driver 8]: In this case, DBVisualizer sent SELECT sql statement automatically after logined MindsDB successfully. JDBC driver version:8.0/8.2/8.4

2024-07-27 23:59:25,909 mysql INFO mindsdb.interfaces.database.integrations: IntegrationController.get_handler: create a client to db service of files type, args - {'name': 'files', 'integration_id': 2, 'connection_data': {}, 'file_storage': <mindsdb.interfaces.storage.fs.FileStorage object at 0x7f83128b0ac0>, 'handler_storage': <mindsdb.interfaces.storage.model_fs.HandlerStorage object at 0x7f83128b2f80>, 'file_controller': <mindsdb.interfaces.file.file_controller.FileController object at 0x7f83128b3640>} 2024-07-27 23:59:25,986 mysql INFO mindsdb.api.mysql.mysql_proxy.mysql_proxy: Check auth, user=mindsdb: Ok 2024-07-27 23:59:26,160 mysql INFO mindsdb.api.mysql.mysql_proxy.executor.mysql_executor: Executor.query_execute: sql - SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@performance_schema AS performance_schema, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout 2024-07-27 23:59:26,160 mysql INFO mindsdb.api.mysql.mysql_proxy.executor.mysql_executor: Executor.parse: sql - SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@performance_schema AS performance_schema, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout 2024-07-27 23:59:26,164 mysql INFO mindsdb.api.mysql.mysql_proxy.executor.mysql_executor: Executor.do_execute 2024-07-27 23:59:26,165 mysql ERROR mindsdb.api.mysql.mysql_proxy.mysql_proxy: ERROR while executing query Traceback (most recent call last): File "/mindsdb/./mindsdb/api/mysql/mysql_proxy/mysql_proxy.py", line 722, in handle response = self.process_query(sql) File "/mindsdb/./mindsdb/utilities/profiler/profiler.py", line 141, in wrapper result = function(*args, kwargs) File "/mindsdb/./mindsdb/api/mysql/mysql_proxy/mysql_proxy.py", line 527, in process_query executor.query_execute(sql) File "/mindsdb/./mindsdb/utilities/profiler/profiler.py", line 141, in wrapper result = function(*args, *kwargs) File "/mindsdb/./mindsdb/api/mysql/mysql_proxy/executor/mysql_executor.py", line 102, in query_execute self.do_execute() File "/mindsdb/./mindsdb/utilities/profiler/profiler.py", line 141, in wrapper result = function(args, kwargs) File "/mindsdb/./mindsdb/api/mysql/mysql_proxy/executor/mysql_executor.py", line 134, in do_execute ret = self.command_executor.execute_command(self.query) File "/mindsdb/./mindsdb/utilities/profiler/profiler.py", line 141, in wrapper result = function(*args, *kwargs) File "/mindsdb/./mindsdb/api/executor/command_executor.py", line 600, in execute_command return self.answer_single_row_select(statement, database_name) File "/mindsdb/./mindsdb/api/executor/command_executor.py", line 1635, in answer_single_row_select query_traversal(statement, adapt_query) File "/usr/local/lib/python3.10/site-packages/mindsdb_sql/planner/utils.py", line 110, in query_traversal node_out = query_traversal(node2, callback, parent_query=node, is_target=True) or node2 File "/usr/local/lib/python3.10/site-packages/mindsdb_sql/planner/utils.py", line 97, in query_traversal res = callback(node, is_table=is_table, is_target=is_target, parent_query=parent_query) File "/mindsdb/./mindsdb/api/executor/command_executor.py", line 1633, in adapt_query return Constant(result[0], alias=Identifier(column_name)) File "/usr/local/lib/python3.10/site-packages/mindsdb_sql/parser/ast/select/constant.py", line 8, in init super().init(args, **kwargs) File "/usr/local/lib/python3.10/site-packages/mindsdb_sql/parser/ast/base.py", line 13, in init raise ParsingException('Alias can not contain multiple parts (dots).') mindsdb_sql.exceptions.ParsingException: Alias can not contain multiple parts (dots).

Alias can not contain multiple parts (dots).

Case2[Error message, while connect via MySQL command line]:

In this case, sent SELECT sql statement manually after logined MindsDB successfully.

mysql -h **** -P 47335 -u mindsdb -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.7.1-MindsDB-1.0 (MindsDB)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@performance_schema AS performance_schema, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout; ERROR 1149 (HY000): Alias can not contain multiple parts (dots). mysql>

Anything else?

No response

yunqiqiliang commented 1 month ago

image

ZoranPandovski commented 3 weeks ago

@yunqiqiliang Thanks for reporting this. Just to confirm, the following query is executed by DBVisualizer right:

SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@performance_schema AS performance_schema, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout

It looks like, we don't support some of those system vars

yunqiqiliang commented 3 weeks ago

Yes, the following query is executed by DBVisualizer.

From: "Zoran @.> Date: Mon, Aug 12, 2024, 16:41 Subject: Re: [mindsdb/mindsdb] [Bug]: while use mysql jdbc client connect to mindsdb 24.7.4.1(Docker), return "Alias can not contain multiple parts (dots)" (Issue #9554) To: @.> Cc: @.>, @.> @yunqiqilianghttps://github.com/yunqiqiliang Thanks for reporting this. Just to confirm, the following query is executed by DBVisualizer right:SELECT @@session.auto_increment_increment AS auto_increment_increment, @@character_set_client AS character_set_client, @@character_set_connection AS character_set_connection, @@character_set_results AS character_set_results, @@character_set_server AS character_set_server, @@collation_server AS collation_server, @@collation_connection AS collation_connection, @@init_connect AS init_connect, @@interactive_timeout AS interactive_timeout, @@license AS license, @@lower_case_table_names AS lower_case_table_names, @@max_allowed_packet AS max_allowed_packet, @@net_write_timeout AS net_write_timeout, @@performance_schema AS performance_schema, @@query_cache_size AS query_cache_size, @@query_cache_type AS query_cache_type, @@sql_mode AS sql_mode, @@system_time_zone AS system_time_zone, @@time_zone AS time_zone, @@tx_isolation AS transaction_isolation, @@wait_timeout AS wait_timeout It looks like, we don't support some of those system vars — Reply to this email directly, view it on GitHubhttps://github.com/mindsdb/mindsdb/issues/9554#issuecomment-2283404319, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A7TLT47RTIZKCDLTJUNQASDZRBYK5AVCNFSM6AAAAABLSIYSAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBTGQYDIMZRHE. You are receiving this because you were mentioned.[image: https://github.com/notifications/beacon/A7TLT43H4GEDH7EYQ76IN7TZRBYK5A5CNFSM6AAAAABLSIYSAWWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUIDH6B6.gif]Message ID: @.***>

yunqiqiliang commented 3 weeks ago

But mindsdb/mindsdb:v24.4.2.1 is not met this issue, seems this issue is just on the version which is bigger than v24.4.2.1 .

ZoranPandovski commented 1 week ago

@yunqiqiliang, @ea-rus solved this in https://github.com/mindsdb/mindsdb/pull/9656#. This should be available in the release tomorrow