aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoikk2022-08-13 21:32:42 +0200
committerSoikk2022-08-13 21:32:42 +0200
commit1faec2ebd0c7151ff67390f7de7873f4b07cabb9 (patch)
tree7b54a39506b24df37b5e1403a007a40d43c5bd62
parenta341db54d82db0cfca948f0cf95b273430ee4675 (diff)
downloadsoikk-DB-1faec2ebd0c7151ff67390f7de7873f4b07cabb9.tar.xz
soikk-DB-1faec2ebd0c7151ff67390f7de7873f4b07cabb9.tar.zst
Updated README and fixed error on example images. Removed deleted dependencies. Fixed AVL tree bug.
-rw-r--r--CHANGELOG3
-rw-r--r--README.md2
-rw-r--r--include/db.h2
-rw-r--r--multimedia/example1.jpgbin84673 -> 61040 bytes
-rw-r--r--multimedia/example2.jpgbin105492 -> 74821 bytes
-rw-r--r--src/main.c16
-rw-r--r--src/storage.c14
7 files changed, 24 insertions, 13 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 088cd04..a1fb73f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+1660419119 (Sat Aug 13 2022 21:31:59 GMT+0200 (Central European Summer Time))
+Updated README and fixed error on example images. Removed deleted dependencies. Fixed AVL tree bug.
+
1660415513 (Sat Aug 13 2022 20:31:53 GMT+0200 (Central European Summer Time))
Added README and images. Fixed random thing in changelog.
diff --git a/README.md b/README.md
index c52fb05..795d6e9 100644
--- a/README.md
+++ b/README.md
@@ -6,4 +6,4 @@ Uses a mix of AVL trees and normal arrays to work with the data
## Example
Loading and debugging|Showing and removing tags
:-------------------------:|:-------------------------:
-![](https://github.com/Soikk/DB/blob/master/multimedia/example1.jpg) | ![](https://github.com/Soikk/DB/blob/master/multimedia/example1.jpg)
+![](https://github.com/Soikk/DB/blob/master/multimedia/example1.jpg) | ![](https://github.com/Soikk/DB/blob/master/multimedia/example2.jpg)
diff --git a/include/db.h b/include/db.h
index 2571d02..1777fc2 100644
--- a/include/db.h
+++ b/include/db.h
@@ -10,7 +10,6 @@
#include <stdarg.h>
-#include "strnatcmp.h"
#include "crc64.h"
#include "str.h"
@@ -18,6 +17,5 @@
#include "database.h"
#include "repl.h"
#include "parser.h"
-#include "bm.h"
#endif
diff --git a/multimedia/example1.jpg b/multimedia/example1.jpg
index 891556b..37e8c54 100644
--- a/multimedia/example1.jpg
+++ b/multimedia/example1.jpg
Binary files differ
diff --git a/multimedia/example2.jpg b/multimedia/example2.jpg
index 1521a80..f8e3f51 100644
--- a/multimedia/example2.jpg
+++ b/multimedia/example2.jpg
Binary files differ
diff --git a/src/main.c b/src/main.c
index 23e1fee..a9a7688 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,26 +6,32 @@ int main(){
inputBuffer *in = newInputBuffer();
- /*database *test = newDatabase("miDB");
+ /*database *test = newDatabase("miDB");
addFileTag(test, "vaca.png", "naturalezas");
addFileTags(test, "terry-davis.jpg", 3, "holyC", "programmer", "very cool");
addFileTag(test, "vaca.png", "lovely");
addFileTags(test, "vaca.png", 3, "nature", "animal", "very cool");
addFileTag(test, "terry-davis.jpg", "based");
+
+ printDatabase(test);
+
+ debugDatabase(test);
storeDatabase(test, "db.db");
+
+ test = loadDatabase("db.db");
- printDatabase(db);
+ printDatabase(test);
- debugDatabase(db);
+ debugDatabase(test);
uint64_t *l, i;
- searchFile(db, "terry-davis.jpg", 0, &l, &i);
+ searchFile(test, "terry-davis.jpg", 0, &l, &i);
printf("Tags with file 'terry-davis.jpg':\n");
for(uint64_t j = 0; j < i; ++j){
- printf("\t%s\n", db->ltags->table[l[j]]);
+ printf("\t%s\n", test->ltags->table[l[j]]);
}*/
diff --git a/src/storage.c b/src/storage.c
index bc5ab6b..dc1ad88 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -504,13 +504,17 @@ int storeAVLTree(tree root, FILE *fp){
return 0;
}
-static node *arrayToNodes(uint64_t *array, uint64_t i, uint64_t maxNodes){
- if(i >= maxNodes*2){
+static node *arrayToNodes(uint64_t *array, uint64_t pos, uint64_t maxNodes){
+ if(pos >= maxNodes*2){
return NULL;
}
- node *n = newNode(array[i+0], array[i+1]);
- n->left = arrayToNodes(array, (2*i + 1)*2, maxNodes);
- n->right = arrayToNodes(array, (2*i + 2)*2, maxNodes);
+ uint64_t h = array[pos+0], i = array[pos+1];
+ if(h == UINTMAX_MAX && i == UINTMAX_MAX){
+ return NULL;
+ }
+ node *n = newNode(h, i);
+ n->left = arrayToNodes(array, (2*pos + 1)*2, maxNodes);
+ n->right = arrayToNodes(array, (2*pos + 2)*2, maxNodes);
return n;
}