Changeset: 14ee09cb60b7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/14ee09cb60b7
Modified Files:
        sql/backends/monet5/vaults/json/json.c
Branch: nested
Log Message:

fix json file loader


diffs (52 lines):

diff --git a/sql/backends/monet5/vaults/json/json.c 
b/sql/backends/monet5/vaults/json/json.c
--- a/sql/backends/monet5/vaults/json/json.c
+++ b/sql/backends/monet5/vaults/json/json.c
@@ -103,43 +103,27 @@ append_terms(allocator *sa, JSON *jt, si
        JSONterm *next = offset < (size_t)jt->free ? jt->elm + (offset + 1): 
NULL;
        switch(t->kind) {
                case JSON_ARRAY:
-                       if ( (prev == NULL && next && next->kind > JSON_ARRAY)
-                                       || (prev && prev->kind == JSON_ARRAY) ) 
{
+                       if (prev==NULL && (next && next->kind < JSON_ELEMENT)) {
+                               offset += 1;
+                       } else {
                                // array of basic types or array of arrays
                                v = sa_strndup(sa, t->value, t->valuelen);
-                               size_t depth = 0;
                                do {
                                        offset += 1;
                                        next = offset < (size_t)jt->free ? 
jt->elm + offset : NULL;
-                                       if (next && next->kind <=JSON_ARRAY)
-                                               depth ++;
-                                       if ((depth > 0 && next && (next->kind 
== JSON_VALUE || next->kind == 0))
-                                                       || (depth > 0 && next 
== NULL))
-                                               depth --;
-                               } while((next && next->kind != JSON_VALUE) || 
depth > 0);
-                       } else {
-                               offset += 1;
+                               } while((next && next->kind != JSON_VALUE));
                        }
                        break;
                case JSON_OBJECT:
                        v = sa_strndup(sa, t->value, t->valuelen);
-                       size_t depth = 0;
                        do {
                                offset += 1;
                                next = offset < (size_t)jt->free ? jt->elm + 
offset : NULL;
-                               if (next && next->kind <=JSON_ARRAY)
-                                       depth ++;
-                               if ((depth > 0 && next && (next->kind == 
JSON_VALUE || next->kind == 0))
-                                               || (depth > 0 && next == NULL))
-                                       depth --;
-                       } while((next && next->kind != JSON_VALUE) || depth > 
0);
+                       } while((next && next->kind != JSON_VALUE));
                        break;
                case JSON_ELEMENT:
                case JSON_STRING:
                case JSON_NUMBER:
-                       // should not happen
-                       assert(0);
-                       break;
                case JSON_VALUE:
                        offset +=1;
                        break;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to