Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ recno(3) — BSD/386 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dbopen(3)

hash(3)

mpool(3)

recno(3)



RECNO(3)                                                 RECNO(3)


NAME
       recno - record number database access method

SYNOPSIS
       #include <sys/types.h>
       #include <db.h>

DESCRIPTION
       The  routine  dbopen  is the library interface to database
       files.  One of the supported file formats is record number
       files.   The  general  description  of the database access
       methods is in dbopen(3), this manual page  describes  only
       the recno specific information.

       The  record  number  data  structure is either variable or
       fixed-length  records  stored  in  a   flat-file   format,
       accessed  by  the logical record number.  The existence of
       record number five implies the existence  of  records  one
       through four, and the deletion of record number one causes
       record number five to be renumbered to record number four,
       as  well  as the cursor, if positioned after record number
       one, to shift down one record.

       The recno access method specific data  structure  provided
       to  dbopen  is  defined in the <db.h> include file as fol-
       lows:

       typedef struct {
              u_char bval;
              u_int cachesize;
              u_long flags;
              int lorder;
              size_t reclen;
       } RECNOINFO;

       The elements of this structure are defined as follows:

       bval   The delimiting byte to be used to mark the end of a
              record  for  variable-length  records,  and the pad
              character for fixed-length records.  If no value is
              specified,  newlines  (``\n'') are used to mark the
              end of  variable-length  records  and  fixed-length
              records are padded with spaces.

       cachesize
              A  suggested  maximum size, in bytes, of the memory
              cache.  This value is only advisory, and the access
              method  will allocate more memory rather than fail.

       flags  The flag value is specified by or'ing  any  of  the
              following values:

              R_FIXEDLEN
                     The   records  are  fixed-length,  not  byte



                         December 4, 1992                       1




RECNO(3)                                                 RECNO(3)


                     delimited.   The  structure  element  reclen
                     specifies  the length of the record, and the
                     structure element bval is used  as  the  pad
                     character.

              R_NOKEY
                     In  the  interface  specified by dbopen, the
                     sequential record retrieval  fills  in  both
                     the  caller's  key  and data structures.  If
                     the R_NOKEY flag is  specified,  the  cursor
                     routines are not required to fill in the key
                     structure.   This  permits  applications  to
                     retrieve records at the end of files without
                     reading all of the intervening records.

              R_SNAPSHOT
                     This flag requires that a  snapshot  of  the
                     file be taken when dbopen is called, instead
                     of permitting any unmodified records  to  be
                     read from the original file.

       lorder The  byte order for integers in the stored database
              metadata.  The number should represent the order as
              an  integer; for example, big endian order would be
              the number 4,321.  If lorder  is  0  (no  order  is
              specified) the current host order is used.

       reclen The length of a fixed-length record.

       The  data  part  of  the  key/data  pair used by the recno
       access method is the same as other  access  methods.   The
       key  is  different.  The data field of the key should be a
       pointer to a memory location of type recnot,  as  defined
       in  the  <db.h>  include  file.  This type is normally the
       largest unsigned integral type available to the  implemen-
       tation.   The  size field of the key should be the size of
       that type.

       In the interface specified by dbopen, using the put inter-
       face  to  create  a  new record will cause the creation of
       multiple, empty records if the record number is more  than
       one  greater  than  the  largest  record  currently in the
       database.

SEE ALSO
       dbopen(3), hash(3), mpool(3), recno(3)

       Document  Processing  in  a  Relational  Database  System,
       Michael   Stonebraker,   Heidi  Stettner,  Joseph  Kalash,
       Antonin  Guttman,  Nadene  Lynn,  Memorandum  No.  UCB/ERL
       M82/32, May 1982.

BUGS
       Only big and little endian byte order is supported.



                         December 4, 1992                       2


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026