55import com .clickhouse .data .ClickHouseFormat ;
66import com .clickhouse .data .ClickHouseUtils ;
77
8-
98import java .util .List ;
109import java .util .Map ;
1110import java .util .Set ;
@@ -52,7 +51,7 @@ private void addMutationSetting(String sql, StringBuilder builder, Map<String, I
5251 private ClickHouseSqlStatement handleDelete (String sql , StatementType stmtType , String cluster , String database ,
5352 String table , String input , String compressAlgorithm , String compressLevel , String format , String file ,
5453 List <Integer > parameters , Map <String , Integer > positions , Map <String , String > settings ,
55- Set <String > tempTables ) {
54+ Set <String > tempTables , boolean funcUsed ) {
5655 StringBuilder builder = new StringBuilder ();
5756 int index = positions .get ("DELETE" );
5857 if (index > 0 ) {
@@ -71,13 +70,13 @@ private ClickHouseSqlStatement handleDelete(String sql, StatementType stmtType,
7170 builder .append ("TRUNCATE TABLE" ).append (sql .substring (index + 4 ));
7271 }
7372 return new ClickHouseSqlStatement (builder .toString (), stmtType , cluster , database , table , input ,
74- compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 );
73+ compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 , funcUsed );
7574 }
7675
7776 private ClickHouseSqlStatement handleUpdate (String sql , StatementType stmtType , String cluster , String database ,
7877 String table , String input , String compressAlgorithm , String compressLevel , String format , String file ,
7978 List <Integer > parameters , Map <String , Integer > positions , Map <String , String > settings ,
80- Set <String > tempTables ) {
79+ Set <String > tempTables , boolean funcUsed ) {
8180 StringBuilder builder = new StringBuilder ();
8281 int index = positions .get ("UPDATE" );
8382 if (index > 0 ) {
@@ -91,13 +90,13 @@ private ClickHouseSqlStatement handleUpdate(String sql, StatementType stmtType,
9190 builder .append ('`' ).append (table ).append ('`' ).append (" UPDATE" ); // .append(sql.substring(index + 3));
9291 addMutationSetting (sql , builder , positions , settings , index + 3 );
9392 return new ClickHouseSqlStatement (builder .toString (), stmtType , cluster , database , table , input ,
94- compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 );
93+ compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 , funcUsed );
9594 }
9695
9796 private ClickHouseSqlStatement handleInFileForInsertQuery (String sql , StatementType stmtType , String cluster ,
9897 String database , String table , String input , String compressAlgorithm , String compressLevel , String format ,
9998 String file , List <Integer > parameters , Map <String , Integer > positions , Map <String , String > settings ,
100- Set <String > tempTables , int valueGroups ) {
99+ Set <String > tempTables , int valueGroups , boolean funcUsed ) {
101100 StringBuilder builder = new StringBuilder (sql .length ());
102101 builder .append (sql .substring (0 , positions .get ("FROM" )));
103102 Integer index = positions .get ("SETTINGS" );
@@ -115,44 +114,44 @@ private ClickHouseSqlStatement handleInFileForInsertQuery(String sql, StatementT
115114 builder .append ("FORMAT " ).append (format );
116115 }
117116 return new ClickHouseSqlStatement (builder .toString (), stmtType , cluster , database , table , input ,
118- compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , valueGroups );
117+ compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , valueGroups , funcUsed );
119118 }
120119
121120 private ClickHouseSqlStatement handleOutFileForSelectQuery (String sql , StatementType stmtType , String cluster ,
122121 String database , String table , String input , String compressAlgorithm , String compressLevel , String format ,
123122 String file , List <Integer > parameters , Map <String , Integer > positions , Map <String , String > settings ,
124- Set <String > tempTables ) {
123+ Set <String > tempTables , boolean funcUsed ) {
125124 StringBuilder builder = new StringBuilder (sql .length ());
126125 builder .append (sql .substring (0 , positions .get ("INTO" )));
127126 Integer index = positions .get ("FORMAT" );
128127 if (index != null && index > 0 ) {
129128 builder .append (sql .substring (index ));
130129 }
131130 return new ClickHouseSqlStatement (builder .toString (), stmtType , cluster , database , table , input ,
132- compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 );
131+ compressAlgorithm , compressLevel , format , file , parameters , null , settings , null , 0 , funcUsed );
133132 }
134133
135134 @ Override
136135 public ClickHouseSqlStatement handleStatement (String sql , StatementType stmtType , String cluster , String database ,
137136 String table , String input , String compressAlgorithm , String compressLevel , String format , String file ,
138137 List <Integer > parameters , Map <String , Integer > positions , Map <String , String > settings ,
139- Set <String > tempTables , int valueGroups ) {
138+ Set <String > tempTables , int valueGroups , boolean funcUsed ) {
140139 boolean hasFile = allowLocalFile && !ClickHouseChecker .isNullOrEmpty (file ) && file .charAt (0 ) == '\'' ;
141140 ClickHouseSqlStatement s = null ;
142141 if (stmtType == StatementType .DELETE ) {
143142 s = allowLightWeightDelete ? s
144143 : handleDelete (sql , stmtType , cluster , database , table , input , compressAlgorithm , compressLevel ,
145- format , file , parameters , positions , settings , tempTables );
144+ format , file , parameters , positions , settings , tempTables , funcUsed );
146145 } else if (stmtType == StatementType .UPDATE ) {
147146 s = allowLightWeightUpdate ? s
148147 : handleUpdate (sql , stmtType , cluster , database , table , input , compressAlgorithm , compressLevel ,
149- format , file , parameters , positions , settings , tempTables );
148+ format , file , parameters , positions , settings , tempTables , funcUsed );
150149 } else if (stmtType == StatementType .INSERT && hasFile ) {
151150 s = handleInFileForInsertQuery (sql , stmtType , cluster , database , table , input , compressAlgorithm ,
152- compressLevel , format , file , parameters , positions , settings , tempTables , valueGroups );
151+ compressLevel , format , file , parameters , positions , settings , tempTables , valueGroups , funcUsed );
153152 } else if (stmtType == StatementType .SELECT && hasFile ) {
154153 s = handleOutFileForSelectQuery (sql , stmtType , cluster , database , table , input , compressAlgorithm ,
155- compressLevel , format , file , parameters , positions , settings , tempTables );
154+ compressLevel , format , file , parameters , positions , settings , tempTables , funcUsed );
156155 }
157156 return s ;
158157 }
0 commit comments