Annotation of 43BSD/ingres/source/iutil/delete.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      <access.h>
        !             3: # include      <catalog.h>
        !             4: # include      <batch.h>
        !             5: # include      <btree.h>
        !             6: # include      <sccs.h>
        !             7: 
        !             8: SCCSID(@(#)delete.c    8.1     12/31/84)
        !             9: 
        !            10: /*
        !            11: **     Delete - delete the tuple specified by tid
        !            12: **
        !            13: **     Delete removes the tuple specified by tid
        !            14: **     and reclaims the tuple space.
        !            15: **
        !            16: **     returns:
        !            17: **             <0  fatal error
        !            18: **             0   success
        !            19: **             2   tuple specified by tid aleady deleted
        !            20: */
        !            21: 
        !            22: delete(dx, tidx)
        !            23: DESC   *dx;
        !            24: TID    *tidx;
        !            25: {
        !            26:        register DESC   *d;
        !            27:        register TID    *tid;
        !            28:        register int    i;
        !            29:        char            btree[MAXNAME + 4];
        !            30:        TID             tidloc;
        !            31:        long            lid[MAXLID];
        !            32: 
        !            33:        d = dx;
        !            34:        tid = tidx;
        !            35: 
        !            36: #      ifdef xATR1
        !            37:        if (tTf(24, 8))
        !            38:        {
        !            39:                printf("delete: %.14s,", d->reldum.relid);
        !            40:                dumptid(tid);
        !            41:        }
        !            42: #      endif
        !            43: 
        !            44:        if (i = get_page(d, tid))
        !            45:                return (i);
        !            46: 
        !            47:        if (i = invalid(tid))
        !            48:                return (i);
        !            49: 
        !            50:        i = tup_len(tid);
        !            51: 
        !            52:        del_tuple(tid, i);
        !            53: 
        !            54:        if (d->reldum.reldim > 0)
        !            55:        /* remove corresponding lid from B-Tree */
        !            56:        {
        !            57:                btreename(d->reldum.relid, btree);
        !            58:                search_btree(*tid, &tidloc);
        !            59:                get_lid(&tidloc, lid);
        !            60:                if (fwrite(lid, 1, LIDSIZE * d->reldum.reldim, Del_infp) != LIDSIZE * d->reldum.reldim)
        !            61:                        syserr("write error");
        !            62:                ++Del_cnt;
        !            63:        }
        !            64: 
        !            65:        d->reladds--;
        !            66: 
        !            67:        return (0);
        !            68: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.