add
This commit is contained in:
-42
@@ -1,42 +0,0 @@
|
||||
struct SQLIndexGenerator {
|
||||
let name: String
|
||||
let table: String
|
||||
let expressions: [SQLExpression]
|
||||
let options: IndexOptions
|
||||
let condition: SQLExpression?
|
||||
|
||||
func sql(_ db: Database) throws -> String {
|
||||
var sql: SQL = "CREATE"
|
||||
|
||||
if options.contains(.unique) {
|
||||
sql += " UNIQUE"
|
||||
}
|
||||
|
||||
sql += " INDEX"
|
||||
|
||||
if options.contains(.ifNotExists) {
|
||||
sql += " IF NOT EXISTS"
|
||||
}
|
||||
|
||||
sql += " \(identifier: name) ON \(identifier: table)("
|
||||
sql += expressions.map { SQL($0) }.joined(separator: ", ")
|
||||
sql += ")"
|
||||
|
||||
if let condition {
|
||||
sql += " WHERE \(condition)"
|
||||
}
|
||||
|
||||
let context = SQLGenerationContext(db, argumentsSink: .literalValues)
|
||||
return try sql.sql(context)
|
||||
}
|
||||
}
|
||||
|
||||
extension SQLIndexGenerator {
|
||||
init(index: IndexDefinition) {
|
||||
name = index.name
|
||||
table = index.table
|
||||
expressions = index.expressions
|
||||
options = index.options
|
||||
condition = index.condition
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user