1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-03-05 15:05:48 +02:00

Handle NULL VariantList in JSON.

This worked if the Variant was NULL but not if the Variant contained a NULL.
This commit is contained in:
David Steele 2021-06-07 07:46:51 -04:00
parent aaca4df983
commit a607750be1
2 changed files with 10 additions and 4 deletions

View File

@ -957,8 +957,13 @@ jsonFromVar(const Variant *var)
{
const VariantList *vl = varVarLst(var);
// If not an empty array
if (!varLstEmpty(vl))
// If null
if (vl == NULL)
{
strCat(jsonStr, NULL_STR);
}
// Else if not an empty array
else if (!varLstEmpty(vl))
{
strCatZ(jsonStr, "[");

View File

@ -264,6 +264,7 @@ testRun(void)
varLstAdd(varVarLst(varListOuter), varNewInt64(9223372036854775807LL));
varLstAdd(varVarLst(varListOuter), varNewInt(2147483647));
varLstAdd(varVarLst(varListOuter), varNewBool(true));
varLstAdd(varVarLst(varListOuter), varNewVarLst(NULL));
varLstAdd(varVarLst(varListOuter), varNewVarLst(varLstNew()));
varLstAdd(varVarLst(varListOuter), NULL);
varLstAdd(varVarLst(varListOuter), keyValue);
@ -271,7 +272,7 @@ testRun(void)
TEST_ASSIGN(json, jsonFromVar(varListOuter), "VariantList");
TEST_RESULT_STR_Z(
json,
"[\"ASTRING\",9223372036854775807,2147483647,true,[],null,{\"backup-info-size-delta\":1982702,"
"[\"ASTRING\",9223372036854775807,2147483647,true,null,[],null,{\"backup-info-size-delta\":1982702,"
"\"backup-prior\":\"20161219-212741F_20161219-212803I\","
"\"backup-reference\":[\"20161219-212741F\",\"20161219-212741F_20161219-212803I\",null],"
"\"backup-timestamp-start\":1482182951,\"checksum-page-error\":[1],"
@ -284,7 +285,7 @@ testRun(void)
TEST_ASSIGN(json, jsonFromVar(varListOuter), "VariantList - multiple elements");
TEST_RESULT_STR_Z(
json,
"[\"ASTRING\",9223372036854775807,2147483647,true,[],null,{\"backup-info-size-delta\":1982702,"
"[\"ASTRING\",9223372036854775807,2147483647,true,null,[],null,{\"backup-info-size-delta\":1982702,"
"\"backup-prior\":\"20161219-212741F_20161219-212803I\","
"\"backup-reference\":[\"20161219-212741F\",\"20161219-212741F_20161219-212803I\",null],"
"\"backup-timestamp-start\":1482182951,\"checksum-page-error\":[1],"