Skip to content

Commit 83cf11d

Browse files
committed
Fix tablets update
Fixes tablets update for non-select queries
1 parent 4f058fc commit 83cf11d

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

core/src/main/java/com/datastax/oss/driver/internal/core/cql/CqlRequestHandler.java

+24-8
Original file line numberDiff line numberDiff line change
@@ -473,17 +473,33 @@ private void setFinalResult(
473473
totalLatencyNanos,
474474
TimeUnit.NANOSECONDS);
475475
}
476-
if (resultSet.getColumnDefinitions().size() > 0
477-
&& resultSet
476+
if (resultSet
478477
.getExecutionInfo()
479478
.getIncomingPayload()
480479
.containsKey(TabletInfo.TABLETS_ROUTING_V1_CUSTOM_PAYLOAD_KEY)) {
481-
context
482-
.getMetadataManager()
483-
.addTabletFromPayload(
484-
resultSet.getColumnDefinitions().get(0).getKeyspace(),
485-
resultSet.getColumnDefinitions().get(0).getTable(),
486-
resultSet.getExecutionInfo().getIncomingPayload());
480+
CqlIdentifier keyspace = resultSet.getExecutionInfo().getRequest().getRoutingKeyspace();
481+
if (keyspace == null) {
482+
keyspace = resultSet.getExecutionInfo().getRequest().getKeyspace();
483+
if (keyspace == null && resultSet.getColumnDefinitions().size() > 0) {
484+
keyspace = resultSet.getColumnDefinitions().get(0).getKeyspace();
485+
}
486+
}
487+
488+
CqlIdentifier table = resultSet.getExecutionInfo().getRequest().getRoutingTable();
489+
if (table == null) {
490+
table = resultSet.getExecutionInfo().getRequest().getKeyspace();
491+
if (table == null && resultSet.getColumnDefinitions().size() > 0) {
492+
table = resultSet.getColumnDefinitions().get(0).getTable();
493+
}
494+
}
495+
if (keyspace != null && table != null) {
496+
context
497+
.getMetadataManager()
498+
.addTabletFromPayload(
499+
keyspace,
500+
table,
501+
resultSet.getExecutionInfo().getIncomingPayload());
502+
}
487503
}
488504
}
489505
// log the warnings if they have NOT been disabled

0 commit comments

Comments
 (0)