public List<ListenableFuture<ResultSet>> moveTable(String name) throws ExecutionException { System.out.println("inserting data to destination:" + name); String query = "select * from " + name; BoundStatement bs = source.peer.bPrepare(source.session, query); ResultSet rs = source.session.execute(bs); ColumnDefinitions defs = rs.getColumnDefinitions(); int ncols = defs.size(); boolean update = false; for (int i = 0; i < ncols; ++i) { DataType dt = defs.getType(i); if (DataType.Name.COUNTER.equals(dt.getName())) { update = true; break; } } if (update) { return moveTableUpdate(name, rs, defs); } else { return moveTableInsert(name, rs, defs); } }