class AnalyzedCreateBlobTable implements AnalyzedStatement {

    private final RelationName relationName;
    private final CreateBlobTable<Symbol> createBlobTable;

    AnalyzedCreateBlobTable(RelationName relationName,
                            CreateBlobTable<Symbol> createBlobTable) {
        this.relationName = relationName;
        this.createBlobTable = createBlobTable;
    }

    public RelationName relationName() {
        return relationName;
    }

    public CreateBlobTable<Symbol> createBlobTable() {
        return createBlobTable;
    }

    @Override
    public <C, R> R accept(AnalyzedStatementVisitor<C, R> analyzedStatementVisitor, C context) {
        return analyzedStatementVisitor.visitAnalyzedCreateBlobTable(this, context);
    }

    @Override
    public boolean isWriteOperation() {
        return true;
    }

    @Override
    public void visitSymbols(Consumer<? super Symbol> consumer) {<FILL_FUNCTION_BODY>}
}

        ClusteredBy<Symbol> clusteredBy = createBlobTable.clusteredBy();
        if (clusteredBy != null) {
            clusteredBy.column().ifPresent(consumer);
            clusteredBy.numberOfShards().ifPresent(consumer);
        }
        createBlobTable.genericProperties().properties().values().forEach(consumer);

    
<no_super_class>