|
|
1.1 ! root 1: #include <btree.h> ! 2: #include <ingres.h> ! 3: #include <aux.h> ! 4: #include <sccs.h> ! 5: ! 6: SCCSID(@(#)create_btree.c 8.2 1/18/85) ! 7: ! 8: /* CREATE_BTREE -- creates a new B-Tree ! 9: ** ! 10: ** Creates an empty B-Tree whose root is an empty leaf. The B-Tree ! 11: ** filename is the relation name with "TREE" concatenated to the end ! 12: ** of the name. ! 13: ** ! 14: ** Parameters: ! 15: ** relname - relation name (I) ! 16: */ ! 17: ! 18: create_btree(relname) ! 19: char *relname; ! 20: ! 21: { ! 22: struct BTreeNode root; ! 23: register int i; ! 24: extern int Btree_fd; ! 25: ! 26: root.depth = 1; ! 27: root.prevtree = root.nexttree = 0l; ! 28: bmove(&root.prevtree, &root.prttree, LIDSIZE); ! 29: /* the root is initially an empty leaf node */ ! 30: root.nodetype = 'L'; ! 31: root.nelmts = 0; ! 32: root.parent = 0; /* '0' indicates no other empty pages in file */ ! 33: ! 34: root.node.leafnode.prevleaf = 0; ! 35: root.node.leafnode.nextleaf = 0; ! 36: ! 37: for (i = 0; i< MAXLEAVES; ++i) ! 38: root.node.leafnode.tid_loc[i] = root.node.leafnode.back_ptr[i] = i; ! 39: ! 40: close(creat(relname, FILEMODE)); ! 41: if ((Btree_fd = open(relname, O_RDWR)) < 0) ! 42: syserr("create_btree: can't open %s", relname); ! 43: write_node(RT, &root); ! 44: ! 45: # ifdef xATR1 ! 46: if (tTf(24, 0)) ! 47: printf("creating btree %s", relname); ! 48: # endif ! 49: ! 50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.