| Line | Hits | Source | Commit |
|---|---|---|---|
| 2912 | 465 | append_rpr_quantifier(StringInfo buf, RPRPatternElement *elem) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2913 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 2914 | - | /* Append quantifier if not {1,1} */ | 56aa37bRow pattern recognition patch (executor and commands). |
| 2915 | 465 | if (elem->min == 0 && elem->max == RPR_QUANTITY_INF) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2916 | 13 | appendStringInfoChar(buf, '*'); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2917 | 452 | else if (elem->min == 1 && elem->max == RPR_QUANTITY_INF) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2918 | 79 | appendStringInfoChar(buf, '+'); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2919 | 373 | else if (elem->min == 0 && elem->max == 1) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2920 | 3 | appendStringInfoChar(buf, '?'); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2921 | 370 | else if (elem->max == RPR_QUANTITY_INF) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2922 | 32 | appendStringInfo(buf, "{%d,}", elem->min); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2923 | 338 | else if (elem->min == elem->max && elem->min != 1) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2924 | 27 | appendStringInfo(buf, "{%d}", elem->min); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2925 | 311 | else if (elem->min != 1 || elem->max != 1) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2926 | 13 | appendStringInfo(buf, "{%d,%d}", elem->min, elem->max); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2927 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2928 | 465 | if (RPRElemIsReluctant(elem)) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2929 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2930 | 0 | if (elem->min == 1 && elem->max == 1) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2931 | 0 | appendStringInfo(buf, "{1}"); /* make reluctant ? unambiguous */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2932 | 0 | appendStringInfoChar(buf, '?'); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2933 | 0 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2934 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2935 | - | /* Append absorption markers: " for judgment point, ' for branch only */ | 56aa37bRow pattern recognition patch (executor and commands). |
| 2936 | 465 | if (RPRElemIsAbsorbable(elem)) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2937 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2938 | 78 | Assert(elem->max == RPR_QUANTITY_INF); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2939 | 78 | appendStringInfoChar(buf, '"'); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2940 | 78 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2941 | 387 | else if (RPRElemIsAbsorbableBranch(elem)) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2942 | 41 | appendStringInfoChar(buf, '\''); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2943 | 465 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 2953 | 165 | deparse_rpr_pattern(RPRPattern *pattern) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2954 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 2955 | 165 | StringInfoData buf; | 56aa37bRow pattern recognition patch (executor and commands). |
| 2956 | 165 | int idx = 0; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2957 | 165 | RPRDepth prevDepth = 0; | 56aa37bRow pattern recognition patch (executor and commands). |
| 2958 | 165 | bool needSpace = false; | 56aa37bRow pattern recognition patch (executor and commands). |
| 2959 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2960 | 165 | Assert(pattern != NULL && pattern->numElements >= 2); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2961 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2962 | 165 | initStringInfo(&buf); | 56aa37bRow pattern recognition patch (executor and commands). |
| 2963 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2964 | 165 | deparse_rpr_elements(pattern, &idx, &buf, RPR_DEPTH_NONE, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2965 | - | &prevDepth, &needSpace); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2966 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 2967 | - | /* Close remaining open parens */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2968 | 179 | while (prevDepth > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2969 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2970 | 14 | appendStringInfoChar(&buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2971 | 14 | prevDepth--; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2972 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2973 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 2974 | 330 | return buf.data; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2975 | 165 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 2985 | 232 | deparse_rpr_elements(RPRPattern *pattern, int *idx, StringInfoData *buf, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2986 | - | RPRDepth groupDepth, RPRDepth *prevDepth, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2987 | - | bool *needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2988 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2989 | 232 | List *altSeps = NIL; /* pending alternation separator indices */ | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 2990 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 2991 | 745 | while (*idx < pattern->numElements) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2992 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 2993 | 745 | RPRPatternElement *elem = &pattern->elements[*idx]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2994 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2995 | 745 | if (RPRElemIsFin(elem)) | 56aa37bRow pattern recognition patch (executor and commands). |
| 2996 | 165 | break; | 56aa37bRow pattern recognition patch (executor and commands). |
| 2997 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 2998 | - | /* Stop at END matching our group depth; caller handles it */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 2999 | 580 | if (RPRElemIsEnd(elem) && elem->depth == groupDepth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3000 | 67 | break; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3001 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3002 | - | /* Alternation separator */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3003 | 513 | if (list_member_int(altSeps, *idx)) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3004 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3005 | - | /* Close parens to match separator depth first */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3006 | 60 | while (*prevDepth > elem->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3007 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3008 | 1 | appendStringInfoChar(buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3009 | 1 | (*prevDepth)--; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3010 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3011 | 59 | appendStringInfoString(buf, " | "); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3012 | 59 | *needSpace = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3013 | 59 | altSeps = list_delete_int(altSeps, *idx); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3014 | 59 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3015 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3016 | - | /* Dispatch to element-type handlers */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3017 | 513 | if (RPRElemIsAlt(elem)) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3018 | 96 | deparse_rpr_alt(pattern, idx, buf, prevDepth, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3019 | 48 | needSpace, &altSeps); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3020 | 465 | else if (RPRElemIsBegin(elem)) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3021 | 134 | deparse_rpr_group(pattern, idx, buf, prevDepth, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3022 | 67 | needSpace); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3023 | 398 | else if (RPRElemIsVar(elem)) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3024 | 796 | deparse_rpr_var(pattern, idx, buf, prevDepth, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3025 | 398 | needSpace, &altSeps); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3026 | 745 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3027 | 232 | list_free(altSeps); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3028 | 232 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3041 | 67 | deparse_rpr_group(RPRPattern *pattern, int *idx, StringInfoData *buf, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3042 | - | RPRDepth *prevDepth, bool *needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3043 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3044 | 67 | RPRPatternElement *begin = &pattern->elements[*idx]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3045 | 67 | RPRDepth childDepth = begin->depth + 1; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3046 | 67 | bool singleAlt = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3047 | 67 | RPRPatternElement *end; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3048 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3049 | - | /* | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3050 | - | * Check if this group wraps a single ALT with no siblings. Scan from | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 3051 | - | * after ALT to END: if no element at childDepth exists, the ALT is the | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 3052 | - | * sole child. | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 3053 | - | */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3054 | 67 | if (*idx + 1 < pattern->numElements && | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3055 | 67 | RPRElemIsAlt(&pattern->elements[*idx + 1])) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3056 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3057 | 20 | int j; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3058 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3059 | 20 | singleAlt = true; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3060 | 65 | for (j = *idx + 2; j < pattern->numElements; j++) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3061 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3062 | 65 | RPRPatternElement *e = &pattern->elements[j]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3063 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3064 | 65 | if (RPRElemIsEnd(e) && e->depth == begin->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3065 | 19 | break; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3066 | 46 | if (e->depth <= childDepth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3067 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3068 | 1 | singleAlt = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3069 | 1 | break; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3070 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3071 | 65 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3072 | 20 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3073 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3074 | - | /* Open group paren (unless single ALT provides it) */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3075 | 67 | if (!singleAlt) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3076 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3077 | 48 | if (*needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3078 | 8 | appendStringInfoChar(buf, ' '); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3079 | 48 | appendStringInfoChar(buf, '('); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3080 | 48 | *needSpace = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3081 | 48 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3082 | 67 | *prevDepth = childDepth; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3083 | 67 | (*idx)++; /* consume BEGIN */ | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 3084 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3085 | - | /* Process group children; stops at matching END */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3086 | 134 | deparse_rpr_elements(pattern, idx, buf, begin->depth, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3087 | 67 | prevDepth, needSpace); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3088 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3089 | - | /* Consume END and output quantifier */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3090 | 67 | Assert(*idx < pattern->numElements); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3091 | 67 | end = &pattern->elements[*idx]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3092 | 67 | Assert(RPRElemIsEnd(end) && end->depth == begin->depth); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3093 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3094 | 87 | while (*prevDepth > end->depth + 1) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3095 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3096 | 20 | appendStringInfoChar(buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3097 | 20 | (*prevDepth)--; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3098 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3099 | 67 | if (!singleAlt) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3100 | 48 | appendStringInfoChar(buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3101 | 67 | append_rpr_quantifier(buf, end); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3102 | 67 | *prevDepth = end->depth; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3103 | 67 | *needSpace = true; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3104 | 67 | (*idx)++; /* consume END */ | 9d2796cReview NFA executor and add comprehensive runtime tests |
| 3105 | 67 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3111 | 48 | deparse_rpr_alt(RPRPattern *pattern, int *idx, StringInfoData *buf, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3112 | - | RPRDepth *prevDepth, bool *needSpace, List **altSeps) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3113 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3114 | 48 | RPRPatternElement *elem = &pattern->elements[*idx]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3115 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3116 | - | /* Close parens for depth decrease */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3117 | 51 | while (*prevDepth > elem->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3118 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3119 | 3 | appendStringInfoChar(buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3120 | 3 | (*prevDepth)--; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3121 | 3 | *needSpace = true; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3122 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3123 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3124 | - | /* Open parens up to ALT's depth */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3125 | 52 | while (*prevDepth < elem->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3126 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3127 | 4 | if (*needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3128 | 1 | appendStringInfoChar(buf, ' '); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3129 | 4 | appendStringInfoChar(buf, '('); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3130 | 4 | (*prevDepth)++; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3131 | 4 | *needSpace = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3132 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3133 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3134 | - | /* Register next alternation separator position */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3135 | 48 | if (elem->next != RPR_ELEMIDX_INVALID) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3136 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3137 | 48 | RPRPatternElement *firstElem = &pattern->elements[elem->next]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3138 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3139 | 48 | if (firstElem->jump != RPR_ELEMIDX_INVALID) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3140 | 48 | *altSeps = lappend_int(*altSeps, firstElem->jump); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3141 | 48 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3142 | 48 | if (elem->jump != RPR_ELEMIDX_INVALID) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3143 | 4 | *altSeps = lappend_int(*altSeps, elem->jump); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3144 | 48 | (*idx)++; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3145 | 48 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3151 | 398 | deparse_rpr_var(RPRPattern *pattern, int *idx, StringInfoData *buf, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3152 | - | RPRDepth *prevDepth, bool *needSpace, List **altSeps) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3153 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3154 | 398 | RPRPatternElement *elem = &pattern->elements[*idx]; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3155 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3156 | - | /* Open parens for depth increase */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3157 | 442 | while (*prevDepth < elem->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3158 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3159 | 44 | if (*needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3160 | 8 | appendStringInfoChar(buf, ' '); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3161 | 44 | appendStringInfoChar(buf, '('); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3162 | 44 | (*prevDepth)++; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3163 | 44 | *needSpace = false; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3164 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3165 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3166 | - | /* Close parens for depth decrease */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3167 | 408 | while (*prevDepth > elem->depth) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3168 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3169 | 10 | appendStringInfoChar(buf, ')'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3170 | 10 | (*prevDepth)--; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3171 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3172 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3173 | 398 | if (*needSpace) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3174 | 157 | appendStringInfoChar(buf, ' '); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3175 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3176 | 398 | Assert(elem->varId < pattern->numVars); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3177 | 398 | appendStringInfoString(buf, pattern->varNames[elem->varId]); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3178 | 398 | append_rpr_quantifier(buf, elem); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3179 | 398 | *needSpace = true; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3180 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3181 | 398 | if (elem->jump != RPR_ELEMIDX_INVALID) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3182 | 55 | *altSeps = lappend_int(*altSeps, elem->jump); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3183 | 398 | (*idx)++; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3184 | 398 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3190 | - | show_window_def(WindowAggState *planstate, List *ancestors, ExplainState *es) | - |
| 3191 | - | { | - |
| 3192 | - | WindowAgg *wagg = (WindowAgg *) planstate->ss.ps.plan; | - |
| 3193 | - | StringInfoData wbuf; | - |
| 3194 | - | bool needspace = false; | - |
| 3195 | - | - | |
| 3196 | - | initStringInfo(&wbuf); | - |
| 3197 | - | appendStringInfo(&wbuf, "%s AS (", quote_identifier(wagg->winname)); | - |
| 3198 | - | - | |
| 3199 | - | /* The key columns refer to the tlist of the child plan */ | - |
| 3200 | - | ancestors = lcons(wagg, ancestors); | - |
| 3201 | - | if (wagg->partNumCols > 0) | - |
| 3202 | - | { | - |
| 3203 | - | appendStringInfoString(&wbuf, "PARTITION BY "); | - |
| 3204 | - | show_window_keys(&wbuf, outerPlanState(planstate), | - |
| 3205 | - | wagg->partNumCols, wagg->partColIdx, | - |
| 3206 | - | ancestors, es); | - |
| 3207 | - | needspace = true; | - |
| 3208 | - | } | - |
| 3209 | - | if (wagg->ordNumCols > 0) | - |
| 3210 | - | { | - |
| 3211 | - | if (needspace) | - |
| 3212 | - | appendStringInfoChar(&wbuf, ' '); | - |
| 3213 | - | appendStringInfoString(&wbuf, "ORDER BY "); | - |
| 3214 | - | show_window_keys(&wbuf, outerPlanState(planstate), | - |
| 3215 | - | wagg->ordNumCols, wagg->ordColIdx, | - |
| 3216 | - | ancestors, es); | - |
| 3217 | - | needspace = true; | - |
| 3218 | - | } | - |
| 3219 | - | ancestors = list_delete_first(ancestors); | - |
| 3220 | - | if (wagg->frameOptions & FRAMEOPTION_NONDEFAULT) | - |
| 3221 | - | { | - |
| 3222 | - | List *context; | - |
| 3223 | - | bool useprefix; | - |
| 3224 | - | char *framestr; | - |
| 3225 | - | - | |
| 3226 | - | /* Set up deparsing context for possible frame expressions */ | - |
| 3227 | - | context = set_deparse_context_plan(es->deparse_cxt, | - |
| 3228 | - | (Plan *) wagg, | - |
| 3229 | - | ancestors); | - |
| 3230 | - | useprefix = (es->rtable_size > 1 || es->verbose); | - |
| 3231 | - | framestr = get_window_frame_options_for_explain(wagg->frameOptions, | - |
| 3232 | - | wagg->startOffset, | - |
| 3233 | - | wagg->endOffset, | - |
| 3234 | - | context, | - |
| 3235 | - | useprefix); | - |
| 3236 | - | if (needspace) | - |
| 3237 | - | appendStringInfoChar(&wbuf, ' '); | - |
| 3238 | - | appendStringInfoString(&wbuf, framestr); | - |
| 3239 | - | pfree(framestr); | - |
| 3240 | - | } | - |
| 3241 | - | appendStringInfoChar(&wbuf, ')'); | - |
| 3242 | - | ExplainPropertyText("Window", wbuf.data, es); | - |
| 3243 | - | pfree(wbuf.data); | - |
| 3244 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3245 | - | /* Show Row Pattern Recognition pattern if present */ | 56aa37bRow pattern recognition patch (executor and commands). |
| 3246 | 165 | if (wagg->rpPattern != NULL) | 56aa37bRow pattern recognition patch (executor and commands). |
| 3247 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3248 | 165 | char *patternStr = deparse_rpr_pattern(wagg->rpPattern); | 56aa37bRow pattern recognition patch (executor and commands). |
| 3249 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3250 | 165 | if (patternStr != NULL) | 56aa37bRow pattern recognition patch (executor and commands). |
| 3251 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3252 | 165 | ExplainPropertyText("Pattern", patternStr, es); | 56aa37bRow pattern recognition patch (executor and commands). |
| 3253 | 165 | pfree(patternStr); | 56aa37bRow pattern recognition patch (executor and commands). |
| 3254 | 165 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3255 | 165 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3256 | - | } | - |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3804 | - | show_windowagg_info(WindowAggState *winstate, ExplainState *es) | - |
| 3805 | - | { | - |
| 3806 | - | char *maxStorageType; | - |
| 3807 | - | int64 maxSpaceUsed; | - |
| 3808 | 165 | WindowAgg *wagg = (WindowAgg *) winstate->ss.ps.plan; | 56aa37bRow pattern recognition patch (executor and commands). |
| 3809 | - | - | |
| 3810 | - | Tuplestorestate *tupstore = winstate->buffer; | - |
| 3811 | - | - | |
| 3812 | - | /* | - |
| 3813 | - | * Nothing to show if ANALYZE option wasn't used or if execution didn't | - |
| 3814 | - | * get as far as creating the tuplestore. | - |
| 3815 | - | */ | - |
| 3816 | - | if (!es->analyze || tupstore == NULL) | - |
| 3817 | - | return; | - |
| 3818 | - | - | |
| 3819 | - | tuplestore_get_stats(tupstore, &maxStorageType, &maxSpaceUsed); | - |
| 3820 | - | show_storage_info(maxStorageType, maxSpaceUsed, es); | - |
| 3821 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3822 | - | /* Show NFA statistics for Row Pattern Recognition */ | 56aa37bRow pattern recognition patch (executor and commands). |
| 3823 | 84 | if (wagg->rpPattern != NULL) | 56aa37bRow pattern recognition patch (executor and commands). |
| 3824 | 84 | show_rpr_nfa_stats(winstate, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3825 | 165 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| Line | Hits | Source | Commit |
|---|---|---|---|
| 3831 | 84 | show_rpr_nfa_stats(WindowAggState *winstate, ExplainState *es) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3832 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3833 | 84 | if (es->format != EXPLAIN_FORMAT_TEXT) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3834 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3835 | - | /* State and context counters */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3836 | 5 | ExplainPropertyInteger("NFA States Peak", NULL, winstate->nfaStatesMax, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3837 | 5 | ExplainPropertyInteger("NFA States Total", NULL, winstate->nfaStatesTotalCreated, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3838 | 5 | ExplainPropertyInteger("NFA States Merged", NULL, winstate->nfaStatesMerged, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3839 | 5 | ExplainPropertyInteger("NFA Contexts Peak", NULL, winstate->nfaContextsMax, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3840 | 5 | ExplainPropertyInteger("NFA Contexts Total", NULL, winstate->nfaContextsTotalCreated, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3841 | 5 | ExplainPropertyInteger("NFA Contexts Absorbed", NULL, winstate->nfaContextsAbsorbed, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3842 | 5 | ExplainPropertyInteger("NFA Contexts Skipped", NULL, winstate->nfaContextsSkipped, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3843 | 5 | ExplainPropertyInteger("NFA Contexts Pruned", NULL, winstate->nfaContextsPruned, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3844 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3845 | - | /* Match/mismatch counts and length statistics */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3846 | 5 | ExplainPropertyInteger("NFA Matched", NULL, winstate->nfaMatchesSucceeded, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3847 | 5 | ExplainPropertyInteger("NFA Mismatched", NULL, winstate->nfaMatchesFailed, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3848 | 5 | if (winstate->nfaMatchesSucceeded > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3849 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3850 | 5 | ExplainPropertyInteger("NFA Match Length Min", NULL, winstate->nfaMatchLen.min, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3851 | 5 | ExplainPropertyInteger("NFA Match Length Max", NULL, winstate->nfaMatchLen.max, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3852 | 5 | ExplainPropertyFloat("NFA Match Length Avg", NULL, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3853 | 5 | (double) winstate->nfaMatchLen.total / winstate->nfaMatchesSucceeded, 1, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3854 | 5 | es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3855 | 5 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3856 | 5 | if (winstate->nfaMatchesFailed > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3857 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3858 | 2 | ExplainPropertyInteger("NFA Mismatch Length Min", NULL, winstate->nfaFailLen.min, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3859 | 2 | ExplainPropertyInteger("NFA Mismatch Length Max", NULL, winstate->nfaFailLen.max, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3860 | 2 | ExplainPropertyFloat("NFA Mismatch Length Avg", NULL, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3861 | 2 | (double) winstate->nfaFailLen.total / winstate->nfaMatchesFailed, 1, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3862 | 2 | es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3863 | 2 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3864 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3865 | - | /* Absorbed/skipped context length statistics */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3866 | 5 | if (winstate->nfaContextsAbsorbed > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3867 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3868 | 1 | ExplainPropertyInteger("NFA Absorbed Length Min", NULL, winstate->nfaAbsorbedLen.min, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3869 | 1 | ExplainPropertyInteger("NFA Absorbed Length Max", NULL, winstate->nfaAbsorbedLen.max, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3870 | 1 | ExplainPropertyFloat("NFA Absorbed Length Avg", NULL, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3871 | 1 | (double) winstate->nfaAbsorbedLen.total / winstate->nfaContextsAbsorbed, 1, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3872 | 1 | es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3873 | 1 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3874 | 5 | if (winstate->nfaContextsSkipped > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3875 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3876 | 5 | ExplainPropertyInteger("NFA Skipped Length Min", NULL, winstate->nfaSkippedLen.min, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3877 | 5 | ExplainPropertyInteger("NFA Skipped Length Max", NULL, winstate->nfaSkippedLen.max, es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3878 | 5 | ExplainPropertyFloat("NFA Skipped Length Avg", NULL, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3879 | 5 | (double) winstate->nfaSkippedLen.total / winstate->nfaContextsSkipped, 1, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3880 | 5 | es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3881 | 5 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3882 | 5 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3883 | - | else | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3884 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3885 | - | /* State and context counters */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3886 | 79 | ExplainIndentText(es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3887 | 158 | appendStringInfo(es->str, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3888 | - | "NFA States: " INT64_FORMAT " peak, " INT64_FORMAT " total, " INT64_FORMAT " merged\n", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3889 | 79 | winstate->nfaStatesMax, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3890 | 79 | winstate->nfaStatesTotalCreated, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3891 | 79 | winstate->nfaStatesMerged); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3892 | 79 | ExplainIndentText(es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3893 | 158 | appendStringInfo(es->str, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3894 | - | "NFA Contexts: " INT64_FORMAT " peak, " INT64_FORMAT " total, " INT64_FORMAT " pruned\n", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3895 | 79 | winstate->nfaContextsMax, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3896 | 79 | winstate->nfaContextsTotalCreated, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3897 | 79 | winstate->nfaContextsPruned); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3898 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3899 | - | /* Match/mismatch counts with length min/max/avg */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3900 | 79 | ExplainIndentText(es); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3901 | 79 | appendStringInfo(es->str, "NFA: "); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3902 | 79 | if (winstate->nfaMatchesSucceeded > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3903 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3904 | 74 | double avgLen = (double) winstate->nfaMatchLen.total / winstate->nfaMatchesSucceeded; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3905 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3906 | 148 | appendStringInfo(es->str, | 56aa37bRow pattern recognition patch (executor and commands). |
| 3907 | - | INT64_FORMAT " matched (len " INT64_FORMAT "/" INT64_FORMAT "/%.1f)", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3908 | 74 | winstate->nfaMatchesSucceeded, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3909 | 74 | winstate->nfaMatchLen.min, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3910 | 74 | winstate->nfaMatchLen.max, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3911 | 74 | avgLen); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3912 | 74 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3913 | - | else | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3914 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3915 | 5 | appendStringInfo(es->str, "0 matched"); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3916 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3917 | 79 | if (winstate->nfaMatchesFailed > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3918 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3919 | 23 | double avgFail = (double) winstate->nfaFailLen.total / winstate->nfaMatchesFailed; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3920 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3921 | 46 | appendStringInfo(es->str, | 56aa37bRow pattern recognition patch (executor and commands). |
| 3922 | - | ", " INT64_FORMAT " mismatched (len " INT64_FORMAT "/" INT64_FORMAT "/%.1f)", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3923 | 23 | winstate->nfaMatchesFailed, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3924 | 23 | winstate->nfaFailLen.min, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3925 | 23 | winstate->nfaFailLen.max, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3926 | 23 | avgFail); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3927 | 23 | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3928 | - | else | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3929 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3930 | 56 | appendStringInfo(es->str, ", 0 mismatched"); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3931 | - | } | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3932 | 79 | appendStringInfoChar(es->str, '\n'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3933 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3934 | - | /* Absorbed/skipped context length statistics */ | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3935 | 79 | if (winstate->nfaContextsAbsorbed > 0 || winstate->nfaContextsSkipped > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3936 | - | { | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3937 | 68 | ExplainIndentText(es); | 56aa37bRow pattern recognition patch (executor and commands). |
| 3938 | 68 | appendStringInfo(es->str, "NFA: "); | 56aa37bRow pattern recognition patch (executor and commands). |
| 3939 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3940 | 68 | if (winstate->nfaContextsAbsorbed > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3941 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3942 | 30 | double avgAbsorbed = (double) winstate->nfaAbsorbedLen.total / winstate->nfaContextsAbsorbed; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3943 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3944 | 60 | appendStringInfo(es->str, | 56aa37bRow pattern recognition patch (executor and commands). |
| 3945 | - | INT64_FORMAT " absorbed (len " INT64_FORMAT "/" INT64_FORMAT "/%.1f)", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3946 | 30 | winstate->nfaContextsAbsorbed, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3947 | 30 | winstate->nfaAbsorbedLen.min, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3948 | 30 | winstate->nfaAbsorbedLen.max, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3949 | 30 | avgAbsorbed); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3950 | 30 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3951 | - | else | 56aa37bRow pattern recognition patch (executor and commands). |
| 3952 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3953 | 38 | appendStringInfo(es->str, "0 absorbed"); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3954 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3955 | - | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse | |
| 3956 | 68 | if (winstate->nfaContextsSkipped > 0) | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3957 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3958 | 64 | double avgSkipped = (double) winstate->nfaSkippedLen.total / winstate->nfaContextsSkipped; | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3959 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3960 | 128 | appendStringInfo(es->str, | 56aa37bRow pattern recognition patch (executor and commands). |
| 3961 | - | ", " INT64_FORMAT " skipped (len " INT64_FORMAT "/" INT64_FORMAT "/%.1f)", | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3962 | 64 | winstate->nfaContextsSkipped, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3963 | 64 | winstate->nfaSkippedLen.min, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3964 | 64 | winstate->nfaSkippedLen.max, | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3965 | 64 | avgSkipped); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3966 | 64 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3967 | - | else | 56aa37bRow pattern recognition patch (executor and commands). |
| 3968 | - | { | 56aa37bRow pattern recognition patch (executor and commands). |
| 3969 | 4 | appendStringInfo(es->str, ", 0 skipped"); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3970 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3971 | - | 56aa37bRow pattern recognition patch (executor and commands). | |
| 3972 | 68 | appendStringInfoChar(es->str, '\n'); | 6be1666Fix RPR pattern compilation crash and refactor EXPLAIN deparse |
| 3973 | 68 | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3974 | - | } | 56aa37bRow pattern recognition patch (executor and commands). |
| 3975 | - | } | - |