LazyRecord\SqlBuilder\BaseBuilder::buildIndex PHP Method

buildIndex() public method

public buildIndex ( LazyRecord\Schema\SchemaInterface $schema )
$schema LazyRecord\Schema\SchemaInterface
    public function buildIndex(SchemaInterface $schema)
    {
        // build single column index
        $sqls = array();
        foreach ($schema->columns as $name => $column) {
            if ($column->index) {
                $table = $schema->getTable();
                $indexName = is_string($column->index) ? $column->index : 'idx_' . $table . '_' . $name;
                $query = new CreateIndexQuery($indexName);
                $query->on($table, [$name]);
                if ($column->index_using) {
                    $query->using($column->index_using);
                }
                $sqls[] = $query->toSql($this->driver, new ArgumentArray());
            }
        }
        if ($queries = $schema->getIndexQueries()) {
            foreach ($queries as $query) {
                $sqls[] = $query->toSql($this->driver, new ArgumentArray());
            }
        }
        return $sqls;
    }