@@ -238,7 +238,6 @@ do_execsql_test json_array_nested {
238238 SELECT json_array(json_array(1,2,3), json('[1,2,3]'), '[1,2,3]')
239239} {{[[1,2,3],[1,2,3]," [ 1,2,3] " ]}}
240240
241-
242241do_execsql_test json_extract_null {
243242 SELECT json_extract(null, '$')
244243} {{}}
@@ -750,6 +749,118 @@ do_execsql_test_in_memory_error_content json_replace_blob_error {
750749 SELECT json_replace('{" field" :1}', '$.field', a) FROM t;
751750} {JSON cannot hold BLOB values}
752751
752+ do_execsql_test_in_memory_error_content json_array_blob_error {
753+ CREATE TABLE t(a);
754+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
755+ SELECT json_array(a) FROM t;
756+ } {JSON cannot hold BLOB values}
757+
758+ do_execsql_test_in_memory_error_content jsonb_object_blob_error {
759+ CREATE TABLE t(a);
760+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
761+ SELECT jsonb_object('a', a) FROM t;
762+ } {JSON cannot hold BLOB values}
763+
764+ do_execsql_test_in_memory_error_content jsonb_set_blob_error {
765+ CREATE TABLE t(a);
766+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
767+ SELECT jsonb_set('{}', '$.field', a) FROM t;
768+ } {JSON cannot hold BLOB values}
769+
770+ do_execsql_test_in_memory_error_content jsonb_insert_blob_error {
771+ CREATE TABLE t(a);
772+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
773+ SELECT jsonb_insert('{}', '$.field', a) FROM t;
774+ } {JSON cannot hold BLOB values}
775+
776+ do_execsql_test_in_memory_error_content jsonb_replace_blob_error {
777+ CREATE TABLE t(a);
778+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
779+ SELECT jsonb_replace('{" field" :1}', '$.field', a) FROM t;
780+ } {JSON cannot hold BLOB values}
781+
782+ do_execsql_test_in_memory_error_content jsonb_array_blob_error {
783+ CREATE TABLE t(a);
784+ INSERT INTO t VALUES (x'74727565'); -- ASCII " true" ;
785+ SELECT jsonb_array(a) FROM t;
786+ } {JSON cannot hold BLOB values}
787+
788+ do_execsql_test_on_specific_db {:memory:} jsonb_object_with_json_conversion {
789+ CREATE TABLE t1(data TEXT);
790+ INSERT INTO t1 VALUES ('{" name" :" Alice" ," age" :30}');
791+ SELECT json(jsonb_object('original', json(data), 'new', 'value')) FROM t1;
792+ } {{{" original" :{" name" :" Alice" ," age" :30}," new" :" value" }}}
793+
794+ do_execsql_test_on_specific_db {:memory:} json_object_with_jsonb_conversion {
795+ CREATE TABLE t1(data BLOB);
796+ INSERT INTO t1 VALUES (jsonb('{" name" :" Bob" ," age" :25}'));
797+ SELECT json_object('original', json(data), 'new', 'value') FROM t1;
798+ } {{{" original" :{" name" :" Bob" ," age" :25}," new" :" value" }}}
799+
800+ do_execsql_test_on_specific_db {:memory:} jsonb_set_with_json_conversion {
801+ CREATE TABLE t1(data TEXT);
802+ INSERT INTO t1 VALUES ('{" name" :" Alice" ," age" :30}');
803+ SELECT json(jsonb_set(json(data), '$.city', '" NY" ')) FROM t1;
804+ } {{{" name" :" Alice" ," age" :30," city" :" \" NY\" " }}}
805+
806+
807+ do_execsql_test_on_specific_db {:memory:} json_set_with_jsonb_conversion {
808+ CREATE TABLE t1(data BLOB);
809+ INSERT INTO t1 VALUES (jsonb('{" name" :" Bob" ," age" :25}'));
810+ SELECT json_set(json(data), '$.city', '" NY" ') FROM t1;
811+ } {{{" name" :" Bob" ," age" :25," city" :" \" NY\" " }}}
812+
813+
814+ do_execsql_test_on_specific_db {:memory:} jsonb_insert_with_json_conversion {
815+ CREATE TABLE t1(data TEXT);
816+ INSERT INTO t1 VALUES ('{" name" :" Alice" ," age" :30}');
817+ SELECT json(jsonb_insert(json(data), '$.city', '" NY" ')) FROM t1;
818+ } {{{" name" :" Alice" ," age" :30," city" :" \" NY\" " }}}
819+
820+
821+ do_execsql_test_on_specific_db {:memory:} json_insert_with_jsonb_conversion {
822+ CREATE TABLE t1(data BLOB);
823+ INSERT INTO t1 VALUES (jsonb('{" name" :" Bob" ," age" :25}'));
824+ SELECT json_insert(json(data), '$.city', '" NY" ') FROM t1;
825+ } {{{" name" :" Bob" ," age" :25," city" :" \" NY\" " }}}
826+
827+
828+ do_execsql_test_on_specific_db {:memory:} jsonb_replace_with_json_conversion {
829+ CREATE TABLE t1(data TEXT);
830+ INSERT INTO t1 VALUES ('{" name" :" Alice" ," age" :30}');
831+ SELECT json(jsonb_replace(json(data), '$.age', '31')) FROM t1;
832+ } {{{" name" :" Alice" ," age" :" 31" }}}
833+
834+ do_execsql_test_on_specific_db {:memory:} json_replace_with_jsonb_conversion {
835+ CREATE TABLE t1(data BLOB);
836+ INSERT INTO t1 VALUES (jsonb('{" name" :" Bob" ," age" :25}'));
837+ SELECT json_replace(json(data), '$.age', '26') FROM t1;
838+ } {{{" name" :" Bob" ," age" :" 26" }}}
839+
840+ do_execsql_test_on_specific_db {:memory:} jsonb_array_with_json_conversion {
841+ CREATE TABLE t1(data TEXT);
842+ INSERT INTO t1 VALUES ('{" name" :" Alice" }');
843+ SELECT json(jsonb_array(json(data), 'extra')) FROM t1;
844+ } {{[{" name" :" Alice" }," extra" ]}}
845+
846+ do_execsql_test_on_specific_db {:memory:} json_array_with_jsonb_conversion {
847+ CREATE TABLE t1(data BLOB);
848+ INSERT INTO t1 VALUES (jsonb('{" name" :" Bob" }'));
849+ SELECT json_array(json(data), 'extra') FROM t1;
850+ } {{[{" name" :" Bob" }," extra" ]}}
851+
852+ do_execsql_test_on_specific_db {:memory:} mixed_json_jsonb_json_extract {
853+ CREATE TABLE t1(data BLOB);
854+ INSERT INTO t1 VALUES (jsonb('{" name" :" Alice" ," age" :30}'));
855+ SELECT json_extract(json(jsonb_set(data, '$.city', '" NY" ')), '$.city') FROM t1;
856+ } {{" NY" }}
857+
858+ do_execsql_test_on_specific_db {:memory:} mixed_json_jsonb_json_object {
859+ CREATE TABLE t1(text_data TEXT, blob_data BLOB);
860+ INSERT INTO t1 VALUES ('{" a" :1}', jsonb('{" b" :2}'));
861+ SELECT json_object('text', json(text_data), 'blob', json(blob_data)) FROM t1;
862+ } {{{" text" :{" a" :1}," blob" :{" b" :2}}}}
863+
753864do_execsql_test json_object_json_array {
754865 SELECT json_object('ex',json('[52,3]'));
755866} {{{" ex" :[52,3]}}}
0 commit comments