1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-28 18:48:04 +03:00

Postgres95 1.01 Distribution - Virgin Sources

This commit is contained in:
Marc G. Fournier
1996-07-09 06:22:35 +00:00
commit d31084e9d1
868 changed files with 242656 additions and 0 deletions

47
src/backend/lib/hasht.c Normal file
View File

@@ -0,0 +1,47 @@
/*-------------------------------------------------------------------------
*
* hasht.c--
* hash table related functions that are not directly supported
* by the hashing packages under utils/hash.
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/lib/Attic/hasht.c,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
#include "c.h"
#include "utils/memutils.h"
#include "utils/elog.h"
#include "utils/hsearch.h"
#include "lib/hasht.h"
/* -----------------------------------
* HashTableWalk
*
* call function on every element in hashtable
* one extra argument, arg may be supplied
* -----------------------------------
*/
void
HashTableWalk(HTAB *hashtable, HashtFunc function, int arg)
{
long *hashent;
long *data;
int keysize;
keysize = hashtable->hctl->keysize;
(void)hash_seq((HTAB *)NULL);
while ((hashent = hash_seq(hashtable)) != (long *) TRUE) {
if (hashent == NULL)
elog(FATAL, "error in HashTableWalk.");
/*
* XXX the corresponding hash table insertion does NOT
* LONGALIGN -- make sure the keysize is ok
*/
data = (long *) LONGALIGN((char*) hashent + keysize);
(*function)(data, arg);
}
}