public function testCreateIndexFunctional() { // CREATE INDEX on tokens (substr(token), 0, 8) $q = new CreateIndexQuery(); $q->create('idx_salary')->on('employees', ['substr(token)', 0, 8]); $this->assertSql('CREATE INDEX `idx_salary` ON `employees` (substr(token),0,8)', $q); }
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 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; }