Example #1
0
 public function buildIndex(SchemaInterface $schema)
 {
     // Single column index
     $sqls = array();
     foreach ($schema->columns as $name => $column) {
         if ($column->index) {
             $indexName = is_string($column->index) ? $column->index : "idx_" . $schema->getTable() . "_" . $name;
             $query = new CreateIndexQuery($indexName);
             $query->on($schema->getTable(), (array) $name);
             $sqls[] = $query->toSql($this->driver, new ArgumentArray());
         }
     }
     return $sqls;
 }
 public function testCreateIndexConstructor()
 {
     $q = new CreateIndexQuery('idx_salary');
     $q->on('employees', ['last_name', 'salary'])->concurrently();
     $this->assertSqlStrings($q, [[new MySQLDriver(), 'CREATE INDEX `idx_salary` ON `employees` (last_name,salary)'], [new PgSQLDriver(), 'CREATE INDEX CONCURRENTLY "idx_salary" ON "employees" (last_name,salary)']]);
 }
Example #3
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;
 }