Skip to content

Commit 172d658

Browse files
committed
Merge branch 'master' into compile_mod
2 parents 13c518b + f67e683 commit 172d658

File tree

1 file changed

+43
-11
lines changed

1 file changed

+43
-11
lines changed

src/imem_statement.erl

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,9 +1253,20 @@ update_prepare(IsSec, SKey, {S,Tab,Typ,DefRec,Trigger,User,TrOpts}=TableInfo, Co
12531253
{<<>>,_} ->
12541254
?replace(X,Cx,imem_json:remove(AttName,?BoundVal(B,X)));
12551255
_ ->
1256-
case imem_json:decode(Value) of
1256+
case Value of
12571257
OldVal -> X;
1258-
NewVal -> ?replace(X,Cx,imem_json:put(AttName,NewVal,?BoundVal(B,X)))
1258+
_ ->
1259+
try
1260+
case imem_json:decode(Value) of
1261+
OldVal -> X;
1262+
NewVal1 -> ?replace(X,Cx,imem_json:put(AttName,NewVal1,?BoundVal(B,X)))
1263+
end
1264+
catch _:_ ->
1265+
case imem_json:decode(imem_datatype:add_dquotes(Value)) of
1266+
OldVal -> X;
1267+
NewVal2 -> ?replace(X,Cx,imem_json:put(AttName,NewVal2,?BoundVal(B,X)))
1268+
end
1269+
end
12591270
end
12601271
end
12611272
end,
@@ -1309,12 +1320,26 @@ update_prepare(IsSec, SKey, {S,Tab,Typ,DefRec,Trigger,User,TrOpts}=TableInfo, Co
13091320
NewParent = imem_json:remove(AttName,imem_json:get(ParentName,?BoundVal(B,X))),
13101321
?replace(X,Cx,imem_json:put(ParentName,NewParent,?BoundVal(B,X)));
13111322
_ ->
1312-
case imem_json:decode(Value) of
1313-
OldVal ->
1314-
X;
1315-
NewVal ->
1316-
NewParent = imem_json:put(AttName,NewVal,imem_json:get(ParentName,?BoundVal(B,X))),
1317-
?replace(X,Cx,imem_json:put(ParentName,NewParent,?BoundVal(B,X)))
1323+
case Value of
1324+
OldVal -> X;
1325+
_ ->
1326+
try
1327+
case imem_json:decode(Value) of
1328+
OldVal ->
1329+
X;
1330+
NewVal1 ->
1331+
NewParent1 = imem_json:put(AttName,NewVal1,imem_json:get(ParentName,?BoundVal(B,X))),
1332+
?replace(X,Cx,imem_json:put(ParentName,NewParent1,?BoundVal(B,X)))
1333+
end
1334+
catch _:_ ->
1335+
case imem_json:decode(imem_datatype:add_dquotes(Value)) of
1336+
OldVal ->
1337+
X;
1338+
NewVal2 ->
1339+
NewParent2 = imem_json:put(AttName,NewVal2,imem_json:get(ParentName,?BoundVal(B,X))),
1340+
?replace(X,Cx,imem_json:put(ParentName,NewParent2,?BoundVal(B,X)))
1341+
end
1342+
end
13181343
end
13191344
end
13201345
end,
@@ -1409,9 +1434,16 @@ update_prepare(IsSec, SKey, {S,Tab,Typ,DefRec,Trigger,User,TrOpts}=TableInfo, Co
14091434
{json_value,AttName,#bind{tind=?MainIdx,cind=Cx}=B} ->
14101435
Fx = fun(X) ->
14111436
case Value of
1412-
<<>> -> X;
1413-
?navio -> X;
1414-
_ -> ?replace(X,Cx,imem_json:put(AttName,imem_json:decode(Value),?BoundVal(B,X)))
1437+
<<>> ->
1438+
X;
1439+
?navio ->
1440+
X;
1441+
_ ->
1442+
try
1443+
?replace(X,Cx,imem_json:put(AttName,imem_json:decode(Value),?BoundVal(B,X)))
1444+
catch _:_ ->
1445+
?replace(X,Cx,imem_json:put(AttName,imem_json:decode(imem_datatype:add_dquotes(Value)),?BoundVal(B,X)))
1446+
end
14151447
end
14161448
end,
14171449
{Cx,0,Fx};

0 commit comments

Comments
 (0)