@@ -4,24 +4,25 @@ import dev.mongocamp.driver.mongodb._
44import dev .mongocamp .driver .mongodb .database .DatabaseProvider
55import SQLCommandType .SQLCommandType
66import com .mongodb .client .model .DropIndexOptions
7- import net .sf .jsqlparser .statement .{ShowStatement , Statement , UnsupportedStatement }
8- import net .sf .jsqlparser .expression .operators .conditional .{AndExpression , OrExpression }
7+ import dev .mongocamp .driver .mongodb .database .DatabaseProvider .CollectionSeparator
8+ import net .sf .jsqlparser .statement .{ ShowStatement , Statement , UnsupportedStatement }
9+ import net .sf .jsqlparser .expression .operators .conditional .{ AndExpression , OrExpression }
910import net .sf .jsqlparser .expression .operators .relational ._
10- import net .sf .jsqlparser .expression .{Expression , Parenthesis }
11- import net .sf .jsqlparser .parser .{CCJSqlParser , StreamProvider }
12- import net .sf .jsqlparser .schema .{Column , Table }
11+ import net .sf .jsqlparser .expression .{ Expression , Parenthesis }
12+ import net .sf .jsqlparser .parser .{ CCJSqlParser , StreamProvider }
13+ import net .sf .jsqlparser .schema .{ Column , Table }
1314import net .sf .jsqlparser .statement .create .index .CreateIndex
1415import net .sf .jsqlparser .statement .delete .Delete
1516import net .sf .jsqlparser .statement .drop .Drop
1617import net .sf .jsqlparser .statement .insert .Insert
17- import net .sf .jsqlparser .statement .select .{AllColumns , FromItem , PlainSelect , Select , SelectItem }
18+ import net .sf .jsqlparser .statement .select .{ AllColumns , FromItem , PlainSelect , Select , SelectItem }
1819import net .sf .jsqlparser .statement .show .ShowTablesStatement
1920import net .sf .jsqlparser .statement .truncate .Truncate
2021import net .sf .jsqlparser .statement .update .Update
2122import org .bson .conversions .Bson
2223import org .mongodb .scala .model .IndexOptions
2324import org .mongodb .scala .model .Sorts .ascending
24- import org .mongodb .scala .{Document , Observable }
25+ import org .mongodb .scala .{ Document , Observable }
2526
2627import java .util .concurrent .TimeUnit
2728import scala .collection .mutable
@@ -90,11 +91,12 @@ class MongoSqlQueryHolder {
9091 }
9192 else if (classOf [UnsupportedStatement ].isAssignableFrom(statement.getClass)) {
9293 val unsupportedStatement = statement.asInstanceOf [UnsupportedStatement ]
93- val isShowDatabases = unsupportedStatement.toString.toLowerCase.contains(" show databases" )
94- val isShowSchemas = unsupportedStatement.toString.toLowerCase.contains(" show schemas" )
94+ val isShowDatabases = unsupportedStatement.toString.toLowerCase.contains(" show databases" )
95+ val isShowSchemas = unsupportedStatement.toString.toLowerCase.contains(" show schemas" )
9596 if (isShowDatabases | isShowSchemas) {
9697 sqlCommandType = SQLCommandType .ShowDatabases
97- } else {
98+ }
99+ else {
98100 throw new IllegalArgumentException (" not supported sql command type" )
99101 }
100102 }
@@ -104,7 +106,9 @@ class MongoSqlQueryHolder {
104106 " "
105107 }
106108
107- def getCollection : String = sqlTable.getFullyQualifiedName
109+ def getCollection : String = {
110+ sqlTable.getFullyQualifiedName.replace(" ." , CollectionSeparator ).replace(" '" , " " ).replace(" `" , " " )
111+ }
108112
109113 def run (provider : DatabaseProvider , allowDiskUsage : Boolean = true ): Observable [Document ] = {
110114 sqlCommandType match {
0 commit comments