Lines Matching refs:pNode

364 static u32 jsonNodeSize(JsonNode *pNode){  in jsonNodeSize()  argument
365 return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1; in jsonNodeSize()
395 JsonNode *pNode, /* The node to render */ in jsonRenderNode() argument
399 assert( pNode!=0 ); in jsonRenderNode()
400 if( pNode->jnFlags & (JNODE_REPLACE|JNODE_PATCH) ){ in jsonRenderNode()
401 if( (pNode->jnFlags & JNODE_REPLACE)!=0 && ALWAYS(aReplace!=0) ){ in jsonRenderNode()
402 assert( pNode->eU==4 ); in jsonRenderNode()
403 jsonAppendValue(pOut, aReplace[pNode->u.iReplace]); in jsonRenderNode()
406 assert( pNode->eU==5 ); in jsonRenderNode()
407 pNode = pNode->u.pPatch; in jsonRenderNode()
409 switch( pNode->eType ){ in jsonRenderNode()
411 assert( pNode->eType==JSON_NULL ); in jsonRenderNode()
424 if( pNode->jnFlags & JNODE_RAW ){ in jsonRenderNode()
425 assert( pNode->eU==1 ); in jsonRenderNode()
426 jsonAppendString(pOut, pNode->u.zJContent, pNode->n); in jsonRenderNode()
433 assert( pNode->eU==1 ); in jsonRenderNode()
434 jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); in jsonRenderNode()
441 while( j<=pNode->n ){ in jsonRenderNode()
442 if( (pNode[j].jnFlags & JNODE_REMOVE)==0 ){ in jsonRenderNode()
444 jsonRenderNode(&pNode[j], pOut, aReplace); in jsonRenderNode()
446 j += jsonNodeSize(&pNode[j]); in jsonRenderNode()
448 if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; in jsonRenderNode()
449 assert( pNode->eU==2 ); in jsonRenderNode()
450 pNode = &pNode[pNode->u.iAppend]; in jsonRenderNode()
460 while( j<=pNode->n ){ in jsonRenderNode()
461 if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){ in jsonRenderNode()
463 jsonRenderNode(&pNode[j], pOut, aReplace); in jsonRenderNode()
465 jsonRenderNode(&pNode[j+1], pOut, aReplace); in jsonRenderNode()
467 j += 1 + jsonNodeSize(&pNode[j+1]); in jsonRenderNode()
469 if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; in jsonRenderNode()
470 assert( pNode->eU==2 ); in jsonRenderNode()
471 pNode = &pNode[pNode->u.iAppend]; in jsonRenderNode()
484 JsonNode *pNode, /* Node to return */ in jsonReturnJson() argument
490 jsonRenderNode(pNode, &s, aReplace); in jsonReturnJson()
530 JsonNode *pNode, /* Node to return */ in jsonReturn() argument
534 switch( pNode->eType ){ in jsonReturn()
536 assert( pNode->eType==JSON_NULL ); in jsonReturn()
551 assert( pNode->eU==1 ); in jsonReturn()
552 z = pNode->u.zJContent; in jsonReturn()
561 if( pNode->u.zJContent[0]=='-' ){ in jsonReturn()
571 if( pNode->u.zJContent[0]=='-' ){ i = -i; } in jsonReturn()
581 assert( pNode->eU==1 ); in jsonReturn()
582 z = pNode->u.zJContent; in jsonReturn()
585 assert( pNode->eU==1 ); in jsonReturn()
586 r = strtod(pNode->u.zJContent, 0); in jsonReturn()
595 if( pNode->jnFlags & JNODE_RAW ){ in jsonReturn()
596 assert( pNode->eU==1 ); in jsonReturn()
597 sqlite3_result_text(pCtx, pNode->u.zJContent, pNode->n, in jsonReturn()
601 assert( (pNode->jnFlags & JNODE_RAW)==0 ); in jsonReturn()
602 if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ in jsonReturn()
604 assert( pNode->eU==1 ); in jsonReturn()
605 sqlite3_result_text(pCtx, pNode->u.zJContent+1, pNode->n-2, in jsonReturn()
610 u32 n = pNode->n; in jsonReturn()
614 assert( pNode->eU==1 ); in jsonReturn()
615 z = pNode->u.zJContent; in jsonReturn()
680 jsonReturnJson(pNode, pCtx, aReplace); in jsonReturn()
770 JsonNode *pNode; in jsonParseValue() local
787 pNode = &pParse->aNode[pParse->nNode-1]; in jsonParseValue()
788 if( pNode->eType!=JSON_STRING ) return -1; in jsonParseValue()
789 pNode->jnFlags |= JNODE_LABEL; in jsonParseValue()
960 JsonNode *pNode = &pParse->aNode[i]; in jsonParseFillInParentage() local
963 switch( pNode->eType ){ in jsonParseFillInParentage()
965 for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){ in jsonParseFillInParentage()
971 for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){ in jsonParseFillInParentage()
1074 static int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey){ in jsonLabelCompare() argument
1075 assert( pNode->eU==1 ); in jsonLabelCompare()
1076 if( pNode->jnFlags & JNODE_RAW ){ in jsonLabelCompare()
1077 if( pNode->n!=nKey ) return 0; in jsonLabelCompare()
1078 return strncmp(pNode->u.zJContent, zKey, nKey)==0; in jsonLabelCompare()
1080 if( pNode->n!=nKey+2 ) return 0; in jsonLabelCompare()
1081 return strncmp(pNode->u.zJContent+1, zKey, nKey)==0; in jsonLabelCompare()
1149 JsonNode *pNode; in jsonLookupStep() local
1153 pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); in jsonLookupStep()
1155 if( pNode ){ in jsonLookupStep()
1163 return pNode; in jsonLookupStep()
1227 JsonNode *pNode; in jsonLookupStep() local
1229 pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); in jsonLookupStep()
1231 if( pNode ){ in jsonLookupStep()
1238 return pNode; in jsonLookupStep()
1297 JsonNode *pNode = 0; in jsonLookup() local
1306 pNode = jsonLookupStep(pParse, 0, zPath, pApnd, &zErr); in jsonLookup()
1307 if( zErr==0 ) return pNode; in jsonLookup()
1340 static void jsonRemoveAllNulls(JsonNode *pNode){ in jsonRemoveAllNulls() argument
1342 assert( pNode->eType==JSON_OBJECT ); in jsonRemoveAllNulls()
1343 n = pNode->n; in jsonRemoveAllNulls()
1344 for(i=2; i<=n; i += jsonNodeSize(&pNode[i])+1){ in jsonRemoveAllNulls()
1345 switch( pNode[i].eType ){ in jsonRemoveAllNulls()
1347 pNode[i].jnFlags |= JNODE_REMOVE; in jsonRemoveAllNulls()
1350 jsonRemoveAllNulls(&pNode[i]); in jsonRemoveAllNulls()
1483 JsonNode *pNode; in jsonArrayLengthFunc() local
1490 pNode = jsonLookup(p, zPath, 0, ctx); in jsonArrayLengthFunc()
1492 pNode = p->aNode; in jsonArrayLengthFunc()
1494 if( pNode==0 ){ in jsonArrayLengthFunc()
1497 if( pNode->eType==JSON_ARRAY ){ in jsonArrayLengthFunc()
1498 assert( (pNode->jnFlags & JNODE_APPEND)==0 ); in jsonArrayLengthFunc()
1499 for(i=1; i<=pNode->n; n++){ in jsonArrayLengthFunc()
1500 i += jsonNodeSize(&pNode[i]); in jsonArrayLengthFunc()
1541 JsonNode *pNode; in jsonExtractFunc() local
1573 pNode = jx.bErr ? 0 : jsonLookup(p, jx.zBuf, 0, ctx); in jsonExtractFunc()
1576 pNode = jsonLookup(p, zPath, 0, ctx); in jsonExtractFunc()
1578 if( pNode ){ in jsonExtractFunc()
1580 jsonReturnJson(pNode, ctx, 0); in jsonExtractFunc()
1582 jsonReturn(pNode, ctx, 0); in jsonExtractFunc()
1587 pNode = jsonLookup(p, zPath, 0, ctx); in jsonExtractFunc()
1588 if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0); in jsonExtractFunc()
1598 pNode = jsonLookup(p, zPath, 0, ctx); in jsonExtractFunc()
1601 if( pNode ){ in jsonExtractFunc()
1602 jsonRenderNode(pNode, &jx, 0); in jsonExtractFunc()
1780 JsonNode *pNode; in jsonRemoveFunc() local
1790 pNode = jsonLookup(&x, zPath, 0, ctx); in jsonRemoveFunc()
1792 if( pNode ) pNode->jnFlags |= JNODE_REMOVE; in jsonRemoveFunc()
1813 JsonNode *pNode; in jsonReplaceFunc() local
1826 pNode = jsonLookup(&x, zPath, 0, ctx); in jsonReplaceFunc()
1828 if( pNode ){ in jsonReplaceFunc()
1829 assert( pNode->eU==0 || pNode->eU==1 || pNode->eU==4 ); in jsonReplaceFunc()
1830 testcase( pNode->eU!=0 && pNode->eU!=1 ); in jsonReplaceFunc()
1831 pNode->jnFlags |= (u8)JNODE_REPLACE; in jsonReplaceFunc()
1832 VVA( pNode->eU = 4 ); in jsonReplaceFunc()
1833 pNode->u.iReplace = i + 1; in jsonReplaceFunc()
1865 JsonNode *pNode; in jsonSetFunc() local
1881 pNode = jsonLookup(&x, zPath, &bApnd, ctx); in jsonSetFunc()
1887 }else if( pNode && (bApnd || bIsSet) ){ in jsonSetFunc()
1888 testcase( pNode->eU!=0 && pNode->eU!=1 ); in jsonSetFunc()
1889 assert( pNode->eU!=3 && pNode->eU!=5 ); in jsonSetFunc()
1890 VVA( pNode->eU = 4 ); in jsonSetFunc()
1891 pNode->jnFlags |= (u8)JNODE_REPLACE; in jsonSetFunc()
1892 pNode->u.iReplace = i + 1; in jsonSetFunc()
1919 JsonNode *pNode; in jsonTypeFunc() local
1925 pNode = jsonLookup(p, zPath, 0, ctx); in jsonTypeFunc()
1927 pNode = p->aNode; in jsonTypeFunc()
1929 if( pNode ){ in jsonTypeFunc()
1930 sqlite3_result_text(ctx, jsonType[pNode->eType], -1, SQLITE_STATIC); in jsonTypeFunc()
2283 JsonNode *pNode in jsonAppendObjectPathElement() argument
2287 assert( pNode->eType==JSON_STRING ); in jsonAppendObjectPathElement()
2288 assert( pNode->jnFlags & JNODE_LABEL ); in jsonAppendObjectPathElement()
2289 assert( pNode->eU==1 ); in jsonAppendObjectPathElement()
2290 z = pNode->u.zJContent; in jsonAppendObjectPathElement()
2291 nn = pNode->n; in jsonAppendObjectPathElement()
2312 JsonNode *pNode, *pUp; in jsonEachComputePath() local
2320 pNode = &p->sParse.aNode[i]; in jsonEachComputePath()
2328 if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--; in jsonEachComputePath()
2329 jsonAppendObjectPathElement(pStr, pNode); in jsonEachComputePath()
2537 JsonNode *pNode = 0; in jsonEachFilter() local
2549 pNode = jsonLookupStep(&p->sParse, 0, p->zRoot+1, 0, &zErr); in jsonEachFilter()
2556 }else if( pNode==0 ){ in jsonEachFilter()
2560 pNode = p->sParse.aNode; in jsonEachFilter()
2562 p->iBegin = p->i = (int)(pNode - p->sParse.aNode); in jsonEachFilter()
2563 p->eType = pNode->eType; in jsonEachFilter()
2565 assert( pNode->eU==0 ); in jsonEachFilter()
2566 VVA( pNode->eU = 3 ); in jsonEachFilter()
2567 pNode->u.iKey = 0; in jsonEachFilter()
2568 p->iEnd = p->i + pNode->n + 1; in jsonEachFilter()