 /// `observes(eventsOfKind:)` and `databaseDidChange(with:)` methods.
 ///
 /// A database region is the union of any number of "table regions", which can
-/// cover a full table, or the combination of columns and rows (identified by
-/// their rowids):
+/// cover a full table, or the combination of columns and rows:
 ///
 ///     |Table1 |   |Table2 |   |Table3 |   |Table4 |   |Table5 |
 ///     |-------|   |-------|   |-------|   |-------|   |-------|

    /// from all tables.
    public static let fullDatabase = DatabaseRegion(tableRegions: nil)
    
    /// The empty database region
    public init() {
        self.init(tableRegions: [:])
    }

///     |x|x|x|x|   |x| | | |   | | | | |   |x|x| |x|   | | | | |
///     |x|x|x|x|   |x| | | |   | | | | |   | | | | |   | | | | |
///
/// To create a database region, you use one of those methods:
///
/// - `DatabaseRegion.fullDatabase`: the region that covers all database tables.
///
/// - `DatabaseRegion()`: the empty region.
///
/// - `DatabaseRegion(table:)`: the region that covers one database table.
///
/// - `SelectStatement.databaseRegion`:
///
///         let statement = try db.makeSelectStatement(sql: "SELECT name, score FROM player")
///         let region = statement.databaseRegion
///
/// - `FetchRequest.databaseRegion(_:)`
///
///         let request = Player.filter(key: 1)
///         let region = try request.databaseRegion(db)
public struct DatabaseRegion: CustomStringConvertible, Equatable {
    private let tableRegions: [String: TableRegion]?
    private init(tableRegions: [String: TableRegion]?) {
