summaryrefslogtreecommitdiff
path: root/src/btree/bt_delete.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/btree/bt_delete.c')
-rw-r--r--src/btree/bt_delete.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/btree/bt_delete.c b/src/btree/bt_delete.c
index 37496b3f..a1ccef71 100644
--- a/src/btree/bt_delete.c
+++ b/src/btree/bt_delete.c
@@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved.
*/
/*
* Copyright (c) 1990, 1993, 1994, 1995, 1996
@@ -61,15 +61,18 @@ __bam_ditem(dbc, h, indx)
PAGE *h;
u_int32_t indx;
{
+ BBLOB bl;
BINTERNAL *bi;
BKEYDATA *bk;
DB *dbp;
+ db_seq_t blob_id;
u_int32_t nbytes;
int ret;
db_indx_t *inp;
dbp = dbc->dbp;
inp = P_INP(dbp, h);
+ ret = 0;
/* The page should already have been dirtied by our caller. */
DB_ASSERT(dbp->env, IS_DIRTY(h));
@@ -139,6 +142,13 @@ __bam_ditem(dbc, h, indx)
dbc, (GET_BOVERFLOW(dbp, h, indx))->pgno)) != 0)
return (ret);
break;
+ case B_BLOB:
+ nbytes = BBLOB_SIZE;
+ memcpy(&bl, bk, BBLOB_SIZE);
+ blob_id = (db_seq_t)bl.id;
+ if ((ret = __blob_del(dbc, blob_id)) != 0)
+ return (ret);
+ break;
case B_KEYDATA:
nbytes = BKEYDATA_SIZE(bk->len);
break;
@@ -241,7 +251,7 @@ __bam_dpages(dbc, use_top, flags)
* single item deleted, and the rest of the pages are to be removed.
*
* Recno always has a stack to the root and __bam_merge operations
- * may have unneeded items in the sack. We find the lowest page
+ * may have unneeded items in the stack. We find the lowest page
* in the stack that has more than one record in it and start there.
*/
ret = 0;
@@ -493,7 +503,9 @@ stop: done = 1;
/*
* __bam_pupdate --
- * Update parent key pointers up the tree.
+ * Update parent key pointers up the tree after putting a new key
+ * at the start of a leaf page.
+ *
*
* PUBLIC: int __bam_pupdate __P((DBC *, PAGE *));
*/