 
 struct SQLSchema {
 	var columns = OrderedDictionary<SQLColumn, SQLType>()
+	var primaryKey: SQLColumn? = nil
 }
 
 struct SQLSelect {

	case update

	enum SQLStatementError: LocalizedError {
		case syntaxError

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

	init(_ sql: String) throws {
		let parser = SQLParser()
		if !parser.parse(sql) {
			throw SQLStatementError.syntaxError(query: sql)
		}

		// Top-level item must be a statement
		guard let root = parser.root, case .statement(let statement) = root else {
			throw SQLStatementError.invalidRootError
		}

		self = statement
