SQLite

Check-in [01d52232]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 01d52232dd6fbd253e77419a17df3df83d49434792d288ef96e14739a89cef3b
User & Date: drh 2023-07-26 19:11:47
Context
2023-07-26
19:22
Change a switch() case to default for coverage. (check-in: 04f49707 user: drh tags: trunk)
19:11
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered. (check-in: 01d52232 user: drh tags: trunk)
17:51
Add the ".scanstats vm" command to the shell tool. For profiling VM code in SQLITE_ENABLE_STMT_SCANSTATUS builds. (check-in: 0cbec399 user: dan tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/json.c.
2849
2850
2851
2852
2853
2854
2855

2856
2857
2858
2859
2860
2861
2862
        assert( pPatch->nJPRef>=1 );
        pPatch->nJPRef++;
        jsonParseAddCleanup(p, (void(*)(void*))jsonParseFree, pPatch);
      }
      break;
    }
    case SQLITE_BLOB: {

      sqlite3_result_error(pCtx, "JSON cannot hold BLOB values", -1);
      p->nErr++;
      break;
    }
  }
}








>







2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
        assert( pPatch->nJPRef>=1 );
        pPatch->nJPRef++;
        jsonParseAddCleanup(p, (void(*)(void*))jsonParseFree, pPatch);
      }
      break;
    }
    case SQLITE_BLOB: {
      jsonParseAddNode(p, JSON_NULL, 0, 0);
      sqlite3_result_error(pCtx, "JSON cannot hold BLOB values", -1);
      p->nErr++;
      break;
    }
  }
}