22from  typing  import  Sequence 
33
44import  clickhouse_connect 
5+ from  clickhouse_connect .driver .binding  import  quote_identifier , format_query_value 
56from  dotenv  import  load_dotenv 
67from  fastmcp  import  FastMCP 
78
@@ -39,18 +40,18 @@ def list_databases():
3940def  list_tables (database : str , like : str  =  None ):
4041    logger .info (f"Listing tables in database '{ database }  )
4142    client  =  create_clickhouse_client ()
42-     query  =  f"SHOW TABLES FROM { database }  
43+     query  =  f"SHOW TABLES FROM { quote_identifier ( database ) }  
4344    if  like :
44-         query  +=  f" LIKE ' { like } ' " 
45+         query  +=  f" LIKE { format_query_value ( like ) }  
4546    result  =  client .command (query )
4647
4748    # Get all table comments in one query 
48-     table_comments_query  =  f"SELECT name, comment FROM system.tables WHERE database = ' { database } ' " 
49+     table_comments_query  =  f"SELECT name, comment FROM system.tables WHERE database = { format_query_value ( database ) }  
4950    table_comments_result  =  client .query (table_comments_query )
5051    table_comments  =  {row [0 ]: row [1 ] for  row  in  table_comments_result .result_rows }
5152
5253    # Get all column comments in one query 
53-     column_comments_query  =  f"SELECT table, name, comment FROM system.columns WHERE database = ' { database } ' " 
54+     column_comments_query  =  f"SELECT table, name, comment FROM system.columns WHERE database = { format_query_value ( database ) }  
5455    column_comments_result  =  client .query (column_comments_query )
5556    column_comments  =  {}
5657    for  row  in  column_comments_result .result_rows :
@@ -61,7 +62,7 @@ def list_tables(database: str, like: str = None):
6162
6263    def  get_table_info (table ):
6364        logger .info (f"Getting schema info for table { database } { table }  )
64-         schema_query  =  f"DESCRIBE TABLE { database } .` { table } ` " 
65+         schema_query  =  f"DESCRIBE TABLE { quote_identifier ( database ) } . { quote_identifier ( table ) }  
6566        schema_result  =  client .query (schema_query )
6667
6768        columns  =  []
0 commit comments