34 #if defined(LIBC_SCCS) && !defined(lint)
35 static char sccsid[] =
"@(#)rec_utils.c 8.6 (Berkeley) 7/16/94";
38 #include <sys/param.h>
44 #include "../include/db.h"
62 __rec_ret(t, e, nrec, key, data)
75 if (
sizeof(recno_t) > t->bt_rkey.size) {
76 p = (
void *)(t->bt_rkey.data == NULL ?
77 malloc(
sizeof(recno_t)) :
78 realloc(t->bt_rkey.data,
sizeof(recno_t)));
82 t->bt_rkey.size =
sizeof(recno_t);
84 memmove(t->bt_rkey.data, &nrec,
sizeof(recno_t));
85 key->size =
sizeof(recno_t);
86 key->data = t->bt_rkey.data;
97 rl = GETRLEAF(e->page, e->index);
98 if (rl->flags & P_BIGDATA) {
99 if (__ovfl_get(t, rl->bytes,
100 &data->size, &t->bt_rdata.data, &t->bt_rdata.size))
102 data->data = t->bt_rdata.data;
103 }
else if (F_ISSET(t, B_DB_LOCK)) {
105 if (rl->dsize + 1 > t->bt_rdata.size) {
106 p = (
void *)(t->bt_rdata.data == NULL ?
107 malloc(rl->dsize + 1) :
108 realloc(t->bt_rdata.data, rl->dsize + 1));
111 t->bt_rdata.data = p;
112 t->bt_rdata.size = rl->dsize + 1;
114 memmove(t->bt_rdata.data, rl->bytes, rl->dsize);
115 data->size = rl->dsize;
116 data->data = t->bt_rdata.data;
118 data->size = rl->dsize;
119 data->data = rl->bytes;
121 return (RET_SUCCESS);