What about adding a column type ROWID? rowid is used by many internal api's and I use it as primary key very often. But it is not semantically my primary key. I use then a unique index for that. But then I run into problems because the session extension need that primary key. So for I would find it handy to define a ROWID column which is then created as a special integer index. I use this index very often to implement a handle for fetching the row. Having integer handles is a really powerful pattern.