Changeset: 7cfdae1c72c9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7cfdae1c72c9
Modified Files:
        sql/storage/objlist.c
Branch: default
Log Message:

added code too resize the hash table


diffs (24 lines):

diff --git a/sql/storage/objlist.c b/sql/storage/objlist.c
--- a/sql/storage/objlist.c
+++ b/sql/storage/objlist.c
@@ -48,8 +48,18 @@ ol_add(objlist *ol, sql_base *data)
                return -1;
        node *n = l->t;
        assert(n->data == data);
-       if (hash_add(ol->h, base_key(data), n) == NULL)
-               return -1;
+       int sz = list_length(ol->l);
+       if (ol->h->size <= sz) {
+               hash_destroy(ol->h);
+               ol->h = hash_new(ol->l->sa, 4*sz, (fkeyvalue)&node_key);
+               for (node *n = ol->l->h; n; n = n->next) {
+                       if (hash_add(ol->h, base_key(n->data), n) == NULL)
+                               return -1;
+               }
+       } else {
+               if (hash_add(ol->h, base_key(data), n) == NULL)
+                       return -1;
+       }
        return 0;
 }
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to