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);
 }
Example #2
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;
 }
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;
 }