Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Correct output for the fullkey column of json_each() when the total JSON input is a simple value, not an array or object. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b45b18850c59f22a163ee482f529f578 |
User & Date: | drh 2018-05-16 12:19:11.651 |
Context
2018-05-16
| ||
15:35 | Enhance the sqlite3_str_new() interface so that it always returns a valid and non-NULL pointer even in an OOM condition. (check-in: ed5b09680f user: drh tags: trunk) | |
12:19 | Correct output for the fullkey column of json_each() when the total JSON input is a simple value, not an array or object. (check-in: b45b18850c user: drh tags: trunk) | |
2018-05-15
| ||
09:09 | Fix a test case problem in wherelimit.test. (check-in: 3012df8b2c user: dan tags: trunk) | |
Changes
Changes to ext/misc/json1.c.
︙ | ︙ | |||
2114 2115 2116 2117 2118 2119 2120 | if( p->zRoot ){ jsonAppendRaw(&x, p->zRoot, (int)strlen(p->zRoot)); }else{ jsonAppendChar(&x, '$'); } if( p->eType==JSON_ARRAY ){ jsonPrintf(30, &x, "[%d]", p->iRowid); | | | 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 | if( p->zRoot ){ jsonAppendRaw(&x, p->zRoot, (int)strlen(p->zRoot)); }else{ jsonAppendChar(&x, '$'); } if( p->eType==JSON_ARRAY ){ jsonPrintf(30, &x, "[%d]", p->iRowid); }else if( p->eType==JSON_OBJECT ){ jsonPrintf(pThis->n, &x, ".%.*s", pThis->n-2, pThis->u.zJContent+1); } } jsonResult(&x); break; } case JEACH_PATH: { |
︙ | ︙ |
Changes to test/json101.test.
︙ | ︙ | |||
779 780 781 782 783 784 785 786 787 788 | WHERE Z.value==t2.id); } {1 {{"items":[3,5]}} 3 {{"value":3}} 1 {{"items":[3,5]}} 5 {{"value":5}}} do_execsql_test json-13.110 { SELECT * FROM t2 CROSS JOIN t1 WHERE EXISTS(SELECT 1 FROM json_each(t1.json,'$.items') AS Z WHERE Z.value==t2.id); } {3 {{"value":3}} 1 {{"items":[3,5]}} 5 {{"value":5}} 1 {{"items":[3,5]}}} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 | WHERE Z.value==t2.id); } {1 {{"items":[3,5]}} 3 {{"value":3}} 1 {{"items":[3,5]}} 5 {{"value":5}}} do_execsql_test json-13.110 { SELECT * FROM t2 CROSS JOIN t1 WHERE EXISTS(SELECT 1 FROM json_each(t1.json,'$.items') AS Z WHERE Z.value==t2.id); } {3 {{"value":3}} 1 {{"items":[3,5]}} 5 {{"value":5}} 1 {{"items":[3,5]}}} # 2018-05-16 # Incorrect fullkey output from json_each() # when the input JSON is not an array or object. # do_execsql_test json-14.100 { SELECT fullkey FROM json_each('123'); } {$} do_execsql_test json-14.110 { SELECT fullkey FROM json_each('123.56'); } {$} do_execsql_test json-14.120 { SELECT fullkey FROM json_each('"hello"'); } {$} do_execsql_test json-14.130 { SELECT fullkey FROM json_each('null'); } {$} do_execsql_test json-14.140 { SELECT fullkey FROM json_tree('123'); } {$} do_execsql_test json-14.150 { SELECT fullkey FROM json_tree('123.56'); } {$} do_execsql_test json-14.160 { SELECT fullkey FROM json_tree('"hello"'); } {$} do_execsql_test json-14.170 { SELECT fullkey FROM json_tree('null'); } {$} finish_test |