Example #1
0
 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;
 }