← Back to Overview

src/backend/nodes/readfuncs.c

Coverage: 46/47 lines (97.9%)
Total Lines
47
modified
Covered
46
97.9%
Uncovered
1
2.1%
Keyboard navigation
_readRPRPattern() lines 572-648
Modified Lines Coverage: 46/47 lines (97.9%)
LineHitsSourceCommit
572 3028 _readRPRPattern(void) c54ba27Row pattern recognition patch (parse/analysis).
573 - { c54ba27Row pattern recognition patch (parse/analysis).
574 3028 READ_LOCALS(RPRPattern); c54ba27Row pattern recognition patch (parse/analysis).
575 - c54ba27Row pattern recognition patch (parse/analysis).
576 3028 READ_INT_FIELD(numVars); c54ba27Row pattern recognition patch (parse/analysis).
577 3028 READ_INT_FIELD(maxDepth); c54ba27Row pattern recognition patch (parse/analysis).
578 3028 READ_INT_FIELD(numElements); c54ba27Row pattern recognition patch (parse/analysis).
579 - c54ba27Row pattern recognition patch (parse/analysis).
580 - /* Read varNames array */ c54ba27Row pattern recognition patch (parse/analysis).
581 3028 token = pg_strtok(&length); /* skip :varNames */ c54ba27Row pattern recognition patch (parse/analysis).
582 3028 token = pg_strtok(&length); /* get '(' or '<>' */ c54ba27Row pattern recognition patch (parse/analysis).
583 3028 if (local_node->numVars > 0 && token[0] == '(') c54ba27Row pattern recognition patch (parse/analysis).
584 - { c54ba27Row pattern recognition patch (parse/analysis).
585 3028 local_node->varNames = palloc_array(char *, local_node->numVars); c54ba27Row pattern recognition patch (parse/analysis).
586 10228 for (int i = 0; i < local_node->numVars; i++) c54ba27Row pattern recognition patch (parse/analysis).
587 - { c54ba27Row pattern recognition patch (parse/analysis).
588 7200 token = pg_strtok(&length); c54ba27Row pattern recognition patch (parse/analysis).
589 7200 local_node->varNames[i] = debackslash(token, length); c54ba27Row pattern recognition patch (parse/analysis).
590 - } c54ba27Row pattern recognition patch (parse/analysis).
591 3028 token = pg_strtok(&length); /* skip ')' */ c54ba27Row pattern recognition patch (parse/analysis).
592 - } c54ba27Row pattern recognition patch (parse/analysis).
593 - else c54ba27Row pattern recognition patch (parse/analysis).
594 - { c54ba27Row pattern recognition patch (parse/analysis).
595 0 local_node->varNames = NULL; c54ba27Row pattern recognition patch (parse/analysis).
596 - } c54ba27Row pattern recognition patch (parse/analysis).
597 - c54ba27Row pattern recognition patch (parse/analysis).
598 - /* Read elements array */ c54ba27Row pattern recognition patch (parse/analysis).
599 3028 token = pg_strtok(&length); /* skip :elements */ c54ba27Row pattern recognition patch (parse/analysis).
600 3028 token = pg_strtok(&length); /* get '(' */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
601 - /* out always emits the array (makeRPRPattern guarantees numElements >= 2) */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
602 3028 Assert(local_node->numElements > 0 && token[0] == '('); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
603 3028 local_node->elements = palloc0_array(RPRPatternElement, local_node->numElements); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
604 148620 for (int i = 0; i < local_node->numElements; i++) 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
605 - { c54ba27Row pattern recognition patch (parse/analysis).
606 145592 RPRPatternElement *elem = &local_node->elements[i]; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
607 145592 int varId, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
608 - flags, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
609 - depth, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
610 - min, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
611 - max, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
612 - next, 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
613 - jump; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
614 - 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
615 - /* Parse "(varId depth flags min max next jump)" */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
616 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
617 145592 varId = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
618 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
619 145592 depth = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
620 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
621 145592 flags = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
622 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
623 145592 min = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
624 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
625 145592 max = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
626 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
627 145592 next = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
628 145592 token = pg_strtok(&length); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
629 145592 jump = atoi(token); 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
630 145592 token = pg_strtok(&length); /* skip ')' */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
631 - 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
632 145592 elem->varId = (RPRVarId) varId; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
633 145592 elem->flags = (RPRElemFlags) flags; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
634 145592 elem->depth = (RPRDepth) depth; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
635 145592 elem->min = (RPRQuantity) min; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
636 145592 elem->max = (RPRQuantity) max; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
637 145592 elem->next = (RPRElemIdx) next; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
638 145592 elem->jump = (RPRElemIdx) jump; 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
639 - 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
640 - /* Read next element's '(' or end */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
641 145592 if (i < local_node->numElements - 1) 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
642 145592 token = pg_strtok(&length); /* get '(' */ 5afabadAdd row pattern recognition coverage tests and tidy unreachable code
643 - } c54ba27Row pattern recognition patch (parse/analysis).
644 - c54ba27Row pattern recognition patch (parse/analysis).
645 3028 READ_BOOL_FIELD(isAbsorbable); c54ba27Row pattern recognition patch (parse/analysis).
646 - c54ba27Row pattern recognition patch (parse/analysis).
647 3028 READ_DONE(); c54ba27Row pattern recognition patch (parse/analysis).
648 - } c54ba27Row pattern recognition patch (parse/analysis).