summaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/buf_table.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-10-05 17:28:13 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-10-05 17:28:13 +0000
commit8a52b893b3d83c6dc796fae6a07a4ac30c871fc4 (patch)
tree65b88475931f536afffe13f489c10167a8b12a12 /src/backend/storage/buffer/buf_table.c
parent343318028fb4aca0c69663c7d429d602a32aaf02 (diff)
Further cleanup of dynahash.c API, in pursuit of portability and
readability. Bizarre '(long *) TRUE' return convention is gone, in favor of just raising an error internally in dynahash.c when we detect hashtable corruption. HashTableWalk is gone, in favor of using hash_seq_search directly, since it had no hope of working with non-LONGALIGNable datatypes. Simplify some other code that was made undesirably grotty by promixity to HashTableWalk.
Diffstat (limited to 'src/backend/storage/buffer/buf_table.c')
-rw-r--r--src/backend/storage/buffer/buf_table.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/backend/storage/buffer/buf_table.c b/src/backend/storage/buffer/buf_table.c
index 85b747b442f..d54d5e6915c 100644
--- a/src/backend/storage/buffer/buf_table.c
+++ b/src/backend/storage/buffer/buf_table.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_table.c,v 1.23 2001/10/01 05:36:13 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_table.c,v 1.24 2001/10/05 17:28:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,21 +62,15 @@ BufferDesc *
BufTableLookup(BufferTag *tagPtr)
{
BufferLookupEnt *result;
- bool found;
if (tagPtr->blockNum == P_NEW)
return NULL;
result = (BufferLookupEnt *)
- hash_search(SharedBufHash, (void *) tagPtr, HASH_FIND, &found);
-
+ hash_search(SharedBufHash, (void *) tagPtr, HASH_FIND, NULL);
if (!result)
- {
- elog(ERROR, "BufTableLookup: BufferLookup table corrupted");
- return NULL;
- }
- if (!found)
return NULL;
+
return &(BufferDescriptors[result->id]);
}
@@ -87,7 +81,6 @@ bool
BufTableDelete(BufferDesc *buf)
{
BufferLookupEnt *result;
- bool found;
/*
* buffer not initialized or has been removed from table already.
@@ -99,10 +92,11 @@ BufTableDelete(BufferDesc *buf)
buf->flags |= BM_DELETED;
result = (BufferLookupEnt *)
- hash_search(SharedBufHash, (void *) &(buf->tag), HASH_REMOVE, &found);
+ hash_search(SharedBufHash, (void *) &(buf->tag), HASH_REMOVE, NULL);
- if (!(result && found))
+ if (!result)
{
+ /* shouldn't happen */
elog(ERROR, "BufTableDelete: BufferLookup table corrupted");
return FALSE;
}
@@ -134,14 +128,13 @@ BufTableInsert(BufferDesc *buf)
if (!result)
{
- Assert(0);
- elog(ERROR, "BufTableInsert: BufferLookup table corrupted");
+ elog(ERROR, "BufTableInsert: BufferLookup table out of memory");
return FALSE;
}
+
/* found something else in the table ! */
if (found)
{
- Assert(0);
elog(ERROR, "BufTableInsert: BufferLookup table corrupted");
return FALSE;
}