 	var name: String
 
 	func sql(dialect: SQLDialect) -> String {
-		return name.lowercased()
+		return dialect.columnIdentifier(name.lowercased())
 	}
 
 	var hashValue: Int {

	case update

	enum SQLStatementError: LocalizedError {
		case syntaxError

		var errorDescription: String? {
			switch self {
			case .syntaxError: return "syntax error"
			}
		}
	}

				})
			~~ Parser.matchLiteral("(")
			~~ Parser.matchList(^"column-definition" => {
				guard case .columnDefinition(column: let column, type: let type, primary: let primary) = self.stack.popLast()! else { fatalError() }
				guard case .statement(let s) = self.stack.popLast()! else { fatalError() }
				guard case .create(table: let t, schema: let oldSchema) = s else { fatalError() }
				var newSchema = oldSchema
				newSchema.columns[column] = type
				if primary {
					newSchema.primaryKey = column
				}
				self.stack.append(.statement(.create(table: t, schema: newSchema)))
			}, separator: Parser.matchLiteral(","))
			~~ Parser.matchLiteral(")")
