 			self.stack.append(.expression(.null))
 		})
 
-		add_named_rule("lit-column", rule: (firstCharacter ~ (followingCharacter*)/~) => {
+		add_named_rule("lit-column-naked", rule: (firstCharacter ~ (followingCharacter*)/~) => {
 			self.stack.append(.columnIdentifier(SQLColumn(name: self.text)))
 		})
+
+		add_named_rule("lit-column", rule: (Parser.matchLiteral("\"") ~ ^"lit-column-naked" ~ Parser.matchLiteral("\"")) | ^"lit-column-naked")
 
 		add_named_rule("lit-all-columns", rule: Parser.matchLiteral("*") => {
 			self.stack.append(.expression(.allColumns))

	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(")")
