Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!emory!ogicse!orstcs!cutler.uucp!michael From: michael@cutler.uucp Newsgroups: comp.databases Subject: Re: how to implement cursor based UPDATE/DELETE Message-ID: <1991May15.191824.40@cutler.uucp> Date: 15 May 91 19:22:55 GMT References: <22626@shlump.lkg.dec.com> <12260@mentor.cc.purdue.edu> <24334@oolong.la.locus.com> Organization: Cutler & Company, Inc., Medford OR (503) 770-9000 Lines: 24 In article <24334@oolong.la.locus.com>, jfr@locus.com (Jon Rosen) writes: > ... Usually, the ROWID is a logical construction and has nothing (or > little) to do with the physical location/inode/record number of the > actual row. So moving the row will generally not change its ROWID. ... > > Unfortunately, the ROWID solution begs several questions. First of all, > a materialized ROWID is by no means universal. Most RDBMS (including > DB2, OS/2 EE, RDB, Ingres, etc.) do not have such an abstraction. ... Just for the record, INGRES does have (and has always had) such an abstraction. Each row in an INGRES table or index has a TID, or tuple identifier. Use it as you would any other column. If memory serves, the TID is indeed related to physical location. The TID is something to the effect of the high order m bits is the INGRES page within the table the row is located, and the low order n bits is the index of the row within the INGRES page. Michael D. Shields {UUCP: ...rutgers!ogicse!orstcs!cutler!michael} AVP, MIS {Internet: michael%cutler.uucp@cs.orst.edu} Cutler & Company, Inc. Medford, OR 97504 (503) 770-9000