createIndex method

  1. @override
String createIndex(
  1. IndexInfo index, {
  2. bool ifNotExists = false,
})
override

Generates a CREATE INDEX statement.

With ifNotExists, an existing index with this name is left alone.

Implementation

@override
String createIndex(IndexInfo index, {bool ifNotExists = false}) {
  final unique = index.isUnique ? 'UNIQUE ' : '';
  final exists = ifNotExists ? 'IF NOT EXISTS ' : '';
  final cols = index.columns.map(escapeName).join(', ');
  final where = index.where != null ? ' WHERE ${index.where}' : '';
  return '''
CREATE ${unique}INDEX $exists${escapeName(index.name)} ON ${escapeName(index.tableName)} ($cols)$where;''';
}