CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=VIR BLOCK_SIZE=5; # # Test UDF's with constant arguments # SELECT JsonValue(56, 3.1416, 'foo', NULL); ERROR HY000: Can't initialize function 'jsonvalue'; Cannot accept more than 1 argument SELECT JsonValue(3.1416); JsonValue(3.1416) 3.141600 SELECT JsonValue(-80); JsonValue(-80) -80 SELECT JsonValue('foo'); JsonValue('foo') "foo" SELECT JsonValue(9223372036854775807); JsonValue(9223372036854775807) 9223372036854775807 SELECT JsonValue(NULL); JsonValue(NULL) null SELECT JsonValue(TRUE); JsonValue(TRUE) true SELECT JsonValue(FALSE); JsonValue(FALSE) false SELECT JsonValue(); JsonValue() null SELECT JsonValue('[11, 22, 33]' json_) FROM t1; JsonValue('[11, 22, 33]' json_) [11,22,33] [11,22,33] [11,22,33] [11,22,33] [11,22,33] SELECT Json_Make_Array(); Json_Make_Array() [] SELECT Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL); Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL) [56,3.141600,"My name is \"Foo\"",null] SELECT Json_Make_Array(Json_Make_Array(56, 3.1416, 'foo'), TRUE); Json_Make_Array(Json_Make_Array(56, 3.1416, 'foo'), TRUE) [[56,3.141600,"foo"],true] SELECT Json_Array_Add(Json_Make_Array(56, 3.1416, 'foo', NULL)) Array; ERROR HY000: Can't initialize function 'json_array_add'; This function must have at least 2 arguments SELECT Json_Array_Add(Json_Make_Array(56, 3.1416, 'foo', NULL), 'One more') Array; Array [56,3.141600,"foo",null,"One more"] SELECT Json_Array_Add(JsonValue('one value'), 'One more'); Json_Array_Add(JsonValue('one value'), 'One more') ["\"one value\"","One more"] SELECT Json_Array_Add('one value', 'One more'); Json_Array_Add('one value', 'One more') ["one value","One more"] SELECT Json_Array_Add('one value' json_, 'One more'); Json_Array_Add('one value' json_, 'One more') one value Warnings: Warning 1105 Error 2 opening one value SELECT Json_Array_Add(5 json_, 'One more'); Json_Array_Add(5 json_, 'One more') [5,"One more"] SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 0); Json_Array_Add('[5,3,8,7,9]' json_, 4, 0) [4,5,3,8,7,9] SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 2) Array; Array [5,3,4,8,7,9] SELECT Json_Array_Add('[5,3,8,7,9]' json_, 4, 9); Json_Array_Add('[5,3,8,7,9]' json_, 4, 9) [5,3,8,7,9,4] SELECT Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), '[2]', 33, 1); Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), '[2]', 33, 1) [1,2,[11,22],"[2]"] SELECT Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), 33, '[2]', 1); Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), 33, '[2]', 1) [1,2,[11,33,22]] SELECT Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), 33, 1, '[2]'); Json_Array_Add(Json_Make_Array(1, 2, Json_Make_Array(11, 22)), 33, 1, '[2]') [1,2,[11,33,22]] SELECT Json_Array_Add_Values(Json_Make_Array(56, 3.1416, 'machin', NULL), 'One more', 'Two more') Array; Array [56,3.141600,"machin",null,"One more","Two more"] SELECT Json_Array_Add_Values(Json_Make_Array(56, 3.1416, 'machin'), 'One more', 'Two more') Array FROM t1; Array [56,3.141600,"machin","One more","Two more"] [56,3.141600,"machin","One more","Two more"] [56,3.141600,"machin","One more","Two more"] [56,3.141600,"machin","One more","Two more"] [56,3.141600,"machin","One more","Two more"] SELECT Json_Array_Add_Values(Json_Make_Array(56, 3.1416, 'machin'), n) Array FROM t1; Array [56,3.141600,"machin",1] [56,3.141600,"machin",2] [56,3.141600,"machin",3] [56,3.141600,"machin",4] [56,3.141600,"machin",5] SELECT Json_Array_Add_Values(Json_Make_Array(n, 3.1416, 'machin'), n) Array FROM t1; Array [1,3.141600,"machin",1] [2,3.141600,"machin",2] [3,3.141600,"machin",3] [4,3.141600,"machin",4] [5,3.141600,"machin",5] SELECT Json_Array_Add_Values('[56]', 3.1416, 'machin') Array; Array [56,3.141600,"machin"] SELECT Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), 0); Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), 0) [3.141600,"My name is \"Foo\"",null] SELECT Json_Array_Delete(Json_Make_Object(56, 3.1416, 'My name is Foo', NULL), 2); Json_Array_Delete(Json_Make_Object(56, 3.1416, 'My name is Foo', NULL), 2) {"56":56,"3.1416":3.141600,"My name is Foo":"My name is Foo","NULL":null} Warnings: Warning 1105 First argument target is not an array SELECT Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), '2'); Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), '2') [56,3.141600,"My name is \"Foo\"",null] Warnings: Warning 1105 Missing or null array index SELECT Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), '2', 2); Json_Array_Delete(Json_Make_Array(56, 3.1416, 'My name is "Foo"', NULL), '2', 2) [56,3.141600,"My name is \"Foo\"",null] Warnings: Warning 1105 First argument target is not an array SELECT Json_Make_Object(56, 3.1416, 'foo', NULL); Json_Make_Object(56, 3.1416, 'foo', NULL) {"56":56,"3.1416":3.141600,"foo":"foo","NULL":null} SELECT Json_Make_Object(56 qty, 3.1416 price, 'foo' truc, NULL garanty); Json_Make_Object(56 qty, 3.1416 price, 'foo' truc, NULL garanty) {"qty":56,"price":3.141600,"truc":"foo","garanty":null} SELECT Json_Make_Object(); Json_Make_Object() {} SELECT Json_Make_Object(Json_Make_Array(56, 3.1416, 'foo'), NULL); Json_Make_Object(Json_Make_Array(56, 3.1416, 'foo'), NULL) {"Make_Array(56, 3.1416, 'foo')":[56,3.141600,"foo"],"NULL":null} SELECT Json_Make_Array(Json_Make_Object(56 "qty", 3.1416 "price", 'foo') ,NULL); Json_Make_Array(Json_Make_Object(56 "qty", 3.1416 "price", 'foo') ,NULL) [{"qty":56,"price":3.141600,"foo":"foo"},null] SELECT Json_Object_Key('qty', 56, 'price', 3.1416, 'truc', 'machin', 'garanty', NULL); Json_Object_Key('qty', 56, 'price', 3.1416, 'truc', 'machin', 'garanty', NULL) {"qty":56,"price":3.141600,"truc":"machin","garanty":null} SELECT Json_Object_Key('qty', 56, 'price', 3.1416, 'truc', 'machin', 'garanty'); ERROR HY000: Can't initialize function 'json_object_key'; This function must have an even number of arguments SELECT Json_Object_Add(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'blue' color); Json_Object_Add(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'blue' color) {"qty":56,"price":3.141600,"truc":"machin","garanty":null,"color":"blue"} SELECT Json_Object_Add(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 45.99 price); Json_Object_Add(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 45.99 price) {"qty":56,"price":45.990000,"truc":"machin","garanty":null} SELECT Json_Object_Add(Json_File('notexist.json'), 'cheese' item, '[1]', 1); Json_Object_Add(Json_File('notexist.json'), 'cheese' item, '[1]', 1) NULL Warnings: Warning 1105 Error 2 opening notexist.json Warning 1105 First argument target is not an object SELECT Json_Object_Delete(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'truc'); Json_Object_Delete(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'truc') {"qty":56,"price":3.141600,"garanty":null} SELECT Json_Object_Delete(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'chose'); Json_Object_Delete(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'chose') {"qty":56,"price":3.141600,"truc":"machin","garanty":null} SELECT Json_Object_List(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty)) "Key List"; Key List ["qty","price","truc","garanty"] SELECT Json_Object_List('{"qty":56, "price":3.1416, "truc":"machin", "garanty":null}') "Key List"; Key List ["qty","price","truc","garanty"] # # Test UDF's with column arguments # CREATE TABLE t2 ( ISBN CHAR(15), LANG CHAR(2), SUBJECT CHAR(32), AUTHOR CHAR(64), TITLE CHAR(32), TRANSLATION CHAR(32), TRANSLATOR CHAR(80), PUBLISHER CHAR(32), DATEPUB int(4) ) ENGINE=CONNECT TABLE_TYPE=JSON FILE_NAME='biblio.json'; SELECT Json_Make_Array(AUTHOR, TITLE, DATEPUB) FROM t2; Json_Make_Array(AUTHOR, TITLE, DATEPUB) [" Jean-Christophe Bernadac, François Knab","Construire une application XML",1999] ["William J. Pardi","XML en Action",1999] SELECT Json_Make_Object(AUTHOR, TITLE, DATEPUB) FROM t2; Json_Make_Object(AUTHOR, TITLE, DATEPUB) {"AUTHOR":" Jean-Christophe Bernadac, François Knab","TITLE":"Construire une application XML","DATEPUB":1999} {"AUTHOR":"William J. Pardi","TITLE":"XML en Action","DATEPUB":1999} SELECT Json_Array_Grp(TITLE, DATEPUB) FROM t2; ERROR HY000: Can't initialize function 'json_array_grp'; This function can only accept 1 argument SELECT Json_Array_Grp(TITLE) FROM t2; Json_Array_Grp(TITLE) ["Construire une application XML","XML en Action"] CREATE TABLE t3 ( SERIALNO CHAR(5) NOT NULL, NAME VARCHAR(12) NOT NULL FLAG=6, SEX SMALLINT(1) NOT NULL, TITLE VARCHAR(15) NOT NULL FLAG=20, MANAGER CHAR(5) DEFAULT NULL, DEPARTMENT CHAr(4) NOT NULL FLAG=41, SECRETARY CHAR(5) DEFAULT NULL FLAG=46, SALARY DOUBLE(8,2) NOT NULL FLAG=52 ) ENGINE=CONNECT TABLE_TYPE=FIX BLOCK_SIZE=8 FILE_NAME='employee.dat' ENDING=1; SELECT Json_Make_Object(SERIALNO, NAME, TITLE, SALARY) FROM t3 WHERE NAME = 'MERCHANT'; Json_Make_Object(SERIALNO, NAME, TITLE, SALARY) {"SERIALNO":"78943","NAME":"MERCHANT","TITLE":"SALESMAN","SALARY":8700.000000} SELECT DEPARTMENT, Json_Array_Grp(NAME) FROM t3 GROUP BY DEPARTMENT; DEPARTMENT Json_Array_Grp(NAME) 0021 ["STRONG","SHORTSIGHT"] 0318 ["BANCROFT","PLUMHEAD","HONEY","TONGHO","WALTER","SHRINKY","WERTHER","MERCHANT","WHEELFOR"] 0319 ["BULLOZER","QUINN","BROWNY","KITTY","MONAPENNY","MARTIN","FUNNIGUY","BUGHAPPY","FODDERMAN","MESSIFUL"] 2452 ["BIGHEAD","ORELLY","BIGHORN","SMITH","CHERRY"] Warnings: Warning 1105 Result truncated to json_grp_size values SELECT JsonSet_Grp_Size(30); JsonSet_Grp_Size(30) 30 SELECT Json_Make_Object(title, Json_Array_Grp(name) `json_names`) from t3 GROUP BY title; Json_Make_Object(title, Json_Array_Grp(name) `json_names`) {"title":"ADMINISTRATOR","names":["GOOSEPEN","FUNNIGUY","SHRINKY"]} {"title":"DIRECTOR","names":["QUINN","WERTHER","STRONG"]} {"title":"ENGINEER","names":["BROWNY","ORELLY","MARTIN","TONGHO","WALTER","SMITH"]} {"title":"PROGRAMMER","names":["BUGHAPPY"]} {"title":"SALESMAN","names":["WHEELFOR","MERCHANT","BULLOZER","BANCROFT","FODDERMAN"]} {"title":"SCIENTIST","names":["BIGHEAD","BIGHORN"]} {"title":"SECRETARY","names":["MESSIFUL","HONEY","SHORTSIGHT","CHERRY","MONAPENNY"]} {"title":"TYPIST","names":["KITTY","PLUMHEAD"]} SELECT Json_Make_Array(DEPARTMENT, Json_Array_Grp(NAME)) FROM t3 GROUP BY DEPARTMENT; Json_Make_Array(DEPARTMENT, Json_Array_Grp(NAME)) ["0021",["STRONG","SHORTSIGHT"]] ["0318",["BANCROFT","PLUMHEAD","HONEY","TONGHO","WALTER","SHRINKY","WERTHER","MERCHANT","WHEELFOR"]] ["0319",["BULLOZER","QUINN","BROWNY","KITTY","MONAPENNY","MARTIN","FUNNIGUY","BUGHAPPY","FODDERMAN","MESSIFUL","GOOSEPEN"]] ["2452",["BIGHEAD","ORELLY","BIGHORN","SMITH","CHERRY"]] SELECT Json_Make_Object(DEPARTMENT, Json_Array_Grp(NAME) json_NAMES) FROM t3 GROUP BY DEPARTMENT; Json_Make_Object(DEPARTMENT, Json_Array_Grp(NAME) json_NAMES) {"DEPARTMENT":"0021","NAMES":["STRONG","SHORTSIGHT"]} {"DEPARTMENT":"0318","NAMES":["BANCROFT","PLUMHEAD","HONEY","TONGHO","WALTER","SHRINKY","WERTHER","MERCHANT","WHEELFOR"]} {"DEPARTMENT":"0319","NAMES":["BULLOZER","QUINN","BROWNY","KITTY","MONAPENNY","MARTIN","FUNNIGUY","BUGHAPPY","FODDERMAN","MESSIFUL","GOOSEPEN"]} {"DEPARTMENT":"2452","NAMES":["BIGHEAD","ORELLY","BIGHORN","SMITH","CHERRY"]} SELECT Json_Make_Object(DEPARTMENT, Json_Array_Grp(Json_Make_Object(SERIALNO, NAME, TITLE, SALARY)) json_EMPLOYES) FROM t3 GROUP BY DEPARTMENT; Json_Make_Object(DEPARTMENT, Json_Array_Grp(Json_Make_Object(SERIALNO, NAME, TITLE, SALARY)) json_EMPLOYES) {"DEPARTMENT":"0021","EMPLOYES":[{"SERIALNO":"87777","NAME":"STRONG","TITLE":"DIRECTOR","SALARY":23000.000000},{"SERIALNO":"22222","NAME":"SHORTSIGHT","TITLE":"SECRETARY","SALARY":5500.000000}]} {"DEPARTMENT":"0318","EMPLOYES":[{"SERIALNO":"74200","NAME":"BANCROFT","TITLE":"SALESMAN","SALARY":9600.000000},{"SERIALNO":"24888","NAME":"PLUMHEAD","TITLE":"TYPIST","SALARY":2800.000000},{"SERIALNO":"27845","NAME":"HONEY","TITLE":"SECRETARY","SALARY":4900.000000},{"SERIALNO":"73452","NAME":"TONGHO","TITLE":"ENGINEER","SALARY":6800.000000},{"SERIALNO":"74234","NAME":"WALTER","TITLE":"ENGINEER","SALARY":7400.000000},{"SERIALNO":"77777","NAME":"SHRINKY","TITLE":"ADMINISTRATOR","SALARY":7500.000000},{"SERIALNO":"70012","NAME":"WERTHER","TITLE":"DIRECTOR","SALARY":14500.000000},{"SERIALNO":"78943","NAME":"MERCHANT","TITLE":"SALESMAN","SALARY":8700.000000},{"SERIALNO":"73111","NAME":"WHEELFOR","TITLE":"SALESMAN","SALARY":10030.000000}]} {"DEPARTMENT":"0319","EMPLOYES":[{"SERIALNO":"76543","NAME":"BULLOZER","TITLE":"SALESMAN","SALARY":14800.000000},{"SERIALNO":"40567","NAME":"QUINN","TITLE":"DIRECTOR","SALARY":14000.000000},{"SERIALNO":"00137","NAME":"BROWNY","TITLE":"ENGINEER","SALARY":10500.000000},{"SERIALNO":"12345","NAME":"KITTY","TITLE":"TYPIST","SALARY":3000.450000},{"SERIALNO":"33333","NAME":"MONAPENNY","TITLE":"SECRETARY","SALARY":3800.000000},{"SERIALNO":"00023","NAME":"MARTIN","TITLE":"ENGINEER","SALARY":10000.000000},{"SERIALNO":"07654","NAME":"FUNNIGUY","TITLE":"ADMINISTRATOR","SALARY":8500.000000},{"SERIALNO":"45678","NAME":"BUGHAPPY","TITLE":"PROGRAMMER","SALARY":8500.000000},{"SERIALNO":"56789","NAME":"FODDERMAN","TITLE":"SALESMAN","SALARY":7000.000000},{"SERIALNO":"55555","NAME":"MESSIFUL","TITLE":"SECRETARY","SALARY":5000.500000},{"SERIALNO":"98765","NAME":"GOOSEPEN","TITLE":"ADMINISTRATOR","SALARY":4700.000000}]} {"DEPARTMENT":"2452","EMPLOYES":[{"SERIALNO":"34567","NAME":"BIGHEAD","TITLE":"SCIENTIST","SALARY":8000.000000},{"SERIALNO":"31416","NAME":"ORELLY","TITLE":"ENGINEER","SALARY":13400.000000},{"SERIALNO":"36666","NAME":"BIGHORN","TITLE":"SCIENTIST","SALARY":11000.000000},{"SERIALNO":"02345","NAME":"SMITH","TITLE":"ENGINEER","SALARY":9000.000000},{"SERIALNO":"11111","NAME":"CHERRY","TITLE":"SECRETARY","SALARY":4500.000000}]} SELECT Json_Make_Object(DEPARTMENT, TITLE, Json_Array_Grp(Json_Make_Object(SERIALNO, NAME, SALARY)) json_EMPLOYES) FROM t3 GROUP BY DEPARTMENT, TITLE; Json_Make_Object(DEPARTMENT, TITLE, Json_Array_Grp(Json_Make_Object(SERIALNO, NAME, SALARY)) json_EMPLOYES) {"DEPARTMENT":"0021","TITLE":"DIRECTOR","EMPLOYES":[{"SERIALNO":"87777","NAME":"STRONG","SALARY":23000.000000}]} {"DEPARTMENT":"0021","TITLE":"SECRETARY","EMPLOYES":[{"SERIALNO":"22222","NAME":"SHORTSIGHT","SALARY":5500.000000}]} {"DEPARTMENT":"0318","TITLE":"ADMINISTRATOR","EMPLOYES":[{"SERIALNO":"77777","NAME":"SHRINKY","SALARY":7500.000000}]} {"DEPARTMENT":"0318","TITLE":"DIRECTOR","EMPLOYES":[{"SERIALNO":"70012","NAME":"WERTHER","SALARY":14500.000000}]} {"DEPARTMENT":"0318","TITLE":"ENGINEER","EMPLOYES":[{"SERIALNO":"73452","NAME":"TONGHO","SALARY":6800.000000},{"SERIALNO":"74234","NAME":"WALTER","SALARY":7400.000000}]} {"DEPARTMENT":"0318","TITLE":"SALESMAN","EMPLOYES":[{"SERIALNO":"74200","NAME":"BANCROFT","SALARY":9600.000000},{"SERIALNO":"78943","NAME":"MERCHANT","SALARY":8700.000000},{"SERIALNO":"73111","NAME":"WHEELFOR","SALARY":10030.000000}]} {"DEPARTMENT":"0318","TITLE":"SECRETARY","EMPLOYES":[{"SERIALNO":"27845","NAME":"HONEY","SALARY":4900.000000}]} {"DEPARTMENT":"0318","TITLE":"TYPIST","EMPLOYES":[{"SERIALNO":"24888","NAME":"PLUMHEAD","SALARY":2800.000000}]} {"DEPARTMENT":"0319","TITLE":"ADMINISTRATOR","EMPLOYES":[{"SERIALNO":"98765","NAME":"GOOSEPEN","SALARY":4700.000000},{"SERIALNO":"07654","NAME":"FUNNIGUY","SALARY":8500.000000}]} {"DEPARTMENT":"0319","TITLE":"DIRECTOR","EMPLOYES":[{"SERIALNO":"40567","NAME":"QUINN","SALARY":14000.000000}]} {"DEPARTMENT":"0319","TITLE":"ENGINEER","EMPLOYES":[{"SERIALNO":"00023","NAME":"MARTIN","SALARY":10000.000000},{"SERIALNO":"00137","NAME":"BROWNY","SALARY":10500.000000}]} {"DEPARTMENT":"0319","TITLE":"PROGRAMMER","EMPLOYES":[{"SERIALNO":"45678","NAME":"BUGHAPPY","SALARY":8500.000000}]} {"DEPARTMENT":"0319","TITLE":"SALESMAN","EMPLOYES":[{"SERIALNO":"76543","NAME":"BULLOZER","SALARY":14800.000000},{"SERIALNO":"56789","NAME":"FODDERMAN","SALARY":7000.000000}]} {"DEPARTMENT":"0319","TITLE":"SECRETARY","EMPLOYES":[{"SERIALNO":"33333","NAME":"MONAPENNY","SALARY":3800.000000},{"SERIALNO":"55555","NAME":"MESSIFUL","SALARY":5000.500000}]} {"DEPARTMENT":"0319","TITLE":"TYPIST","EMPLOYES":[{"SERIALNO":"12345","NAME":"KITTY","SALARY":3000.450000}]} {"DEPARTMENT":"2452","TITLE":"ENGINEER","EMPLOYES":[{"SERIALNO":"31416","NAME":"ORELLY","SALARY":13400.000000},{"SERIALNO":"02345","NAME":"SMITH","SALARY":9000.000000}]} {"DEPARTMENT":"2452","TITLE":"SCIENTIST","EMPLOYES":[{"SERIALNO":"34567","NAME":"BIGHEAD","SALARY":8000.000000},{"SERIALNO":"36666","NAME":"BIGHORN","SALARY":11000.000000}]} {"DEPARTMENT":"2452","TITLE":"SECRETARY","EMPLOYES":[{"SERIALNO":"11111","NAME":"CHERRY","SALARY":4500.000000}]} SELECT Json_Object_Grp(SALARY) FROM t3; ERROR HY000: Can't initialize function 'json_object_grp'; This function requires 2 arguments (key, value) SELECT Json_Object_Grp(NAME, SALARY) FROM t3; Json_Object_Grp(NAME, SALARY) {"BANCROFT":9600.000000,"SMITH":9000.000000,"MERCHANT":8700.000000,"FUNNIGUY":8500.000000,"BUGHAPPY":8500.000000,"BIGHEAD":8000.000000,"SHRINKY":7500.000000,"WALTER":7400.000000,"FODDERMAN":7000.000000,"TONGHO":6800.000000,"SHORTSIGHT":5500.000000,"MESSIFUL":5000.500000,"HONEY":4900.000000,"GOOSEPEN":4700.000000,"CHERRY":4500.000000,"MONAPENNY":3800.000000,"KITTY":3000.450000,"PLUMHEAD":2800.000000,"STRONG":23000.000000,"BULLOZER":14800.000000,"WERTHER":14500.000000,"QUINN":14000.000000,"ORELLY":13400.000000,"BIGHORN":11000.000000,"BROWNY":10500.000000,"WHEELFOR":10030.000000,"MARTIN":10000.000000} SELECT Json_Make_Object(DEPARTMENT, Json_Object_Grp(NAME, SALARY) "Json_SALARIES") FROM t3 GROUP BY DEPARTMENT; Json_Make_Object(DEPARTMENT, Json_Object_Grp(NAME, SALARY) "Json_SALARIES") {"DEPARTMENT":"0021","SALARIES":{"STRONG":23000.000000,"SHORTSIGHT":5500.000000}} {"DEPARTMENT":"0318","SALARIES":{"BANCROFT":9600.000000,"PLUMHEAD":2800.000000,"HONEY":4900.000000,"TONGHO":6800.000000,"WALTER":7400.000000,"SHRINKY":7500.000000,"WERTHER":14500.000000,"MERCHANT":8700.000000,"WHEELFOR":10030.000000}} {"DEPARTMENT":"0319","SALARIES":{"BULLOZER":14800.000000,"QUINN":14000.000000,"BROWNY":10500.000000,"KITTY":3000.450000,"MONAPENNY":3800.000000,"MARTIN":10000.000000,"FUNNIGUY":8500.000000,"BUGHAPPY":8500.000000,"FODDERMAN":7000.000000,"MESSIFUL":5000.500000,"GOOSEPEN":4700.000000}} {"DEPARTMENT":"2452","SALARIES":{"BIGHEAD":8000.000000,"ORELLY":13400.000000,"BIGHORN":11000.000000,"SMITH":9000.000000,"CHERRY":4500.000000}} SELECT Json_Array_Grp(NAME) FROM t3; Json_Array_Grp(NAME) ["BANCROFT","SMITH","MERCHANT","FUNNIGUY","BUGHAPPY","BIGHEAD","SHRINKY","WALTER","FODDERMAN","TONGHO","SHORTSIGHT","MESSIFUL","HONEY","GOOSEPEN","CHERRY","MONAPENNY","KITTY","PLUMHEAD","STRONG","BULLOZER","WERTHER","QUINN","ORELLY","BIGHORN","BROWNY","WHEELFOR","MARTIN"] SELECT Json_Object_Key(name, title) FROM t3 WHERE DEPARTMENT = 318; Json_Object_Key(name, title) {"BANCROFT":"SALESMAN"} {"MERCHANT":"SALESMAN"} {"SHRINKY":"ADMINISTRATOR"} {"WALTER":"ENGINEER"} {"TONGHO":"ENGINEER"} {"HONEY":"SECRETARY"} {"PLUMHEAD":"TYPIST"} {"WERTHER":"DIRECTOR"} {"WHEELFOR":"SALESMAN"} SELECT Json_Object_Grp(name, title) FROM t3 WHERE DEPARTMENT = 318; Json_Object_Grp(name, title) {"BANCROFT":"SALESMAN","MERCHANT":"SALESMAN","SHRINKY":"ADMINISTRATOR","WALTER":"ENGINEER","TONGHO":"ENGINEER","HONEY":"SECRETARY","PLUMHEAD":"TYPIST","WERTHER":"DIRECTOR","WHEELFOR":"SALESMAN"} # # Test value getting UDF's # SELECT JsonGet_String(Json_Array_Grp(name),'[#]') FROM t3; JsonGet_String(Json_Array_Grp(name),'[#]') 27 SELECT JsonGet_String(Json_Array_Grp(name),'[","]') FROM t3; JsonGet_String(Json_Array_Grp(name),'[","]') BANCROFT,SMITH,MERCHANT,FUNNIGUY,BUGHAPPY,BIGHEAD,SHRINKY,WALTER,FODDERMAN,TONGHO,SHORTSIGHT,MESSIFUL,HONEY,GOOSEPEN,CHERRY,MONAPENNY,KITTY,PLUMHEAD,STRONG,BULLOZER,WERTHER,QUINN,ORELLY,BIGHORN,BROWNY,WHEELFOR,MARTIN SELECT JsonGet_String(Json_Array_Grp(name),'[>]') FROM t3; JsonGet_String(Json_Array_Grp(name),'[>]') WHEELFOR SET @j1 = '[45,28,36,45,89]'; SELECT JsonGet_String(@j1,'1'); JsonGet_String(@j1,'1') 28 SELECT JsonGet_String(@j1 json_,'3'); JsonGet_String(@j1 json_,'3') 45 SELECT JsonGet_String(Json_Make_Array(45,28,36,45,89),'3'); JsonGet_String(Json_Make_Array(45,28,36,45,89),'3') 45 SELECT JsonGet_String(Json_Make_Array(45,28,36,45,89),'["+"]') "list",'=' as "egal",JsonGet_String(Json_Make_Array(45,28,36,45,89),'[+]') "sum"; list egal sum 45+28+36+45+89 = 243 SELECT JsonGet_String(Json_Make_Array(Json_Make_Array(45,28),Json_Make_Array(36,45,89)),'1.0'); JsonGet_String(Json_Make_Array(Json_Make_Array(45,28),Json_Make_Array(36,45,89)),'1.0') 36 SELECT JsonGet_String(Json_Make_Array(Json_Make_Array(45,28),Json_Make_Array(36,45,89)),'1.*'); JsonGet_String(Json_Make_Array(Json_Make_Array(45,28),Json_Make_Array(36,45,89)),'1.*') [36,45,89] SELECT JsonGet_String(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'truc'); JsonGet_String(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'truc') machin SET @j2 = '{"qty":56,"price":3.141600,"truc":"machin","garanty":null}'; SELECT JsonGet_String(@j2 json_,'truc'); JsonGet_String(@j2 json_,'truc') machin SELECT JsonGet_String(@j2,'truc'); JsonGet_String(@j2,'truc') machin SELECT JsonGet_String(@j2,'chose'); JsonGet_String(@j2,'chose') NULL SELECT JsonGet_String(NULL json_, NULL); JsonGet_String(NULL json_, NULL) NULL Warnings: Warning 1105 SELECT department, JsonGet_String(Json_Make_Object(department, Json_Array_Grp(salary) "Json_salaries"),'salaries.[+]') Sumsal FROM t3 GROUP BY department; department Sumsal 0021 28500.000000 0318 72230.000000 0319 89800.950000 2452 45900.000000 SELECT JsonGet_Int(@j1, '4'); JsonGet_Int(@j1, '4') 89 SELECT JsonGet_Int(@j1, '[#]'); JsonGet_Int(@j1, '[#]') 5 SELECT JsonGet_Int(@j1, '[+]'); JsonGet_Int(@j1, '[+]') 243 SELECT JsonGet_Int(@j1 json_, '3'); JsonGet_Int(@j1 json_, '3') 45 SELECT JsonGet_Int(Json_Make_Array(45,28,36,45,89), '3'); JsonGet_Int(Json_Make_Array(45,28,36,45,89), '3') 45 SELECT JsonGet_Int(Json_Make_Array(45,28,36,45,89), '["+"]'); JsonGet_Int(Json_Make_Array(45,28,36,45,89), '["+"]') 45 SELECT JsonGet_Int(Json_Make_Array(45,28,36,45,89), '[+]'); JsonGet_Int(Json_Make_Array(45,28,36,45,89), '[+]') 243 SELECT JsonGet_Int(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '1.0'); JsonGet_Int(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '1.0') 36 SELECT JsonGet_Int(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '0.1'); JsonGet_Int(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '0.1') 28 SELECT JsonGet_Int(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'qty'); JsonGet_Int(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'qty') 56 SELECT JsonGet_Int(@j2 json_, 'price'); JsonGet_Int(@j2 json_, 'price') 3 SELECT JsonGet_Int(@j2, 'qty'); JsonGet_Int(@j2, 'qty') 56 SELECT JsonGet_Int('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'chose'); JsonGet_Int('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'chose') NULL SELECT JsonGet_Int(JsonGet_String(Json_Make_Array(Json_Make_Array(45,28),Json_Make_Array(36,45,89)), '1.*'), '[+]') sum; sum 170 SELECT department, JsonGet_Int(Json_Make_Object(department, Json_Array_Grp(salary) "Json_salaries"), 'salaries.[+]') Sumsal FROM t3 GROUP BY department; department Sumsal 0021 28500 0318 72230 0319 89800 2452 45900 SELECT JsonGet_Real(@j1, '2'); JsonGet_Real(@j1, '2') 36.000000000000000 SELECT JsonGet_Real(@j1 json_, '3', 2); JsonGet_Real(@j1 json_, '3', 2) 45.00 SELECT JsonGet_Real(Json_Make_Array(45,28,36,45,89), '3'); JsonGet_Real(Json_Make_Array(45,28,36,45,89), '3') 45.000000000000000 SELECT JsonGet_Real(Json_Make_Array(45,28,36,45,89), '["+"]'); JsonGet_Real(Json_Make_Array(45,28,36,45,89), '["+"]') 45.000000000000000 SELECT JsonGet_Real(Json_Make_Array(45,28,36,45,89), '[+]'); JsonGet_Real(Json_Make_Array(45,28,36,45,89), '[+]') 243.000000000000000 SELECT JsonGet_Real(Json_Make_Array(45,28,36,45,89), '[!]'); JsonGet_Real(Json_Make_Array(45,28,36,45,89), '[!]') 48.600000000000000 SELECT JsonGet_Real(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '1.0'); JsonGet_Real(Json_Make_Array(Json_Make_Array(45,28), Json_Make_Array(36,45,89)), '1.0') 36.000000000000000 SELECT JsonGet_Real(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'price'); JsonGet_Real(Json_Make_Object(56 qty, 3.1416 price, 'machin' truc, NULL garanty), 'price') 3.141600000000000 SELECT JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}' json_, 'qty'); JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}' json_, 'qty') 56.000000000000000 SELECT JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'price'); JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'price') 3.141600000000000 SELECT JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'price', 4); JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'price', 4) 3.1416 SELECT JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'chose'); JsonGet_Real('{"qty":56,"price":3.141600,"truc":"machin","garanty":null}', 'chose') NULL SELECT department, JsonGet_Real(Json_Make_Object(department, Json_Array_Grp(salary) "Json_salaries"),'salaries.[+]') Sumsal FROM t3 GROUP BY department; department Sumsal 0021 28500.000000000000000 0318 72230.000000000000000 0319 89800.950000000000000 2452 45900.000000000000000 # # Documentation examples # SELECT JsonGet_Int(Json_Make_Array(45,28,36,45,89), '4') "Rank", JsonGet_Int(Json_Make_Array(45,28,36,45,89), '[#]') "Number", JsonGet_String(Json_Make_Array(45,28,36,45,89), '[","]') "Concat", JsonGet_Int(Json_Make_Array(45,28,36,45,89), '[+]') "Sum", JsonGet_Real(Json_Make_Array(45,28,36,45,89), '[!]', 2) "Avg"; Rank Number Concat Sum Avg 89 5 45,28,36,45,89 243 48.60 SELECT JsonGet_String('{"qty":7,"price":29.50,"garanty":null}', 'price') "String", JsonGet_Int('{"qty":7,"price":29.50,"garanty":null}', 'price') "Int", JsonGet_Real('{"qty":7,"price":29.50,"garanty":null}', 'price') "Real"; String Int Real 29.50 29 29.500000000000000 SELECT JsonGet_Real('{"qty":7,"price":29.50,"garanty":null}', 'price', 3) "Real"; Real 29.500 # # Testing Locate # SELECT JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'machin'); JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'machin') $.truc SELECT JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),56); JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),56) $.qty SELECT JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),3.1416); JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),3.1416) $.price SELECT JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'chose'); JsonLocate(Json_Make_Object(56 qty,3.1416 price,'machin' truc, NULL garanty),'chose') NULL SELECT JsonLocate('{"AUTHORS":[{"FN":"Jules", "LN":"Verne"}, {"FN":"Jack", "LN":"London"}]}' json_, 'Jack') Path; Path $.AUTHORS[1].FN SELECT JsonLocate('{"AUTHORS":[{"FN":"Jules", "LN":"Verne"}, {"FN":"Jack", "LN":"London"}]}' json_, 'jack' ci) Path; Path $.AUTHORS[1].FN SELECT JsonLocate('{"AUTHORS":[{"FN":"Jules", "LN":"Verne"}, {"FN":"Jack", "LN":"London"}]}' json_, '{"FN":"Jack", "LN":"London"}' json_) Path; Path $.AUTHORS[1] SELECT JsonLocate('{"AUTHORS":[{"FN":"Jules", "LN":"Verne"}, {"FN":"Jack", "LN":"London"}]}' json_, '{"FN":"jack", "LN":"London"}' json_) Path; Path NULL SELECT JsonLocate('[45,28,36,45,89]',36); JsonLocate('[45,28,36,45,89]',36) $[2] SELECT JsonLocate('[45,28,36,45,89]' json_,28.0); JsonLocate('[45,28,36,45,89]' json_,28.0) NULL SELECT Json_Locate_All('[45,28,36,45,89]',10); Json_Locate_All('[45,28,36,45,89]',10) [] SELECT Json_Locate_All('[45,28,36,45,89]',45); Json_Locate_All('[45,28,36,45,89]',45) ["$[0]","$[3]"] SELECT Json_Locate_All('[[45,28],36,45,89]',45); Json_Locate_All('[[45,28],36,45,89]',45) ["$[0][0]","$[2]"] SELECT Json_Locate_All('[[45,28,45],36,45,89]',45); Json_Locate_All('[[45,28,45],36,45,89]',45) ["$[0][0]","$[0][2]","$[2]"] SELECT Json_Locate_All('[[45,28,45],36,45,89]',JsonGet_Int('[3,45]','[1]')); Json_Locate_All('[[45,28,45],36,45,89]',JsonGet_Int('[3,45]','[1]')) ["$[0][0]","$[0][2]","$[2]"] SELECT JsonLocate('[[45,28,45],36,45,89]',45,n) from t1; JsonLocate('[[45,28,45],36,45,89]',45,n) $[0][0] $[0][2] $[2] NULL NULL SELECT JsonGet_String(Json_Locate_All('[[45,28,45],36,45,89]',45),concat('[',n-1,']')) FROM t1; JsonGet_String(Json_Locate_All('[[45,28,45],36,45,89]',45),concat('[',n-1,']')) $[0][0] $[0][2] $[2] NULL NULL SELECT JsonGet_String(Json_Locate_All('[[45,28,45],36,45,89]',45),concat('[',n-1,']')) AS `Path` FROM t1 GROUP BY n HAVING `Path` IS NOT NULL; Path $[0][0] $[0][2] $[2] SELECT Json_Locate_All('[45,28,[36,45,89]]',45); Json_Locate_All('[45,28,[36,45,89]]',45) ["$[0]","$[2][1]"] SELECT Json_Locate_All('[[45,28],[36,45.0,89]]',JsonValue(45.0)); Json_Locate_All('[[45,28],[36,45.0,89]]',JsonValue(45.0)) [] SELECT Json_Locate_All('[[45,28],[36,45.0,89]]',45.0); Json_Locate_All('[[45,28],[36,45.0,89]]',45.0) ["$[1][1]"] SELECT JsonLocate('[[45,28],[36,45,89]]','[36,45,89]' json_); JsonLocate('[[45,28],[36,45,89]]','[36,45,89]' json_) $[1] SELECT JsonLocate('[[45,28],[36,45,89]]','[45,28]' json_); JsonLocate('[[45,28],[36,45,89]]','[45,28]' json_) $[0] SELECT Json_Locate_All('[[45,28],[[36,45],89]]','45') "All paths"; All paths [] SELECT Json_Locate_All('[[45,28],[[36,45],89]]','[36,45]' json_); Json_Locate_All('[[45,28],[[36,45],89]]','[36,45]' json_) ["$[1][0]"] SELECT JsonGet_Int(Json_Locate_All('[[45,28],[[36,45],89]]',45), '[#]') "Nb of occurs"; Nb of occurs 2 SELECT Json_Locate_All('[[45,28],[[36,45],89]]',45,2); Json_Locate_All('[[45,28],[[36,45],89]]',45,2) ["$[0][0]"] SELECT JsonGet_String(Json_Locate_All('[45,28,36,45,89]',45),'0'); JsonGet_String(Json_Locate_All('[45,28,36,45,89]',45),'0') $[0] SELECT JsonLocate(Json_File('test/biblio.json'), 'Knab'); JsonLocate(Json_File('test/biblio.json'), 'Knab') $[0].AUTHOR[1].LASTNAME SELECT Json_Locate_All('test/biblio.json' jfile_, 'Knab'); Json_Locate_All('test/biblio.json' jfile_, 'Knab') ["$[0].AUTHOR[1].LASTNAME"] # # Testing json files # SELECT Jfile_Make('[{"_id":5,"type":"food","item":"beer","taste":"light","price":5.65,"ratings":[5,8,9]}, {"_id":6,"type":"car","item":"roadster","mileage":56000,"ratings":[6,9]}, {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4]}, {"_id":8,"type":"furniture","item":"table","size":{"W":60,"L":80,"H":40},"ratings":[5,8,7]}]', 'test/fx.json', 0) AS NewFile; NewFile test/fx.json SELECT Jfile_Make('test/fx.json', 1); Jfile_Make('test/fx.json', 1) test/fx.json SELECT Jfile_Make('test/fx.json' jfile_); Jfile_Make('test/fx.json' jfile_) test/fx.json SELECT Jfile_Make(Jbin_File('test/fx.json'), 0); Jfile_Make(Jbin_File('test/fx.json'), 0) test/fx.json SELECT Json_File('test/fx.json', 1); Json_File('test/fx.json', 1) [{"_id":5,"type":"food","item":"beer","taste":"light","price":5.65,"ratings":[5,8,9]},{"_id":6,"type":"car","item":"roadster","mileage":56000,"ratings":[6,9]},{"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4]},{"_id":8,"type":"furniture","item":"table","size":{"W":60,"L":80,"H":40},"ratings":[5,8,7]}] Warnings: Warning 1105 File pretty format doesn't match the specified pretty value SELECT Json_File('test/fx.json', 2); Json_File('test/fx.json', 2) [{"_id":5,"type":"food","item":"beer","taste":"light","price":5.65,"ratings":[5,8,9]},{"_id":6,"type":"car","item":"roadster","mileage":56000,"ratings":[6,9]},{"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4]},{"_id":8,"type":"furniture","item":"table","size":{"W":60,"L":80,"H":40},"ratings":[5,8,7]}] Warnings: Warning 1105 File pretty format doesn't match the specified pretty value SELECT Json_File('test/fx.json', 0); Json_File('test/fx.json', 0) [{"_id":5,"type":"food","item":"beer","taste":"light","price":5.65,"ratings":[5,8,9]},{"_id":6,"type":"car","item":"roadster","mileage":56000,"ratings":[6,9]},{"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4]},{"_id":8,"type":"furniture","item":"table","size":{"W":60,"L":80,"H":40},"ratings":[5,8,7]}] SELECT Json_File('test/fx.json', '0'); Json_File('test/fx.json', '0') {"_id":5,"type":"food","item":"beer","taste":"light","price":5.65,"ratings":[5,8,9]} SELECT Json_File('test/fx.json', '[?]'); Json_File('test/fx.json', '[?]') NULL Warnings: Warning 1105 Invalid function specification ? SELECT JsonGet_String(Json_File('test/fx.json'), '1.*'); JsonGet_String(Json_File('test/fx.json'), '1.*') {"_id":6,"type":"car","item":"roadster","mileage":56000,"ratings":[6,9]} SELECT JsonGet_String(Json_File('test/fx.json'), '1'); JsonGet_String(Json_File('test/fx.json'), '1') 6 car roadster 56000 (6, 9) SELECT JsonGet_Int(Json_File('test/fx.json'), '1.mileage') AS Mileage; Mileage 56000 SELECT JsonGet_Real(Json_File('test/fx.json'), '0.price', 2) AS Price; Price 5.65 SELECT Json_Array_Add(Json_File('test/fx.json', '2'), 6, 'ratings'); Json_Array_Add(Json_File('test/fx.json', '2'), 6, 'ratings') {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4,6]} SELECT Json_Array_Add(Json_File('test/fx.json', '2'), 6, 1, 'ratings'); Json_Array_Add(Json_File('test/fx.json', '2'), 6, 1, 'ratings') {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,6,4]} SELECT Json_Array_Add(Json_File('test/fx.json', '2'), 6, 'ratings', 1); Json_Array_Add(Json_File('test/fx.json', '2'), 6, 'ratings', 1) {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,6,4]} SELECT Json_Array_Add(Json_File('test/fx.json', '2.ratings'), 6, 0); Json_Array_Add(Json_File('test/fx.json', '2.ratings'), 6, 0) [6,2,4] SELECT Json_Array_Delete(Json_File('test/fx.json', '2'), 'ratings', 1); Json_Array_Delete(Json_File('test/fx.json', '2'), 'ratings', 1) {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2]} SELECT Json_Object_Add(Json_File('test/fx.json', '2'), 'france' origin); Json_Object_Add(Json_File('test/fx.json', '2'), 'france' origin) {"_id":7,"type":"food","item":"meat","origin":"france","ratings":[2,4]} SELECT Json_Object_Add(Json_File('test/fx.json', '2'), 70 H, 'size'); Json_Object_Add(Json_File('test/fx.json', '2'), 70 H, 'size') {"_id":7,"type":"food","item":"meat","origin":"argentina","ratings":[2,4]} Warnings: Warning 1105 No sub-item at 'size' SELECT Json_Object_Add(Json_File('test/fx.json', '3'), 70 H, 'size'); Json_Object_Add(Json_File('test/fx.json', '3'), 70 H, 'size') {"_id":8,"type":"furniture","item":"table","size":{"W":60,"L":80,"H":70},"ratings":[5,8,7]} SELECT Json_Object_List(Json_File('test/fx.json', '3.size')); Json_Object_List(Json_File('test/fx.json', '3.size')) ["W","L","H"] DROP TABLE t1; DROP TABLE t2; DROP TABLE t3;