[Info-vax] Indexed file read question
abrsvc
dansabrservices at yahoo.com
Thu Nov 19 12:48:48 EST 2020
On Thursday, 19 November 2020 at 12:36:50 UTC-5, Hein RMS van den Heuvel wrote:
> On Thursday, November 19, 2020 at 10:47:07 AM UTC-5, Stephen Hoffman wrote:
> > On 2020-11-19 04:50:35 +0000, Hein RMS van den Heuvel said:
> >
> > > ...with duplicates the first (by time) inserted with that first key...
> >
> > Which I've incorrectly referred to as "indeterminate" here, though I've
> > approximately never been seeking duplicate records returned in
> > insertion-time order.
> You have... Remember VMSmail? The FOLDER name? That's an alternate key with duplicates!
> So a DIR/FOL=xxx returns messages in the order you'd expect.
> Least surprise engineering.
>
> Business applications might have a 'status' flag say 'A' for Action, 'P' for Print and ' ' <space> for 'done' with a NULL key value of space.
> The application can subsequently ask for the first A row to be processed or P row to be printed.
> It can be useful, but it is not very robust.
>
> To build on my earlier example, see what CONVERT does to the file:
>
> $ conv/key=1 tmp.idx tt:/fdl=nl:
> noot A
> aap A
> vuur B
> mies B
> $ conv tmp.idx new.idx
> $ conv/key=1 new.idx tt:/fdl=nl:
> aap A
> noot A
> mies B
> vuur B
>
> Mind you for VMSmail, this caused no issue because the PK was a timestamp and thus convert delivered messages in folders by time order.
> Many, if not most, business application essentially hand out PK's in always increasing order again making the right thing happen in general, but not guaranteed. I'm sure this has caused head-scratching or perhaps support calls over time.
>
> Fun?
> Hein
Yes its fun...
Once again I see that an application works by accident rather than intent. This is not the first nor I suspect, will it be the last.
More information about the Info-vax
mailing list