← Back to Overview

src/backend/utils/adt/ruleutils.c

Coverage: 54/58 lines (93.1%)
Total Lines
58
modified
Covered
54
93.1%
Uncovered
4
6.9%
키보드 네비게이션
get_rule_pattern() lines 6755-6784
Modified Lines Coverage: 19/19 lines (100.0%)
LineHitsSourceCommit
6755 3 get_rule_pattern(List *patternVariable, List *patternRegexp, 5e2496bRow pattern recognition patch (rewriter).
6756 - bool force_colno, deparse_context *context) 5e2496bRow pattern recognition patch (rewriter).
6757 - { 5e2496bRow pattern recognition patch (rewriter).
6758 3 StringInfo buf = context->buf; 5e2496bRow pattern recognition patch (rewriter).
6759 3 const char *sep; 5e2496bRow pattern recognition patch (rewriter).
6760 3 ListCell *lc_var, 5e2496bRow pattern recognition patch (rewriter).
6761 3 *lc_reg = list_head(patternRegexp); 5e2496bRow pattern recognition patch (rewriter).
6762 - 5e2496bRow pattern recognition patch (rewriter).
6763 3 sep = ""; 5e2496bRow pattern recognition patch (rewriter).
6764 3 appendStringInfoChar(buf, '('); 5e2496bRow pattern recognition patch (rewriter).
6765 12 foreach(lc_var, patternVariable) 5e2496bRow pattern recognition patch (rewriter).
6766 - { 5e2496bRow pattern recognition patch (rewriter).
6767 9 char *variable = strVal((String *) lfirst(lc_var)); 5e2496bRow pattern recognition patch (rewriter).
6768 9 char *regexp = NULL; 5e2496bRow pattern recognition patch (rewriter).
6769 - 5e2496bRow pattern recognition patch (rewriter).
6770 9 if (lc_reg != NULL) 5e2496bRow pattern recognition patch (rewriter).
6771 - { 5e2496bRow pattern recognition patch (rewriter).
6772 9 regexp = strVal((String *) lfirst(lc_reg)); 5e2496bRow pattern recognition patch (rewriter).
6773 - 5e2496bRow pattern recognition patch (rewriter).
6774 9 lc_reg = lnext(patternRegexp, lc_reg); 5e2496bRow pattern recognition patch (rewriter).
6775 - } 5e2496bRow pattern recognition patch (rewriter).
6776 - 5e2496bRow pattern recognition patch (rewriter).
6777 9 appendStringInfo(buf, "%s%s", sep, variable); 5e2496bRow pattern recognition patch (rewriter).
6778 9 if (regexp !=NULL) 5e2496bRow pattern recognition patch (rewriter).
6779 9 appendStringInfoString(buf, regexp); 5e2496bRow pattern recognition patch (rewriter).
6780 - 5e2496bRow pattern recognition patch (rewriter).
6781 9 sep = " "; 5e2496bRow pattern recognition patch (rewriter).
6782 - } 5e2496bRow pattern recognition patch (rewriter).
6783 3 appendStringInfoChar(buf, ')'); 5e2496bRow pattern recognition patch (rewriter).
6784 3 } 5e2496bRow pattern recognition patch (rewriter).
get_rule_define() lines 6790-6807
Modified Lines Coverage: 11/11 lines (100.0%)
LineHitsSourceCommit
6790 3 get_rule_define(List *defineClause, List *patternVariables, 5e2496bRow pattern recognition patch (rewriter).
6791 - bool force_colno, deparse_context *context) 5e2496bRow pattern recognition patch (rewriter).
6792 - { 5e2496bRow pattern recognition patch (rewriter).
6793 3 StringInfo buf = context->buf; 5e2496bRow pattern recognition patch (rewriter).
6794 3 const char *sep; 5e2496bRow pattern recognition patch (rewriter).
6795 3 ListCell *lc_def; 5e2496bRow pattern recognition patch (rewriter).
6796 - 5e2496bRow pattern recognition patch (rewriter).
6797 3 sep = " "; 5e2496bRow pattern recognition patch (rewriter).
6798 - 5e2496bRow pattern recognition patch (rewriter).
6799 12 foreach(lc_def, defineClause) 5e2496bRow pattern recognition patch (rewriter).
6800 - { 5e2496bRow pattern recognition patch (rewriter).
6801 9 TargetEntry *te = (TargetEntry *) lfirst(lc_def); 5e2496bRow pattern recognition patch (rewriter).
6802 - 5e2496bRow pattern recognition patch (rewriter).
6803 9 appendStringInfo(buf, "%s%s AS ", sep, te->resname); 5e2496bRow pattern recognition patch (rewriter).
6804 9 get_rule_expr((Node *) te->expr, context, false); 5e2496bRow pattern recognition patch (rewriter).
6805 9 sep = ",\n "; 5e2496bRow pattern recognition patch (rewriter).
6806 - } 5e2496bRow pattern recognition patch (rewriter).
6807 3 } 5e2496bRow pattern recognition patch (rewriter).
get_rule_windowspec() lines 6848-6946
Modified Lines Coverage: 24/28 lines (85.7%)
LineHitsSourceCommit
6848 - get_rule_windowspec(WindowClause *wc, List *targetList, -
6849 - deparse_context *context) -
6850 - { -
6851 - StringInfo buf = context->buf; -
6852 - bool needspace = false; -
6853 - const char *sep; -
6854 - ListCell *l; -
6855 - -
6856 - appendStringInfoChar(buf, '('); -
6857 - if (wc->refname) -
6858 - { -
6859 - appendStringInfoString(buf, quote_identifier(wc->refname)); -
6860 - needspace = true; -
6861 - } -
6862 - /* partition clauses are always inherited, so only print if no refname */ -
6863 - if (wc->partitionClause && !wc->refname) -
6864 - { -
6865 - if (needspace) -
6866 - appendStringInfoChar(buf, ' '); -
6867 - appendStringInfoString(buf, "PARTITION BY "); -
6868 - sep = ""; -
6869 - foreach(l, wc->partitionClause) -
6870 - { -
6871 - SortGroupClause *grp = (SortGroupClause *) lfirst(l); -
6872 - -
6873 - appendStringInfoString(buf, sep); -
6874 - get_rule_sortgroupclause(grp->tleSortGroupRef, targetList, -
6875 - false, context); -
6876 - sep = ", "; -
6877 - } -
6878 - needspace = true; -
6879 - } -
6880 - /* print ordering clause only if not inherited */ -
6881 - if (wc->orderClause && !wc->copiedOrder) -
6882 - { -
6883 - if (needspace) -
6884 - appendStringInfoChar(buf, ' '); -
6885 - appendStringInfoString(buf, "ORDER BY "); -
6886 - get_rule_orderby(wc->orderClause, targetList, false, context); -
6887 - needspace = true; -
6888 - } -
6889 - 5e2496bRow pattern recognition patch (rewriter).
6890 - /* framing clause is never inherited, so print unless it's default */ -
6891 - if (wc->frameOptions & FRAMEOPTION_NONDEFAULT) -
6892 - { -
6893 - if (needspace) -
6894 - appendStringInfoChar(buf, ' '); -
6895 - get_window_frame_options(wc->frameOptions, -
6896 - wc->startOffset, wc->endOffset, -
6897 - context); -
6898 24 needspace = true; 5e2496bRow pattern recognition patch (rewriter).
6899 - } 5e2496bRow pattern recognition patch (rewriter).
6900 - 5e2496bRow pattern recognition patch (rewriter).
6901 - /* RPR */ 5e2496bRow pattern recognition patch (rewriter).
6902 27 if (wc->rpSkipTo == ST_NEXT_ROW) 5e2496bRow pattern recognition patch (rewriter).
6903 - { 5e2496bRow pattern recognition patch (rewriter).
6904 0 if (needspace) 5e2496bRow pattern recognition patch (rewriter).
6905 0 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6906 0 appendStringInfoString(buf, 5e2496bRow pattern recognition patch (rewriter).
6907 - "\n AFTER MATCH SKIP TO NEXT ROW "); 5e2496bRow pattern recognition patch (rewriter).
6908 0 needspace = true; 5e2496bRow pattern recognition patch (rewriter).
6909 - } 5e2496bRow pattern recognition patch (rewriter).
6910 27 else if (wc->rpSkipTo == ST_PAST_LAST_ROW) 5e2496bRow pattern recognition patch (rewriter).
6911 - { 5e2496bRow pattern recognition patch (rewriter).
6912 3 if (needspace) 5e2496bRow pattern recognition patch (rewriter).
6913 3 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6914 3 appendStringInfoString(buf, 5e2496bRow pattern recognition patch (rewriter).
6915 - "\n AFTER MATCH SKIP PAST LAST ROW "); 5e2496bRow pattern recognition patch (rewriter).
6916 3 needspace = true; 5e2496bRow pattern recognition patch (rewriter).
6917 - } 5e2496bRow pattern recognition patch (rewriter).
6918 27 if (wc->initial) 5e2496bRow pattern recognition patch (rewriter).
6919 - { 5e2496bRow pattern recognition patch (rewriter).
6920 3 if (needspace) 5e2496bRow pattern recognition patch (rewriter).
6921 3 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6922 3 appendStringInfoString(buf, "\n INITIAL"); 5e2496bRow pattern recognition patch (rewriter).
6923 3 needspace = true; 5e2496bRow pattern recognition patch (rewriter).
6924 - } 5e2496bRow pattern recognition patch (rewriter).
6925 27 if (wc->patternVariable) 5e2496bRow pattern recognition patch (rewriter).
6926 - { 5e2496bRow pattern recognition patch (rewriter).
6927 3 if (needspace) 5e2496bRow pattern recognition patch (rewriter).
6928 3 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6929 3 appendStringInfoString(buf, "\n PATTERN "); 5e2496bRow pattern recognition patch (rewriter).
6930 3 get_rule_pattern(wc->patternVariable, wc->patternRegexp, 5e2496bRow pattern recognition patch (rewriter).
6931 - false, context); 5e2496bRow pattern recognition patch (rewriter).
6932 3 needspace = true; 5e2496bRow pattern recognition patch (rewriter).
6933 - } 5e2496bRow pattern recognition patch (rewriter).
6934 - 5e2496bRow pattern recognition patch (rewriter).
6935 27 if (wc->defineClause) 5e2496bRow pattern recognition patch (rewriter).
6936 - { 5e2496bRow pattern recognition patch (rewriter).
6937 3 if (needspace) 5e2496bRow pattern recognition patch (rewriter).
6938 3 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6939 3 appendStringInfoString(buf, "\n DEFINE\n"); 5e2496bRow pattern recognition patch (rewriter).
6940 3 get_rule_define(wc->defineClause, wc->patternVariable, 5e2496bRow pattern recognition patch (rewriter).
6941 - false, context); 5e2496bRow pattern recognition patch (rewriter).
6942 3 appendStringInfoChar(buf, ' '); 5e2496bRow pattern recognition patch (rewriter).
6943 - } -
6944 - 5e2496bRow pattern recognition patch (rewriter).
6945 - appendStringInfoChar(buf, ')'); -
6946 - } -