private void createTableIndexes()

in cassandra/src/main/java/org/apache/ignite/activestore/impl/cassandra/session/CassandraSessionImpl.java [765:802]


    private void createTableIndexes(KeyValuePersistenceSettings settings) {
        String fullName = settings.getKeyspace() + "." + settings.getTable();
        List<String> statements = settings.getIndexDDLStatements();
        if (statements == null || statements.isEmpty()) {
            return;
        }
        int attempt = 0;
        Throwable error = null;
        String errorMsg = "Failed to create indexes for Cassandra table '" + fullName + "'";
        while (attempt < CQL_EXECUTION_ATTEMPTS_COUNT) {
            try {
                for (String statement : statements) {
                    try {
                        session().execute(statement);
                    }
                    catch (AlreadyExistsException ignored) {
                    }
                    catch (Throwable e) {
                        if (!(e instanceof InvalidQueryException) || !e.getMessage().equals("Index already exists")) {
                            throw new IgniteException(errorMsg, e);
                        }
                    }
                }
                return;
            }
            catch (Throwable e) {
                if (CassandraHelper.isHostsAvailabilityError(e)) {
                    handleHostsAvailabilityError(e, attempt, errorMsg);
                }
                else {
                    throw new IgniteException(errorMsg, e);
                }
                error = e;
            }
            attempt++;
        }
        throw new IgniteException(errorMsg, error);
    }