summaryrefslogtreecommitdiff
path: root/contrib/tsearch2/snmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tsearch2/snmap.c')
-rw-r--r--contrib/tsearch2/snmap.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/contrib/tsearch2/snmap.c b/contrib/tsearch2/snmap.c
deleted file mode 100644
index 9aa0e2214f..0000000000
--- a/contrib/tsearch2/snmap.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * simple but fast map from str to Oid
- * Teodor Sigaev <teodor@sigaev.ru>
- */
-#include "postgres.h"
-
-#include "snmap.h"
-#include "common.h"
-
-static int
-compareSNMapEntry(const void *a, const void *b)
-{
- if (((SNMapEntry *) a)->nsp < ((SNMapEntry *) b)->nsp)
- return -1;
- else if (((SNMapEntry *) a)->nsp > ((SNMapEntry *) b)->nsp)
- return 1;
- else
- return strcmp(((SNMapEntry *) a)->key, ((SNMapEntry *) b)->key);
-}
-
-void
-addSNMap(SNMap * map, char *key, Oid value)
-{
- if (map->len >= map->reallen)
- {
- SNMapEntry *tmp;
- int len = (map->reallen) ? 2 * map->reallen : 16;
-
- tmp = (SNMapEntry *) realloc(map->list, sizeof(SNMapEntry) * len);
- if (!tmp)
- ereport(ERROR,
- (errcode(ERRCODE_OUT_OF_MEMORY),
- errmsg("out of memory")));
- map->reallen = len;
- map->list = tmp;
- }
- map->list[map->len].key = strdup(key);
- if (!map->list[map->len].key)
- ereport(ERROR,
- (errcode(ERRCODE_OUT_OF_MEMORY),
- errmsg("out of memory")));
- map->list[map->len].nsp = get_oidnamespace(TSNSP_FunctionOid);
- map->list[map->len].value = value;
- map->len++;
- if (map->len > 1)
- qsort(map->list, map->len, sizeof(SNMapEntry), compareSNMapEntry);
-}
-
-void
-addSNMap_t(SNMap * map, text *key, Oid value)
-{
- char *k = text2char(key);
-
- addSNMap(map, k, value);
- pfree(k);
-}
-
-Oid
-findSNMap(SNMap * map, char *key)
-{
- SNMapEntry *ptr;
- SNMapEntry ks;
-
- ks.key = key;
- ks.nsp = get_oidnamespace(TSNSP_FunctionOid);
- ks.value = 0;
-
- if (map->len == 0 || !map->list)
- return 0;
- ptr = (SNMapEntry *) bsearch(&ks, map->list, map->len, sizeof(SNMapEntry), compareSNMapEntry);
- return (ptr) ? ptr->value : 0;
-}
-
-Oid
-findSNMap_t(SNMap * map, text *key)
-{
- char *k = text2char(key);
- int res;
-
- res = findSNMap(map, k);
- pfree(k);
- return res;
-}
-
-void
-freeSNMap(SNMap * map)
-{
- SNMapEntry *entry = map->list;
-
- if (map->list)
- {
- while (map->len)
- {
- if (entry->key)
- free(entry->key);
- entry++;
- map->len--;
- }
- free(map->list);
- }
- memset(map, 0, sizeof(SNMap));
-}