@@ -139,7 +139,7 @@ private void upsertIntoNamespacesTable(String keyspace) {
139139 String insertQuery =
140140 QueryBuilder .insertInto (
141141 quoteIfNecessary (metadataKeyspace ), quoteIfNecessary (NAMESPACES_TABLE ))
142- .value (NAMESPACES_NAME_COL , quoteIfNecessary ( keyspace ) )
142+ .value (NAMESPACES_NAME_COL , keyspace )
143143 .toString ();
144144 clusterManager .getSession ().execute (insertQuery );
145145 }
@@ -180,7 +180,7 @@ private void deleteFromNamespacesTable(String keyspace) {
180180 String deleteQuery =
181181 QueryBuilder .delete ()
182182 .from (quoteIfNecessary (metadataKeyspace ), quoteIfNecessary (NAMESPACES_TABLE ))
183- .where (QueryBuilder .eq (NAMESPACES_NAME_COL , quoteIfNecessary ( keyspace ) ))
183+ .where (QueryBuilder .eq (NAMESPACES_NAME_COL , keyspace ))
184184 .toString ();
185185 clusterManager .getSession ().execute (deleteQuery );
186186 }
@@ -279,7 +279,9 @@ private TableMetadata createTableMetadata(com.datastax.driver.core.TableMetadata
279279 ClusteringOrder clusteringOrder = metadata .getClusteringOrder ().get (i );
280280 builder .addClusteringKey (clusteringColumnName , convertOrder (clusteringOrder ));
281281 }
282- metadata .getIndexes ().forEach (i -> builder .addSecondaryIndex (i .getTarget ()));
282+ metadata
283+ .getIndexes ()
284+ .forEach (i -> builder .addSecondaryIndex (unquoteIfNecessary (i .getTarget ())));
283285 return builder .build ();
284286 }
285287
@@ -349,7 +351,7 @@ public boolean namespaceExists(String namespace) throws ExecutionException {
349351 String query =
350352 QueryBuilder .select (NAMESPACES_NAME_COL )
351353 .from (quoteIfNecessary (metadataKeyspace ), quoteIfNecessary (NAMESPACES_TABLE ))
352- .where (QueryBuilder .eq (NAMESPACES_NAME_COL , quoteIfNecessary ( namespace ) ))
354+ .where (QueryBuilder .eq (NAMESPACES_NAME_COL , namespace ))
353355 .toString ();
354356 ResultSet resultSet = clusterManager .getSession ().execute (query );
355357
@@ -396,8 +398,8 @@ public void addNewColumnToTable(
396398 }
397399 try {
398400 String alterTableQuery =
399- SchemaBuilder .alterTable (namespace , table )
400- .addColumn (columnName )
401+ SchemaBuilder .alterTable (quoteIfNecessary ( namespace ), quoteIfNecessary ( table ) )
402+ .addColumn (quoteIfNecessary ( columnName ) )
401403 .type (toCassandraDataType (columnType ))
402404 .getQueryString ();
403405
@@ -686,4 +688,14 @@ public String toString() {
686688 return strategyName ;
687689 }
688690 }
691+
692+ private String unquoteIfNecessary (String identifier ) {
693+ if (identifier == null ) {
694+ return null ;
695+ }
696+ if (identifier .length () >= 2 && identifier .startsWith ("\" " ) && identifier .endsWith ("\" " )) {
697+ return identifier .substring (1 , identifier .length () - 1 ).replace ("\" \" " , "\" " );
698+ }
699+ return identifier ;
700+ }
689701}
0 commit comments