pg_query_outfuncs_json.c:_enumToStringOnCommitAction: 598| 17.9k|_enumToStringOnCommitAction(OnCommitAction value) { 599| 17.9k| switch(value) { ------------------ | Branch (599:10): [True: 17.9k, False: 0] ------------------ 600| 17.9k| case ONCOMMIT_NOOP: return "ONCOMMIT_NOOP"; ------------------ | Branch (600:5): [True: 17.9k, False: 0] ------------------ 601| 0| case ONCOMMIT_PRESERVE_ROWS: return "ONCOMMIT_PRESERVE_ROWS"; ------------------ | Branch (601:5): [True: 0, False: 17.9k] ------------------ 602| 0| case ONCOMMIT_DELETE_ROWS: return "ONCOMMIT_DELETE_ROWS"; ------------------ | Branch (602:5): [True: 0, False: 17.9k] ------------------ 603| 0| case ONCOMMIT_DROP: return "ONCOMMIT_DROP"; ------------------ | Branch (603:5): [True: 0, False: 17.9k] ------------------ 604| 17.9k| } 605| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 606| | return NULL; 607| 17.9k|} pg_query_outfuncs_json.c:_enumToStringCoercionForm: 655| 220k|_enumToStringCoercionForm(CoercionForm value) { 656| 220k| switch(value) { ------------------ | Branch (656:10): [True: 220k, False: 0] ------------------ 657| 214k| case COERCE_EXPLICIT_CALL: return "COERCE_EXPLICIT_CALL"; ------------------ | Branch (657:5): [True: 214k, False: 6.01k] ------------------ 658| 0| case COERCE_EXPLICIT_CAST: return "COERCE_EXPLICIT_CAST"; ------------------ | Branch (658:5): [True: 0, False: 220k] ------------------ 659| 5.84k| case COERCE_IMPLICIT_CAST: return "COERCE_IMPLICIT_CAST"; ------------------ | Branch (659:5): [True: 5.84k, False: 214k] ------------------ 660| 171| case COERCE_SQL_SYNTAX: return "COERCE_SQL_SYNTAX"; ------------------ | Branch (660:5): [True: 171, False: 220k] ------------------ 661| 220k| } 662| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 663| | return NULL; 664| 220k|} pg_query_outfuncs_json.c:_enumToStringBoolExprType: 667| 77.3k|_enumToStringBoolExprType(BoolExprType value) { 668| 77.3k| switch(value) { ------------------ | Branch (668:10): [True: 77.3k, False: 0] ------------------ 669| 263| case AND_EXPR: return "AND_EXPR"; ------------------ | Branch (669:5): [True: 263, False: 77.0k] ------------------ 670| 198| case OR_EXPR: return "OR_EXPR"; ------------------ | Branch (670:5): [True: 198, False: 77.1k] ------------------ 671| 76.8k| case NOT_EXPR: return "NOT_EXPR"; ------------------ | Branch (671:5): [True: 76.8k, False: 461] ------------------ 672| 77.3k| } 673| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 674| | return NULL; 675| 77.3k|} pg_query_outfuncs_json.c:_enumToStringSubLinkType: 678| 200k|_enumToStringSubLinkType(SubLinkType value) { 679| 200k| switch(value) { ------------------ | Branch (679:10): [True: 200k, False: 0] ------------------ 680| 0| case EXISTS_SUBLINK: return "EXISTS_SUBLINK"; ------------------ | Branch (680:5): [True: 0, False: 200k] ------------------ 681| 905| case ALL_SUBLINK: return "ALL_SUBLINK"; ------------------ | Branch (681:5): [True: 905, False: 199k] ------------------ 682| 1.76k| case ANY_SUBLINK: return "ANY_SUBLINK"; ------------------ | Branch (682:5): [True: 1.76k, False: 199k] ------------------ 683| 0| case ROWCOMPARE_SUBLINK: return "ROWCOMPARE_SUBLINK"; ------------------ | Branch (683:5): [True: 0, False: 200k] ------------------ 684| 198k| case EXPR_SUBLINK: return "EXPR_SUBLINK"; ------------------ | Branch (684:5): [True: 198k, False: 2.66k] ------------------ 685| 0| case MULTIEXPR_SUBLINK: return "MULTIEXPR_SUBLINK"; ------------------ | Branch (685:5): [True: 0, False: 200k] ------------------ 686| 0| case ARRAY_SUBLINK: return "ARRAY_SUBLINK"; ------------------ | Branch (686:5): [True: 0, False: 200k] ------------------ 687| 0| case CTE_SUBLINK: return "CTE_SUBLINK"; ------------------ | Branch (687:5): [True: 0, False: 200k] ------------------ 688| 200k| } 689| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 690| | return NULL; 691| 200k|} pg_query_outfuncs_json.c:_enumToStringMinMaxOp: 694| 3.54k|_enumToStringMinMaxOp(MinMaxOp value) { 695| 3.54k| switch(value) { ------------------ | Branch (695:10): [True: 3.54k, False: 0] ------------------ 696| 3.53k| case IS_GREATEST: return "IS_GREATEST"; ------------------ | Branch (696:5): [True: 3.53k, False: 16] ------------------ 697| 16| case IS_LEAST: return "IS_LEAST"; ------------------ | Branch (697:5): [True: 16, False: 3.53k] ------------------ 698| 3.54k| } 699| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 700| | return NULL; 701| 3.54k|} pg_query_outfuncs_json.c:_enumToStringSQLValueFunctionOp: 704| 202k|_enumToStringSQLValueFunctionOp(SQLValueFunctionOp value) { 705| 202k| switch(value) { ------------------ | Branch (705:10): [True: 202k, False: 0] ------------------ 706| 16| case SVFOP_CURRENT_DATE: return "SVFOP_CURRENT_DATE"; ------------------ | Branch (706:5): [True: 16, False: 202k] ------------------ 707| 147| case SVFOP_CURRENT_TIME: return "SVFOP_CURRENT_TIME"; ------------------ | Branch (707:5): [True: 147, False: 202k] ------------------ 708| 18| case SVFOP_CURRENT_TIME_N: return "SVFOP_CURRENT_TIME_N"; ------------------ | Branch (708:5): [True: 18, False: 202k] ------------------ 709| 74.7k| case SVFOP_CURRENT_TIMESTAMP: return "SVFOP_CURRENT_TIMESTAMP"; ------------------ | Branch (709:5): [True: 74.7k, False: 127k] ------------------ 710| 23| case SVFOP_CURRENT_TIMESTAMP_N: return "SVFOP_CURRENT_TIMESTAMP_N"; ------------------ | Branch (710:5): [True: 23, False: 202k] ------------------ 711| 154| case SVFOP_LOCALTIME: return "SVFOP_LOCALTIME"; ------------------ | Branch (711:5): [True: 154, False: 202k] ------------------ 712| 18.2k| case SVFOP_LOCALTIME_N: return "SVFOP_LOCALTIME_N"; ------------------ | Branch (712:5): [True: 18.2k, False: 184k] ------------------ 713| 97| case SVFOP_LOCALTIMESTAMP: return "SVFOP_LOCALTIMESTAMP"; ------------------ | Branch (713:5): [True: 97, False: 202k] ------------------ 714| 82| case SVFOP_LOCALTIMESTAMP_N: return "SVFOP_LOCALTIMESTAMP_N"; ------------------ | Branch (714:5): [True: 82, False: 202k] ------------------ 715| 22.8k| case SVFOP_CURRENT_ROLE: return "SVFOP_CURRENT_ROLE"; ------------------ | Branch (715:5): [True: 22.8k, False: 179k] ------------------ 716| 84.3k| case SVFOP_CURRENT_USER: return "SVFOP_CURRENT_USER"; ------------------ | Branch (716:5): [True: 84.3k, False: 118k] ------------------ 717| 571| case SVFOP_USER: return "SVFOP_USER"; ------------------ | Branch (717:5): [True: 571, False: 201k] ------------------ 718| 0| case SVFOP_SESSION_USER: return "SVFOP_SESSION_USER"; ------------------ | Branch (718:5): [True: 0, False: 202k] ------------------ 719| 0| case SVFOP_CURRENT_CATALOG: return "SVFOP_CURRENT_CATALOG"; ------------------ | Branch (719:5): [True: 0, False: 202k] ------------------ 720| 1.08k| case SVFOP_CURRENT_SCHEMA: return "SVFOP_CURRENT_SCHEMA"; ------------------ | Branch (720:5): [True: 1.08k, False: 201k] ------------------ 721| 202k| } 722| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 723| | return NULL; 724| 202k|} pg_query_outfuncs_json.c:_enumToStringJsonFormatType: 765| 6.60k|_enumToStringJsonFormatType(JsonFormatType value) { 766| 6.60k| switch(value) { ------------------ | Branch (766:10): [True: 6.60k, False: 0] ------------------ 767| 2.85k| case JS_FORMAT_DEFAULT: return "JS_FORMAT_DEFAULT"; ------------------ | Branch (767:5): [True: 2.85k, False: 3.75k] ------------------ 768| 3.75k| case JS_FORMAT_JSON: return "JS_FORMAT_JSON"; ------------------ | Branch (768:5): [True: 3.75k, False: 2.85k] ------------------ 769| 0| case JS_FORMAT_JSONB: return "JS_FORMAT_JSONB"; ------------------ | Branch (769:5): [True: 0, False: 6.60k] ------------------ 770| 6.60k| } 771| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 772| | return NULL; 773| 6.60k|} pg_query_outfuncs_json.c:_enumToStringJsonEncoding: 753| 6.60k|_enumToStringJsonEncoding(JsonEncoding value) { 754| 6.60k| switch(value) { ------------------ | Branch (754:10): [True: 6.60k, False: 0] ------------------ 755| 6.60k| case JS_ENC_DEFAULT: return "JS_ENC_DEFAULT"; ------------------ | Branch (755:5): [True: 6.60k, False: 0] ------------------ 756| 0| case JS_ENC_UTF8: return "JS_ENC_UTF8"; ------------------ | Branch (756:5): [True: 0, False: 6.60k] ------------------ 757| 0| case JS_ENC_UTF16: return "JS_ENC_UTF16"; ------------------ | Branch (757:5): [True: 0, False: 6.60k] ------------------ 758| 0| case JS_ENC_UTF32: return "JS_ENC_UTF32"; ------------------ | Branch (758:5): [True: 0, False: 6.60k] ------------------ 759| 6.60k| } 760| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 761| | return NULL; 762| 6.60k|} pg_query_outfuncs_json.c:_enumToStringJsonValueType: 791| 2.31k|_enumToStringJsonValueType(JsonValueType value) { 792| 2.31k| switch(value) { ------------------ | Branch (792:10): [True: 2.31k, False: 0] ------------------ 793| 782| case JS_TYPE_ANY: return "JS_TYPE_ANY"; ------------------ | Branch (793:5): [True: 782, False: 1.53k] ------------------ 794| 0| case JS_TYPE_OBJECT: return "JS_TYPE_OBJECT"; ------------------ | Branch (794:5): [True: 0, False: 2.31k] ------------------ 795| 1.53k| case JS_TYPE_ARRAY: return "JS_TYPE_ARRAY"; ------------------ | Branch (795:5): [True: 1.53k, False: 782] ------------------ 796| 0| case JS_TYPE_SCALAR: return "JS_TYPE_SCALAR"; ------------------ | Branch (796:5): [True: 0, False: 2.31k] ------------------ 797| 2.31k| } 798| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 799| | return NULL; 800| 2.31k|} pg_query_outfuncs_json.c:_enumToStringNullTestType: 844| 10.3k|_enumToStringNullTestType(NullTestType value) { 845| 10.3k| switch(value) { ------------------ | Branch (845:10): [True: 10.3k, False: 0] ------------------ 846| 9.63k| case IS_NULL: return "IS_NULL"; ------------------ | Branch (846:5): [True: 9.63k, False: 757] ------------------ 847| 757| case IS_NOT_NULL: return "IS_NOT_NULL"; ------------------ | Branch (847:5): [True: 757, False: 9.63k] ------------------ 848| 10.3k| } 849| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 850| | return NULL; 851| 10.3k|} pg_query_outfuncs_json.c:_enumToStringBoolTestType: 854| 2.74k|_enumToStringBoolTestType(BoolTestType value) { 855| 2.74k| switch(value) { ------------------ | Branch (855:10): [True: 2.74k, False: 0] ------------------ 856| 1.13k| case IS_TRUE: return "IS_TRUE"; ------------------ | Branch (856:5): [True: 1.13k, False: 1.61k] ------------------ 857| 0| case IS_NOT_TRUE: return "IS_NOT_TRUE"; ------------------ | Branch (857:5): [True: 0, False: 2.74k] ------------------ 858| 939| case IS_FALSE: return "IS_FALSE"; ------------------ | Branch (858:5): [True: 939, False: 1.80k] ------------------ 859| 671| case IS_NOT_FALSE: return "IS_NOT_FALSE"; ------------------ | Branch (859:5): [True: 671, False: 2.07k] ------------------ 860| 0| case IS_UNKNOWN: return "IS_UNKNOWN"; ------------------ | Branch (860:5): [True: 0, False: 2.74k] ------------------ 861| 0| case IS_NOT_UNKNOWN: return "IS_NOT_UNKNOWN"; ------------------ | Branch (861:5): [True: 0, False: 2.74k] ------------------ 862| 2.74k| } 863| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 864| | return NULL; 865| 2.74k|} pg_query_outfuncs_json.c:_enumToStringOverridingKind: 587| 905|_enumToStringOverridingKind(OverridingKind value) { 588| 905| switch(value) { ------------------ | Branch (588:10): [True: 905, False: 0] ------------------ 589| 905| case OVERRIDING_NOT_SET: return "OVERRIDING_NOT_SET"; ------------------ | Branch (589:5): [True: 905, False: 0] ------------------ 590| 0| case OVERRIDING_USER_VALUE: return "OVERRIDING_USER_VALUE"; ------------------ | Branch (590:5): [True: 0, False: 905] ------------------ 591| 0| case OVERRIDING_SYSTEM_VALUE: return "OVERRIDING_SYSTEM_VALUE"; ------------------ | Branch (591:5): [True: 0, False: 905] ------------------ 592| 905| } 593| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 594| | return NULL; 595| 905|} pg_query_outfuncs_json.c:_enumToStringJoinType: 895| 16.7k|_enumToStringJoinType(JoinType value) { 896| 16.7k| switch(value) { ------------------ | Branch (896:10): [True: 16.7k, False: 0] ------------------ 897| 16.7k| case JOIN_INNER: return "JOIN_INNER"; ------------------ | Branch (897:5): [True: 16.7k, False: 0] ------------------ 898| 0| case JOIN_LEFT: return "JOIN_LEFT"; ------------------ | Branch (898:5): [True: 0, False: 16.7k] ------------------ 899| 0| case JOIN_FULL: return "JOIN_FULL"; ------------------ | Branch (899:5): [True: 0, False: 16.7k] ------------------ 900| 0| case JOIN_RIGHT: return "JOIN_RIGHT"; ------------------ | Branch (900:5): [True: 0, False: 16.7k] ------------------ 901| 0| case JOIN_SEMI: return "JOIN_SEMI"; ------------------ | Branch (901:5): [True: 0, False: 16.7k] ------------------ 902| 0| case JOIN_ANTI: return "JOIN_ANTI"; ------------------ | Branch (902:5): [True: 0, False: 16.7k] ------------------ 903| 0| case JOIN_RIGHT_SEMI: return "JOIN_RIGHT_SEMI"; ------------------ | Branch (903:5): [True: 0, False: 16.7k] ------------------ 904| 0| case JOIN_RIGHT_ANTI: return "JOIN_RIGHT_ANTI"; ------------------ | Branch (904:5): [True: 0, False: 16.7k] ------------------ 905| 0| case JOIN_UNIQUE_OUTER: return "JOIN_UNIQUE_OUTER"; ------------------ | Branch (905:5): [True: 0, False: 16.7k] ------------------ 906| 0| case JOIN_UNIQUE_INNER: return "JOIN_UNIQUE_INNER"; ------------------ | Branch (906:5): [True: 0, False: 16.7k] ------------------ 907| 16.7k| } 908| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 909| | return NULL; 910| 16.7k|} pg_query_outfuncs_json.c:_enumToStringLimitOption: 969| 269k|_enumToStringLimitOption(LimitOption value) { 970| 269k| switch(value) { ------------------ | Branch (970:10): [True: 269k, False: 0] ------------------ 971| 268k| case LIMIT_OPTION_DEFAULT: return "LIMIT_OPTION_DEFAULT"; ------------------ | Branch (971:5): [True: 268k, False: 734] ------------------ 972| 734| case LIMIT_OPTION_COUNT: return "LIMIT_OPTION_COUNT"; ------------------ | Branch (972:5): [True: 734, False: 268k] ------------------ 973| 0| case LIMIT_OPTION_WITH_TIES: return "LIMIT_OPTION_WITH_TIES"; ------------------ | Branch (973:5): [True: 0, False: 269k] ------------------ 974| 269k| } 975| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 976| | return NULL; 977| 269k|} pg_query_outfuncs_json.c:_enumToStringA_Expr_Kind: 51| 14.4M|_enumToStringA_Expr_Kind(A_Expr_Kind value) { 52| 14.4M| switch(value) { ------------------ | Branch (52:10): [True: 14.4M, False: 0] ------------------ 53| 14.4M| case AEXPR_OP: return "AEXPR_OP"; ------------------ | Branch (53:5): [True: 14.4M, False: 2.27k] ------------------ 54| 0| case AEXPR_OP_ANY: return "AEXPR_OP_ANY"; ------------------ | Branch (54:5): [True: 0, False: 14.4M] ------------------ 55| 0| case AEXPR_OP_ALL: return "AEXPR_OP_ALL"; ------------------ | Branch (55:5): [True: 0, False: 14.4M] ------------------ 56| 0| case AEXPR_DISTINCT: return "AEXPR_DISTINCT"; ------------------ | Branch (56:5): [True: 0, False: 14.4M] ------------------ 57| 0| case AEXPR_NOT_DISTINCT: return "AEXPR_NOT_DISTINCT"; ------------------ | Branch (57:5): [True: 0, False: 14.4M] ------------------ 58| 138| case AEXPR_NULLIF: return "AEXPR_NULLIF"; ------------------ | Branch (58:5): [True: 138, False: 14.4M] ------------------ 59| 1.13k| case AEXPR_IN: return "AEXPR_IN"; ------------------ | Branch (59:5): [True: 1.13k, False: 14.4M] ------------------ 60| 146| case AEXPR_LIKE: return "AEXPR_LIKE"; ------------------ | Branch (60:5): [True: 146, False: 14.4M] ------------------ 61| 48| case AEXPR_ILIKE: return "AEXPR_ILIKE"; ------------------ | Branch (61:5): [True: 48, False: 14.4M] ------------------ 62| 0| case AEXPR_SIMILAR: return "AEXPR_SIMILAR"; ------------------ | Branch (62:5): [True: 0, False: 14.4M] ------------------ 63| 306| case AEXPR_BETWEEN: return "AEXPR_BETWEEN"; ------------------ | Branch (63:5): [True: 306, False: 14.4M] ------------------ 64| 505| case AEXPR_NOT_BETWEEN: return "AEXPR_NOT_BETWEEN"; ------------------ | Branch (64:5): [True: 505, False: 14.4M] ------------------ 65| 0| case AEXPR_BETWEEN_SYM: return "AEXPR_BETWEEN_SYM"; ------------------ | Branch (65:5): [True: 0, False: 14.4M] ------------------ 66| 0| case AEXPR_NOT_BETWEEN_SYM: return "AEXPR_NOT_BETWEEN_SYM"; ------------------ | Branch (66:5): [True: 0, False: 14.4M] ------------------ 67| 14.4M| } 68| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 69| | return NULL; 70| 14.4M|} pg_query_outfuncs_json.c:_enumToStringRoleSpecType: 73| 640k|_enumToStringRoleSpecType(RoleSpecType value) { 74| 640k| switch(value) { ------------------ | Branch (74:10): [True: 640k, False: 0] ------------------ 75| 610k| case ROLESPEC_CSTRING: return "ROLESPEC_CSTRING"; ------------------ | Branch (75:5): [True: 610k, False: 29.3k] ------------------ 76| 1| case ROLESPEC_CURRENT_ROLE: return "ROLESPEC_CURRENT_ROLE"; ------------------ | Branch (76:5): [True: 1, False: 640k] ------------------ 77| 29.3k| case ROLESPEC_CURRENT_USER: return "ROLESPEC_CURRENT_USER"; ------------------ | Branch (77:5): [True: 29.3k, False: 610k] ------------------ 78| 0| case ROLESPEC_SESSION_USER: return "ROLESPEC_SESSION_USER"; ------------------ | Branch (78:5): [True: 0, False: 640k] ------------------ 79| 4| case ROLESPEC_PUBLIC: return "ROLESPEC_PUBLIC"; ------------------ | Branch (79:5): [True: 4, False: 640k] ------------------ 80| 640k| } 81| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 82| | return NULL; 83| 640k|} pg_query_outfuncs_json.c:_enumToStringSortByDir: 17| 881k|_enumToStringSortByDir(SortByDir value) { 18| 881k| switch(value) { ------------------ | Branch (18:10): [True: 881k, False: 0] ------------------ 19| 874k| case SORTBY_DEFAULT: return "SORTBY_DEFAULT"; ------------------ | Branch (19:5): [True: 874k, False: 6.75k] ------------------ 20| 0| case SORTBY_ASC: return "SORTBY_ASC"; ------------------ | Branch (20:5): [True: 0, False: 881k] ------------------ 21| 0| case SORTBY_DESC: return "SORTBY_DESC"; ------------------ | Branch (21:5): [True: 0, False: 881k] ------------------ 22| 6.75k| case SORTBY_USING: return "SORTBY_USING"; ------------------ | Branch (22:5): [True: 6.75k, False: 874k] ------------------ 23| 881k| } 24| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 25| | return NULL; 26| 881k|} pg_query_outfuncs_json.c:_enumToStringSortByNulls: 29| 881k|_enumToStringSortByNulls(SortByNulls value) { 30| 881k| switch(value) { ------------------ | Branch (30:10): [True: 881k, False: 0] ------------------ 31| 881k| case SORTBY_NULLS_DEFAULT: return "SORTBY_NULLS_DEFAULT"; ------------------ | Branch (31:5): [True: 881k, False: 42] ------------------ 32| 0| case SORTBY_NULLS_FIRST: return "SORTBY_NULLS_FIRST"; ------------------ | Branch (32:5): [True: 0, False: 881k] ------------------ 33| 42| case SORTBY_NULLS_LAST: return "SORTBY_NULLS_LAST"; ------------------ | Branch (33:5): [True: 42, False: 881k] ------------------ 34| 881k| } 35| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 36| | return NULL; 37| 881k|} pg_query_outfuncs_json.c:_enumToStringDefElemAction: 104| 2.59M|_enumToStringDefElemAction(DefElemAction value) { 105| 2.59M| switch(value) { ------------------ | Branch (105:10): [True: 2.59M, False: 0] ------------------ 106| 2.59M| case DEFELEM_UNSPEC: return "DEFELEM_UNSPEC"; ------------------ | Branch (106:5): [True: 2.59M, False: 0] ------------------ 107| 0| case DEFELEM_SET: return "DEFELEM_SET"; ------------------ | Branch (107:5): [True: 0, False: 2.59M] ------------------ 108| 0| case DEFELEM_ADD: return "DEFELEM_ADD"; ------------------ | Branch (108:5): [True: 0, False: 2.59M] ------------------ 109| 0| case DEFELEM_DROP: return "DEFELEM_DROP"; ------------------ | Branch (109:5): [True: 0, False: 2.59M] ------------------ 110| 2.59M| } 111| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 112| | return NULL; 113| 2.59M|} pg_query_outfuncs_json.c:_enumToStringLockClauseStrength: 980| 1.38k|_enumToStringLockClauseStrength(LockClauseStrength value) { 981| 1.38k| switch(value) { ------------------ | Branch (981:10): [True: 1.38k, False: 0] ------------------ 982| 0| case LCS_NONE: return "LCS_NONE"; ------------------ | Branch (982:5): [True: 0, False: 1.38k] ------------------ 983| 0| case LCS_FORKEYSHARE: return "LCS_FORKEYSHARE"; ------------------ | Branch (983:5): [True: 0, False: 1.38k] ------------------ 984| 0| case LCS_FORSHARE: return "LCS_FORSHARE"; ------------------ | Branch (984:5): [True: 0, False: 1.38k] ------------------ 985| 0| case LCS_FORNOKEYUPDATE: return "LCS_FORNOKEYUPDATE"; ------------------ | Branch (985:5): [True: 0, False: 1.38k] ------------------ 986| 1.38k| case LCS_FORUPDATE: return "LCS_FORUPDATE"; ------------------ | Branch (986:5): [True: 1.38k, False: 0] ------------------ 987| 1.38k| } 988| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 989| | return NULL; 990| 1.38k|} pg_query_outfuncs_json.c:_enumToStringLockWaitPolicy: 993| 1.38k|_enumToStringLockWaitPolicy(LockWaitPolicy value) { 994| 1.38k| switch(value) { ------------------ | Branch (994:10): [True: 1.38k, False: 0] ------------------ 995| 371| case LockWaitBlock: return "LockWaitBlock"; ------------------ | Branch (995:5): [True: 371, False: 1.01k] ------------------ 996| 0| case LockWaitSkip: return "LockWaitSkip"; ------------------ | Branch (996:5): [True: 0, False: 1.38k] ------------------ 997| 1.01k| case LockWaitError: return "LockWaitError"; ------------------ | Branch (997:5): [True: 1.01k, False: 371] ------------------ 998| 1.38k| } 999| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 1000| | return NULL; 1001| 1.38k|} pg_query_outfuncs_json.c:_enumToStringGroupingSetKind: 170| 200|_enumToStringGroupingSetKind(GroupingSetKind value) { 171| 200| switch(value) { ------------------ | Branch (171:10): [True: 200, False: 0] ------------------ 172| 200| case GROUPING_SET_EMPTY: return "GROUPING_SET_EMPTY"; ------------------ | Branch (172:5): [True: 200, False: 0] ------------------ 173| 0| case GROUPING_SET_SIMPLE: return "GROUPING_SET_SIMPLE"; ------------------ | Branch (173:5): [True: 0, False: 200] ------------------ 174| 0| case GROUPING_SET_ROLLUP: return "GROUPING_SET_ROLLUP"; ------------------ | Branch (174:5): [True: 0, False: 200] ------------------ 175| 0| case GROUPING_SET_CUBE: return "GROUPING_SET_CUBE"; ------------------ | Branch (175:5): [True: 0, False: 200] ------------------ 176| 0| case GROUPING_SET_SETS: return "GROUPING_SET_SETS"; ------------------ | Branch (176:5): [True: 0, False: 200] ------------------ 177| 200| } 178| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 179| | return NULL; 180| 200|} pg_query_outfuncs_json.c:_enumToStringCTEMaterialize: 183| 79.6k|_enumToStringCTEMaterialize(CTEMaterialize value) { 184| 79.6k| switch(value) { ------------------ | Branch (184:10): [True: 79.6k, False: 0] ------------------ 185| 79.6k| case CTEMaterializeDefault: return "CTEMaterializeDefault"; ------------------ | Branch (185:5): [True: 79.6k, False: 0] ------------------ 186| 0| case CTEMaterializeAlways: return "CTEMaterializeAlways"; ------------------ | Branch (186:5): [True: 0, False: 79.6k] ------------------ 187| 0| case CTEMaterializeNever: return "CTEMaterializeNever"; ------------------ | Branch (187:5): [True: 0, False: 79.6k] ------------------ 188| 79.6k| } 189| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 190| | return NULL; 191| 79.6k|} pg_query_outfuncs_json.c:_enumToStringSetOperation: 228| 269k|_enumToStringSetOperation(SetOperation value) { 229| 269k| switch(value) { ------------------ | Branch (229:10): [True: 269k, False: 0] ------------------ 230| 269k| case SETOP_NONE: return "SETOP_NONE"; ------------------ | Branch (230:5): [True: 269k, False: 18] ------------------ 231| 0| case SETOP_UNION: return "SETOP_UNION"; ------------------ | Branch (231:5): [True: 0, False: 269k] ------------------ 232| 18| case SETOP_INTERSECT: return "SETOP_INTERSECT"; ------------------ | Branch (232:5): [True: 18, False: 269k] ------------------ 233| 0| case SETOP_EXCEPT: return "SETOP_EXCEPT"; ------------------ | Branch (233:5): [True: 0, False: 269k] ------------------ 234| 269k| } 235| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 236| | return NULL; 237| 269k|} pg_query_outfuncs_json.c:_enumToStringObjectType: 240| 3.84k|_enumToStringObjectType(ObjectType value) { 241| 3.84k| switch(value) { ------------------ | Branch (241:10): [True: 3.84k, False: 0] ------------------ 242| 195| case OBJECT_ACCESS_METHOD: return "OBJECT_ACCESS_METHOD"; ------------------ | Branch (242:5): [True: 195, False: 3.65k] ------------------ 243| 0| case OBJECT_AGGREGATE: return "OBJECT_AGGREGATE"; ------------------ | Branch (243:5): [True: 0, False: 3.84k] ------------------ 244| 0| case OBJECT_AMOP: return "OBJECT_AMOP"; ------------------ | Branch (244:5): [True: 0, False: 3.84k] ------------------ 245| 0| case OBJECT_AMPROC: return "OBJECT_AMPROC"; ------------------ | Branch (245:5): [True: 0, False: 3.84k] ------------------ 246| 0| case OBJECT_ATTRIBUTE: return "OBJECT_ATTRIBUTE"; ------------------ | Branch (246:5): [True: 0, False: 3.84k] ------------------ 247| 0| case OBJECT_CAST: return "OBJECT_CAST"; ------------------ | Branch (247:5): [True: 0, False: 3.84k] ------------------ 248| 108| case OBJECT_COLUMN: return "OBJECT_COLUMN"; ------------------ | Branch (248:5): [True: 108, False: 3.74k] ------------------ 249| 0| case OBJECT_COLLATION: return "OBJECT_COLLATION"; ------------------ | Branch (249:5): [True: 0, False: 3.84k] ------------------ 250| 0| case OBJECT_CONVERSION: return "OBJECT_CONVERSION"; ------------------ | Branch (250:5): [True: 0, False: 3.84k] ------------------ 251| 132| case OBJECT_DATABASE: return "OBJECT_DATABASE"; ------------------ | Branch (251:5): [True: 132, False: 3.71k] ------------------ 252| 0| case OBJECT_DEFAULT: return "OBJECT_DEFAULT"; ------------------ | Branch (252:5): [True: 0, False: 3.84k] ------------------ 253| 0| case OBJECT_DEFACL: return "OBJECT_DEFACL"; ------------------ | Branch (253:5): [True: 0, False: 3.84k] ------------------ 254| 0| case OBJECT_DOMAIN: return "OBJECT_DOMAIN"; ------------------ | Branch (254:5): [True: 0, False: 3.84k] ------------------ 255| 0| case OBJECT_DOMCONSTRAINT: return "OBJECT_DOMCONSTRAINT"; ------------------ | Branch (255:5): [True: 0, False: 3.84k] ------------------ 256| 0| case OBJECT_EVENT_TRIGGER: return "OBJECT_EVENT_TRIGGER"; ------------------ | Branch (256:5): [True: 0, False: 3.84k] ------------------ 257| 0| case OBJECT_EXTENSION: return "OBJECT_EXTENSION"; ------------------ | Branch (257:5): [True: 0, False: 3.84k] ------------------ 258| 0| case OBJECT_FDW: return "OBJECT_FDW"; ------------------ | Branch (258:5): [True: 0, False: 3.84k] ------------------ 259| 0| case OBJECT_FOREIGN_SERVER: return "OBJECT_FOREIGN_SERVER"; ------------------ | Branch (259:5): [True: 0, False: 3.84k] ------------------ 260| 0| case OBJECT_FOREIGN_TABLE: return "OBJECT_FOREIGN_TABLE"; ------------------ | Branch (260:5): [True: 0, False: 3.84k] ------------------ 261| 83| case OBJECT_FUNCTION: return "OBJECT_FUNCTION"; ------------------ | Branch (261:5): [True: 83, False: 3.76k] ------------------ 262| 0| case OBJECT_INDEX: return "OBJECT_INDEX"; ------------------ | Branch (262:5): [True: 0, False: 3.84k] ------------------ 263| 0| case OBJECT_LANGUAGE: return "OBJECT_LANGUAGE"; ------------------ | Branch (263:5): [True: 0, False: 3.84k] ------------------ 264| 0| case OBJECT_LARGEOBJECT: return "OBJECT_LARGEOBJECT"; ------------------ | Branch (264:5): [True: 0, False: 3.84k] ------------------ 265| 0| case OBJECT_MATVIEW: return "OBJECT_MATVIEW"; ------------------ | Branch (265:5): [True: 0, False: 3.84k] ------------------ 266| 0| case OBJECT_OPCLASS: return "OBJECT_OPCLASS"; ------------------ | Branch (266:5): [True: 0, False: 3.84k] ------------------ 267| 0| case OBJECT_OPERATOR: return "OBJECT_OPERATOR"; ------------------ | Branch (267:5): [True: 0, False: 3.84k] ------------------ 268| 0| case OBJECT_OPFAMILY: return "OBJECT_OPFAMILY"; ------------------ | Branch (268:5): [True: 0, False: 3.84k] ------------------ 269| 0| case OBJECT_PARAMETER_ACL: return "OBJECT_PARAMETER_ACL"; ------------------ | Branch (269:5): [True: 0, False: 3.84k] ------------------ 270| 0| case OBJECT_POLICY: return "OBJECT_POLICY"; ------------------ | Branch (270:5): [True: 0, False: 3.84k] ------------------ 271| 0| case OBJECT_PROCEDURE: return "OBJECT_PROCEDURE"; ------------------ | Branch (271:5): [True: 0, False: 3.84k] ------------------ 272| 0| case OBJECT_PUBLICATION: return "OBJECT_PUBLICATION"; ------------------ | Branch (272:5): [True: 0, False: 3.84k] ------------------ 273| 0| case OBJECT_PUBLICATION_NAMESPACE: return "OBJECT_PUBLICATION_NAMESPACE"; ------------------ | Branch (273:5): [True: 0, False: 3.84k] ------------------ 274| 0| case OBJECT_PUBLICATION_REL: return "OBJECT_PUBLICATION_REL"; ------------------ | Branch (274:5): [True: 0, False: 3.84k] ------------------ 275| 0| case OBJECT_ROLE: return "OBJECT_ROLE"; ------------------ | Branch (275:5): [True: 0, False: 3.84k] ------------------ 276| 22| case OBJECT_ROUTINE: return "OBJECT_ROUTINE"; ------------------ | Branch (276:5): [True: 22, False: 3.82k] ------------------ 277| 0| case OBJECT_RULE: return "OBJECT_RULE"; ------------------ | Branch (277:5): [True: 0, False: 3.84k] ------------------ 278| 4| case OBJECT_SCHEMA: return "OBJECT_SCHEMA"; ------------------ | Branch (278:5): [True: 4, False: 3.84k] ------------------ 279| 0| case OBJECT_SEQUENCE: return "OBJECT_SEQUENCE"; ------------------ | Branch (279:5): [True: 0, False: 3.84k] ------------------ 280| 0| case OBJECT_SUBSCRIPTION: return "OBJECT_SUBSCRIPTION"; ------------------ | Branch (280:5): [True: 0, False: 3.84k] ------------------ 281| 0| case OBJECT_STATISTIC_EXT: return "OBJECT_STATISTIC_EXT"; ------------------ | Branch (281:5): [True: 0, False: 3.84k] ------------------ 282| 94| case OBJECT_TABCONSTRAINT: return "OBJECT_TABCONSTRAINT"; ------------------ | Branch (282:5): [True: 94, False: 3.75k] ------------------ 283| 2.80k| case OBJECT_TABLE: return "OBJECT_TABLE"; ------------------ | Branch (283:5): [True: 2.80k, False: 1.04k] ------------------ 284| 0| case OBJECT_TABLESPACE: return "OBJECT_TABLESPACE"; ------------------ | Branch (284:5): [True: 0, False: 3.84k] ------------------ 285| 0| case OBJECT_TRANSFORM: return "OBJECT_TRANSFORM"; ------------------ | Branch (285:5): [True: 0, False: 3.84k] ------------------ 286| 0| case OBJECT_TRIGGER: return "OBJECT_TRIGGER"; ------------------ | Branch (286:5): [True: 0, False: 3.84k] ------------------ 287| 0| case OBJECT_TSCONFIGURATION: return "OBJECT_TSCONFIGURATION"; ------------------ | Branch (287:5): [True: 0, False: 3.84k] ------------------ 288| 0| case OBJECT_TSDICTIONARY: return "OBJECT_TSDICTIONARY"; ------------------ | Branch (288:5): [True: 0, False: 3.84k] ------------------ 289| 0| case OBJECT_TSPARSER: return "OBJECT_TSPARSER"; ------------------ | Branch (289:5): [True: 0, False: 3.84k] ------------------ 290| 0| case OBJECT_TSTEMPLATE: return "OBJECT_TSTEMPLATE"; ------------------ | Branch (290:5): [True: 0, False: 3.84k] ------------------ 291| 131| case OBJECT_TYPE: return "OBJECT_TYPE"; ------------------ | Branch (291:5): [True: 131, False: 3.71k] ------------------ 292| 0| case OBJECT_USER_MAPPING: return "OBJECT_USER_MAPPING"; ------------------ | Branch (292:5): [True: 0, False: 3.84k] ------------------ 293| 276| case OBJECT_VIEW: return "OBJECT_VIEW"; ------------------ | Branch (293:5): [True: 276, False: 3.57k] ------------------ 294| 3.84k| } 295| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 296| | return NULL; 297| 3.84k|} pg_query_outfuncs_json.c:_enumToStringAlterTableType: 310| 2.35k|_enumToStringAlterTableType(AlterTableType value) { 311| 2.35k| switch(value) { ------------------ | Branch (311:10): [True: 2.35k, False: 0] ------------------ 312| 0| case AT_AddColumn: return "AT_AddColumn"; ------------------ | Branch (312:5): [True: 0, False: 2.35k] ------------------ 313| 0| case AT_AddColumnToView: return "AT_AddColumnToView"; ------------------ | Branch (313:5): [True: 0, False: 2.35k] ------------------ 314| 382| case AT_ColumnDefault: return "AT_ColumnDefault"; ------------------ | Branch (314:5): [True: 382, False: 1.97k] ------------------ 315| 0| case AT_CookedColumnDefault: return "AT_CookedColumnDefault"; ------------------ | Branch (315:5): [True: 0, False: 2.35k] ------------------ 316| 0| case AT_DropNotNull: return "AT_DropNotNull"; ------------------ | Branch (316:5): [True: 0, False: 2.35k] ------------------ 317| 0| case AT_SetNotNull: return "AT_SetNotNull"; ------------------ | Branch (317:5): [True: 0, False: 2.35k] ------------------ 318| 0| case AT_SetExpression: return "AT_SetExpression"; ------------------ | Branch (318:5): [True: 0, False: 2.35k] ------------------ 319| 0| case AT_DropExpression: return "AT_DropExpression"; ------------------ | Branch (319:5): [True: 0, False: 2.35k] ------------------ 320| 0| case AT_SetStatistics: return "AT_SetStatistics"; ------------------ | Branch (320:5): [True: 0, False: 2.35k] ------------------ 321| 129| case AT_SetOptions: return "AT_SetOptions"; ------------------ | Branch (321:5): [True: 129, False: 2.23k] ------------------ 322| 162| case AT_ResetOptions: return "AT_ResetOptions"; ------------------ | Branch (322:5): [True: 162, False: 2.19k] ------------------ 323| 0| case AT_SetStorage: return "AT_SetStorage"; ------------------ | Branch (323:5): [True: 0, False: 2.35k] ------------------ 324| 0| case AT_SetCompression: return "AT_SetCompression"; ------------------ | Branch (324:5): [True: 0, False: 2.35k] ------------------ 325| 136| case AT_DropColumn: return "AT_DropColumn"; ------------------ | Branch (325:5): [True: 136, False: 2.22k] ------------------ 326| 0| case AT_AddIndex: return "AT_AddIndex"; ------------------ | Branch (326:5): [True: 0, False: 2.35k] ------------------ 327| 0| case AT_ReAddIndex: return "AT_ReAddIndex"; ------------------ | Branch (327:5): [True: 0, False: 2.35k] ------------------ 328| 0| case AT_AddConstraint: return "AT_AddConstraint"; ------------------ | Branch (328:5): [True: 0, False: 2.35k] ------------------ 329| 0| case AT_ReAddConstraint: return "AT_ReAddConstraint"; ------------------ | Branch (329:5): [True: 0, False: 2.35k] ------------------ 330| 0| case AT_ReAddDomainConstraint: return "AT_ReAddDomainConstraint"; ------------------ | Branch (330:5): [True: 0, False: 2.35k] ------------------ 331| 0| case AT_AlterConstraint: return "AT_AlterConstraint"; ------------------ | Branch (331:5): [True: 0, False: 2.35k] ------------------ 332| 0| case AT_ValidateConstraint: return "AT_ValidateConstraint"; ------------------ | Branch (332:5): [True: 0, False: 2.35k] ------------------ 333| 0| case AT_AddIndexConstraint: return "AT_AddIndexConstraint"; ------------------ | Branch (333:5): [True: 0, False: 2.35k] ------------------ 334| 140| case AT_DropConstraint: return "AT_DropConstraint"; ------------------ | Branch (334:5): [True: 140, False: 2.21k] ------------------ 335| 0| case AT_ReAddComment: return "AT_ReAddComment"; ------------------ | Branch (335:5): [True: 0, False: 2.35k] ------------------ 336| 0| case AT_AlterColumnType: return "AT_AlterColumnType"; ------------------ | Branch (336:5): [True: 0, False: 2.35k] ------------------ 337| 0| case AT_AlterColumnGenericOptions: return "AT_AlterColumnGenericOptions"; ------------------ | Branch (337:5): [True: 0, False: 2.35k] ------------------ 338| 0| case AT_ChangeOwner: return "AT_ChangeOwner"; ------------------ | Branch (338:5): [True: 0, False: 2.35k] ------------------ 339| 0| case AT_ClusterOn: return "AT_ClusterOn"; ------------------ | Branch (339:5): [True: 0, False: 2.35k] ------------------ 340| 0| case AT_DropCluster: return "AT_DropCluster"; ------------------ | Branch (340:5): [True: 0, False: 2.35k] ------------------ 341| 0| case AT_SetLogged: return "AT_SetLogged"; ------------------ | Branch (341:5): [True: 0, False: 2.35k] ------------------ 342| 0| case AT_SetUnLogged: return "AT_SetUnLogged"; ------------------ | Branch (342:5): [True: 0, False: 2.35k] ------------------ 343| 0| case AT_DropOids: return "AT_DropOids"; ------------------ | Branch (343:5): [True: 0, False: 2.35k] ------------------ 344| 0| case AT_SetAccessMethod: return "AT_SetAccessMethod"; ------------------ | Branch (344:5): [True: 0, False: 2.35k] ------------------ 345| 0| case AT_SetTableSpace: return "AT_SetTableSpace"; ------------------ | Branch (345:5): [True: 0, False: 2.35k] ------------------ 346| 764| case AT_SetRelOptions: return "AT_SetRelOptions"; ------------------ | Branch (346:5): [True: 764, False: 1.59k] ------------------ 347| 251| case AT_ResetRelOptions: return "AT_ResetRelOptions"; ------------------ | Branch (347:5): [True: 251, False: 2.10k] ------------------ 348| 0| case AT_ReplaceRelOptions: return "AT_ReplaceRelOptions"; ------------------ | Branch (348:5): [True: 0, False: 2.35k] ------------------ 349| 0| case AT_EnableTrig: return "AT_EnableTrig"; ------------------ | Branch (349:5): [True: 0, False: 2.35k] ------------------ 350| 0| case AT_EnableAlwaysTrig: return "AT_EnableAlwaysTrig"; ------------------ | Branch (350:5): [True: 0, False: 2.35k] ------------------ 351| 0| case AT_EnableReplicaTrig: return "AT_EnableReplicaTrig"; ------------------ | Branch (351:5): [True: 0, False: 2.35k] ------------------ 352| 0| case AT_DisableTrig: return "AT_DisableTrig"; ------------------ | Branch (352:5): [True: 0, False: 2.35k] ------------------ 353| 0| case AT_EnableTrigAll: return "AT_EnableTrigAll"; ------------------ | Branch (353:5): [True: 0, False: 2.35k] ------------------ 354| 0| case AT_DisableTrigAll: return "AT_DisableTrigAll"; ------------------ | Branch (354:5): [True: 0, False: 2.35k] ------------------ 355| 0| case AT_EnableTrigUser: return "AT_EnableTrigUser"; ------------------ | Branch (355:5): [True: 0, False: 2.35k] ------------------ 356| 0| case AT_DisableTrigUser: return "AT_DisableTrigUser"; ------------------ | Branch (356:5): [True: 0, False: 2.35k] ------------------ 357| 0| case AT_EnableRule: return "AT_EnableRule"; ------------------ | Branch (357:5): [True: 0, False: 2.35k] ------------------ 358| 0| case AT_EnableAlwaysRule: return "AT_EnableAlwaysRule"; ------------------ | Branch (358:5): [True: 0, False: 2.35k] ------------------ 359| 0| case AT_EnableReplicaRule: return "AT_EnableReplicaRule"; ------------------ | Branch (359:5): [True: 0, False: 2.35k] ------------------ 360| 0| case AT_DisableRule: return "AT_DisableRule"; ------------------ | Branch (360:5): [True: 0, False: 2.35k] ------------------ 361| 0| case AT_AddInherit: return "AT_AddInherit"; ------------------ | Branch (361:5): [True: 0, False: 2.35k] ------------------ 362| 0| case AT_DropInherit: return "AT_DropInherit"; ------------------ | Branch (362:5): [True: 0, False: 2.35k] ------------------ 363| 0| case AT_AddOf: return "AT_AddOf"; ------------------ | Branch (363:5): [True: 0, False: 2.35k] ------------------ 364| 0| case AT_DropOf: return "AT_DropOf"; ------------------ | Branch (364:5): [True: 0, False: 2.35k] ------------------ 365| 0| case AT_ReplicaIdentity: return "AT_ReplicaIdentity"; ------------------ | Branch (365:5): [True: 0, False: 2.35k] ------------------ 366| 0| case AT_EnableRowSecurity: return "AT_EnableRowSecurity"; ------------------ | Branch (366:5): [True: 0, False: 2.35k] ------------------ 367| 0| case AT_DisableRowSecurity: return "AT_DisableRowSecurity"; ------------------ | Branch (367:5): [True: 0, False: 2.35k] ------------------ 368| 0| case AT_ForceRowSecurity: return "AT_ForceRowSecurity"; ------------------ | Branch (368:5): [True: 0, False: 2.35k] ------------------ 369| 0| case AT_NoForceRowSecurity: return "AT_NoForceRowSecurity"; ------------------ | Branch (369:5): [True: 0, False: 2.35k] ------------------ 370| 0| case AT_GenericOptions: return "AT_GenericOptions"; ------------------ | Branch (370:5): [True: 0, False: 2.35k] ------------------ 371| 0| case AT_AttachPartition: return "AT_AttachPartition"; ------------------ | Branch (371:5): [True: 0, False: 2.35k] ------------------ 372| 0| case AT_DetachPartition: return "AT_DetachPartition"; ------------------ | Branch (372:5): [True: 0, False: 2.35k] ------------------ 373| 0| case AT_DetachPartitionFinalize: return "AT_DetachPartitionFinalize"; ------------------ | Branch (373:5): [True: 0, False: 2.35k] ------------------ 374| 0| case AT_AddIdentity: return "AT_AddIdentity"; ------------------ | Branch (374:5): [True: 0, False: 2.35k] ------------------ 375| 395| case AT_SetIdentity: return "AT_SetIdentity"; ------------------ | Branch (375:5): [True: 395, False: 1.96k] ------------------ 376| 0| case AT_DropIdentity: return "AT_DropIdentity"; ------------------ | Branch (376:5): [True: 0, False: 2.35k] ------------------ 377| 0| case AT_ReAddStatistics: return "AT_ReAddStatistics"; ------------------ | Branch (377:5): [True: 0, False: 2.35k] ------------------ 378| 2.35k| } 379| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 380| | return NULL; 381| 2.35k|} pg_query_outfuncs_json.c:_enumToStringDropBehavior: 300| 3.34k|_enumToStringDropBehavior(DropBehavior value) { 301| 3.34k| switch(value) { ------------------ | Branch (301:10): [True: 3.34k, False: 0] ------------------ 302| 3.34k| case DROP_RESTRICT: return "DROP_RESTRICT"; ------------------ | Branch (302:5): [True: 3.34k, False: 0] ------------------ 303| 0| case DROP_CASCADE: return "DROP_CASCADE"; ------------------ | Branch (303:5): [True: 0, False: 3.34k] ------------------ 304| 3.34k| } 305| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 306| | return NULL; 307| 3.34k|} pg_query_outfuncs_json.c:_enumToStringGrantTargetType: 384| 392|_enumToStringGrantTargetType(GrantTargetType value) { 385| 392| switch(value) { ------------------ | Branch (385:10): [True: 392, False: 0] ------------------ 386| 392| case ACL_TARGET_OBJECT: return "ACL_TARGET_OBJECT"; ------------------ | Branch (386:5): [True: 392, False: 0] ------------------ 387| 0| case ACL_TARGET_ALL_IN_SCHEMA: return "ACL_TARGET_ALL_IN_SCHEMA"; ------------------ | Branch (387:5): [True: 0, False: 392] ------------------ 388| 0| case ACL_TARGET_DEFAULTS: return "ACL_TARGET_DEFAULTS"; ------------------ | Branch (388:5): [True: 0, False: 392] ------------------ 389| 392| } 390| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 391| | return NULL; 392| 392|} pg_query_outfuncs_json.c:_enumToStringVariableSetKind: 395| 4.78k|_enumToStringVariableSetKind(VariableSetKind value) { 396| 4.78k| switch(value) { ------------------ | Branch (396:10): [True: 4.78k, False: 0] ------------------ 397| 1.05k| case VAR_SET_VALUE: return "VAR_SET_VALUE"; ------------------ | Branch (397:5): [True: 1.05k, False: 3.72k] ------------------ 398| 0| case VAR_SET_DEFAULT: return "VAR_SET_DEFAULT"; ------------------ | Branch (398:5): [True: 0, False: 4.78k] ------------------ 399| 3.72k| case VAR_SET_CURRENT: return "VAR_SET_CURRENT"; ------------------ | Branch (399:5): [True: 3.72k, False: 1.05k] ------------------ 400| 0| case VAR_SET_MULTI: return "VAR_SET_MULTI"; ------------------ | Branch (400:5): [True: 0, False: 4.78k] ------------------ 401| 0| case VAR_RESET: return "VAR_RESET"; ------------------ | Branch (401:5): [True: 0, False: 4.78k] ------------------ 402| 0| case VAR_RESET_ALL: return "VAR_RESET_ALL"; ------------------ | Branch (402:5): [True: 0, False: 4.78k] ------------------ 403| 4.78k| } 404| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 405| | return NULL; 406| 4.78k|} pg_query_outfuncs_json.c:_enumToStringConstrType: 409| 18.1k|_enumToStringConstrType(ConstrType value) { 410| 18.1k| switch(value) { ------------------ | Branch (410:10): [True: 18.1k, False: 0] ------------------ 411| 8| case CONSTR_NULL: return "CONSTR_NULL"; ------------------ | Branch (411:5): [True: 8, False: 18.1k] ------------------ 412| 9| case CONSTR_NOTNULL: return "CONSTR_NOTNULL"; ------------------ | Branch (412:5): [True: 9, False: 18.1k] ------------------ 413| 16.8k| case CONSTR_DEFAULT: return "CONSTR_DEFAULT"; ------------------ | Branch (413:5): [True: 16.8k, False: 1.31k] ------------------ 414| 0| case CONSTR_IDENTITY: return "CONSTR_IDENTITY"; ------------------ | Branch (414:5): [True: 0, False: 18.1k] ------------------ 415| 129| case CONSTR_GENERATED: return "CONSTR_GENERATED"; ------------------ | Branch (415:5): [True: 129, False: 17.9k] ------------------ 416| 149| case CONSTR_CHECK: return "CONSTR_CHECK"; ------------------ | Branch (416:5): [True: 149, False: 17.9k] ------------------ 417| 132| case CONSTR_PRIMARY: return "CONSTR_PRIMARY"; ------------------ | Branch (417:5): [True: 132, False: 17.9k] ------------------ 418| 428| case CONSTR_UNIQUE: return "CONSTR_UNIQUE"; ------------------ | Branch (418:5): [True: 428, False: 17.7k] ------------------ 419| 0| case CONSTR_EXCLUSION: return "CONSTR_EXCLUSION"; ------------------ | Branch (419:5): [True: 0, False: 18.1k] ------------------ 420| 305| case CONSTR_FOREIGN: return "CONSTR_FOREIGN"; ------------------ | Branch (420:5): [True: 305, False: 17.8k] ------------------ 421| 77| case CONSTR_ATTR_DEFERRABLE: return "CONSTR_ATTR_DEFERRABLE"; ------------------ | Branch (421:5): [True: 77, False: 18.0k] ------------------ 422| 75| case CONSTR_ATTR_NOT_DEFERRABLE: return "CONSTR_ATTR_NOT_DEFERRABLE"; ------------------ | Branch (422:5): [True: 75, False: 18.0k] ------------------ 423| 0| case CONSTR_ATTR_DEFERRED: return "CONSTR_ATTR_DEFERRED"; ------------------ | Branch (423:5): [True: 0, False: 18.1k] ------------------ 424| 0| case CONSTR_ATTR_IMMEDIATE: return "CONSTR_ATTR_IMMEDIATE"; ------------------ | Branch (424:5): [True: 0, False: 18.1k] ------------------ 425| 0| case CONSTR_ATTR_ENFORCED: return "CONSTR_ATTR_ENFORCED"; ------------------ | Branch (425:5): [True: 0, False: 18.1k] ------------------ 426| 0| case CONSTR_ATTR_NOT_ENFORCED: return "CONSTR_ATTR_NOT_ENFORCED"; ------------------ | Branch (426:5): [True: 0, False: 18.1k] ------------------ 427| 18.1k| } 428| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 429| | return NULL; 430| 18.1k|} pg_query_outfuncs_json.c:_enumToStringRoleStmtType: 444| 629|_enumToStringRoleStmtType(RoleStmtType value) { 445| 629| switch(value) { ------------------ | Branch (445:10): [True: 629, False: 0] ------------------ 446| 0| case ROLESTMT_ROLE: return "ROLESTMT_ROLE"; ------------------ | Branch (446:5): [True: 0, False: 629] ------------------ 447| 629| case ROLESTMT_USER: return "ROLESTMT_USER"; ------------------ | Branch (447:5): [True: 629, False: 0] ------------------ 448| 0| case ROLESTMT_GROUP: return "ROLESTMT_GROUP"; ------------------ | Branch (448:5): [True: 0, False: 629] ------------------ 449| 629| } 450| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 451| | return NULL; 452| 629|} pg_query_outfuncs_json.c:_enumToStringFetchDirection: 455| 162|_enumToStringFetchDirection(FetchDirection value) { 456| 162| switch(value) { ------------------ | Branch (456:10): [True: 162, False: 0] ------------------ 457| 33| case FETCH_FORWARD: return "FETCH_FORWARD"; ------------------ | Branch (457:5): [True: 33, False: 129] ------------------ 458| 129| case FETCH_BACKWARD: return "FETCH_BACKWARD"; ------------------ | Branch (458:5): [True: 129, False: 33] ------------------ 459| 0| case FETCH_ABSOLUTE: return "FETCH_ABSOLUTE"; ------------------ | Branch (459:5): [True: 0, False: 162] ------------------ 460| 0| case FETCH_RELATIVE: return "FETCH_RELATIVE"; ------------------ | Branch (460:5): [True: 0, False: 162] ------------------ 461| 162| } 462| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 463| | return NULL; 464| 162|} pg_query_outfuncs_json.c:_enumToStringFunctionParameterMode: 467| 923k|_enumToStringFunctionParameterMode(FunctionParameterMode value) { 468| 923k| switch(value) { ------------------ | Branch (468:10): [True: 923k, False: 0] ------------------ 469| 76| case FUNC_PARAM_IN: return "FUNC_PARAM_IN"; ------------------ | Branch (469:5): [True: 76, False: 923k] ------------------ 470| 0| case FUNC_PARAM_OUT: return "FUNC_PARAM_OUT"; ------------------ | Branch (470:5): [True: 0, False: 923k] ------------------ 471| 0| case FUNC_PARAM_INOUT: return "FUNC_PARAM_INOUT"; ------------------ | Branch (471:5): [True: 0, False: 923k] ------------------ 472| 0| case FUNC_PARAM_VARIADIC: return "FUNC_PARAM_VARIADIC"; ------------------ | Branch (472:5): [True: 0, False: 923k] ------------------ 473| 0| case FUNC_PARAM_TABLE: return "FUNC_PARAM_TABLE"; ------------------ | Branch (473:5): [True: 0, False: 923k] ------------------ 474| 923k| case FUNC_PARAM_DEFAULT: return "FUNC_PARAM_DEFAULT"; ------------------ | Branch (474:5): [True: 923k, False: 76] ------------------ 475| 923k| } 476| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 477| | return NULL; 478| 923k|} pg_query_outfuncs_json.c:_enumToStringTransactionStmtKind: 481| 42|_enumToStringTransactionStmtKind(TransactionStmtKind value) { 482| 42| switch(value) { ------------------ | Branch (482:10): [True: 42, False: 0] ------------------ 483| 0| case TRANS_STMT_BEGIN: return "TRANS_STMT_BEGIN"; ------------------ | Branch (483:5): [True: 0, False: 42] ------------------ 484| 0| case TRANS_STMT_START: return "TRANS_STMT_START"; ------------------ | Branch (484:5): [True: 0, False: 42] ------------------ 485| 0| case TRANS_STMT_COMMIT: return "TRANS_STMT_COMMIT"; ------------------ | Branch (485:5): [True: 0, False: 42] ------------------ 486| 0| case TRANS_STMT_ROLLBACK: return "TRANS_STMT_ROLLBACK"; ------------------ | Branch (486:5): [True: 0, False: 42] ------------------ 487| 40| case TRANS_STMT_SAVEPOINT: return "TRANS_STMT_SAVEPOINT"; ------------------ | Branch (487:5): [True: 40, False: 2] ------------------ 488| 2| case TRANS_STMT_RELEASE: return "TRANS_STMT_RELEASE"; ------------------ | Branch (488:5): [True: 2, False: 40] ------------------ 489| 0| case TRANS_STMT_ROLLBACK_TO: return "TRANS_STMT_ROLLBACK_TO"; ------------------ | Branch (489:5): [True: 0, False: 42] ------------------ 490| 0| case TRANS_STMT_PREPARE: return "TRANS_STMT_PREPARE"; ------------------ | Branch (490:5): [True: 0, False: 42] ------------------ 491| 0| case TRANS_STMT_COMMIT_PREPARED: return "TRANS_STMT_COMMIT_PREPARED"; ------------------ | Branch (491:5): [True: 0, False: 42] ------------------ 492| 0| case TRANS_STMT_ROLLBACK_PREPARED: return "TRANS_STMT_ROLLBACK_PREPARED"; ------------------ | Branch (492:5): [True: 0, False: 42] ------------------ 493| 42| } 494| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 495| | return NULL; 496| 42|} pg_query_outfuncs_json.c:_enumToStringViewCheckOption: 499| 700|_enumToStringViewCheckOption(ViewCheckOption value) { 500| 700| switch(value) { ------------------ | Branch (500:10): [True: 700, False: 0] ------------------ 501| 700| case NO_CHECK_OPTION: return "NO_CHECK_OPTION"; ------------------ | Branch (501:5): [True: 700, False: 0] ------------------ 502| 0| case LOCAL_CHECK_OPTION: return "LOCAL_CHECK_OPTION"; ------------------ | Branch (502:5): [True: 0, False: 700] ------------------ 503| 0| case CASCADED_CHECK_OPTION: return "CASCADED_CHECK_OPTION"; ------------------ | Branch (503:5): [True: 0, False: 700] ------------------ 504| 700| } 505| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 506| | return NULL; 507| 700|} pg_query_outfuncs_json.c:_enumToStringReindexObjectType: 522| 3|_enumToStringReindexObjectType(ReindexObjectType value) { 523| 3| switch(value) { ------------------ | Branch (523:10): [True: 3, False: 0] ------------------ 524| 0| case REINDEX_OBJECT_INDEX: return "REINDEX_OBJECT_INDEX"; ------------------ | Branch (524:5): [True: 0, False: 3] ------------------ 525| 3| case REINDEX_OBJECT_TABLE: return "REINDEX_OBJECT_TABLE"; ------------------ | Branch (525:5): [True: 3, False: 0] ------------------ 526| 0| case REINDEX_OBJECT_SCHEMA: return "REINDEX_OBJECT_SCHEMA"; ------------------ | Branch (526:5): [True: 0, False: 3] ------------------ 527| 0| case REINDEX_OBJECT_SYSTEM: return "REINDEX_OBJECT_SYSTEM"; ------------------ | Branch (527:5): [True: 0, False: 3] ------------------ 528| 0| case REINDEX_OBJECT_DATABASE: return "REINDEX_OBJECT_DATABASE"; ------------------ | Branch (528:5): [True: 0, False: 3] ------------------ 529| 3| } 530| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 531| | return NULL; 532| 3|} pg_query_outfuncs_json.c:_enumToStringPublicationObjSpecType: 548| 2.18M|_enumToStringPublicationObjSpecType(PublicationObjSpecType value) { 549| 2.18M| switch(value) { ------------------ | Branch (549:10): [True: 2.18M, False: 0] ------------------ 550| 2.18M| case PUBLICATIONOBJ_TABLE: return "PUBLICATIONOBJ_TABLE"; ------------------ | Branch (550:5): [True: 2.18M, False: 0] ------------------ 551| 0| case PUBLICATIONOBJ_TABLES_IN_SCHEMA: return "PUBLICATIONOBJ_TABLES_IN_SCHEMA"; ------------------ | Branch (551:5): [True: 0, False: 2.18M] ------------------ 552| 0| case PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA: return "PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA"; ------------------ | Branch (552:5): [True: 0, False: 2.18M] ------------------ 553| 0| case PUBLICATIONOBJ_CONTINUATION: return "PUBLICATIONOBJ_CONTINUATION"; ------------------ | Branch (553:5): [True: 0, False: 2.18M] ------------------ 554| 2.18M| } 555| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 556| | return NULL; 557| 2.18M|} pg_query_outfuncs_json.c:_enumToStringAlterPublicationAction: 560| 258|_enumToStringAlterPublicationAction(AlterPublicationAction value) { 561| 258| switch(value) { ------------------ | Branch (561:10): [True: 258, False: 0] ------------------ 562| 0| case AP_AddObjects: return "AP_AddObjects"; ------------------ | Branch (562:5): [True: 0, False: 258] ------------------ 563| 258| case AP_DropObjects: return "AP_DropObjects"; ------------------ | Branch (563:5): [True: 258, False: 0] ------------------ 564| 0| case AP_SetObjects: return "AP_SetObjects"; ------------------ | Branch (564:5): [True: 0, False: 258] ------------------ 565| 258| } 566| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 567| | return NULL; 568| 258|} pg_query_outfuncs_json.c:_outToken: 16| 34.6M|{ 17| 34.6M| if (str == NULL) ------------------ | Branch (17:6): [True: 0, False: 34.6M] ------------------ 18| 0| { 19| 0| appendStringInfoString(buf, "null"); 20| 0| return; 21| 0| } 22| | 23| | // copied directly from https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/json.c#L2428 24| 34.6M| const char *p; 25| | 26| 34.6M| appendStringInfoCharMacro(buf, '"'); ------------------ | | 232| 34.6M| (((str)->len + 1 >= (str)->maxlen) ? \ | | ------------------ | | | Branch (232:3): [True: 0, False: 34.6M] | | ------------------ | | 233| 34.6M| appendStringInfoChar(str, ch) : \ | | 234| 34.6M| (void)((str)->data[(str)->len] = (ch), (str)->data[++(str)->len] = '\0')) ------------------ 27| 1.03G| for (p = str; *p; p++) ------------------ | Branch (27:16): [True: 1.00G, False: 34.6M] ------------------ 28| 1.00G| { 29| 1.00G| switch (*p) 30| 1.00G| { 31| 538| case '\b': ------------------ | Branch (31:4): [True: 538, False: 1.00G] ------------------ 32| 538| appendStringInfoString(buf, "\\b"); 33| 538| break; 34| 8.08k| case '\f': ------------------ | Branch (34:4): [True: 8.08k, False: 1.00G] ------------------ 35| 8.08k| appendStringInfoString(buf, "\\f"); 36| 8.08k| break; 37| 404k| case '\n': ------------------ | Branch (37:4): [True: 404k, False: 1.00G] ------------------ 38| 404k| appendStringInfoString(buf, "\\n"); 39| 404k| break; 40| 58.9k| case '\r': ------------------ | Branch (40:4): [True: 58.9k, False: 1.00G] ------------------ 41| 58.9k| appendStringInfoString(buf, "\\r"); 42| 58.9k| break; 43| 294k| case '\t': ------------------ | Branch (43:4): [True: 294k, False: 1.00G] ------------------ 44| 294k| appendStringInfoString(buf, "\\t"); 45| 294k| break; 46| 331| case '"': ------------------ | Branch (46:4): [True: 331, False: 1.00G] ------------------ 47| 331| appendStringInfoString(buf, "\\\""); 48| 331| break; 49| 190k| case '\\': ------------------ | Branch (49:4): [True: 190k, False: 1.00G] ------------------ 50| 190k| appendStringInfoString(buf, "\\\\"); 51| 190k| break; 52| 1.00G| default: ------------------ | Branch (52:4): [True: 1.00G, False: 957k] ------------------ 53| 1.00G| if ((unsigned char) *p < ' ' || *p == '<' || *p == '>') ------------------ | Branch (53:9): [True: 193k, False: 1.00G] | Branch (53:37): [True: 10.1M, False: 990M] | Branch (53:50): [True: 1.43M, False: 988M] ------------------ 54| 11.8M| appendStringInfo(buf, "\\u%04x", (int) *p); 55| 988M| else 56| 988M| appendStringInfoCharMacro(buf, *p); ------------------ | | 232| 988M| (((str)->len + 1 >= (str)->maxlen) ? \ | | ------------------ | | | Branch (232:3): [True: 274, False: 988M] | | ------------------ | | 233| 988M| appendStringInfoChar(str, ch) : \ | | 234| 988M| (void)((str)->data[(str)->len] = (ch), (str)->data[++(str)->len] = '\0')) ------------------ 57| 1.00G| break; 58| 1.00G| } 59| 1.00G| } 60| 34.6M| appendStringInfoCharMacro(buf, '"'); ------------------ | | 232| 34.6M| (((str)->len + 1 >= (str)->maxlen) ? \ | | ------------------ | | | Branch (232:3): [True: 2, False: 34.6M] | | ------------------ | | 233| 34.6M| appendStringInfoChar(str, ch) : \ | | 234| 34.6M| (void)((str)->data[(str)->len] = (ch), (str)->data[++(str)->len] = '\0')) ------------------ 61| 34.6M|} pg_query_outfuncs_json.c:removeTrailingDelimiter: 7| 67.1M|{ 8| 67.1M| if (str->len >= 1 && str->data[str->len - 1] == ',') { ------------------ | Branch (8:6): [True: 67.1M, False: 0] | Branch (8:23): [True: 39.2M, False: 27.9M] ------------------ 9| 39.2M| str->len -= 1; 10| 39.2M| str->data[str->len] = '\0'; 11| 39.2M| } 12| 67.1M|} pg_query_outfuncs_json.c:_outAlias: 269| 189k|{ 270| 189k| WRITE_STRING_FIELD(Alias, aliasname, aliasname, aliasname); ------------------ | | 91| 189k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 189k, False: 0] | | | Branch (91:31): [True: 189k, False: 0] | | ------------------ | | 92| 189k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 189k| _outToken(out, node->fldname); \ | | 94| 189k| appendStringInfo(out, ","); \ | | 95| 189k| } ------------------ 271| | WRITE_LIST_FIELD(Alias, colnames, colnames, colnames); ------------------ | | 98| 189k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 319, False: 189k] | | ------------------ | | 99| 319| const ListCell *lc; \ | | 100| 319| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 319| appendStringInfoChar(out, '['); \ | | 102| 319| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 319| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 638| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.27k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 319, False: 319] | | | | | Branch (375:5): [True: 638, False: 0] | | | | ------------------ | | | | 376| 638| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 319, False: 319] | | | | ------------------ | | | | 377| 638| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 638| (cell = NULL, false); \ | | | | 379| 319| cell##__state.i++) | | ------------------ | | 103| 319| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 319|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 319] | | ------------------ | | 104| 319| appendStringInfoString(out, "{}"); \ | | 105| 319| else \ | | 106| 319| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 319|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 319| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 319] | | ------------------ | | 108| 319| appendStringInfoString(out, ","); \ | | 109| 319| } \ | | 110| 319| appendStringInfo(out, "],"); \ | | 111| 319| } ------------------ 272| 189k|} pg_query_outfuncs_json.c:_outRangeVar: 276| 3.00M|{ 277| 3.00M| WRITE_STRING_FIELD(RangeVar, catalogname, catalogname, catalogname); ------------------ | | 91| 3.00M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 18, False: 3.00M] | | | Branch (91:31): [True: 18, False: 0] | | ------------------ | | 92| 18| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 18| _outToken(out, node->fldname); \ | | 94| 18| appendStringInfo(out, ","); \ | | 95| 18| } ------------------ 278| 3.00M| WRITE_STRING_FIELD(RangeVar, schemaname, schemaname, schemaname); ------------------ | | 91| 3.00M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 5.96k, False: 2.99M] | | | Branch (91:31): [True: 5.96k, False: 0] | | ------------------ | | 92| 5.96k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 5.96k| _outToken(out, node->fldname); \ | | 94| 5.96k| appendStringInfo(out, ","); \ | | 95| 5.96k| } ------------------ 279| 3.00M| WRITE_STRING_FIELD(RangeVar, relname, relname, relname); ------------------ | | 91| 3.00M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 3.00M, False: 0] | | | Branch (91:31): [True: 3.00M, False: 0] | | ------------------ | | 92| 3.00M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 3.00M| _outToken(out, node->fldname); \ | | 94| 3.00M| appendStringInfo(out, ","); \ | | 95| 3.00M| } ------------------ 280| 3.00M| WRITE_BOOL_FIELD(RangeVar, inh, inh, inh); ------------------ | | 77| 3.00M| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 3.00M, False: 903] | | ------------------ | | 78| 3.00M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 3.00M| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 3.00M|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 3.00M, False: 0] | | | | ------------------ | | ------------------ | | 80| 3.00M| } ------------------ 281| 3.00M| WRITE_CHAR_FIELD(RangeVar, relpersistence, relpersistence, relpersistence); ------------------ | | 62| 3.00M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 3.00M, False: 0] | | ------------------ | | 63| 3.00M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 3.00M| } ------------------ 282| 3.00M| WRITE_SPECIFIC_NODE_PTR_FIELD(RangeVar, Alias, alias, alias, alias, alias); ------------------ | | 141| 3.00M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 18.5k, False: 2.98M] | | ------------------ | | 142| 18.5k| check_stack_depth(); \ | | 143| 18.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 18.5k| _out##typename(out, node->fldname); \ | | 145| 18.5k| removeTrailingDelimiter(out); \ | | 146| 18.5k| appendStringInfo(out, "},"); \ | | 147| 18.5k| } ------------------ 283| 3.00M| WRITE_INT_FIELD(RangeVar, location, location, location); ------------------ | | 38| 3.00M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 3.00M, False: 0] | | ------------------ | | 39| 3.00M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 3.00M| } ------------------ 284| 3.00M|} pg_query_outfuncs_json.c:_outIntoClause: 310| 17.4k|{ 311| 17.4k| WRITE_SPECIFIC_NODE_PTR_FIELD(IntoClause, RangeVar, range_var, rel, rel, rel); ------------------ | | 141| 17.4k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 17.4k, False: 0] | | ------------------ | | 142| 17.4k| check_stack_depth(); \ | | 143| 17.4k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 17.4k| _out##typename(out, node->fldname); \ | | 145| 17.4k| removeTrailingDelimiter(out); \ | | 146| 17.4k| appendStringInfo(out, "},"); \ | | 147| 17.4k| } ------------------ 312| 17.4k| WRITE_LIST_FIELD(IntoClause, col_names, colNames, colNames); ------------------ | | 98| 17.4k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 433, False: 16.9k] | | ------------------ | | 99| 433| const ListCell *lc; \ | | 100| 433| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 433| appendStringInfoChar(out, '['); \ | | 102| 153k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 433| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 153k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 307k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 153k, False: 433] | | | | | Branch (375:5): [True: 153k, False: 0] | | | | ------------------ | | | | 376| 153k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 153k, False: 433] | | | | ------------------ | | | | 377| 153k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 153k| (cell = NULL, false); \ | | | | 379| 153k| cell##__state.i++) | | ------------------ | | 103| 153k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 153k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 153k] | | ------------------ | | 104| 153k| appendStringInfoString(out, "{}"); \ | | 105| 153k| else \ | | 106| 153k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 153k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 153k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 153k, False: 433] | | ------------------ | | 108| 153k| appendStringInfoString(out, ","); \ | | 109| 153k| } \ | | 110| 433| appendStringInfo(out, "],"); \ | | 111| 433| } ------------------ 313| 17.4k| WRITE_STRING_FIELD(IntoClause, access_method, accessMethod, accessMethod); ------------------ | | 91| 17.4k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 12, False: 17.3k] | | | Branch (91:31): [True: 12, False: 0] | | ------------------ | | 92| 12| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 12| _outToken(out, node->fldname); \ | | 94| 12| appendStringInfo(out, ","); \ | | 95| 12| } ------------------ 314| 17.4k| WRITE_LIST_FIELD(IntoClause, options, options, options); ------------------ | | 98| 17.4k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 17.4k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 315| 17.4k| WRITE_ENUM_FIELD(IntoClause, OnCommitAction, on_commit, onCommit, onCommit); ------------------ | | 68| 17.4k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 17.4k| _enumToString##enumtype(node->fldname)); ------------------ 316| 17.4k| WRITE_STRING_FIELD(IntoClause, table_space_name, tableSpaceName, tableSpaceName); ------------------ | | 91| 17.4k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 17.4k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 317| 17.4k| WRITE_SPECIFIC_NODE_PTR_FIELD(IntoClause, Query, query, view_query, viewQuery, viewQuery); ------------------ | | 141| 17.4k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 17.4k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 318| 17.4k| WRITE_BOOL_FIELD(IntoClause, skip_data, skipData, skipData); ------------------ | | 77| 17.4k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 17.4k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 319| 17.4k|} pg_query_outfuncs_json.c:_outGroupingFunc: 371| 2.14k|{ 372| 2.14k| WRITE_LIST_FIELD(GroupingFunc, args, args, args); ------------------ | | 98| 2.14k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2.14k, False: 0] | | ------------------ | | 99| 2.14k| const ListCell *lc; \ | | 100| 2.14k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2.14k| appendStringInfoChar(out, '['); \ | | 102| 120k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2.14k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 122k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 244k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 120k, False: 2.14k] | | | | | Branch (375:5): [True: 122k, False: 0] | | | | ------------------ | | | | 376| 122k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 120k, False: 2.14k] | | | | ------------------ | | | | 377| 122k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 122k| (cell = NULL, false); \ | | | | 379| 120k| cell##__state.i++) | | ------------------ | | 103| 120k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 120k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 120k] | | ------------------ | | 104| 120k| appendStringInfoString(out, "{}"); \ | | 105| 120k| else \ | | 106| 120k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 120k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 120k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 117k, False: 2.14k] | | ------------------ | | 108| 120k| appendStringInfoString(out, ","); \ | | 109| 120k| } \ | | 110| 2.14k| appendStringInfo(out, "],"); \ | | 111| 2.14k| } ------------------ 373| 2.14k| WRITE_LIST_FIELD(GroupingFunc, refs, refs, refs); ------------------ | | 98| 2.14k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 2.14k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 374| 2.14k| WRITE_UINT_FIELD(GroupingFunc, agglevelsup, agglevelsup, agglevelsup); ------------------ | | 44| 2.14k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 2.14k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 375| 2.14k| WRITE_INT_FIELD(GroupingFunc, location, location, location); ------------------ | | 38| 2.14k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.14k, False: 0] | | ------------------ | | 39| 2.14k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.14k| } ------------------ 376| 2.14k|} pg_query_outfuncs_json.c:_outNamedArgExpr: 441| 275|{ 442| 275| WRITE_NODE_PTR_FIELD(NamedArgExpr, arg, arg, arg); ------------------ | | 121| 275| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 275, False: 0] | | ------------------ | | 122| 275| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 275| _outNode(out, node->fldname); \ | | 124| 275| appendStringInfo(out, ","); \ | | 125| 275| } ------------------ 443| 275| WRITE_STRING_FIELD(NamedArgExpr, name, name, name); ------------------ | | 91| 275| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 275, False: 0] | | | Branch (91:31): [True: 275, False: 0] | | ------------------ | | 92| 275| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 275| _outToken(out, node->fldname); \ | | 94| 275| appendStringInfo(out, ","); \ | | 95| 275| } ------------------ 444| 275| WRITE_INT_FIELD(NamedArgExpr, argnumber, argnumber, argnumber); ------------------ | | 38| 275| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 275, False: 0] | | ------------------ | | 39| 275| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 275| } ------------------ 445| 275| WRITE_INT_FIELD(NamedArgExpr, location, location, location); ------------------ | | 38| 275| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 275, False: 0] | | ------------------ | | 39| 275| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 275| } ------------------ 446| 275|} pg_query_outfuncs_json.c:_outBoolExpr: 496| 77.3k|{ 497| 77.3k| WRITE_ENUM_FIELD(BoolExpr, BoolExprType, boolop, boolop, boolop); ------------------ | | 68| 77.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 77.3k| _enumToString##enumtype(node->fldname)); ------------------ 498| 77.3k| WRITE_LIST_FIELD(BoolExpr, args, args, args); ------------------ | | 98| 77.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 77.3k, False: 0] | | ------------------ | | 99| 77.3k| const ListCell *lc; \ | | 100| 77.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 77.3k| appendStringInfoChar(out, '['); \ | | 102| 78.0k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 77.3k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 155k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 310k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 78.0k, False: 77.3k] | | | | | Branch (375:5): [True: 155k, False: 0] | | | | ------------------ | | | | 376| 155k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 78.0k, False: 77.3k] | | | | ------------------ | | | | 377| 155k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 155k| (cell = NULL, false); \ | | | | 379| 78.0k| cell##__state.i++) | | ------------------ | | 103| 78.0k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 78.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 78.0k] | | ------------------ | | 104| 78.0k| appendStringInfoString(out, "{}"); \ | | 105| 78.0k| else \ | | 106| 78.0k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 78.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 78.0k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 771, False: 77.3k] | | ------------------ | | 108| 78.0k| appendStringInfoString(out, ","); \ | | 109| 78.0k| } \ | | 110| 77.3k| appendStringInfo(out, "],"); \ | | 111| 77.3k| } ------------------ 499| 77.3k| WRITE_INT_FIELD(BoolExpr, location, location, location); ------------------ | | 38| 77.3k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 77.3k, False: 0] | | ------------------ | | 39| 77.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 77.3k| } ------------------ 500| 77.3k|} pg_query_outfuncs_json.c:_outSubLink: 504| 200k|{ 505| 200k| WRITE_ENUM_FIELD(SubLink, SubLinkType, sub_link_type, subLinkType, subLinkType); ------------------ | | 68| 200k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 200k| _enumToString##enumtype(node->fldname)); ------------------ 506| 200k| WRITE_INT_FIELD(SubLink, sub_link_id, subLinkId, subLinkId); ------------------ | | 38| 200k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 200k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 507| 200k| WRITE_NODE_PTR_FIELD(SubLink, testexpr, testexpr, testexpr); ------------------ | | 121| 200k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 2.66k, False: 198k] | | ------------------ | | 122| 2.66k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 2.66k| _outNode(out, node->fldname); \ | | 124| 2.66k| appendStringInfo(out, ","); \ | | 125| 2.66k| } ------------------ 508| 200k| WRITE_LIST_FIELD(SubLink, oper_name, operName, operName); ------------------ | | 98| 200k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 905, False: 199k] | | ------------------ | | 99| 905| const ListCell *lc; \ | | 100| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 905| appendStringInfoChar(out, '['); \ | | 102| 905| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 905| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.81k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.62k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 905, False: 905] | | | | | Branch (375:5): [True: 1.81k, False: 0] | | | | ------------------ | | | | 376| 1.81k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 905, False: 905] | | | | ------------------ | | | | 377| 1.81k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.81k| (cell = NULL, false); \ | | | | 379| 905| cell##__state.i++) | | ------------------ | | 103| 905| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 905|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 905] | | ------------------ | | 104| 905| appendStringInfoString(out, "{}"); \ | | 105| 905| else \ | | 106| 905| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 905|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 905| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 905] | | ------------------ | | 108| 905| appendStringInfoString(out, ","); \ | | 109| 905| } \ | | 110| 905| appendStringInfo(out, "],"); \ | | 111| 905| } ------------------ 509| 200k| WRITE_NODE_PTR_FIELD(SubLink, subselect, subselect, subselect); ------------------ | | 121| 200k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 200k, False: 0] | | ------------------ | | 122| 200k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 200k| _outNode(out, node->fldname); \ | | 124| 200k| appendStringInfo(out, ","); \ | | 125| 200k| } ------------------ 510| 200k| WRITE_INT_FIELD(SubLink, location, location, location); ------------------ | | 38| 200k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 200k, False: 3] | | ------------------ | | 39| 200k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 200k| } ------------------ 511| 200k|} pg_query_outfuncs_json.c:_outCaseExpr: 611| 802|{ 612| 802| WRITE_UINT_FIELD(CaseExpr, casetype, casetype, casetype); ------------------ | | 44| 802| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 802] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 613| 802| WRITE_UINT_FIELD(CaseExpr, casecollid, casecollid, casecollid); ------------------ | | 44| 802| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 802] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 614| 802| WRITE_NODE_PTR_FIELD(CaseExpr, arg, arg, arg); ------------------ | | 121| 802| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 290, False: 512] | | ------------------ | | 122| 290| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 290| _outNode(out, node->fldname); \ | | 124| 290| appendStringInfo(out, ","); \ | | 125| 290| } ------------------ 615| 802| WRITE_LIST_FIELD(CaseExpr, args, args, args); ------------------ | | 98| 802| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 802, False: 0] | | ------------------ | | 99| 802| const ListCell *lc; \ | | 100| 802| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 802| appendStringInfoChar(out, '['); \ | | 102| 877| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 802| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.67k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.35k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 877, False: 802] | | | | | Branch (375:5): [True: 1.67k, False: 0] | | | | ------------------ | | | | 376| 1.67k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 877, False: 802] | | | | ------------------ | | | | 377| 1.67k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.67k| (cell = NULL, false); \ | | | | 379| 877| cell##__state.i++) | | ------------------ | | 103| 877| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 877|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 877] | | ------------------ | | 104| 877| appendStringInfoString(out, "{}"); \ | | 105| 877| else \ | | 106| 877| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 877|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 877| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 75, False: 802] | | ------------------ | | 108| 877| appendStringInfoString(out, ","); \ | | 109| 877| } \ | | 110| 802| appendStringInfo(out, "],"); \ | | 111| 802| } ------------------ 616| 802| WRITE_NODE_PTR_FIELD(CaseExpr, defresult, defresult, defresult); ------------------ | | 121| 802| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 802] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 617| 802| WRITE_INT_FIELD(CaseExpr, location, location, location); ------------------ | | 38| 802| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 802, False: 0] | | ------------------ | | 39| 802| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 802| } ------------------ 618| 802|} pg_query_outfuncs_json.c:_outCaseWhen: 622| 877|{ 623| 877| WRITE_NODE_PTR_FIELD(CaseWhen, expr, expr, expr); ------------------ | | 121| 877| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 877, False: 0] | | ------------------ | | 122| 877| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 877| _outNode(out, node->fldname); \ | | 124| 877| appendStringInfo(out, ","); \ | | 125| 877| } ------------------ 624| 877| WRITE_NODE_PTR_FIELD(CaseWhen, result, result, result); ------------------ | | 121| 877| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 877, False: 0] | | ------------------ | | 122| 877| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 877| _outNode(out, node->fldname); \ | | 124| 877| appendStringInfo(out, ","); \ | | 125| 877| } ------------------ 625| 877| WRITE_INT_FIELD(CaseWhen, location, location, location); ------------------ | | 38| 877| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 877, False: 0] | | ------------------ | | 39| 877| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 877| } ------------------ 626| 877|} pg_query_outfuncs_json.c:_outRowExpr: 651| 5.98k|{ 652| 5.98k| WRITE_LIST_FIELD(RowExpr, args, args, args); ------------------ | | 98| 5.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 5.84k, False: 143] | | ------------------ | | 99| 5.84k| const ListCell *lc; \ | | 100| 5.84k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 5.84k| appendStringInfoChar(out, '['); \ | | 102| 191k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 5.84k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 197k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 394k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 191k, False: 5.84k] | | | | | Branch (375:5): [True: 197k, False: 0] | | | | ------------------ | | | | 376| 197k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 191k, False: 5.84k] | | | | ------------------ | | | | 377| 197k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 197k| (cell = NULL, false); \ | | | | 379| 191k| cell##__state.i++) | | ------------------ | | 103| 191k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 191k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 191k] | | ------------------ | | 104| 191k| appendStringInfoString(out, "{}"); \ | | 105| 191k| else \ | | 106| 191k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 191k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 191k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 185k, False: 5.84k] | | ------------------ | | 108| 191k| appendStringInfoString(out, ","); \ | | 109| 191k| } \ | | 110| 5.84k| appendStringInfo(out, "],"); \ | | 111| 5.84k| } ------------------ 653| 5.98k| WRITE_UINT_FIELD(RowExpr, row_typeid, row_typeid, row_typeid); ------------------ | | 44| 5.98k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 5.98k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 654| 5.98k| WRITE_ENUM_FIELD(RowExpr, CoercionForm, row_format, row_format, row_format); ------------------ | | 68| 5.98k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 5.98k| _enumToString##enumtype(node->fldname)); ------------------ 655| 5.98k| WRITE_LIST_FIELD(RowExpr, colnames, colnames, colnames); ------------------ | | 98| 5.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 5.98k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 656| 5.98k| WRITE_INT_FIELD(RowExpr, location, location, location); ------------------ | | 38| 5.98k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 5.98k, False: 0] | | ------------------ | | 39| 5.98k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 5.98k| } ------------------ 657| 5.98k|} pg_query_outfuncs_json.c:_outCoalesceExpr: 672| 93|{ 673| 93| WRITE_UINT_FIELD(CoalesceExpr, coalescetype, coalescetype, coalescetype); ------------------ | | 44| 93| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 93] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 674| 93| WRITE_UINT_FIELD(CoalesceExpr, coalescecollid, coalescecollid, coalescecollid); ------------------ | | 44| 93| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 93] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 675| 93| WRITE_LIST_FIELD(CoalesceExpr, args, args, args); ------------------ | | 98| 93| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 93, False: 0] | | ------------------ | | 99| 93| const ListCell *lc; \ | | 100| 93| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 93| appendStringInfoChar(out, '['); \ | | 102| 93| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 93| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 186| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 372|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 93, False: 93] | | | | | Branch (375:5): [True: 186, False: 0] | | | | ------------------ | | | | 376| 186| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 93, False: 93] | | | | ------------------ | | | | 377| 186| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 186| (cell = NULL, false); \ | | | | 379| 93| cell##__state.i++) | | ------------------ | | 103| 93| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 93|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 93] | | ------------------ | | 104| 93| appendStringInfoString(out, "{}"); \ | | 105| 93| else \ | | 106| 93| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 93|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 93| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 93] | | ------------------ | | 108| 93| appendStringInfoString(out, ","); \ | | 109| 93| } \ | | 110| 93| appendStringInfo(out, "],"); \ | | 111| 93| } ------------------ 676| 93| WRITE_INT_FIELD(CoalesceExpr, location, location, location); ------------------ | | 38| 93| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 93, False: 0] | | ------------------ | | 39| 93| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 93| } ------------------ 677| 93|} pg_query_outfuncs_json.c:_outMinMaxExpr: 681| 3.54k|{ 682| 3.54k| WRITE_UINT_FIELD(MinMaxExpr, minmaxtype, minmaxtype, minmaxtype); ------------------ | | 44| 3.54k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 3.54k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 683| 3.54k| WRITE_UINT_FIELD(MinMaxExpr, minmaxcollid, minmaxcollid, minmaxcollid); ------------------ | | 44| 3.54k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 3.54k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 684| 3.54k| WRITE_UINT_FIELD(MinMaxExpr, inputcollid, inputcollid, inputcollid); ------------------ | | 44| 3.54k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 3.54k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 685| 3.54k| WRITE_ENUM_FIELD(MinMaxExpr, MinMaxOp, op, op, op); ------------------ | | 68| 3.54k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 3.54k| _enumToString##enumtype(node->fldname)); ------------------ 686| 3.54k| WRITE_LIST_FIELD(MinMaxExpr, args, args, args); ------------------ | | 98| 3.54k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 3.54k, False: 0] | | ------------------ | | 99| 3.54k| const ListCell *lc; \ | | 100| 3.54k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 3.54k| appendStringInfoChar(out, '['); \ | | 102| 6.92k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 3.54k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 10.4k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 20.9k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 6.92k, False: 3.54k] | | | | | Branch (375:5): [True: 10.4k, False: 0] | | | | ------------------ | | | | 376| 10.4k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 6.92k, False: 3.54k] | | | | ------------------ | | | | 377| 10.4k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 10.4k| (cell = NULL, false); \ | | | | 379| 6.92k| cell##__state.i++) | | ------------------ | | 103| 6.92k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 6.92k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 6.92k] | | ------------------ | | 104| 6.92k| appendStringInfoString(out, "{}"); \ | | 105| 6.92k| else \ | | 106| 6.92k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 6.92k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 6.92k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 3.37k, False: 3.54k] | | ------------------ | | 108| 6.92k| appendStringInfoString(out, ","); \ | | 109| 6.92k| } \ | | 110| 3.54k| appendStringInfo(out, "],"); \ | | 111| 3.54k| } ------------------ 687| 3.54k| WRITE_INT_FIELD(MinMaxExpr, location, location, location); ------------------ | | 38| 3.54k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 3.54k, False: 0] | | ------------------ | | 39| 3.54k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 3.54k| } ------------------ 688| 3.54k|} pg_query_outfuncs_json.c:_outSQLValueFunction: 692| 202k|{ 693| 202k| WRITE_ENUM_FIELD(SQLValueFunction, SQLValueFunctionOp, op, op, op); ------------------ | | 68| 202k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 202k| _enumToString##enumtype(node->fldname)); ------------------ 694| 202k| WRITE_UINT_FIELD(SQLValueFunction, type, type, type); ------------------ | | 44| 202k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 202k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 695| 202k| WRITE_INT_FIELD(SQLValueFunction, typmod, typmod, typmod); ------------------ | | 38| 202k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 184k, False: 17.9k] | | ------------------ | | 39| 184k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 184k| } ------------------ 696| 202k| WRITE_INT_FIELD(SQLValueFunction, location, location, location); ------------------ | | 38| 202k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 202k, False: 0] | | ------------------ | | 39| 202k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 202k| } ------------------ 697| 202k|} pg_query_outfuncs_json.c:_outJsonFormat: 716| 6.60k|{ 717| 6.60k| WRITE_ENUM_FIELD(JsonFormat, JsonFormatType, format_type, format_type, format_type); ------------------ | | 68| 6.60k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 6.60k| _enumToString##enumtype(node->fldname)); ------------------ 718| 6.60k| WRITE_ENUM_FIELD(JsonFormat, JsonEncoding, encoding, encoding, encoding); ------------------ | | 68| 6.60k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 6.60k| _enumToString##enumtype(node->fldname)); ------------------ 719| 6.60k| WRITE_INT_FIELD(JsonFormat, location, location, location); ------------------ | | 38| 6.60k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 6.60k, False: 0] | | ------------------ | | 39| 6.60k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 6.60k| } ------------------ 720| 6.60k|} pg_query_outfuncs_json.c:_outJsonValueExpr: 732| 4.29k|{ 733| 4.29k| WRITE_NODE_PTR_FIELD(JsonValueExpr, raw_expr, raw_expr, raw_expr); ------------------ | | 121| 4.29k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 4.29k, False: 0] | | ------------------ | | 122| 4.29k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 4.29k| _outNode(out, node->fldname); \ | | 124| 4.29k| appendStringInfo(out, ","); \ | | 125| 4.29k| } ------------------ 734| 4.29k| WRITE_NODE_PTR_FIELD(JsonValueExpr, formatted_expr, formatted_expr, formatted_expr); ------------------ | | 121| 4.29k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 4.29k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 735| | WRITE_SPECIFIC_NODE_PTR_FIELD(JsonValueExpr, JsonFormat, json_format, format, format, format); ------------------ | | 141| 4.29k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 4.29k, False: 0] | | ------------------ | | 142| 4.29k| check_stack_depth(); \ | | 143| 4.29k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 4.29k| _out##typename(out, node->fldname); \ | | 145| 4.29k| removeTrailingDelimiter(out); \ | | 146| 4.29k| appendStringInfo(out, "},"); \ | | 147| 4.29k| } ------------------ 736| 4.29k|} pg_query_outfuncs_json.c:_outJsonIsPredicate: 753| 2.31k|{ 754| 2.31k| WRITE_NODE_PTR_FIELD(JsonIsPredicate, expr, expr, expr); ------------------ | | 121| 2.31k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 2.31k, False: 0] | | ------------------ | | 122| 2.31k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 2.31k| _outNode(out, node->fldname); \ | | 124| 2.31k| appendStringInfo(out, ","); \ | | 125| 2.31k| } ------------------ 755| 2.31k| WRITE_SPECIFIC_NODE_PTR_FIELD(JsonIsPredicate, JsonFormat, json_format, format, format, format); ------------------ | | 141| 2.31k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 2.31k, False: 0] | | ------------------ | | 142| 2.31k| check_stack_depth(); \ | | 143| 2.31k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 2.31k| _out##typename(out, node->fldname); \ | | 145| 2.31k| removeTrailingDelimiter(out); \ | | 146| 2.31k| appendStringInfo(out, "},"); \ | | 147| 2.31k| } ------------------ 756| 2.31k| WRITE_ENUM_FIELD(JsonIsPredicate, JsonValueType, item_type, item_type, item_type); ------------------ | | 68| 2.31k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.31k| _enumToString##enumtype(node->fldname)); ------------------ 757| 2.31k| WRITE_BOOL_FIELD(JsonIsPredicate, unique_keys, unique_keys, unique_keys); ------------------ | | 77| 2.31k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 2.31k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 758| 2.31k| WRITE_INT_FIELD(JsonIsPredicate, location, location, location); ------------------ | | 38| 2.31k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.31k, False: 0] | | ------------------ | | 39| 2.31k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.31k| } ------------------ 759| 2.31k|} pg_query_outfuncs_json.c:_outNullTest: 816| 10.3k|{ 817| 10.3k| WRITE_NODE_PTR_FIELD(NullTest, arg, arg, arg); ------------------ | | 121| 10.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 10.3k, False: 0] | | ------------------ | | 122| 10.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 10.3k| _outNode(out, node->fldname); \ | | 124| 10.3k| appendStringInfo(out, ","); \ | | 125| 10.3k| } ------------------ 818| 10.3k| WRITE_ENUM_FIELD(NullTest, NullTestType, nulltesttype, nulltesttype, nulltesttype); ------------------ | | 68| 10.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 10.3k| _enumToString##enumtype(node->fldname)); ------------------ 819| 10.3k| WRITE_BOOL_FIELD(NullTest, argisrow, argisrow, argisrow); ------------------ | | 77| 10.3k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10.3k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 820| 10.3k| WRITE_INT_FIELD(NullTest, location, location, location); ------------------ | | 38| 10.3k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 10.3k, False: 0] | | ------------------ | | 39| 10.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 10.3k| } ------------------ 821| 10.3k|} pg_query_outfuncs_json.c:_outBooleanTest: 825| 2.74k|{ 826| 2.74k| WRITE_NODE_PTR_FIELD(BooleanTest, arg, arg, arg); ------------------ | | 121| 2.74k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 2.74k, False: 0] | | ------------------ | | 122| 2.74k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 2.74k| _outNode(out, node->fldname); \ | | 124| 2.74k| appendStringInfo(out, ","); \ | | 125| 2.74k| } ------------------ 827| 2.74k| WRITE_ENUM_FIELD(BooleanTest, BoolTestType, booltesttype, booltesttype, booltesttype); ------------------ | | 68| 2.74k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.74k| _enumToString##enumtype(node->fldname)); ------------------ 828| 2.74k| WRITE_INT_FIELD(BooleanTest, location, location, location); ------------------ | | 38| 2.74k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.74k, False: 0] | | ------------------ | | 39| 2.74k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.74k| } ------------------ 829| 2.74k|} pg_query_outfuncs_json.c:_outSetToDefault: 864| 14.6k|{ 865| 14.6k| WRITE_UINT_FIELD(SetToDefault, type_id, typeId, typeId); ------------------ | | 44| 14.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 14.6k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 866| 14.6k| WRITE_INT_FIELD(SetToDefault, type_mod, typeMod, typeMod); ------------------ | | 38| 14.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 14.6k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 867| 14.6k| WRITE_UINT_FIELD(SetToDefault, collation, collation, collation); ------------------ | | 44| 14.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 14.6k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 868| 14.6k| WRITE_INT_FIELD(SetToDefault, location, location, location); ------------------ | | 38| 14.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 14.6k, False: 0] | | ------------------ | | 39| 14.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 14.6k| } ------------------ 869| 14.6k|} pg_query_outfuncs_json.c:_outJoinExpr: 922| 16.7k|{ 923| 16.7k| WRITE_ENUM_FIELD(JoinExpr, JoinType, jointype, jointype, jointype); ------------------ | | 68| 16.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 16.7k| _enumToString##enumtype(node->fldname)); ------------------ 924| 16.7k| WRITE_BOOL_FIELD(JoinExpr, is_natural, isNatural, isNatural); ------------------ | | 77| 16.7k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 16.7k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 925| 16.7k| WRITE_NODE_PTR_FIELD(JoinExpr, larg, larg, larg); ------------------ | | 121| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 16.7k, False: 0] | | ------------------ | | 122| 16.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 16.7k| _outNode(out, node->fldname); \ | | 124| 16.7k| appendStringInfo(out, ","); \ | | 125| 16.7k| } ------------------ 926| 16.7k| WRITE_NODE_PTR_FIELD(JoinExpr, rarg, rarg, rarg); ------------------ | | 121| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 16.7k, False: 0] | | ------------------ | | 122| 16.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 16.7k| _outNode(out, node->fldname); \ | | 124| 16.7k| appendStringInfo(out, ","); \ | | 125| 16.7k| } ------------------ 927| 16.7k| WRITE_LIST_FIELD(JoinExpr, using_clause, usingClause, usingClause); ------------------ | | 98| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 16.7k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 928| 16.7k| WRITE_SPECIFIC_NODE_PTR_FIELD(JoinExpr, Alias, alias, join_using_alias, join_using_alias, join_using_alias); ------------------ | | 141| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 16.7k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 929| 16.7k| WRITE_NODE_PTR_FIELD(JoinExpr, quals, quals, quals); ------------------ | | 121| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 16.7k, False: 0] | | ------------------ | | 122| 16.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 16.7k| _outNode(out, node->fldname); \ | | 124| 16.7k| appendStringInfo(out, ","); \ | | 125| 16.7k| } ------------------ 930| 16.7k| WRITE_SPECIFIC_NODE_PTR_FIELD(JoinExpr, Alias, alias, alias, alias, alias); ------------------ | | 141| 16.7k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 16.7k, False: 0] | | ------------------ | | 142| 16.7k| check_stack_depth(); \ | | 143| 16.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 16.7k| _out##typename(out, node->fldname); \ | | 145| 16.7k| removeTrailingDelimiter(out); \ | | 146| 16.7k| appendStringInfo(out, "},"); \ | | 147| 16.7k| } ------------------ 931| 16.7k| WRITE_INT_FIELD(JoinExpr, rtindex, rtindex, rtindex); ------------------ | | 38| 16.7k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 16.7k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 932| 16.7k|} pg_query_outfuncs_json.c:_outTypeName: 1006| 2.70M|{ 1007| 2.70M| WRITE_LIST_FIELD(TypeName, names, names, names); ------------------ | | 98| 2.70M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2.70M, False: 0] | | ------------------ | | 99| 2.70M| const ListCell *lc; \ | | 100| 2.70M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2.70M| appendStringInfoChar(out, '['); \ | | 102| 2.90M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2.70M| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 5.60M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 11.2M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2.90M, False: 2.70M] | | | | | Branch (375:5): [True: 5.60M, False: 0] | | | | ------------------ | | | | 376| 5.60M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2.90M, False: 2.70M] | | | | ------------------ | | | | 377| 5.60M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 5.60M| (cell = NULL, false); \ | | | | 379| 2.90M| cell##__state.i++) | | ------------------ | | 103| 2.90M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2.90M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2.90M] | | ------------------ | | 104| 2.90M| appendStringInfoString(out, "{}"); \ | | 105| 2.90M| else \ | | 106| 2.90M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2.90M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2.90M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 194k, False: 2.70M] | | ------------------ | | 108| 2.90M| appendStringInfoString(out, ","); \ | | 109| 2.90M| } \ | | 110| 2.70M| appendStringInfo(out, "],"); \ | | 111| 2.70M| } ------------------ 1008| 2.70M| WRITE_UINT_FIELD(TypeName, type_oid, typeOid, typeOid); ------------------ | | 44| 2.70M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 2.70M] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 1009| 2.70M| WRITE_BOOL_FIELD(TypeName, setof, setof, setof); ------------------ | | 77| 2.70M| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 3.30k, False: 2.70M] | | ------------------ | | 78| 3.30k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 3.30k| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 3.30k|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 3.30k, False: 0] | | | | ------------------ | | ------------------ | | 80| 3.30k| } ------------------ 1010| 2.70M| WRITE_BOOL_FIELD(TypeName, pct_type, pct_type, pct_type); ------------------ | | 77| 2.70M| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 2.70M] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1011| 2.70M| WRITE_LIST_FIELD(TypeName, typmods, typmods, typmods); ------------------ | | 98| 2.70M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 8.76k, False: 2.69M] | | ------------------ | | 99| 8.76k| const ListCell *lc; \ | | 100| 8.76k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 8.76k| appendStringInfoChar(out, '['); \ | | 102| 8.76k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 8.76k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 17.5k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 35.0k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 8.76k, False: 8.76k] | | | | | Branch (375:5): [True: 17.5k, False: 0] | | | | ------------------ | | | | 376| 17.5k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 8.76k, False: 8.76k] | | | | ------------------ | | | | 377| 17.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 17.5k| (cell = NULL, false); \ | | | | 379| 8.76k| cell##__state.i++) | | ------------------ | | 103| 8.76k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 8.76k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 8.76k] | | ------------------ | | 104| 8.76k| appendStringInfoString(out, "{}"); \ | | 105| 8.76k| else \ | | 106| 8.76k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 8.76k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 8.76k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 8.76k] | | ------------------ | | 108| 8.76k| appendStringInfoString(out, ","); \ | | 109| 8.76k| } \ | | 110| 8.76k| appendStringInfo(out, "],"); \ | | 111| 8.76k| } ------------------ 1012| 2.70M| WRITE_INT_FIELD(TypeName, typemod, typemod, typemod); ------------------ | | 38| 2.70M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.70M, False: 0] | | ------------------ | | 39| 2.70M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.70M| } ------------------ 1013| 2.70M| WRITE_LIST_FIELD(TypeName, array_bounds, arrayBounds, arrayBounds); ------------------ | | 98| 2.70M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2.85k, False: 2.70M] | | ------------------ | | 99| 2.85k| const ListCell *lc; \ | | 100| 2.85k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2.85k| appendStringInfoChar(out, '['); \ | | 102| 2.85k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2.85k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 5.71k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 11.4k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2.85k, False: 2.85k] | | | | | Branch (375:5): [True: 5.71k, False: 0] | | | | ------------------ | | | | 376| 5.71k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2.85k, False: 2.85k] | | | | ------------------ | | | | 377| 5.71k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 5.71k| (cell = NULL, false); \ | | | | 379| 2.85k| cell##__state.i++) | | ------------------ | | 103| 2.85k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2.85k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2.85k] | | ------------------ | | 104| 2.85k| appendStringInfoString(out, "{}"); \ | | 105| 2.85k| else \ | | 106| 2.85k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2.85k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2.85k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 2.85k] | | ------------------ | | 108| 2.85k| appendStringInfoString(out, ","); \ | | 109| 2.85k| } \ | | 110| 2.85k| appendStringInfo(out, "],"); \ | | 111| 2.85k| } ------------------ 1014| 2.70M| WRITE_INT_FIELD(TypeName, location, location, location); ------------------ | | 38| 2.70M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.70M, False: 0] | | ------------------ | | 39| 2.70M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.70M| } ------------------ 1015| 2.70M|} pg_query_outfuncs_json.c:_outColumnRef: 1019| 4.30M|{ 1020| 4.30M| WRITE_LIST_FIELD(ColumnRef, fields, fields, fields); ------------------ | | 98| 4.30M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 4.30M, False: 0] | | ------------------ | | 99| 4.30M| const ListCell *lc; \ | | 100| 4.30M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 4.30M| appendStringInfoChar(out, '['); \ | | 102| 4.58M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 4.30M| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 8.89M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 17.7M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 4.58M, False: 4.30M] | | | | | Branch (375:5): [True: 8.89M, False: 0] | | | | ------------------ | | | | 376| 8.89M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 4.58M, False: 4.30M] | | | | ------------------ | | | | 377| 8.89M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 8.89M| (cell = NULL, false); \ | | | | 379| 4.58M| cell##__state.i++) | | ------------------ | | 103| 4.58M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 4.58M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 4.58M] | | ------------------ | | 104| 4.58M| appendStringInfoString(out, "{}"); \ | | 105| 4.58M| else \ | | 106| 4.58M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 4.58M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 4.58M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 284k, False: 4.30M] | | ------------------ | | 108| 4.58M| appendStringInfoString(out, ","); \ | | 109| 4.58M| } \ | | 110| 4.30M| appendStringInfo(out, "],"); \ | | 111| 4.30M| } ------------------ 1021| 4.30M| WRITE_INT_FIELD(ColumnRef, location, location, location); ------------------ | | 38| 4.30M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 4.30M, False: 0] | | ------------------ | | 39| 4.30M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 4.30M| } ------------------ 1022| 4.30M|} pg_query_outfuncs_json.c:_outParamRef: 1026| 12.5k|{ 1027| 12.5k| WRITE_INT_FIELD(ParamRef, number, number, number); ------------------ | | 38| 12.5k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 8.36k, False: 4.17k] | | ------------------ | | 39| 8.36k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 8.36k| } ------------------ 1028| 12.5k| WRITE_INT_FIELD(ParamRef, location, location, location); ------------------ | | 38| 12.5k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 12.5k, False: 0] | | ------------------ | | 39| 12.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 12.5k| } ------------------ 1029| 12.5k|} pg_query_outfuncs_json.c:_outAExpr: 1033| 14.4M|{ 1034| 14.4M| WRITE_ENUM_FIELD(A_Expr, A_Expr_Kind, kind, kind, kind); ------------------ | | 68| 14.4M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 14.4M| _enumToString##enumtype(node->fldname)); ------------------ 1035| 14.4M| WRITE_LIST_FIELD(A_Expr, name, name, name); ------------------ | | 98| 14.4M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 14.4M, False: 1] | | ------------------ | | 99| 14.4M| const ListCell *lc; \ | | 100| 14.4M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 14.4M| appendStringInfoChar(out, '['); \ | | 102| 14.4M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 14.4M| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 28.8M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 57.7M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 14.4M, False: 14.4M] | | | | | Branch (375:5): [True: 28.8M, False: 8] | | | | ------------------ | | | | 376| 28.8M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 14.4M, False: 14.4M] | | | | ------------------ | | | | 377| 28.8M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 28.8M| (cell = NULL, false); \ | | | | 379| 14.4M| cell##__state.i++) | | ------------------ | | 103| 14.4M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 14.4M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 14.4M] | | ------------------ | | 104| 14.4M| appendStringInfoString(out, "{}"); \ | | 105| 14.4M| else \ | | 106| 14.4M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 14.4M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 14.4M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 14.4M] | | ------------------ | | 108| 14.4M| appendStringInfoString(out, ","); \ | | 109| 14.4M| } \ | | 110| 14.4M| appendStringInfo(out, "],"); \ | | 111| 14.4M| } ------------------ 1036| 14.4M| WRITE_NODE_PTR_FIELD(A_Expr, lexpr, lexpr, lexpr); ------------------ | | 121| 14.4M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 3.52M, False: 10.9M] | | ------------------ | | 122| 3.52M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 3.52M| _outNode(out, node->fldname); \ | | 124| 3.52M| appendStringInfo(out, ","); \ | | 125| 3.52M| } ------------------ 1037| 14.4M| WRITE_NODE_PTR_FIELD(A_Expr, rexpr, rexpr, rexpr); ------------------ | | 121| 14.4M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 14.2M, False: 173k] | | ------------------ | | 122| 14.2M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 14.2M| _outNode(out, node->fldname); \ | | 124| 14.2M| appendStringInfo(out, ","); \ | | 125| 14.2M| } ------------------ 1038| 14.4M| WRITE_INT_FIELD(A_Expr, rexpr_list_start, rexpr_list_start, rexpr_list_start); ------------------ | | 38| 14.4M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 1.13k, False: 14.4M] | | ------------------ | | 39| 1.13k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 1.13k| } ------------------ 1039| 14.4M| WRITE_INT_FIELD(A_Expr, rexpr_list_end, rexpr_list_end, rexpr_list_end); ------------------ | | 38| 14.4M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 1.13k, False: 14.4M] | | ------------------ | | 39| 1.13k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 1.13k| } ------------------ 1040| 14.4M| WRITE_INT_FIELD(A_Expr, location, location, location); ------------------ | | 38| 14.4M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 14.2M, False: 175k] | | ------------------ | | 39| 14.2M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 14.2M| } ------------------ 1041| 14.4M|} pg_query_outfuncs_json.c:_outTypeCast: 1045| 768k|{ 1046| 768k| WRITE_NODE_PTR_FIELD(TypeCast, arg, arg, arg); ------------------ | | 121| 768k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 768k, False: 0] | | ------------------ | | 122| 768k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 768k| _outNode(out, node->fldname); \ | | 124| 768k| appendStringInfo(out, ","); \ | | 125| 768k| } ------------------ 1047| 768k| WRITE_SPECIFIC_NODE_PTR_FIELD(TypeCast, TypeName, type_name, type_name, typeName, typeName); ------------------ | | 141| 768k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 768k, False: 1] | | ------------------ | | 142| 768k| check_stack_depth(); \ | | 143| 768k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 768k| _out##typename(out, node->fldname); \ | | 145| 768k| removeTrailingDelimiter(out); \ | | 146| 768k| appendStringInfo(out, "},"); \ | | 147| 768k| } ------------------ 1048| 768k| WRITE_INT_FIELD(TypeCast, location, location, location); ------------------ | | 38| 768k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 768k, False: 1] | | ------------------ | | 39| 768k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 768k| } ------------------ 1049| 768k|} pg_query_outfuncs_json.c:_outCollateClause: 1053| 119k|{ 1054| 119k| WRITE_NODE_PTR_FIELD(CollateClause, arg, arg, arg); ------------------ | | 121| 119k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 526, False: 118k] | | ------------------ | | 122| 526| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 526| _outNode(out, node->fldname); \ | | 124| 526| appendStringInfo(out, ","); \ | | 125| 526| } ------------------ 1055| 119k| WRITE_LIST_FIELD(CollateClause, collname, collname, collname); ------------------ | | 98| 119k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 119k, False: 0] | | ------------------ | | 99| 119k| const ListCell *lc; \ | | 100| 119k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 119k| appendStringInfoChar(out, '['); \ | | 102| 238k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 119k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 358k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 716k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 238k, False: 119k] | | | | | Branch (375:5): [True: 358k, False: 0] | | | | ------------------ | | | | 376| 358k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 238k, False: 119k] | | | | ------------------ | | | | 377| 358k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 358k| (cell = NULL, false); \ | | | | 379| 238k| cell##__state.i++) | | ------------------ | | 103| 238k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 238k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 238k] | | ------------------ | | 104| 238k| appendStringInfoString(out, "{}"); \ | | 105| 238k| else \ | | 106| 238k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 238k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 238k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 119k, False: 119k] | | ------------------ | | 108| 238k| appendStringInfoString(out, ","); \ | | 109| 238k| } \ | | 110| 119k| appendStringInfo(out, "],"); \ | | 111| 119k| } ------------------ 1056| 119k| WRITE_INT_FIELD(CollateClause, location, location, location); ------------------ | | 38| 119k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 119k, False: 0] | | ------------------ | | 39| 119k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 119k| } ------------------ 1057| 119k|} pg_query_outfuncs_json.c:_outRoleSpec: 1061| 640k|{ 1062| 640k| WRITE_ENUM_FIELD(RoleSpec, RoleSpecType, roletype, roletype, roletype); ------------------ | | 68| 640k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 640k| _enumToString##enumtype(node->fldname)); ------------------ 1063| 640k| WRITE_STRING_FIELD(RoleSpec, rolename, rolename, rolename); ------------------ | | 91| 640k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 610k, False: 29.3k] | | | Branch (91:31): [True: 610k, False: 0] | | ------------------ | | 92| 610k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 610k| _outToken(out, node->fldname); \ | | 94| 610k| appendStringInfo(out, ","); \ | | 95| 610k| } ------------------ 1064| 640k| WRITE_INT_FIELD(RoleSpec, location, location, location); ------------------ | | 38| 640k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 640k, False: 0] | | ------------------ | | 39| 640k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 640k| } ------------------ 1065| 640k|} pg_query_outfuncs_json.c:_outFuncCall: 1069| 214k|{ 1070| 214k| WRITE_LIST_FIELD(FuncCall, funcname, funcname, funcname); ------------------ | | 98| 214k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 214k, False: 0] | | ------------------ | | 99| 214k| const ListCell *lc; \ | | 100| 214k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 214k| appendStringInfoChar(out, '['); \ | | 102| 237k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 214k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 452k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 904k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 237k, False: 214k] | | | | | Branch (375:5): [True: 452k, False: 0] | | | | ------------------ | | | | 376| 452k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 237k, False: 214k] | | | | ------------------ | | | | 377| 452k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 452k| (cell = NULL, false); \ | | | | 379| 237k| cell##__state.i++) | | ------------------ | | 103| 237k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 237k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 237k] | | ------------------ | | 104| 237k| appendStringInfoString(out, "{}"); \ | | 105| 237k| else \ | | 106| 237k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 237k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 237k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 23.4k, False: 214k] | | ------------------ | | 108| 237k| appendStringInfoString(out, ","); \ | | 109| 237k| } \ | | 110| 214k| appendStringInfo(out, "],"); \ | | 111| 214k| } ------------------ 1071| 214k| WRITE_LIST_FIELD(FuncCall, args, args, args); ------------------ | | 98| 214k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 81.2k, False: 133k] | | ------------------ | | 99| 81.2k| const ListCell *lc; \ | | 100| 81.2k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 81.2k| appendStringInfoChar(out, '['); \ | | 102| 92.5k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 81.2k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 173k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 347k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 92.5k, False: 81.2k] | | | | | Branch (375:5): [True: 173k, False: 0] | | | | ------------------ | | | | 376| 173k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 92.5k, False: 81.2k] | | | | ------------------ | | | | 377| 173k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 173k| (cell = NULL, false); \ | | | | 379| 92.5k| cell##__state.i++) | | ------------------ | | 103| 92.5k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 92.5k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 92.5k] | | ------------------ | | 104| 92.5k| appendStringInfoString(out, "{}"); \ | | 105| 92.5k| else \ | | 106| 92.5k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 92.5k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 92.5k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 11.3k, False: 81.2k] | | ------------------ | | 108| 92.5k| appendStringInfoString(out, ","); \ | | 109| 92.5k| } \ | | 110| 81.2k| appendStringInfo(out, "],"); \ | | 111| 81.2k| } ------------------ 1072| 214k| WRITE_LIST_FIELD(FuncCall, agg_order, agg_order, agg_order); ------------------ | | 98| 214k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2.53k, False: 211k] | | ------------------ | | 99| 2.53k| const ListCell *lc; \ | | 100| 2.53k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2.53k| appendStringInfoChar(out, '['); \ | | 102| 13.8k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2.53k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 16.3k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 32.7k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 13.8k, False: 2.53k] | | | | | Branch (375:5): [True: 16.3k, False: 0] | | | | ------------------ | | | | 376| 16.3k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 13.8k, False: 2.53k] | | | | ------------------ | | | | 377| 16.3k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 16.3k| (cell = NULL, false); \ | | | | 379| 13.8k| cell##__state.i++) | | ------------------ | | 103| 13.8k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 13.8k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 13.8k] | | ------------------ | | 104| 13.8k| appendStringInfoString(out, "{}"); \ | | 105| 13.8k| else \ | | 106| 13.8k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 13.8k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 13.8k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 11.2k, False: 2.53k] | | ------------------ | | 108| 13.8k| appendStringInfoString(out, ","); \ | | 109| 13.8k| } \ | | 110| 2.53k| appendStringInfo(out, "],"); \ | | 111| 2.53k| } ------------------ 1073| 214k| WRITE_NODE_PTR_FIELD(FuncCall, agg_filter, agg_filter, agg_filter); ------------------ | | 121| 214k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 214k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1074| 214k| WRITE_SPECIFIC_NODE_PTR_FIELD(FuncCall, WindowDef, window_def, over, over, over); ------------------ | | 141| 214k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 9.98k, False: 204k] | | ------------------ | | 142| 9.98k| check_stack_depth(); \ | | 143| 9.98k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 9.98k| _out##typename(out, node->fldname); \ | | 145| 9.98k| removeTrailingDelimiter(out); \ | | 146| 9.98k| appendStringInfo(out, "},"); \ | | 147| 9.98k| } ------------------ 1075| 214k| WRITE_BOOL_FIELD(FuncCall, agg_within_group, agg_within_group, agg_within_group); ------------------ | | 77| 214k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 214k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1076| 214k| WRITE_BOOL_FIELD(FuncCall, agg_star, agg_star, agg_star); ------------------ | | 77| 214k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 2, False: 214k] | | ------------------ | | 78| 2| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 2| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 2|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 2, False: 0] | | | | ------------------ | | ------------------ | | 80| 2| } ------------------ 1077| 214k| WRITE_BOOL_FIELD(FuncCall, agg_distinct, agg_distinct, agg_distinct); ------------------ | | 77| 214k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 214k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1078| 214k| WRITE_BOOL_FIELD(FuncCall, func_variadic, func_variadic, func_variadic); ------------------ | | 77| 214k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 214k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1079| 214k| WRITE_ENUM_FIELD(FuncCall, CoercionForm, funcformat, funcformat, funcformat); ------------------ | | 68| 214k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 214k| _enumToString##enumtype(node->fldname)); ------------------ 1080| 214k| WRITE_INT_FIELD(FuncCall, location, location, location); ------------------ | | 38| 214k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 214k, False: 0] | | ------------------ | | 39| 214k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 214k| } ------------------ 1081| 214k|} pg_query_outfuncs_json.c:_outAStar: 1085| 543|{ 1086| 543|} pg_query_outfuncs_json.c:_outAIndices: 1090| 1.30k|{ 1091| 1.30k| WRITE_BOOL_FIELD(A_Indices, is_slice, is_slice, is_slice); ------------------ | | 77| 1.30k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 1.30k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1092| 1.30k| WRITE_NODE_PTR_FIELD(A_Indices, lidx, lidx, lidx); ------------------ | | 121| 1.30k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 1.30k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1093| | WRITE_NODE_PTR_FIELD(A_Indices, uidx, uidx, uidx); ------------------ | | 121| 1.30k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 1.30k, False: 0] | | ------------------ | | 122| 1.30k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 1.30k| _outNode(out, node->fldname); \ | | 124| 1.30k| appendStringInfo(out, ","); \ | | 125| 1.30k| } ------------------ 1094| 1.30k|} pg_query_outfuncs_json.c:_outAIndirection: 1098| 2.05k|{ 1099| 2.05k| WRITE_NODE_PTR_FIELD(A_Indirection, arg, arg, arg); ------------------ | | 121| 2.05k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 2.05k, False: 0] | | ------------------ | | 122| 2.05k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 2.05k| _outNode(out, node->fldname); \ | | 124| 2.05k| appendStringInfo(out, ","); \ | | 125| 2.05k| } ------------------ 1100| | WRITE_LIST_FIELD(A_Indirection, indirection, indirection, indirection); ------------------ | | 98| 2.05k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2.05k, False: 0] | | ------------------ | | 99| 2.05k| const ListCell *lc; \ | | 100| 2.05k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2.05k| appendStringInfoChar(out, '['); \ | | 102| 52.3k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2.05k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 54.4k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 108k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 52.3k, False: 2.05k] | | | | | Branch (375:5): [True: 54.4k, False: 0] | | | | ------------------ | | | | 376| 54.4k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 52.3k, False: 2.05k] | | | | ------------------ | | | | 377| 54.4k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 54.4k| (cell = NULL, false); \ | | | | 379| 52.3k| cell##__state.i++) | | ------------------ | | 103| 52.3k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 52.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 52.3k] | | ------------------ | | 104| 52.3k| appendStringInfoString(out, "{}"); \ | | 105| 52.3k| else \ | | 106| 52.3k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 52.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 52.3k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 50.3k, False: 2.05k] | | ------------------ | | 108| 52.3k| appendStringInfoString(out, ","); \ | | 109| 52.3k| } \ | | 110| 2.05k| appendStringInfo(out, "],"); \ | | 111| 2.05k| } ------------------ 1101| 2.05k|} pg_query_outfuncs_json.c:_outAArrayExpr: 1105| 3.11k|{ 1106| 3.11k| WRITE_LIST_FIELD(A_ArrayExpr, elements, elements, elements); ------------------ | | 98| 3.11k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 995, False: 2.11k] | | ------------------ | | 99| 995| const ListCell *lc; \ | | 100| 995| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 995| appendStringInfoChar(out, '['); \ | | 102| 49.3k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 995| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 50.3k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 100k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 49.3k, False: 995] | | | | | Branch (375:5): [True: 50.3k, False: 0] | | | | ------------------ | | | | 376| 50.3k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 49.3k, False: 995] | | | | ------------------ | | | | 377| 50.3k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 50.3k| (cell = NULL, false); \ | | | | 379| 49.3k| cell##__state.i++) | | ------------------ | | 103| 49.3k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 49.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 49.3k] | | ------------------ | | 104| 49.3k| appendStringInfoString(out, "{}"); \ | | 105| 49.3k| else \ | | 106| 49.3k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 49.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 49.3k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 48.3k, False: 995] | | ------------------ | | 108| 49.3k| appendStringInfoString(out, ","); \ | | 109| 49.3k| } \ | | 110| 995| appendStringInfo(out, "],"); \ | | 111| 995| } ------------------ 1107| 3.11k| WRITE_INT_FIELD(A_ArrayExpr, list_start, list_start, list_start); ------------------ | | 38| 3.11k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 3.11k, False: 0] | | ------------------ | | 39| 3.11k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 3.11k| } ------------------ 1108| 3.11k| WRITE_INT_FIELD(A_ArrayExpr, list_end, list_end, list_end); ------------------ | | 38| 3.11k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 3.11k, False: 0] | | ------------------ | | 39| 3.11k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 3.11k| } ------------------ 1109| 3.11k| WRITE_INT_FIELD(A_ArrayExpr, location, location, location); ------------------ | | 38| 3.11k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 3.11k, False: 0] | | ------------------ | | 39| 3.11k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 3.11k| } ------------------ 1110| 3.11k|} pg_query_outfuncs_json.c:_outResTarget: 1114| 1.48M|{ 1115| 1.48M| WRITE_STRING_FIELD(ResTarget, name, name, name); ------------------ | | 91| 1.48M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 913k, False: 572k] | | | Branch (91:31): [True: 913k, False: 0] | | ------------------ | | 92| 913k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 913k| _outToken(out, node->fldname); \ | | 94| 913k| appendStringInfo(out, ","); \ | | 95| 913k| } ------------------ 1116| 1.48M| WRITE_LIST_FIELD(ResTarget, indirection, indirection, indirection); ------------------ | | 98| 1.48M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 32.2k, False: 1.45M] | | ------------------ | | 99| 32.2k| const ListCell *lc; \ | | 100| 32.2k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 32.2k| appendStringInfoChar(out, '['); \ | | 102| 3.51M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 32.2k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 3.55M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 7.10M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 3.51M, False: 32.2k] | | | | | Branch (375:5): [True: 3.55M, False: 0] | | | | ------------------ | | | | 376| 3.55M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 3.51M, False: 32.2k] | | | | ------------------ | | | | 377| 3.55M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 3.55M| (cell = NULL, false); \ | | | | 379| 3.51M| cell##__state.i++) | | ------------------ | | 103| 3.51M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 3.51M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 3.51M] | | ------------------ | | 104| 3.51M| appendStringInfoString(out, "{}"); \ | | 105| 3.51M| else \ | | 106| 3.51M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 3.51M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 3.51M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 3.48M, False: 32.2k] | | ------------------ | | 108| 3.51M| appendStringInfoString(out, ","); \ | | 109| 3.51M| } \ | | 110| 32.2k| appendStringInfo(out, "],"); \ | | 111| 32.2k| } ------------------ 1117| 1.48M| WRITE_NODE_PTR_FIELD(ResTarget, val, val, val); ------------------ | | 121| 1.48M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 1.48M, False: 1.41k] | | ------------------ | | 122| 1.48M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 1.48M| _outNode(out, node->fldname); \ | | 124| 1.48M| appendStringInfo(out, ","); \ | | 125| 1.48M| } ------------------ 1118| 1.48M| WRITE_INT_FIELD(ResTarget, location, location, location); ------------------ | | 38| 1.48M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 1.48M, False: 13] | | ------------------ | | 39| 1.48M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 1.48M| } ------------------ 1119| 1.48M|} pg_query_outfuncs_json.c:_outMultiAssignRef: 1123| 872k|{ 1124| 872k| WRITE_NODE_PTR_FIELD(MultiAssignRef, source, source, source); ------------------ | | 121| 872k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 872k, False: 0] | | ------------------ | | 122| 872k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 872k| _outNode(out, node->fldname); \ | | 124| 872k| appendStringInfo(out, ","); \ | | 125| 872k| } ------------------ 1125| 872k| WRITE_INT_FIELD(MultiAssignRef, colno, colno, colno); ------------------ | | 38| 872k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 872k, False: 5] | | ------------------ | | 39| 872k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 872k| } ------------------ 1126| 872k| WRITE_INT_FIELD(MultiAssignRef, ncolumns, ncolumns, ncolumns); ------------------ | | 38| 872k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 872k, False: 5] | | ------------------ | | 39| 872k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 872k| } ------------------ 1127| 872k|} pg_query_outfuncs_json.c:_outSortBy: 1131| 880k|{ 1132| 880k| WRITE_NODE_PTR_FIELD(SortBy, node, node, node); ------------------ | | 121| 880k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 880k, False: 0] | | ------------------ | | 122| 880k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 880k| _outNode(out, node->fldname); \ | | 124| 880k| appendStringInfo(out, ","); \ | | 125| 880k| } ------------------ 1133| 880k| WRITE_ENUM_FIELD(SortBy, SortByDir, sortby_dir, sortby_dir, sortby_dir); ------------------ | | 68| 880k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 880k| _enumToString##enumtype(node->fldname)); ------------------ 1134| 880k| WRITE_ENUM_FIELD(SortBy, SortByNulls, sortby_nulls, sortby_nulls, sortby_nulls); ------------------ | | 68| 880k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 880k| _enumToString##enumtype(node->fldname)); ------------------ 1135| 880k| WRITE_LIST_FIELD(SortBy, use_op, useOp, useOp); ------------------ | | 98| 880k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 6.75k, False: 873k] | | ------------------ | | 99| 6.75k| const ListCell *lc; \ | | 100| 6.75k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 6.75k| appendStringInfoChar(out, '['); \ | | 102| 6.75k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 6.75k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 13.5k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 27.0k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 6.75k, False: 6.75k] | | | | | Branch (375:5): [True: 13.5k, False: 0] | | | | ------------------ | | | | 376| 13.5k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 6.75k, False: 6.75k] | | | | ------------------ | | | | 377| 13.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 13.5k| (cell = NULL, false); \ | | | | 379| 6.75k| cell##__state.i++) | | ------------------ | | 103| 6.75k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 6.75k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 6.75k] | | ------------------ | | 104| 6.75k| appendStringInfoString(out, "{}"); \ | | 105| 6.75k| else \ | | 106| 6.75k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 6.75k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 6.75k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 6.75k] | | ------------------ | | 108| 6.75k| appendStringInfoString(out, ","); \ | | 109| 6.75k| } \ | | 110| 6.75k| appendStringInfo(out, "],"); \ | | 111| 6.75k| } ------------------ 1136| 880k| WRITE_INT_FIELD(SortBy, location, location, location); ------------------ | | 38| 880k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 880k, False: 0] | | ------------------ | | 39| 880k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 880k| } ------------------ 1137| 880k|} pg_query_outfuncs_json.c:_outWindowDef: 1141| 9.98k|{ 1142| 9.98k| WRITE_STRING_FIELD(WindowDef, name, name, name); ------------------ | | 91| 9.98k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 5, False: 9.97k] | | | Branch (91:31): [True: 5, False: 0] | | ------------------ | | 92| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 5| _outToken(out, node->fldname); \ | | 94| 5| appendStringInfo(out, ","); \ | | 95| 5| } ------------------ 1143| 9.98k| WRITE_STRING_FIELD(WindowDef, refname, refname, refname); ------------------ | | 91| 9.98k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 3.75k, False: 6.23k] | | | Branch (91:31): [True: 3.75k, False: 0] | | ------------------ | | 92| 3.75k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 3.75k| _outToken(out, node->fldname); \ | | 94| 3.75k| appendStringInfo(out, ","); \ | | 95| 3.75k| } ------------------ 1144| 9.98k| WRITE_LIST_FIELD(WindowDef, partition_clause, partitionClause, partitionClause); ------------------ | | 98| 9.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 9.98k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1145| 9.98k| WRITE_LIST_FIELD(WindowDef, order_clause, orderClause, orderClause); ------------------ | | 98| 9.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 42, False: 9.93k] | | ------------------ | | 99| 42| const ListCell *lc; \ | | 100| 42| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 42| appendStringInfoChar(out, '['); \ | | 102| 802k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 42| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 802k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.60M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 802k, False: 42] | | | | | Branch (375:5): [True: 802k, False: 0] | | | | ------------------ | | | | 376| 802k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 802k, False: 42] | | | | ------------------ | | | | 377| 802k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 802k| (cell = NULL, false); \ | | | | 379| 802k| cell##__state.i++) | | ------------------ | | 103| 802k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 802k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 802k] | | ------------------ | | 104| 802k| appendStringInfoString(out, "{}"); \ | | 105| 802k| else \ | | 106| 802k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 802k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 802k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 802k, False: 42] | | ------------------ | | 108| 802k| appendStringInfoString(out, ","); \ | | 109| 802k| } \ | | 110| 42| appendStringInfo(out, "],"); \ | | 111| 42| } ------------------ 1146| 9.98k| WRITE_INT_FIELD(WindowDef, frame_options, frameOptions, frameOptions); ------------------ | | 38| 9.98k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 9.98k, False: 0] | | ------------------ | | 39| 9.98k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 9.98k| } ------------------ 1147| 9.98k| WRITE_NODE_PTR_FIELD(WindowDef, start_offset, startOffset, startOffset); ------------------ | | 121| 9.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 9.98k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1148| 9.98k| WRITE_NODE_PTR_FIELD(WindowDef, end_offset, endOffset, endOffset); ------------------ | | 121| 9.98k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 9.98k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1149| 9.98k| WRITE_INT_FIELD(WindowDef, location, location, location); ------------------ | | 38| 9.98k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 9.98k, False: 0] | | ------------------ | | 39| 9.98k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 9.98k| } ------------------ 1150| 9.98k|} pg_query_outfuncs_json.c:_outRangeSubselect: 1154| 33.5k|{ 1155| 33.5k| WRITE_BOOL_FIELD(RangeSubselect, lateral, lateral, lateral); ------------------ | | 77| 33.5k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 33.5k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1156| 33.5k| WRITE_NODE_PTR_FIELD(RangeSubselect, subquery, subquery, subquery); ------------------ | | 121| 33.5k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 33.5k, False: 0] | | ------------------ | | 122| 33.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 33.5k| _outNode(out, node->fldname); \ | | 124| 33.5k| appendStringInfo(out, ","); \ | | 125| 33.5k| } ------------------ 1157| | WRITE_SPECIFIC_NODE_PTR_FIELD(RangeSubselect, Alias, alias, alias, alias, alias); ------------------ | | 141| 33.5k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 33.5k, False: 0] | | ------------------ | | 142| 33.5k| check_stack_depth(); \ | | 143| 33.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 33.5k| _out##typename(out, node->fldname); \ | | 145| 33.5k| removeTrailingDelimiter(out); \ | | 146| 33.5k| appendStringInfo(out, "},"); \ | | 147| 33.5k| } ------------------ 1158| 33.5k|} pg_query_outfuncs_json.c:_outRangeFunction: 1162| 121k|{ 1163| 121k| WRITE_BOOL_FIELD(RangeFunction, lateral, lateral, lateral); ------------------ | | 77| 121k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 121k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1164| 121k| WRITE_BOOL_FIELD(RangeFunction, ordinality, ordinality, ordinality); ------------------ | | 77| 121k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 121k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1165| 121k| WRITE_BOOL_FIELD(RangeFunction, is_rowsfrom, is_rowsfrom, is_rowsfrom); ------------------ | | 77| 121k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 121k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1166| 121k| WRITE_LIST_FIELD(RangeFunction, functions, functions, functions); ------------------ | | 98| 121k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 121k, False: 0] | | ------------------ | | 99| 121k| const ListCell *lc; \ | | 100| 121k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 121k| appendStringInfoChar(out, '['); \ | | 102| 121k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 121k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 243k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 487k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 121k, False: 121k] | | | | | Branch (375:5): [True: 243k, False: 0] | | | | ------------------ | | | | 376| 243k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 121k, False: 121k] | | | | ------------------ | | | | 377| 243k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 243k| (cell = NULL, false); \ | | | | 379| 121k| cell##__state.i++) | | ------------------ | | 103| 121k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 121k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 121k] | | ------------------ | | 104| 121k| appendStringInfoString(out, "{}"); \ | | 105| 121k| else \ | | 106| 121k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 121k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 121k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 121k] | | ------------------ | | 108| 121k| appendStringInfoString(out, ","); \ | | 109| 121k| } \ | | 110| 121k| appendStringInfo(out, "],"); \ | | 111| 121k| } ------------------ 1167| 121k| WRITE_SPECIFIC_NODE_PTR_FIELD(RangeFunction, Alias, alias, alias, alias, alias); ------------------ | | 141| 121k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 120k, False: 1.14k] | | ------------------ | | 142| 120k| check_stack_depth(); \ | | 143| 120k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 120k| _out##typename(out, node->fldname); \ | | 145| 120k| removeTrailingDelimiter(out); \ | | 146| 120k| appendStringInfo(out, "},"); \ | | 147| 120k| } ------------------ 1168| | WRITE_LIST_FIELD(RangeFunction, coldeflist, coldeflist, coldeflist); ------------------ | | 98| 121k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 120k, False: 1.61k] | | ------------------ | | 99| 120k| const ListCell *lc; \ | | 100| 120k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 120k| appendStringInfoChar(out, '['); \ | | 102| 120k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 120k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 241k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 482k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 120k, False: 120k] | | | | | Branch (375:5): [True: 241k, False: 0] | | | | ------------------ | | | | 376| 241k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 120k, False: 120k] | | | | ------------------ | | | | 377| 241k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 241k| (cell = NULL, false); \ | | | | 379| 120k| cell##__state.i++) | | ------------------ | | 103| 120k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 120k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 120k] | | ------------------ | | 104| 120k| appendStringInfoString(out, "{}"); \ | | 105| 120k| else \ | | 106| 120k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 120k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 120k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 800, False: 120k] | | ------------------ | | 108| 120k| appendStringInfoString(out, ","); \ | | 109| 120k| } \ | | 110| 120k| appendStringInfo(out, "],"); \ | | 111| 120k| } ------------------ 1169| 121k|} pg_query_outfuncs_json.c:_outColumnDef: 1207| 124k|{ 1208| 124k| WRITE_STRING_FIELD(ColumnDef, colname, colname, colname); ------------------ | | 91| 124k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 124k, False: 0] | | | Branch (91:31): [True: 124k, False: 0] | | ------------------ | | 92| 124k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 124k| _outToken(out, node->fldname); \ | | 94| 124k| appendStringInfo(out, ","); \ | | 95| 124k| } ------------------ 1209| 124k| WRITE_SPECIFIC_NODE_PTR_FIELD(ColumnDef, TypeName, type_name, type_name, typeName, typeName); ------------------ | | 141| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 122k, False: 2.53k] | | ------------------ | | 142| 122k| check_stack_depth(); \ | | 143| 122k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 122k| _out##typename(out, node->fldname); \ | | 145| 122k| removeTrailingDelimiter(out); \ | | 146| 122k| appendStringInfo(out, "},"); \ | | 147| 122k| } ------------------ 1210| 124k| WRITE_STRING_FIELD(ColumnDef, compression, compression, compression); ------------------ | | 91| 124k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 124k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1211| 124k| WRITE_INT_FIELD(ColumnDef, inhcount, inhcount, inhcount); ------------------ | | 38| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 124k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 1212| 124k| WRITE_BOOL_FIELD(ColumnDef, is_local, is_local, is_local); ------------------ | | 77| 124k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 124k, False: 0] | | ------------------ | | 78| 124k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 124k| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 124k|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 124k, False: 0] | | | | ------------------ | | ------------------ | | 80| 124k| } ------------------ 1213| 124k| WRITE_BOOL_FIELD(ColumnDef, is_not_null, is_not_null, is_not_null); ------------------ | | 77| 124k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 124k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1214| 124k| WRITE_BOOL_FIELD(ColumnDef, is_from_type, is_from_type, is_from_type); ------------------ | | 77| 124k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 124k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1215| 124k| WRITE_CHAR_FIELD(ColumnDef, storage, storage, storage); ------------------ | | 62| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 0, False: 124k] | | ------------------ | | 63| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 0| } ------------------ 1216| 124k| WRITE_STRING_FIELD(ColumnDef, storage_name, storage_name, storage_name); ------------------ | | 91| 124k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 124k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1217| 124k| WRITE_NODE_PTR_FIELD(ColumnDef, raw_default, raw_default, raw_default); ------------------ | | 121| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 124k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1218| 124k| WRITE_NODE_PTR_FIELD(ColumnDef, cooked_default, cooked_default, cooked_default); ------------------ | | 121| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 124k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1219| 124k| WRITE_CHAR_FIELD(ColumnDef, identity, identity, identity); ------------------ | | 62| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 0, False: 124k] | | ------------------ | | 63| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 0| } ------------------ 1220| 124k| WRITE_SPECIFIC_NODE_PTR_FIELD(ColumnDef, RangeVar, range_var, identity_sequence, identitySequence, identitySequence); ------------------ | | 141| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 124k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1221| 124k| WRITE_CHAR_FIELD(ColumnDef, generated, generated, generated); ------------------ | | 62| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 0, False: 124k] | | ------------------ | | 63| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 0| } ------------------ 1222| 124k| WRITE_SPECIFIC_NODE_PTR_FIELD(ColumnDef, CollateClause, collate_clause, coll_clause, collClause, collClause); ------------------ | | 141| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 118k, False: 5.74k] | | ------------------ | | 142| 118k| check_stack_depth(); \ | | 143| 118k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 118k| _out##typename(out, node->fldname); \ | | 145| 118k| removeTrailingDelimiter(out); \ | | 146| 118k| appendStringInfo(out, "},"); \ | | 147| 118k| } ------------------ 1223| 124k| WRITE_UINT_FIELD(ColumnDef, coll_oid, collOid, collOid); ------------------ | | 44| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 124k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 1224| 124k| WRITE_LIST_FIELD(ColumnDef, constraints, constraints, constraints); ------------------ | | 98| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 326, False: 124k] | | ------------------ | | 99| 326| const ListCell *lc; \ | | 100| 326| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 326| appendStringInfoChar(out, '['); \ | | 102| 17.4k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 326| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 17.7k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 35.5k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 17.4k, False: 326] | | | | | Branch (375:5): [True: 17.7k, False: 0] | | | | ------------------ | | | | 376| 17.7k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 17.4k, False: 326] | | | | ------------------ | | | | 377| 17.7k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 17.7k| (cell = NULL, false); \ | | | | 379| 17.4k| cell##__state.i++) | | ------------------ | | 103| 17.4k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 17.4k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 17.4k] | | ------------------ | | 104| 17.4k| appendStringInfoString(out, "{}"); \ | | 105| 17.4k| else \ | | 106| 17.4k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 17.4k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 17.4k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 17.1k, False: 326] | | ------------------ | | 108| 17.4k| appendStringInfoString(out, ","); \ | | 109| 17.4k| } \ | | 110| 326| appendStringInfo(out, "],"); \ | | 111| 326| } ------------------ 1225| 124k| WRITE_LIST_FIELD(ColumnDef, fdwoptions, fdwoptions, fdwoptions); ------------------ | | 98| 124k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 124k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1226| 124k| WRITE_INT_FIELD(ColumnDef, location, location, location); ------------------ | | 38| 124k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 124k, False: 0] | | ------------------ | | 39| 124k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 124k| } ------------------ 1227| 124k|} pg_query_outfuncs_json.c:_outIndexElem: 1239| 1.24k|{ 1240| 1.24k| WRITE_STRING_FIELD(IndexElem, name, name, name); ------------------ | | 91| 1.24k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 623, False: 623] | | | Branch (91:31): [True: 623, False: 0] | | ------------------ | | 92| 623| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 623| _outToken(out, node->fldname); \ | | 94| 623| appendStringInfo(out, ","); \ | | 95| 623| } ------------------ 1241| 1.24k| WRITE_NODE_PTR_FIELD(IndexElem, expr, expr, expr); ------------------ | | 121| 1.24k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 623, False: 623] | | ------------------ | | 122| 623| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 623| _outNode(out, node->fldname); \ | | 124| 623| appendStringInfo(out, ","); \ | | 125| 623| } ------------------ 1242| 1.24k| WRITE_STRING_FIELD(IndexElem, indexcolname, indexcolname, indexcolname); ------------------ | | 91| 1.24k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 1.24k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1243| 1.24k| WRITE_LIST_FIELD(IndexElem, collation, collation, collation); ------------------ | | 98| 1.24k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 6, False: 1.24k] | | ------------------ | | 99| 6| const ListCell *lc; \ | | 100| 6| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 6| appendStringInfoChar(out, '['); \ | | 102| 118k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 6| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 118k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 236k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 118k, False: 6] | | | | | Branch (375:5): [True: 118k, False: 0] | | | | ------------------ | | | | 376| 118k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 118k, False: 6] | | | | ------------------ | | | | 377| 118k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 118k| (cell = NULL, false); \ | | | | 379| 118k| cell##__state.i++) | | ------------------ | | 103| 118k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 118k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 118k] | | ------------------ | | 104| 118k| appendStringInfoString(out, "{}"); \ | | 105| 118k| else \ | | 106| 118k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 118k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 118k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 118k, False: 6] | | ------------------ | | 108| 118k| appendStringInfoString(out, ","); \ | | 109| 118k| } \ | | 110| 6| appendStringInfo(out, "],"); \ | | 111| 6| } ------------------ 1244| 1.24k| WRITE_LIST_FIELD(IndexElem, opclass, opclass, opclass); ------------------ | | 98| 1.24k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 16, False: 1.23k] | | ------------------ | | 99| 16| const ListCell *lc; \ | | 100| 16| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 16| appendStringInfoChar(out, '['); \ | | 102| 34| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 16| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 50| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 100|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 34, False: 16] | | | | | Branch (375:5): [True: 50, False: 0] | | | | ------------------ | | | | 376| 50| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 34, False: 16] | | | | ------------------ | | | | 377| 50| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 50| (cell = NULL, false); \ | | | | 379| 34| cell##__state.i++) | | ------------------ | | 103| 34| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 34|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 34] | | ------------------ | | 104| 34| appendStringInfoString(out, "{}"); \ | | 105| 34| else \ | | 106| 34| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 34|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 34| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 18, False: 16] | | ------------------ | | 108| 34| appendStringInfoString(out, ","); \ | | 109| 34| } \ | | 110| 16| appendStringInfo(out, "],"); \ | | 111| 16| } ------------------ 1245| 1.24k| WRITE_LIST_FIELD(IndexElem, opclassopts, opclassopts, opclassopts); ------------------ | | 98| 1.24k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 1.24k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1246| 1.24k| WRITE_ENUM_FIELD(IndexElem, SortByDir, ordering, ordering, ordering); ------------------ | | 68| 1.24k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 1.24k| _enumToString##enumtype(node->fldname)); ------------------ 1247| 1.24k| WRITE_ENUM_FIELD(IndexElem, SortByNulls, nulls_ordering, nulls_ordering, nulls_ordering); ------------------ | | 68| 1.24k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 1.24k| _enumToString##enumtype(node->fldname)); ------------------ 1248| 1.24k|} pg_query_outfuncs_json.c:_outDefElem: 1252| 2.59M|{ 1253| 2.59M| WRITE_STRING_FIELD(DefElem, defnamespace, defnamespace, defnamespace); ------------------ | | 91| 2.59M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 642, False: 2.59M] | | | Branch (91:31): [True: 642, False: 0] | | ------------------ | | 92| 642| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 642| _outToken(out, node->fldname); \ | | 94| 642| appendStringInfo(out, ","); \ | | 95| 642| } ------------------ 1254| 2.59M| WRITE_STRING_FIELD(DefElem, defname, defname, defname); ------------------ | | 91| 2.59M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 2.59M, False: 0] | | | Branch (91:31): [True: 2.59M, False: 0] | | ------------------ | | 92| 2.59M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 2.59M| _outToken(out, node->fldname); \ | | 94| 2.59M| appendStringInfo(out, ","); \ | | 95| 2.59M| } ------------------ 1255| 2.59M| WRITE_NODE_PTR_FIELD(DefElem, arg, arg, arg); ------------------ | | 121| 2.59M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 28.6k, False: 2.56M] | | ------------------ | | 122| 28.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 28.6k| _outNode(out, node->fldname); \ | | 124| 28.6k| appendStringInfo(out, ","); \ | | 125| 28.6k| } ------------------ 1256| 2.59M| WRITE_ENUM_FIELD(DefElem, DefElemAction, defaction, defaction, defaction); ------------------ | | 68| 2.59M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.59M| _enumToString##enumtype(node->fldname)); ------------------ 1257| 2.59M| WRITE_INT_FIELD(DefElem, location, location, location); ------------------ | | 38| 2.59M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.59M, False: 0] | | ------------------ | | 39| 2.59M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.59M| } ------------------ 1258| 2.59M| WRITE_INT_FIELD(DefElem, arg_location, arg_location, arg_location); ------------------ | | 38| 2.59M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.59M, False: 0] | | ------------------ | | 39| 2.59M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.59M| } ------------------ 1259| 2.59M|} pg_query_outfuncs_json.c:_outLockingClause: 1263| 1.38k|{ 1264| 1.38k| WRITE_LIST_FIELD(LockingClause, locked_rels, lockedRels, lockedRels); ------------------ | | 98| 1.38k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 30, False: 1.35k] | | ------------------ | | 99| 30| const ListCell *lc; \ | | 100| 30| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 30| appendStringInfoChar(out, '['); \ | | 102| 4.00k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 30| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 4.03k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 8.07k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 4.00k, False: 30] | | | | | Branch (375:5): [True: 4.03k, False: 0] | | | | ------------------ | | | | 376| 4.03k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 4.00k, False: 30] | | | | ------------------ | | | | 377| 4.03k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 4.03k| (cell = NULL, false); \ | | | | 379| 4.00k| cell##__state.i++) | | ------------------ | | 103| 4.00k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 4.00k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 4.00k] | | ------------------ | | 104| 4.00k| appendStringInfoString(out, "{}"); \ | | 105| 4.00k| else \ | | 106| 4.00k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 4.00k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 4.00k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 3.97k, False: 30] | | ------------------ | | 108| 4.00k| appendStringInfoString(out, ","); \ | | 109| 4.00k| } \ | | 110| 30| appendStringInfo(out, "],"); \ | | 111| 30| } ------------------ 1265| 1.38k| WRITE_ENUM_FIELD(LockingClause, LockClauseStrength, strength, strength, strength); ------------------ | | 68| 1.38k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 1.38k| _enumToString##enumtype(node->fldname)); ------------------ 1266| 1.38k| WRITE_ENUM_FIELD(LockingClause, LockWaitPolicy, wait_policy, waitPolicy, waitPolicy); ------------------ | | 68| 1.38k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 1.38k| _enumToString##enumtype(node->fldname)); ------------------ 1267| 1.38k|} pg_query_outfuncs_json.c:_outGroupingSet: 1419| 200|{ 1420| 200| WRITE_ENUM_FIELD(GroupingSet, GroupingSetKind, kind, kind, kind); ------------------ | | 68| 200| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 200| _enumToString##enumtype(node->fldname)); ------------------ 1421| 200| WRITE_LIST_FIELD(GroupingSet, content, content, content); ------------------ | | 98| 200| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 200] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1422| 200| WRITE_INT_FIELD(GroupingSet, location, location, location); ------------------ | | 38| 200| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 200, False: 0] | | ------------------ | | 39| 200| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 200| } ------------------ 1423| 200|} pg_query_outfuncs_json.c:_outWithClause: 1455| 79.6k|{ 1456| 79.6k| WRITE_LIST_FIELD(WithClause, ctes, ctes, ctes); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 79.6k, False: 0] | | ------------------ | | 99| 79.6k| const ListCell *lc; \ | | 100| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 79.6k| appendStringInfoChar(out, '['); \ | | 102| 79.6k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 79.6k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 159k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 318k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 79.6k, False: 79.6k] | | | | | Branch (375:5): [True: 159k, False: 3] | | | | ------------------ | | | | 376| 159k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 79.6k, False: 79.6k] | | | | ------------------ | | | | 377| 159k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 159k| (cell = NULL, false); \ | | | | 379| 79.6k| cell##__state.i++) | | ------------------ | | 103| 79.6k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 79.6k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 79.6k] | | ------------------ | | 104| 79.6k| appendStringInfoString(out, "{}"); \ | | 105| 79.6k| else \ | | 106| 79.6k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 79.6k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 79.6k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 79.6k] | | ------------------ | | 108| 79.6k| appendStringInfoString(out, ","); \ | | 109| 79.6k| } \ | | 110| 79.6k| appendStringInfo(out, "],"); \ | | 111| 79.6k| } ------------------ 1457| 79.6k| WRITE_BOOL_FIELD(WithClause, recursive, recursive, recursive); ------------------ | | 77| 79.6k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 300, False: 79.3k] | | ------------------ | | 78| 300| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 300| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 300|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 300, False: 0] | | | | ------------------ | | ------------------ | | 80| 300| } ------------------ 1458| 79.6k| WRITE_INT_FIELD(WithClause, location, location, location); ------------------ | | 38| 79.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 79.6k, False: 3] | | ------------------ | | 39| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 79.6k| } ------------------ 1459| 79.6k|} pg_query_outfuncs_json.c:_outCommonTableExpr: 1506| 79.6k|{ 1507| 79.6k| WRITE_STRING_FIELD(CommonTableExpr, ctename, ctename, ctename); ------------------ | | 91| 79.6k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 79.6k, False: 0] | | | Branch (91:31): [True: 79.6k, False: 0] | | ------------------ | | 92| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 79.6k| _outToken(out, node->fldname); \ | | 94| 79.6k| appendStringInfo(out, ","); \ | | 95| 79.6k| } ------------------ 1508| 79.6k| WRITE_LIST_FIELD(CommonTableExpr, aliascolnames, aliascolnames, aliascolnames); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 77.5k, False: 2.12k] | | ------------------ | | 99| 77.5k| const ListCell *lc; \ | | 100| 77.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 77.5k| appendStringInfoChar(out, '['); \ | | 102| 121k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 77.5k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 199k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 398k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 121k, False: 77.5k] | | | | | Branch (375:5): [True: 199k, False: 0] | | | | ------------------ | | | | 376| 199k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 121k, False: 77.5k] | | | | ------------------ | | | | 377| 199k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 199k| (cell = NULL, false); \ | | | | 379| 121k| cell##__state.i++) | | ------------------ | | 103| 121k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 121k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 121k] | | ------------------ | | 104| 121k| appendStringInfoString(out, "{}"); \ | | 105| 121k| else \ | | 106| 121k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 121k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 121k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 44.4k, False: 77.5k] | | ------------------ | | 108| 121k| appendStringInfoString(out, ","); \ | | 109| 121k| } \ | | 110| 77.5k| appendStringInfo(out, "],"); \ | | 111| 77.5k| } ------------------ 1509| 79.6k| WRITE_ENUM_FIELD(CommonTableExpr, CTEMaterialize, ctematerialized, ctematerialized, ctematerialized); ------------------ | | 68| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 79.6k| _enumToString##enumtype(node->fldname)); ------------------ 1510| 79.6k| WRITE_NODE_PTR_FIELD(CommonTableExpr, ctequery, ctequery, ctequery); ------------------ | | 121| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 79.6k, False: 0] | | ------------------ | | 122| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 79.6k| _outNode(out, node->fldname); \ | | 124| 79.6k| appendStringInfo(out, ","); \ | | 125| 79.6k| } ------------------ 1511| 79.6k| WRITE_SPECIFIC_NODE_PTR_FIELD(CommonTableExpr, CTESearchClause, ctesearch_clause, search_clause, search_clause, search_clause); ------------------ | | 141| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 79.6k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1512| 79.6k| WRITE_SPECIFIC_NODE_PTR_FIELD(CommonTableExpr, CTECycleClause, ctecycle_clause, cycle_clause, cycle_clause, cycle_clause); ------------------ | | 141| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 79.6k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1513| 79.6k| WRITE_INT_FIELD(CommonTableExpr, location, location, location); ------------------ | | 38| 79.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 79.6k, False: 3] | | ------------------ | | 39| 79.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 79.6k| } ------------------ 1514| 79.6k| WRITE_BOOL_FIELD(CommonTableExpr, cterecursive, cterecursive, cterecursive); ------------------ | | 77| 79.6k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 79.6k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1515| 79.6k| WRITE_INT_FIELD(CommonTableExpr, cterefcount, cterefcount, cterefcount); ------------------ | | 38| 79.6k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 79.6k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 1516| 79.6k| WRITE_LIST_FIELD(CommonTableExpr, ctecolnames, ctecolnames, ctecolnames); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 79.6k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1517| 79.6k| WRITE_LIST_FIELD(CommonTableExpr, ctecoltypes, ctecoltypes, ctecoltypes); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 79.6k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1518| 79.6k| WRITE_LIST_FIELD(CommonTableExpr, ctecoltypmods, ctecoltypmods, ctecoltypmods); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 79.6k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1519| | WRITE_LIST_FIELD(CommonTableExpr, ctecolcollations, ctecolcollations, ctecolcollations); ------------------ | | 98| 79.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 79.6k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1520| 79.6k|} pg_query_outfuncs_json.c:_outJsonParseExpr: 1633| 4.29k|{ 1634| 4.29k| WRITE_SPECIFIC_NODE_PTR_FIELD(JsonParseExpr, JsonValueExpr, json_value_expr, expr, expr, expr); ------------------ | | 141| 4.29k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 4.29k, False: 0] | | ------------------ | | 142| 4.29k| check_stack_depth(); \ | | 143| 4.29k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 4.29k| _out##typename(out, node->fldname); \ | | 145| 4.29k| removeTrailingDelimiter(out); \ | | 146| 4.29k| appendStringInfo(out, "},"); \ | | 147| 4.29k| } ------------------ 1635| 4.29k| WRITE_SPECIFIC_NODE_PTR_FIELD(JsonParseExpr, JsonOutput, json_output, output, output, output); ------------------ | | 141| 4.29k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 4.29k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1636| 4.29k| WRITE_BOOL_FIELD(JsonParseExpr, unique_keys, unique_keys, unique_keys); ------------------ | | 77| 4.29k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 4.29k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1637| 4.29k| WRITE_INT_FIELD(JsonParseExpr, location, location, location); ------------------ | | 38| 4.29k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 4.29k, False: 0] | | ------------------ | | 39| 4.29k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 4.29k| } ------------------ 1638| 4.29k|} pg_query_outfuncs_json.c:_outInsertStmt: 1722| 905|{ 1723| 905| WRITE_SPECIFIC_NODE_PTR_FIELD(InsertStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 905, False: 0] | | ------------------ | | 142| 905| check_stack_depth(); \ | | 143| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 905| _out##typename(out, node->fldname); \ | | 145| 905| removeTrailingDelimiter(out); \ | | 146| 905| appendStringInfo(out, "},"); \ | | 147| 905| } ------------------ 1724| 905| WRITE_LIST_FIELD(InsertStmt, cols, cols, cols); ------------------ | | 98| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 905, False: 0] | | ------------------ | | 99| 905| const ListCell *lc; \ | | 100| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 905| appendStringInfoChar(out, '['); \ | | 102| 1.41k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 905| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 2.32k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 4.64k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.41k, False: 905] | | | | | Branch (375:5): [True: 2.32k, False: 0] | | | | ------------------ | | | | 376| 2.32k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.41k, False: 905] | | | | ------------------ | | | | 377| 2.32k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 2.32k| (cell = NULL, false); \ | | | | 379| 1.41k| cell##__state.i++) | | ------------------ | | 103| 1.41k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.41k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.41k] | | ------------------ | | 104| 1.41k| appendStringInfoString(out, "{}"); \ | | 105| 1.41k| else \ | | 106| 1.41k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.41k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.41k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 511, False: 905] | | ------------------ | | 108| 1.41k| appendStringInfoString(out, ","); \ | | 109| 1.41k| } \ | | 110| 905| appendStringInfo(out, "],"); \ | | 111| 905| } ------------------ 1725| 905| WRITE_NODE_PTR_FIELD(InsertStmt, select_stmt, selectStmt, selectStmt); ------------------ | | 121| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 905, False: 0] | | ------------------ | | 122| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 905| _outNode(out, node->fldname); \ | | 124| 905| appendStringInfo(out, ","); \ | | 125| 905| } ------------------ 1726| 905| WRITE_SPECIFIC_NODE_PTR_FIELD(InsertStmt, OnConflictClause, on_conflict_clause, on_conflict_clause, onConflictClause, onConflictClause); ------------------ | | 141| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 905] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1727| 905| WRITE_SPECIFIC_NODE_PTR_FIELD(InsertStmt, ReturningClause, returning_clause, returning_clause, returningClause, returningClause); ------------------ | | 141| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 905] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1728| 905| WRITE_SPECIFIC_NODE_PTR_FIELD(InsertStmt, WithClause, with_clause, with_clause, withClause, withClause); ------------------ | | 141| 905| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 905, False: 0] | | ------------------ | | 142| 905| check_stack_depth(); \ | | 143| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 905| _out##typename(out, node->fldname); \ | | 145| 905| removeTrailingDelimiter(out); \ | | 146| 905| appendStringInfo(out, "},"); \ | | 147| 905| } ------------------ 1729| 905| WRITE_ENUM_FIELD(InsertStmt, OverridingKind, override, override, override); ------------------ | | 68| 905| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 905| _enumToString##enumtype(node->fldname)); ------------------ 1730| 905|} pg_query_outfuncs_json.c:_outDeleteStmt: 1734| 18.3k|{ 1735| 18.3k| WRITE_SPECIFIC_NODE_PTR_FIELD(DeleteStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 18.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 18.3k, False: 0] | | ------------------ | | 142| 18.3k| check_stack_depth(); \ | | 143| 18.3k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 18.3k| _out##typename(out, node->fldname); \ | | 145| 18.3k| removeTrailingDelimiter(out); \ | | 146| 18.3k| appendStringInfo(out, "},"); \ | | 147| 18.3k| } ------------------ 1736| 18.3k| WRITE_LIST_FIELD(DeleteStmt, using_clause, usingClause, usingClause); ------------------ | | 98| 18.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.3k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1737| 18.3k| WRITE_NODE_PTR_FIELD(DeleteStmt, where_clause, whereClause, whereClause); ------------------ | | 121| 18.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 18.3k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1738| 18.3k| WRITE_SPECIFIC_NODE_PTR_FIELD(DeleteStmt, ReturningClause, returning_clause, returning_clause, returningClause, returningClause); ------------------ | | 141| 18.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 18.3k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1739| | WRITE_SPECIFIC_NODE_PTR_FIELD(DeleteStmt, WithClause, with_clause, with_clause, withClause, withClause); ------------------ | | 141| 18.3k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 18.0k, False: 306] | | ------------------ | | 142| 18.0k| check_stack_depth(); \ | | 143| 18.0k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 18.0k| _out##typename(out, node->fldname); \ | | 145| 18.0k| removeTrailingDelimiter(out); \ | | 146| 18.0k| appendStringInfo(out, "},"); \ | | 147| 18.0k| } ------------------ 1740| 18.3k|} pg_query_outfuncs_json.c:_outUpdateStmt: 1744| 40.6k|{ 1745| 40.6k| WRITE_SPECIFIC_NODE_PTR_FIELD(UpdateStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 40.6k, False: 0] | | ------------------ | | 142| 40.6k| check_stack_depth(); \ | | 143| 40.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 40.6k| _out##typename(out, node->fldname); \ | | 145| 40.6k| removeTrailingDelimiter(out); \ | | 146| 40.6k| appendStringInfo(out, "},"); \ | | 147| 40.6k| } ------------------ 1746| 40.6k| WRITE_LIST_FIELD(UpdateStmt, target_list, targetList, targetList); ------------------ | | 98| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 40.6k, False: 0] | | ------------------ | | 99| 40.6k| const ListCell *lc; \ | | 100| 40.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 40.6k| appendStringInfoChar(out, '['); \ | | 102| 872k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 40.6k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 913k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.82M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 872k, False: 40.6k] | | | | | Branch (375:5): [True: 913k, False: 5] | | | | ------------------ | | | | 376| 913k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 872k, False: 40.6k] | | | | ------------------ | | | | 377| 913k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 913k| (cell = NULL, false); \ | | | | 379| 872k| cell##__state.i++) | | ------------------ | | 103| 872k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 872k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 872k] | | ------------------ | | 104| 872k| appendStringInfoString(out, "{}"); \ | | 105| 872k| else \ | | 106| 872k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 872k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 872k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 831k, False: 40.6k] | | ------------------ | | 108| 872k| appendStringInfoString(out, ","); \ | | 109| 872k| } \ | | 110| 40.6k| appendStringInfo(out, "],"); \ | | 111| 40.6k| } ------------------ 1747| 40.6k| WRITE_NODE_PTR_FIELD(UpdateStmt, where_clause, whereClause, whereClause); ------------------ | | 121| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 40.6k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1748| 40.6k| WRITE_LIST_FIELD(UpdateStmt, from_clause, fromClause, fromClause); ------------------ | | 98| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 1.29k, False: 39.3k] | | ------------------ | | 99| 1.29k| const ListCell *lc; \ | | 100| 1.29k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 1.29k| appendStringInfoChar(out, '['); \ | | 102| 1.36k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 1.29k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 2.65k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 5.31k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.36k, False: 1.29k] | | | | | Branch (375:5): [True: 2.65k, False: 0] | | | | ------------------ | | | | 376| 2.65k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.36k, False: 1.29k] | | | | ------------------ | | | | 377| 2.65k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 2.65k| (cell = NULL, false); \ | | | | 379| 1.36k| cell##__state.i++) | | ------------------ | | 103| 1.36k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.36k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.36k] | | ------------------ | | 104| 1.36k| appendStringInfoString(out, "{}"); \ | | 105| 1.36k| else \ | | 106| 1.36k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.36k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.36k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 75, False: 1.29k] | | ------------------ | | 108| 1.36k| appendStringInfoString(out, ","); \ | | 109| 1.36k| } \ | | 110| 1.29k| appendStringInfo(out, "],"); \ | | 111| 1.29k| } ------------------ 1749| 40.6k| WRITE_SPECIFIC_NODE_PTR_FIELD(UpdateStmt, ReturningClause, returning_clause, returning_clause, returningClause, returningClause); ------------------ | | 141| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 40.6k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1750| | WRITE_SPECIFIC_NODE_PTR_FIELD(UpdateStmt, WithClause, with_clause, with_clause, withClause, withClause); ------------------ | | 141| 40.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 1, False: 40.6k] | | ------------------ | | 142| 1| check_stack_depth(); \ | | 143| 1| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 1| _out##typename(out, node->fldname); \ | | 145| 1| removeTrailingDelimiter(out); \ | | 146| 1| appendStringInfo(out, "},"); \ | | 147| 1| } ------------------ 1751| 40.6k|} pg_query_outfuncs_json.c:_outSelectStmt: 1766| 269k|{ 1767| 269k| WRITE_LIST_FIELD(SelectStmt, distinct_clause, distinctClause, distinctClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 269k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1768| 269k| WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, IntoClause, into_clause, into_clause, intoClause, intoClause); ------------------ | | 141| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 16.9k, False: 252k] | | ------------------ | | 142| 16.9k| check_stack_depth(); \ | | 143| 16.9k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 16.9k| _out##typename(out, node->fldname); \ | | 145| 16.9k| removeTrailingDelimiter(out); \ | | 146| 16.9k| appendStringInfo(out, "},"); \ | | 147| 16.9k| } ------------------ 1769| 269k| WRITE_LIST_FIELD(SelectStmt, target_list, targetList, targetList); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 66.2k, False: 202k] | | ------------------ | | 99| 66.2k| const ListCell *lc; \ | | 100| 66.2k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 66.2k| appendStringInfoChar(out, '['); \ | | 102| 612k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 66.2k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 678k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.35M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 612k, False: 66.2k] | | | | | Branch (375:5): [True: 678k, False: 8] | | | | ------------------ | | | | 376| 678k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 612k, False: 66.2k] | | | | ------------------ | | | | 377| 678k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 678k| (cell = NULL, false); \ | | | | 379| 612k| cell##__state.i++) | | ------------------ | | 103| 612k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 612k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 612k] | | ------------------ | | 104| 612k| appendStringInfoString(out, "{}"); \ | | 105| 612k| else \ | | 106| 612k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 612k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 612k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 546k, False: 66.2k] | | ------------------ | | 108| 612k| appendStringInfoString(out, ","); \ | | 109| 612k| } \ | | 110| 66.2k| appendStringInfo(out, "],"); \ | | 111| 66.2k| } ------------------ 1770| 269k| WRITE_LIST_FIELD(SelectStmt, from_clause, fromClause, fromClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 170k, False: 98.9k] | | ------------------ | | 99| 170k| const ListCell *lc; \ | | 100| 170k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 170k| appendStringInfoChar(out, '['); \ | | 102| 337k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 170k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 508k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.01M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 337k, False: 170k] | | | | | Branch (375:5): [True: 508k, False: 0] | | | | ------------------ | | | | 376| 508k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 337k, False: 170k] | | | | ------------------ | | | | 377| 508k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 508k| (cell = NULL, false); \ | | | | 379| 337k| cell##__state.i++) | | ------------------ | | 103| 337k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 337k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 337k] | | ------------------ | | 104| 337k| appendStringInfoString(out, "{}"); \ | | 105| 337k| else \ | | 106| 337k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 337k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 337k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 167k, False: 170k] | | ------------------ | | 108| 337k| appendStringInfoString(out, ","); \ | | 109| 337k| } \ | | 110| 170k| appendStringInfo(out, "],"); \ | | 111| 170k| } ------------------ 1771| 269k| WRITE_NODE_PTR_FIELD(SelectStmt, where_clause, whereClause, whereClause); ------------------ | | 121| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 269k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1772| 269k| WRITE_LIST_FIELD(SelectStmt, group_clause, groupClause, groupClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 294, False: 268k] | | ------------------ | | 99| 294| const ListCell *lc; \ | | 100| 294| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 294| appendStringInfoChar(out, '['); \ | | 102| 28.0k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 294| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 28.3k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 56.6k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 28.0k, False: 294] | | | | | Branch (375:5): [True: 28.3k, False: 0] | | | | ------------------ | | | | 376| 28.3k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 28.0k, False: 294] | | | | ------------------ | | | | 377| 28.3k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 28.3k| (cell = NULL, false); \ | | | | 379| 28.0k| cell##__state.i++) | | ------------------ | | 103| 28.0k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 28.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 28.0k] | | ------------------ | | 104| 28.0k| appendStringInfoString(out, "{}"); \ | | 105| 28.0k| else \ | | 106| 28.0k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 28.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 28.0k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 27.7k, False: 294] | | ------------------ | | 108| 28.0k| appendStringInfoString(out, ","); \ | | 109| 28.0k| } \ | | 110| 294| appendStringInfo(out, "],"); \ | | 111| 294| } ------------------ 1773| 269k| WRITE_BOOL_FIELD(SelectStmt, group_distinct, groupDistinct, groupDistinct); ------------------ | | 77| 269k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 196, False: 268k] | | ------------------ | | 78| 196| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 196| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 196|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 196, False: 0] | | | | ------------------ | | ------------------ | | 80| 196| } ------------------ 1774| 269k| WRITE_NODE_PTR_FIELD(SelectStmt, having_clause, havingClause, havingClause); ------------------ | | 121| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 269k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1775| 269k| WRITE_LIST_FIELD(SelectStmt, window_clause, windowClause, windowClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 269k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1776| 269k| WRITE_LIST_FIELD(SelectStmt, values_lists, valuesLists, valuesLists); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 269k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1777| 269k| WRITE_LIST_FIELD(SelectStmt, sort_clause, sortClause, sortClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 208, False: 268k] | | ------------------ | | 99| 208| const ListCell *lc; \ | | 100| 208| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 208| appendStringInfoChar(out, '['); \ | | 102| 64.1k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 208| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 64.3k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 128k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 64.1k, False: 208] | | | | | Branch (375:5): [True: 64.3k, False: 0] | | | | ------------------ | | | | 376| 64.3k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 64.1k, False: 208] | | | | ------------------ | | | | 377| 64.3k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 64.3k| (cell = NULL, false); \ | | | | 379| 64.1k| cell##__state.i++) | | ------------------ | | 103| 64.1k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 64.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 64.1k] | | ------------------ | | 104| 64.1k| appendStringInfoString(out, "{}"); \ | | 105| 64.1k| else \ | | 106| 64.1k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 64.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 64.1k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 63.9k, False: 208] | | ------------------ | | 108| 64.1k| appendStringInfoString(out, ","); \ | | 109| 64.1k| } \ | | 110| 208| appendStringInfo(out, "],"); \ | | 111| 208| } ------------------ 1778| 269k| WRITE_NODE_PTR_FIELD(SelectStmt, limit_offset, limitOffset, limitOffset); ------------------ | | 121| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 26, False: 269k] | | ------------------ | | 122| 26| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 26| _outNode(out, node->fldname); \ | | 124| 26| appendStringInfo(out, ","); \ | | 125| 26| } ------------------ 1779| 269k| WRITE_NODE_PTR_FIELD(SelectStmt, limit_count, limitCount, limitCount); ------------------ | | 121| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 708, False: 268k] | | ------------------ | | 122| 708| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 708| _outNode(out, node->fldname); \ | | 124| 708| appendStringInfo(out, ","); \ | | 125| 708| } ------------------ 1780| 269k| WRITE_ENUM_FIELD(SelectStmt, LimitOption, limit_option, limitOption, limitOption); ------------------ | | 68| 269k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 269k| _enumToString##enumtype(node->fldname)); ------------------ 1781| 269k| WRITE_LIST_FIELD(SelectStmt, locking_clause, lockingClause, lockingClause); ------------------ | | 98| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 346, False: 268k] | | ------------------ | | 99| 346| const ListCell *lc; \ | | 100| 346| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 346| appendStringInfoChar(out, '['); \ | | 102| 1.38k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 346| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.73k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.47k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.38k, False: 346] | | | | | Branch (375:5): [True: 1.73k, False: 0] | | | | ------------------ | | | | 376| 1.73k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.38k, False: 346] | | | | ------------------ | | | | 377| 1.73k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.73k| (cell = NULL, false); \ | | | | 379| 1.38k| cell##__state.i++) | | ------------------ | | 103| 1.38k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.38k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.38k] | | ------------------ | | 104| 1.38k| appendStringInfoString(out, "{}"); \ | | 105| 1.38k| else \ | | 106| 1.38k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.38k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.38k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1.04k, False: 346] | | ------------------ | | 108| 1.38k| appendStringInfoString(out, ","); \ | | 109| 1.38k| } \ | | 110| 346| appendStringInfo(out, "],"); \ | | 111| 346| } ------------------ 1782| 269k| WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, WithClause, with_clause, with_clause, withClause, withClause); ------------------ | | 141| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 60.7k, False: 208k] | | ------------------ | | 142| 60.7k| check_stack_depth(); \ | | 143| 60.7k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 60.7k| _out##typename(out, node->fldname); \ | | 145| 60.7k| removeTrailingDelimiter(out); \ | | 146| 60.7k| appendStringInfo(out, "},"); \ | | 147| 60.7k| } ------------------ 1783| 269k| WRITE_ENUM_FIELD(SelectStmt, SetOperation, op, op, op); ------------------ | | 68| 269k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 269k| _enumToString##enumtype(node->fldname)); ------------------ 1784| 269k| WRITE_BOOL_FIELD(SelectStmt, all, all, all); ------------------ | | 77| 269k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 18, False: 269k] | | ------------------ | | 78| 18| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 18| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 18|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 18, False: 0] | | | | ------------------ | | ------------------ | | 80| 18| } ------------------ 1785| 269k| WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, SelectStmt, select_stmt, larg, larg, larg); ------------------ | | 141| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 18, False: 269k] | | ------------------ | | 142| 18| check_stack_depth(); \ | | 143| 18| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 18| _out##typename(out, node->fldname); \ | | 145| 18| removeTrailingDelimiter(out); \ | | 146| 18| appendStringInfo(out, "},"); \ | | 147| 18| } ------------------ 1786| | WRITE_SPECIFIC_NODE_PTR_FIELD(SelectStmt, SelectStmt, select_stmt, rarg, rarg, rarg); ------------------ | | 141| 269k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 18, False: 269k] | | ------------------ | | 142| 18| check_stack_depth(); \ | | 143| 18| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 18| _out##typename(out, node->fldname); \ | | 145| 18| removeTrailingDelimiter(out); \ | | 146| 18| appendStringInfo(out, "},"); \ | | 147| 18| } ------------------ 1787| 269k|} pg_query_outfuncs_json.c:_outCreateSchemaStmt: 1820| 132|{ 1821| 132| WRITE_STRING_FIELD(CreateSchemaStmt, schemaname, schemaname, schemaname); ------------------ | | 91| 132| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 132, False: 0] | | | Branch (91:31): [True: 132, False: 0] | | ------------------ | | 92| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 132| _outToken(out, node->fldname); \ | | 94| 132| appendStringInfo(out, ","); \ | | 95| 132| } ------------------ 1822| 132| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateSchemaStmt, RoleSpec, role_spec, authrole, authrole, authrole); ------------------ | | 141| 132| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 132] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1823| 132| WRITE_LIST_FIELD(CreateSchemaStmt, schema_elts, schemaElts, schemaElts); ------------------ | | 98| 132| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 132, False: 0] | | ------------------ | | 99| 132| const ListCell *lc; \ | | 100| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 132| appendStringInfoChar(out, '['); \ | | 102| 262| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 132| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 394| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 788|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 262, False: 132] | | | | | Branch (375:5): [True: 394, False: 0] | | | | ------------------ | | | | 376| 394| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 262, False: 132] | | | | ------------------ | | | | 377| 394| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 394| (cell = NULL, false); \ | | | | 379| 262| cell##__state.i++) | | ------------------ | | 103| 262| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 262|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 262] | | ------------------ | | 104| 262| appendStringInfoString(out, "{}"); \ | | 105| 262| else \ | | 106| 262| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 262|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 262| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 130, False: 132] | | ------------------ | | 108| 262| appendStringInfoString(out, ","); \ | | 109| 262| } \ | | 110| 132| appendStringInfo(out, "],"); \ | | 111| 132| } ------------------ 1824| 132| WRITE_BOOL_FIELD(CreateSchemaStmt, if_not_exists, if_not_exists, if_not_exists); ------------------ | | 77| 132| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 132] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1825| 132|} pg_query_outfuncs_json.c:_outAlterTableStmt: 1829| 672|{ 1830| 672| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterTableStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 672| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 672, False: 0] | | ------------------ | | 142| 672| check_stack_depth(); \ | | 143| 672| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 672| _out##typename(out, node->fldname); \ | | 145| 672| removeTrailingDelimiter(out); \ | | 146| 672| appendStringInfo(out, "},"); \ | | 147| 672| } ------------------ 1831| 672| WRITE_LIST_FIELD(AlterTableStmt, cmds, cmds, cmds); ------------------ | | 98| 672| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 672, False: 0] | | ------------------ | | 99| 672| const ListCell *lc; \ | | 100| 672| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 672| appendStringInfoChar(out, '['); \ | | 102| 2.35k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 672| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 3.03k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 6.06k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2.35k, False: 672] | | | | | Branch (375:5): [True: 3.03k, False: 0] | | | | ------------------ | | | | 376| 3.03k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2.35k, False: 672] | | | | ------------------ | | | | 377| 3.03k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 3.03k| (cell = NULL, false); \ | | | | 379| 2.35k| cell##__state.i++) | | ------------------ | | 103| 2.35k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2.35k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2.35k] | | ------------------ | | 104| 2.35k| appendStringInfoString(out, "{}"); \ | | 105| 2.35k| else \ | | 106| 2.35k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2.35k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2.35k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1.68k, False: 672] | | ------------------ | | 108| 2.35k| appendStringInfoString(out, ","); \ | | 109| 2.35k| } \ | | 110| 672| appendStringInfo(out, "],"); \ | | 111| 672| } ------------------ 1832| 672| WRITE_ENUM_FIELD(AlterTableStmt, ObjectType, objtype, objtype, objtype); ------------------ | | 68| 672| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 672| _enumToString##enumtype(node->fldname)); ------------------ 1833| 672| WRITE_BOOL_FIELD(AlterTableStmt, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 672| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 672] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1834| 672|} pg_query_outfuncs_json.c:_outAlterTableCmd: 1838| 2.35k|{ 1839| 2.35k| WRITE_ENUM_FIELD(AlterTableCmd, AlterTableType, subtype, subtype, subtype); ------------------ | | 68| 2.35k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.35k| _enumToString##enumtype(node->fldname)); ------------------ 1840| 2.35k| WRITE_STRING_FIELD(AlterTableCmd, name, name, name); ------------------ | | 91| 2.35k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 1.34k, False: 1.01k] | | | Branch (91:31): [True: 1.34k, False: 0] | | ------------------ | | 92| 1.34k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 1.34k| _outToken(out, node->fldname); \ | | 94| 1.34k| appendStringInfo(out, ","); \ | | 95| 1.34k| } ------------------ 1841| 2.35k| WRITE_INT_FIELD(AlterTableCmd, num, num, num); ------------------ | | 38| 2.35k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 0, False: 2.35k] | | ------------------ | | 39| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 0| } ------------------ 1842| 2.35k| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterTableCmd, RoleSpec, role_spec, newowner, newowner, newowner); ------------------ | | 141| 2.35k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 2.35k] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1843| 2.35k| WRITE_NODE_PTR_FIELD(AlterTableCmd, def, def, def); ------------------ | | 121| 2.35k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 2.08k, False: 276] | | ------------------ | | 122| 2.08k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 2.08k| _outNode(out, node->fldname); \ | | 124| 2.08k| appendStringInfo(out, ","); \ | | 125| 2.08k| } ------------------ 1844| 2.35k| WRITE_ENUM_FIELD(AlterTableCmd, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 2.35k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.35k| _enumToString##enumtype(node->fldname)); ------------------ 1845| 2.35k| WRITE_BOOL_FIELD(AlterTableCmd, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 2.35k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 276, False: 2.08k] | | ------------------ | | 78| 276| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 276| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 276|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 276, False: 0] | | | | ------------------ | | ------------------ | | 80| 276| } ------------------ 1846| 2.35k| WRITE_BOOL_FIELD(AlterTableCmd, recurse, recurse, recurse); ------------------ | | 77| 2.35k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 2.35k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1847| 2.35k|} pg_query_outfuncs_json.c:_outGrantStmt: 1888| 392|{ 1889| 392| WRITE_BOOL_FIELD(GrantStmt, is_grant, is_grant, is_grant); ------------------ | | 77| 392| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 392, False: 0] | | ------------------ | | 78| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 392| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 392|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 392, False: 0] | | | | ------------------ | | ------------------ | | 80| 392| } ------------------ 1890| 392| WRITE_ENUM_FIELD(GrantStmt, GrantTargetType, targtype, targtype, targtype); ------------------ | | 68| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 392| _enumToString##enumtype(node->fldname)); ------------------ 1891| 392| WRITE_ENUM_FIELD(GrantStmt, ObjectType, objtype, objtype, objtype); ------------------ | | 68| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 392| _enumToString##enumtype(node->fldname)); ------------------ 1892| 392| WRITE_LIST_FIELD(GrantStmt, objects, objects, objects); ------------------ | | 98| 392| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 392, False: 0] | | ------------------ | | 99| 392| const ListCell *lc; \ | | 100| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 392| appendStringInfoChar(out, '['); \ | | 102| 392| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 392| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 784| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.56k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 392, False: 392] | | | | | Branch (375:5): [True: 784, False: 0] | | | | ------------------ | | | | 376| 784| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 392, False: 392] | | | | ------------------ | | | | 377| 784| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 784| (cell = NULL, false); \ | | | | 379| 392| cell##__state.i++) | | ------------------ | | 103| 392| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 392|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 392] | | ------------------ | | 104| 392| appendStringInfoString(out, "{}"); \ | | 105| 392| else \ | | 106| 392| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 392|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 392| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 392] | | ------------------ | | 108| 392| appendStringInfoString(out, ","); \ | | 109| 392| } \ | | 110| 392| appendStringInfo(out, "],"); \ | | 111| 392| } ------------------ 1893| 392| WRITE_LIST_FIELD(GrantStmt, privileges, privileges, privileges); ------------------ | | 98| 392| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 7, False: 385] | | ------------------ | | 99| 7| const ListCell *lc; \ | | 100| 7| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 7| appendStringInfoChar(out, '['); \ | | 102| 7| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 7| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 14| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 28|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 7, False: 7] | | | | | Branch (375:5): [True: 14, False: 0] | | | | ------------------ | | | | 376| 14| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 7, False: 7] | | | | ------------------ | | | | 377| 14| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 14| (cell = NULL, false); \ | | | | 379| 7| cell##__state.i++) | | ------------------ | | 103| 7| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 7|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 7] | | ------------------ | | 104| 7| appendStringInfoString(out, "{}"); \ | | 105| 7| else \ | | 106| 7| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 7|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 7| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 7] | | ------------------ | | 108| 7| appendStringInfoString(out, ","); \ | | 109| 7| } \ | | 110| 7| appendStringInfo(out, "],"); \ | | 111| 7| } ------------------ 1894| 392| WRITE_LIST_FIELD(GrantStmt, grantees, grantees, grantees); ------------------ | | 98| 392| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 392, False: 0] | | ------------------ | | 99| 392| const ListCell *lc; \ | | 100| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 392| appendStringInfoChar(out, '['); \ | | 102| 35.3k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 392| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 35.7k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 71.5k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 35.3k, False: 392] | | | | | Branch (375:5): [True: 35.7k, False: 0] | | | | ------------------ | | | | 376| 35.7k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 35.3k, False: 392] | | | | ------------------ | | | | 377| 35.7k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 35.7k| (cell = NULL, false); \ | | | | 379| 35.3k| cell##__state.i++) | | ------------------ | | 103| 35.3k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 35.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 35.3k] | | ------------------ | | 104| 35.3k| appendStringInfoString(out, "{}"); \ | | 105| 35.3k| else \ | | 106| 35.3k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 35.3k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 35.3k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 34.9k, False: 392] | | ------------------ | | 108| 35.3k| appendStringInfoString(out, ","); \ | | 109| 35.3k| } \ | | 110| 392| appendStringInfo(out, "],"); \ | | 111| 392| } ------------------ 1895| 392| WRITE_BOOL_FIELD(GrantStmt, grant_option, grant_option, grant_option); ------------------ | | 77| 392| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 392] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1896| 392| WRITE_SPECIFIC_NODE_PTR_FIELD(GrantStmt, RoleSpec, role_spec, grantor, grantor, grantor); ------------------ | | 141| 392| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 392] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1897| 392| WRITE_ENUM_FIELD(GrantStmt, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 392| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 392| _enumToString##enumtype(node->fldname)); ------------------ 1898| 392|} pg_query_outfuncs_json.c:_outObjectWithArgs: 1902| 13.6k|{ 1903| 13.6k| WRITE_LIST_FIELD(ObjectWithArgs, objname, objname, objname); ------------------ | | 98| 13.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 13.6k, False: 0] | | ------------------ | | 99| 13.6k| const ListCell *lc; \ | | 100| 13.6k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 13.6k| appendStringInfoChar(out, '['); \ | | 102| 71.0k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 13.6k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 84.6k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 169k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 71.0k, False: 13.6k] | | | | | Branch (375:5): [True: 84.6k, False: 0] | | | | ------------------ | | | | 376| 84.6k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 71.0k, False: 13.6k] | | | | ------------------ | | | | 377| 84.6k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 84.6k| (cell = NULL, false); \ | | | | 379| 71.0k| cell##__state.i++) | | ------------------ | | 103| 71.0k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 71.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 71.0k] | | ------------------ | | 104| 71.0k| appendStringInfoString(out, "{}"); \ | | 105| 71.0k| else \ | | 106| 71.0k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 71.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 71.0k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 57.4k, False: 13.6k] | | ------------------ | | 108| 71.0k| appendStringInfoString(out, ","); \ | | 109| 71.0k| } \ | | 110| 13.6k| appendStringInfo(out, "],"); \ | | 111| 13.6k| } ------------------ 1904| 13.6k| WRITE_LIST_FIELD(ObjectWithArgs, objargs, objargs, objargs); ------------------ | | 98| 13.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 1.92k, False: 11.6k] | | ------------------ | | 99| 1.92k| const ListCell *lc; \ | | 100| 1.92k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 1.92k| appendStringInfoChar(out, '['); \ | | 102| 888k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 1.92k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 890k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.78M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 888k, False: 1.92k] | | | | | Branch (375:5): [True: 890k, False: 0] | | | | ------------------ | | | | 376| 890k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 888k, False: 1.92k] | | | | ------------------ | | | | 377| 890k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 890k| (cell = NULL, false); \ | | | | 379| 888k| cell##__state.i++) | | ------------------ | | 103| 888k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 888k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 888k] | | ------------------ | | 104| 888k| appendStringInfoString(out, "{}"); \ | | 105| 888k| else \ | | 106| 888k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 888k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 888k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 886k, False: 1.92k] | | ------------------ | | 108| 888k| appendStringInfoString(out, ","); \ | | 109| 888k| } \ | | 110| 1.92k| appendStringInfo(out, "],"); \ | | 111| 1.92k| } ------------------ 1905| 13.6k| WRITE_LIST_FIELD(ObjectWithArgs, objfuncargs, objfuncargs, objfuncargs); ------------------ | | 98| 13.6k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 1.92k, False: 11.6k] | | ------------------ | | 99| 1.92k| const ListCell *lc; \ | | 100| 1.92k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 1.92k| appendStringInfoChar(out, '['); \ | | 102| 888k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 1.92k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 890k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.78M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 888k, False: 1.92k] | | | | | Branch (375:5): [True: 890k, False: 0] | | | | ------------------ | | | | 376| 890k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 888k, False: 1.92k] | | | | ------------------ | | | | 377| 890k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 890k| (cell = NULL, false); \ | | | | 379| 888k| cell##__state.i++) | | ------------------ | | 103| 888k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 888k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 888k] | | ------------------ | | 104| 888k| appendStringInfoString(out, "{}"); \ | | 105| 888k| else \ | | 106| 888k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 888k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 888k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 886k, False: 1.92k] | | ------------------ | | 108| 888k| appendStringInfoString(out, ","); \ | | 109| 888k| } \ | | 110| 1.92k| appendStringInfo(out, "],"); \ | | 111| 1.92k| } ------------------ 1906| 13.6k| WRITE_BOOL_FIELD(ObjectWithArgs, args_unspecified, args_unspecified, args_unspecified); ------------------ | | 77| 13.6k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 11.5k, False: 2.05k] | | ------------------ | | 78| 11.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 11.5k| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 11.5k|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 11.5k, False: 0] | | | | ------------------ | | ------------------ | | 80| 11.5k| } ------------------ 1907| 13.6k|} pg_query_outfuncs_json.c:_outAccessPriv: 1911| 59.0k|{ 1912| 59.0k| WRITE_STRING_FIELD(AccessPriv, priv_name, priv_name, priv_name); ------------------ | | 91| 59.0k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 59.0k, False: 2] | | | Branch (91:31): [True: 59.0k, False: 0] | | ------------------ | | 92| 59.0k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 59.0k| _outToken(out, node->fldname); \ | | 94| 59.0k| appendStringInfo(out, ","); \ | | 95| 59.0k| } ------------------ 1913| | WRITE_LIST_FIELD(AccessPriv, cols, cols, cols); ------------------ | | 98| 59.0k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 2, False: 59.0k] | | ------------------ | | 99| 2| const ListCell *lc; \ | | 100| 2| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 2| appendStringInfoChar(out, '['); \ | | 102| 2| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 2| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 4| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 8|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2, False: 2] | | | | | Branch (375:5): [True: 4, False: 0] | | | | ------------------ | | | | 376| 4| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2, False: 2] | | | | ------------------ | | | | 377| 4| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 4| (cell = NULL, false); \ | | | | 379| 2| cell##__state.i++) | | ------------------ | | 103| 2| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2] | | ------------------ | | 104| 2| appendStringInfoString(out, "{}"); \ | | 105| 2| else \ | | 106| 2| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 2] | | ------------------ | | 108| 2| appendStringInfoString(out, ","); \ | | 109| 2| } \ | | 110| 2| appendStringInfo(out, "],"); \ | | 111| 2| } ------------------ 1914| 59.0k|} pg_query_outfuncs_json.c:_outGrantRoleStmt: 1918| 4|{ 1919| 4| WRITE_LIST_FIELD(GrantRoleStmt, granted_roles, granted_roles, granted_roles); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 4, False: 0] | | ------------------ | | 99| 4| const ListCell *lc; \ | | 100| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 4| appendStringInfoChar(out, '['); \ | | 102| 59.0k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 4| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 59.0k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 118k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 59.0k, False: 4] | | | | | Branch (375:5): [True: 59.0k, False: 0] | | | | ------------------ | | | | 376| 59.0k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 59.0k, False: 4] | | | | ------------------ | | | | 377| 59.0k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 59.0k| (cell = NULL, false); \ | | | | 379| 59.0k| cell##__state.i++) | | ------------------ | | 103| 59.0k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 59.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 59.0k] | | ------------------ | | 104| 59.0k| appendStringInfoString(out, "{}"); \ | | 105| 59.0k| else \ | | 106| 59.0k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 59.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 59.0k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 59.0k, False: 4] | | ------------------ | | 108| 59.0k| appendStringInfoString(out, ","); \ | | 109| 59.0k| } \ | | 110| 4| appendStringInfo(out, "],"); \ | | 111| 4| } ------------------ 1920| 4| WRITE_LIST_FIELD(GrantRoleStmt, grantee_roles, grantee_roles, grantee_roles); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 4, False: 0] | | ------------------ | | 99| 4| const ListCell *lc; \ | | 100| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 4| appendStringInfoChar(out, '['); \ | | 102| 4| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 4| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 8| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 16|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 4, False: 4] | | | | | Branch (375:5): [True: 8, False: 0] | | | | ------------------ | | | | 376| 8| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 4, False: 4] | | | | ------------------ | | | | 377| 8| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 8| (cell = NULL, false); \ | | | | 379| 4| cell##__state.i++) | | ------------------ | | 103| 4| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 4|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 4] | | ------------------ | | 104| 4| appendStringInfoString(out, "{}"); \ | | 105| 4| else \ | | 106| 4| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 4|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 4| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 4] | | ------------------ | | 108| 4| appendStringInfoString(out, ","); \ | | 109| 4| } \ | | 110| 4| appendStringInfo(out, "],"); \ | | 111| 4| } ------------------ 1921| 4| WRITE_BOOL_FIELD(GrantRoleStmt, is_grant, is_grant, is_grant); ------------------ | | 77| 4| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 4, False: 0] | | ------------------ | | 78| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 4| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 4|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 4, False: 0] | | | | ------------------ | | ------------------ | | 80| 4| } ------------------ 1922| 4| WRITE_LIST_FIELD(GrantRoleStmt, opt, opt, opt); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 4] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1923| 4| WRITE_SPECIFIC_NODE_PTR_FIELD(GrantRoleStmt, RoleSpec, role_spec, grantor, grantor, grantor); ------------------ | | 141| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 4] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1924| 4| WRITE_ENUM_FIELD(GrantRoleStmt, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 4| _enumToString##enumtype(node->fldname)); ------------------ 1925| 4|} pg_query_outfuncs_json.c:_outCopyStmt: 1936| 250|{ 1937| 250| WRITE_SPECIFIC_NODE_PTR_FIELD(CopyStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 250| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 250, False: 0] | | ------------------ | | 142| 250| check_stack_depth(); \ | | 143| 250| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 250| _out##typename(out, node->fldname); \ | | 145| 250| removeTrailingDelimiter(out); \ | | 146| 250| appendStringInfo(out, "},"); \ | | 147| 250| } ------------------ 1938| 250| WRITE_NODE_PTR_FIELD(CopyStmt, query, query, query); ------------------ | | 121| 250| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 250] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1939| 250| WRITE_LIST_FIELD(CopyStmt, attlist, attlist, attlist); ------------------ | | 98| 250| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 250] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1940| 250| WRITE_BOOL_FIELD(CopyStmt, is_from, is_from, is_from); ------------------ | | 77| 250| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 250] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1941| 250| WRITE_BOOL_FIELD(CopyStmt, is_program, is_program, is_program); ------------------ | | 77| 250| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 250] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1942| 250| WRITE_STRING_FIELD(CopyStmt, filename, filename, filename); ------------------ | | 91| 250| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 250, False: 0] | | | Branch (91:31): [True: 4, False: 246] | | ------------------ | | 92| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 4| _outToken(out, node->fldname); \ | | 94| 4| appendStringInfo(out, ","); \ | | 95| 4| } ------------------ 1943| 250| WRITE_LIST_FIELD(CopyStmt, options, options, options); ------------------ | | 98| 250| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 250, False: 0] | | ------------------ | | 99| 250| const ListCell *lc; \ | | 100| 250| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 250| appendStringInfoChar(out, '['); \ | | 102| 2.42M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 250| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 2.42M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 4.84M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2.42M, False: 250] | | | | | Branch (375:5): [True: 2.42M, False: 0] | | | | ------------------ | | | | 376| 2.42M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2.42M, False: 250] | | | | ------------------ | | | | 377| 2.42M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 2.42M| (cell = NULL, false); \ | | | | 379| 2.42M| cell##__state.i++) | | ------------------ | | 103| 2.42M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2.42M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2.42M] | | ------------------ | | 104| 2.42M| appendStringInfoString(out, "{}"); \ | | 105| 2.42M| else \ | | 106| 2.42M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2.42M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2.42M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 2.42M, False: 250] | | ------------------ | | 108| 2.42M| appendStringInfoString(out, ","); \ | | 109| 2.42M| } \ | | 110| 250| appendStringInfo(out, "],"); \ | | 111| 250| } ------------------ 1944| | WRITE_NODE_PTR_FIELD(CopyStmt, where_clause, whereClause, whereClause); ------------------ | | 121| 250| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 250] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 1945| 250|} pg_query_outfuncs_json.c:_outVariableSetStmt: 1949| 4.78k|{ 1950| 4.78k| WRITE_ENUM_FIELD(VariableSetStmt, VariableSetKind, kind, kind, kind); ------------------ | | 68| 4.78k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 4.78k| _enumToString##enumtype(node->fldname)); ------------------ 1951| 4.78k| WRITE_STRING_FIELD(VariableSetStmt, name, name, name); ------------------ | | 91| 4.78k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 4.78k, False: 0] | | | Branch (91:31): [True: 4.78k, False: 0] | | ------------------ | | 92| 4.78k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 4.78k| _outToken(out, node->fldname); \ | | 94| 4.78k| appendStringInfo(out, ","); \ | | 95| 4.78k| } ------------------ 1952| 4.78k| WRITE_LIST_FIELD(VariableSetStmt, args, args, args); ------------------ | | 98| 4.78k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 1.05k, False: 3.72k] | | ------------------ | | 99| 1.05k| const ListCell *lc; \ | | 100| 1.05k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 1.05k| appendStringInfoChar(out, '['); \ | | 102| 1.05k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 1.05k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 2.11k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 4.22k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.05k, False: 1.05k] | | | | | Branch (375:5): [True: 2.11k, False: 0] | | | | ------------------ | | | | 376| 2.11k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.05k, False: 1.05k] | | | | ------------------ | | | | 377| 2.11k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 2.11k| (cell = NULL, false); \ | | | | 379| 1.05k| cell##__state.i++) | | ------------------ | | 103| 1.05k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.05k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.05k] | | ------------------ | | 104| 1.05k| appendStringInfoString(out, "{}"); \ | | 105| 1.05k| else \ | | 106| 1.05k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.05k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.05k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 1.05k] | | ------------------ | | 108| 1.05k| appendStringInfoString(out, ","); \ | | 109| 1.05k| } \ | | 110| 1.05k| appendStringInfo(out, "],"); \ | | 111| 1.05k| } ------------------ 1953| 4.78k| WRITE_BOOL_FIELD(VariableSetStmt, jumble_args, jumble_args, jumble_args); ------------------ | | 77| 4.78k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 4.78k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1954| 4.78k| WRITE_BOOL_FIELD(VariableSetStmt, is_local, is_local, is_local); ------------------ | | 77| 4.78k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 4.78k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1955| 4.78k| WRITE_INT_FIELD(VariableSetStmt, location, location, location); ------------------ | | 38| 4.78k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 4.61k, False: 166] | | ------------------ | | 39| 4.61k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 4.61k| } ------------------ 1956| 4.78k|} pg_query_outfuncs_json.c:_outVariableShowStmt: 1960| 1.88k|{ 1961| | WRITE_STRING_FIELD(VariableShowStmt, name, name, name); ------------------ | | 91| 1.88k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 1.88k, False: 0] | | | Branch (91:31): [True: 1.88k, False: 0] | | ------------------ | | 92| 1.88k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 1.88k| _outToken(out, node->fldname); \ | | 94| 1.88k| appendStringInfo(out, ","); \ | | 95| 1.88k| } ------------------ 1962| 1.88k|} pg_query_outfuncs_json.c:_outCreateStmt: 1966| 586|{ 1967| 586| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 586, False: 0] | | ------------------ | | 142| 586| check_stack_depth(); \ | | 143| 586| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 586| _out##typename(out, node->fldname); \ | | 145| 586| removeTrailingDelimiter(out); \ | | 146| 586| appendStringInfo(out, "},"); \ | | 147| 586| } ------------------ 1968| 586| WRITE_LIST_FIELD(CreateStmt, table_elts, tableElts, tableElts); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 324, False: 262] | | ------------------ | | 99| 324| const ListCell *lc; \ | | 100| 324| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 324| appendStringInfoChar(out, '['); \ | | 102| 3.38k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 324| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 3.71k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 7.42k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 3.38k, False: 324] | | | | | Branch (375:5): [True: 3.71k, False: 0] | | | | ------------------ | | | | 376| 3.71k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 3.38k, False: 324] | | | | ------------------ | | | | 377| 3.71k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 3.71k| (cell = NULL, false); \ | | | | 379| 3.38k| cell##__state.i++) | | ------------------ | | 103| 3.38k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 3.38k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 3.38k] | | ------------------ | | 104| 3.38k| appendStringInfoString(out, "{}"); \ | | 105| 3.38k| else \ | | 106| 3.38k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 3.38k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 3.38k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 3.06k, False: 324] | | ------------------ | | 108| 3.38k| appendStringInfoString(out, ","); \ | | 109| 3.38k| } \ | | 110| 324| appendStringInfo(out, "],"); \ | | 111| 324| } ------------------ 1969| 586| WRITE_LIST_FIELD(CreateStmt, inh_relations, inhRelations, inhRelations); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 586] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1970| 586| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateStmt, PartitionBoundSpec, partition_bound_spec, partbound, partbound, partbound); ------------------ | | 141| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 586] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1971| 586| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateStmt, PartitionSpec, partition_spec, partspec, partspec, partspec); ------------------ | | 141| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 586] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 1972| 586| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateStmt, TypeName, type_name, of_typename, ofTypename, ofTypename); ------------------ | | 141| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 23, False: 563] | | ------------------ | | 142| 23| check_stack_depth(); \ | | 143| 23| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 23| _out##typename(out, node->fldname); \ | | 145| 23| removeTrailingDelimiter(out); \ | | 146| 23| appendStringInfo(out, "},"); \ | | 147| 23| } ------------------ 1973| 586| WRITE_LIST_FIELD(CreateStmt, constraints, constraints, constraints); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 586] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1974| 586| WRITE_LIST_FIELD(CreateStmt, nnconstraints, nnconstraints, nnconstraints); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 586] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1975| 586| WRITE_LIST_FIELD(CreateStmt, options, options, options); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 586] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 1976| 586| WRITE_ENUM_FIELD(CreateStmt, OnCommitAction, oncommit, oncommit, oncommit); ------------------ | | 68| 586| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 586| _enumToString##enumtype(node->fldname)); ------------------ 1977| 586| WRITE_STRING_FIELD(CreateStmt, tablespacename, tablespacename, tablespacename); ------------------ | | 91| 586| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 586] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1978| 586| WRITE_STRING_FIELD(CreateStmt, access_method, accessMethod, accessMethod); ------------------ | | 91| 586| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 586] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1979| 586| WRITE_BOOL_FIELD(CreateStmt, if_not_exists, if_not_exists, if_not_exists); ------------------ | | 77| 586| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 586] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1980| 586|} pg_query_outfuncs_json.c:_outConstraint: 1984| 18.1k|{ 1985| 18.1k| WRITE_ENUM_FIELD(Constraint, ConstrType, contype, contype, contype); ------------------ | | 68| 18.1k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 18.1k| _enumToString##enumtype(node->fldname)); ------------------ 1986| 18.1k| WRITE_STRING_FIELD(Constraint, conname, conname, conname); ------------------ | | 91| 18.1k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 130, False: 17.9k] | | | Branch (91:31): [True: 130, False: 0] | | ------------------ | | 92| 130| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 130| _outToken(out, node->fldname); \ | | 94| 130| appendStringInfo(out, ","); \ | | 95| 130| } ------------------ 1987| 18.1k| WRITE_BOOL_FIELD(Constraint, deferrable, deferrable, deferrable); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 132, False: 17.9k] | | ------------------ | | 78| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 132| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 132|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 132, False: 0] | | | | ------------------ | | ------------------ | | 80| 132| } ------------------ 1988| 18.1k| WRITE_BOOL_FIELD(Constraint, initdeferred, initdeferred, initdeferred); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1989| 18.1k| WRITE_BOOL_FIELD(Constraint, is_enforced, is_enforced, is_enforced); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 463, False: 17.6k] | | ------------------ | | 78| 463| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 463| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 463|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 463, False: 0] | | | | ------------------ | | ------------------ | | 80| 463| } ------------------ 1990| 18.1k| WRITE_BOOL_FIELD(Constraint, skip_validation, skip_validation, skip_validation); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1991| 18.1k| WRITE_BOOL_FIELD(Constraint, initially_valid, initially_valid, initially_valid); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 463, False: 17.6k] | | ------------------ | | 78| 463| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 463| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 463|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 463, False: 0] | | | | ------------------ | | ------------------ | | 80| 463| } ------------------ 1992| 18.1k| WRITE_BOOL_FIELD(Constraint, is_no_inherit, is_no_inherit, is_no_inherit); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1993| 18.1k| WRITE_NODE_PTR_FIELD(Constraint, raw_expr, raw_expr, raw_expr); ------------------ | | 121| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 17.0k, False: 1.03k] | | ------------------ | | 122| 17.0k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 17.0k| _outNode(out, node->fldname); \ | | 124| 17.0k| appendStringInfo(out, ","); \ | | 125| 17.0k| } ------------------ 1994| 18.1k| WRITE_STRING_FIELD(Constraint, cooked_expr, cooked_expr, cooked_expr); ------------------ | | 91| 18.1k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 18.1k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 1995| 18.1k| WRITE_CHAR_FIELD(Constraint, generated_when, generated_when, generated_when); ------------------ | | 62| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 129, False: 17.9k] | | ------------------ | | 63| 129| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 129| } ------------------ 1996| 18.1k| WRITE_CHAR_FIELD(Constraint, generated_kind, generated_kind, generated_kind); ------------------ | | 62| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 129, False: 17.9k] | | ------------------ | | 63| 129| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 129| } ------------------ 1997| 18.1k| WRITE_BOOL_FIELD(Constraint, nulls_not_distinct, nulls_not_distinct, nulls_not_distinct); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 1998| 18.1k| WRITE_LIST_FIELD(Constraint, keys, keys, keys); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 560, False: 17.5k] | | ------------------ | | 99| 560| const ListCell *lc; \ | | 100| 560| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 560| appendStringInfoChar(out, '['); \ | | 102| 560| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 560| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.12k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 2.24k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 560, False: 560] | | | | | Branch (375:5): [True: 1.12k, False: 0] | | | | ------------------ | | | | 376| 1.12k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 560, False: 560] | | | | ------------------ | | | | 377| 1.12k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.12k| (cell = NULL, false); \ | | | | 379| 560| cell##__state.i++) | | ------------------ | | 103| 560| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 560|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 560] | | ------------------ | | 104| 560| appendStringInfoString(out, "{}"); \ | | 105| 560| else \ | | 106| 560| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 560|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 560| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 560] | | ------------------ | | 108| 560| appendStringInfoString(out, ","); \ | | 109| 560| } \ | | 110| 560| appendStringInfo(out, "],"); \ | | 111| 560| } ------------------ 1999| 18.1k| WRITE_BOOL_FIELD(Constraint, without_overlaps, without_overlaps, without_overlaps); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2000| 18.1k| WRITE_LIST_FIELD(Constraint, including, including, including); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.1k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2001| 18.1k| WRITE_LIST_FIELD(Constraint, exclusions, exclusions, exclusions); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.1k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2002| 18.1k| WRITE_LIST_FIELD(Constraint, options, options, options); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.1k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2003| 18.1k| WRITE_STRING_FIELD(Constraint, indexname, indexname, indexname); ------------------ | | 91| 18.1k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 18.1k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2004| 18.1k| WRITE_STRING_FIELD(Constraint, indexspace, indexspace, indexspace); ------------------ | | 91| 18.1k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 18.1k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2005| 18.1k| WRITE_BOOL_FIELD(Constraint, reset_default_tblspc, reset_default_tblspc, reset_default_tblspc); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2006| 18.1k| WRITE_STRING_FIELD(Constraint, access_method, access_method, access_method); ------------------ | | 91| 18.1k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 18.1k] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2007| 18.1k| WRITE_NODE_PTR_FIELD(Constraint, where_clause, where_clause, where_clause); ------------------ | | 121| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 18.1k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 2008| 18.1k| WRITE_SPECIFIC_NODE_PTR_FIELD(Constraint, RangeVar, range_var, pktable, pktable, pktable); ------------------ | | 141| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 305, False: 17.8k] | | ------------------ | | 142| 305| check_stack_depth(); \ | | 143| 305| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 305| _out##typename(out, node->fldname); \ | | 145| 305| removeTrailingDelimiter(out); \ | | 146| 305| appendStringInfo(out, "},"); \ | | 147| 305| } ------------------ 2009| 18.1k| WRITE_LIST_FIELD(Constraint, fk_attrs, fk_attrs, fk_attrs); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.1k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2010| 18.1k| WRITE_LIST_FIELD(Constraint, pk_attrs, pk_attrs, pk_attrs); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 34, False: 18.0k] | | ------------------ | | 99| 34| const ListCell *lc; \ | | 100| 34| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 34| appendStringInfoChar(out, '['); \ | | 102| 34| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 34| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 68| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 136|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 34, False: 34] | | | | | Branch (375:5): [True: 68, False: 0] | | | | ------------------ | | | | 376| 68| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 34, False: 34] | | | | ------------------ | | | | 377| 68| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 68| (cell = NULL, false); \ | | | | 379| 34| cell##__state.i++) | | ------------------ | | 103| 34| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 34|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 34] | | ------------------ | | 104| 34| appendStringInfoString(out, "{}"); \ | | 105| 34| else \ | | 106| 34| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 34|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 34| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 34] | | ------------------ | | 108| 34| appendStringInfoString(out, ","); \ | | 109| 34| } \ | | 110| 34| appendStringInfo(out, "],"); \ | | 111| 34| } ------------------ 2011| 18.1k| WRITE_BOOL_FIELD(Constraint, fk_with_period, fk_with_period, fk_with_period); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2012| 18.1k| WRITE_BOOL_FIELD(Constraint, pk_with_period, pk_with_period, pk_with_period); ------------------ | | 77| 18.1k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 18.1k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2013| 18.1k| WRITE_CHAR_FIELD(Constraint, fk_matchtype, fk_matchtype, fk_matchtype); ------------------ | | 62| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 305, False: 17.8k] | | ------------------ | | 63| 305| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 305| } ------------------ 2014| 18.1k| WRITE_CHAR_FIELD(Constraint, fk_upd_action, fk_upd_action, fk_upd_action); ------------------ | | 62| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 305, False: 17.8k] | | ------------------ | | 63| 305| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 305| } ------------------ 2015| 18.1k| WRITE_CHAR_FIELD(Constraint, fk_del_action, fk_del_action, fk_del_action); ------------------ | | 62| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (62:6): [True: 305, False: 17.8k] | | ------------------ | | 63| 305| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%c\",", node->fldname); \ | | 64| 305| } ------------------ 2016| 18.1k| WRITE_LIST_FIELD(Constraint, fk_del_set_cols, fk_del_set_cols, fk_del_set_cols); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 129, False: 17.9k] | | ------------------ | | 99| 129| const ListCell *lc; \ | | 100| 129| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 129| appendStringInfoChar(out, '['); \ | | 102| 145| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 129| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 274| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 548|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 145, False: 129] | | | | | Branch (375:5): [True: 274, False: 0] | | | | ------------------ | | | | 376| 274| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 145, False: 129] | | | | ------------------ | | | | 377| 274| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 274| (cell = NULL, false); \ | | | | 379| 145| cell##__state.i++) | | ------------------ | | 103| 145| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 145|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 145] | | ------------------ | | 104| 145| appendStringInfoString(out, "{}"); \ | | 105| 145| else \ | | 106| 145| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 145|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 145| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 16, False: 129] | | ------------------ | | 108| 145| appendStringInfoString(out, ","); \ | | 109| 145| } \ | | 110| 129| appendStringInfo(out, "],"); \ | | 111| 129| } ------------------ 2017| 18.1k| WRITE_LIST_FIELD(Constraint, old_conpfeqop, old_conpfeqop, old_conpfeqop); ------------------ | | 98| 18.1k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 18.1k] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2018| 18.1k| WRITE_UINT_FIELD(Constraint, old_pktable_oid, old_pktable_oid, old_pktable_oid); ------------------ | | 44| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 18.1k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2019| 18.1k| WRITE_INT_FIELD(Constraint, location, location, location); ------------------ | | 38| 18.1k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 18.1k, False: 0] | | ------------------ | | 39| 18.1k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 18.1k| } ------------------ 2020| 18.1k|} pg_query_outfuncs_json.c:_outCreateRoleStmt: 2239| 629|{ 2240| 629| WRITE_ENUM_FIELD(CreateRoleStmt, RoleStmtType, stmt_type, stmt_type, stmt_type); ------------------ | | 68| 629| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 629| _enumToString##enumtype(node->fldname)); ------------------ 2241| 629| WRITE_STRING_FIELD(CreateRoleStmt, role, role, role); ------------------ | | 91| 629| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 629, False: 0] | | | Branch (91:31): [True: 629, False: 0] | | ------------------ | | 92| 629| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 629| _outToken(out, node->fldname); \ | | 94| 629| appendStringInfo(out, ","); \ | | 95| 629| } ------------------ 2242| | WRITE_LIST_FIELD(CreateRoleStmt, options, options, options); ------------------ | | 98| 629| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 247, False: 382] | | ------------------ | | 99| 247| const ListCell *lc; \ | | 100| 247| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 247| appendStringInfoChar(out, '['); \ | | 102| 1.14k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 247| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.38k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 2.77k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.14k, False: 247] | | | | | Branch (375:5): [True: 1.38k, False: 0] | | | | ------------------ | | | | 376| 1.38k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.14k, False: 247] | | | | ------------------ | | | | 377| 1.38k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.38k| (cell = NULL, false); \ | | | | 379| 1.14k| cell##__state.i++) | | ------------------ | | 103| 1.14k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.14k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.14k] | | ------------------ | | 104| 1.14k| appendStringInfoString(out, "{}"); \ | | 105| 1.14k| else \ | | 106| 1.14k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.14k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.14k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 894, False: 247] | | ------------------ | | 108| 1.14k| appendStringInfoString(out, ","); \ | | 109| 1.14k| } \ | | 110| 247| appendStringInfo(out, "],"); \ | | 111| 247| } ------------------ 2243| 629|} pg_query_outfuncs_json.c:_outAlterRoleStmt: 2247| 2.49k|{ 2248| 2.49k| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterRoleStmt, RoleSpec, role_spec, role, role, role); ------------------ | | 141| 2.49k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 2.49k, False: 0] | | ------------------ | | 142| 2.49k| check_stack_depth(); \ | | 143| 2.49k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 2.49k| _out##typename(out, node->fldname); \ | | 145| 2.49k| removeTrailingDelimiter(out); \ | | 146| 2.49k| appendStringInfo(out, "},"); \ | | 147| 2.49k| } ------------------ 2249| 2.49k| WRITE_LIST_FIELD(AlterRoleStmt, options, options, options); ------------------ | | 98| 2.49k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 1.60k, False: 895] | | ------------------ | | 99| 1.60k| const ListCell *lc; \ | | 100| 1.60k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 1.60k| appendStringInfoChar(out, '['); \ | | 102| 12.0k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 1.60k| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 13.6k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 27.2k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 12.0k, False: 1.60k] | | | | | Branch (375:5): [True: 13.6k, False: 0] | | | | ------------------ | | | | 376| 13.6k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 12.0k, False: 1.60k] | | | | ------------------ | | | | 377| 13.6k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 13.6k| (cell = NULL, false); \ | | | | 379| 12.0k| cell##__state.i++) | | ------------------ | | 103| 12.0k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 12.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 12.0k] | | ------------------ | | 104| 12.0k| appendStringInfoString(out, "{}"); \ | | 105| 12.0k| else \ | | 106| 12.0k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 12.0k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 12.0k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 10.4k, False: 1.60k] | | ------------------ | | 108| 12.0k| appendStringInfoString(out, ","); \ | | 109| 12.0k| } \ | | 110| 1.60k| appendStringInfo(out, "],"); \ | | 111| 1.60k| } ------------------ 2250| 2.49k| WRITE_INT_FIELD(AlterRoleStmt, action, action, action); ------------------ | | 38| 2.49k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.49k, False: 0] | | ------------------ | | 39| 2.49k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.49k| } ------------------ 2251| 2.49k|} pg_query_outfuncs_json.c:_outAlterRoleSetStmt: 2255| 130|{ 2256| 130| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterRoleSetStmt, RoleSpec, role_spec, role, role, role); ------------------ | | 141| 130| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 130, False: 0] | | ------------------ | | 142| 130| check_stack_depth(); \ | | 143| 130| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 130| _out##typename(out, node->fldname); \ | | 145| 130| removeTrailingDelimiter(out); \ | | 146| 130| appendStringInfo(out, "},"); \ | | 147| 130| } ------------------ 2257| 130| WRITE_STRING_FIELD(AlterRoleSetStmt, database, database, database); ------------------ | | 91| 130| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 130] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2258| | WRITE_SPECIFIC_NODE_PTR_FIELD(AlterRoleSetStmt, VariableSetStmt, variable_set_stmt, setstmt, setstmt, setstmt); ------------------ | | 141| 130| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 130, False: 0] | | ------------------ | | 142| 130| check_stack_depth(); \ | | 143| 130| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 130| _out##typename(out, node->fldname); \ | | 145| 130| removeTrailingDelimiter(out); \ | | 146| 130| appendStringInfo(out, "},"); \ | | 147| 130| } ------------------ 2259| 130|} pg_query_outfuncs_json.c:_outDropRoleStmt: 2263| 10|{ 2264| 10| WRITE_LIST_FIELD(DropRoleStmt, roles, roles, roles); ------------------ | | 98| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 10, False: 0] | | ------------------ | | 99| 10| const ListCell *lc; \ | | 100| 10| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 10| appendStringInfoChar(out, '['); \ | | 102| 590k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 10| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 590k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.18M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 590k, False: 10] | | | | | Branch (375:5): [True: 590k, False: 0] | | | | ------------------ | | | | 376| 590k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 590k, False: 10] | | | | ------------------ | | | | 377| 590k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 590k| (cell = NULL, false); \ | | | | 379| 590k| cell##__state.i++) | | ------------------ | | 103| 590k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 590k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 590k] | | ------------------ | | 104| 590k| appendStringInfoString(out, "{}"); \ | | 105| 590k| else \ | | 106| 590k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 590k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 590k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 590k, False: 10] | | ------------------ | | 108| 590k| appendStringInfoString(out, ","); \ | | 109| 590k| } \ | | 110| 10| appendStringInfo(out, "],"); \ | | 111| 10| } ------------------ 2265| 10| WRITE_BOOL_FIELD(DropRoleStmt, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2266| 10|} pg_query_outfuncs_json.c:_outDefineStmt: 2289| 129|{ 2290| 129| WRITE_ENUM_FIELD(DefineStmt, ObjectType, kind, kind, kind); ------------------ | | 68| 129| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 129| _enumToString##enumtype(node->fldname)); ------------------ 2291| 129| WRITE_BOOL_FIELD(DefineStmt, oldstyle, oldstyle, oldstyle); ------------------ | | 77| 129| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 129] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2292| 129| WRITE_LIST_FIELD(DefineStmt, defnames, defnames, defnames); ------------------ | | 98| 129| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 129, False: 0] | | ------------------ | | 99| 129| const ListCell *lc; \ | | 100| 129| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 129| appendStringInfoChar(out, '['); \ | | 102| 390| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 129| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 519| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.03k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 390, False: 129] | | | | | Branch (375:5): [True: 519, False: 0] | | | | ------------------ | | | | 376| 519| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 390, False: 129] | | | | ------------------ | | | | 377| 519| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 519| (cell = NULL, false); \ | | | | 379| 390| cell##__state.i++) | | ------------------ | | 103| 390| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 390|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 390] | | ------------------ | | 104| 390| appendStringInfoString(out, "{}"); \ | | 105| 390| else \ | | 106| 390| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 390|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 390| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 261, False: 129] | | ------------------ | | 108| 390| appendStringInfoString(out, ","); \ | | 109| 390| } \ | | 110| 129| appendStringInfo(out, "],"); \ | | 111| 129| } ------------------ 2293| 129| WRITE_LIST_FIELD(DefineStmt, args, args, args); ------------------ | | 98| 129| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 129] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2294| 129| WRITE_LIST_FIELD(DefineStmt, definition, definition, definition); ------------------ | | 98| 129| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 128, False: 1] | | ------------------ | | 99| 128| const ListCell *lc; \ | | 100| 128| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 128| appendStringInfoChar(out, '['); \ | | 102| 128| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 128| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 256| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 512|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 128, False: 128] | | | | | Branch (375:5): [True: 256, False: 0] | | | | ------------------ | | | | 376| 256| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 128, False: 128] | | | | ------------------ | | | | 377| 256| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 256| (cell = NULL, false); \ | | | | 379| 128| cell##__state.i++) | | ------------------ | | 103| 128| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 128|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 128] | | ------------------ | | 104| 128| appendStringInfoString(out, "{}"); \ | | 105| 128| else \ | | 106| 128| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 128|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 128| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 128] | | ------------------ | | 108| 128| appendStringInfoString(out, ","); \ | | 109| 128| } \ | | 110| 128| appendStringInfo(out, "],"); \ | | 111| 128| } ------------------ 2295| 129| WRITE_BOOL_FIELD(DefineStmt, if_not_exists, if_not_exists, if_not_exists); ------------------ | | 77| 129| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 129] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2296| 129| WRITE_BOOL_FIELD(DefineStmt, replace, replace, replace); ------------------ | | 77| 129| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 129] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2297| 129|} pg_query_outfuncs_json.c:_outDropStmt: 2348| 24|{ 2349| 24| WRITE_LIST_FIELD(DropStmt, objects, objects, objects); ------------------ | | 98| 24| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 24, False: 0] | | ------------------ | | 99| 24| const ListCell *lc; \ | | 100| 24| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 24| appendStringInfoChar(out, '['); \ | | 102| 17.6k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 24| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 17.6k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 35.2k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 17.6k, False: 24] | | | | | Branch (375:5): [True: 17.6k, False: 0] | | | | ------------------ | | | | 376| 17.6k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 17.6k, False: 24] | | | | ------------------ | | | | 377| 17.6k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 17.6k| (cell = NULL, false); \ | | | | 379| 17.6k| cell##__state.i++) | | ------------------ | | 103| 17.6k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 17.6k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 17.6k] | | ------------------ | | 104| 17.6k| appendStringInfoString(out, "{}"); \ | | 105| 17.6k| else \ | | 106| 17.6k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 17.6k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 17.6k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 17.5k, False: 24] | | ------------------ | | 108| 17.6k| appendStringInfoString(out, ","); \ | | 109| 17.6k| } \ | | 110| 24| appendStringInfo(out, "],"); \ | | 111| 24| } ------------------ 2350| 24| WRITE_ENUM_FIELD(DropStmt, ObjectType, remove_type, removeType, removeType); ------------------ | | 68| 24| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 24| _enumToString##enumtype(node->fldname)); ------------------ 2351| 24| WRITE_ENUM_FIELD(DropStmt, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 24| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 24| _enumToString##enumtype(node->fldname)); ------------------ 2352| 24| WRITE_BOOL_FIELD(DropStmt, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 24| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 24] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2353| 24| WRITE_BOOL_FIELD(DropStmt, concurrent, concurrent, concurrent); ------------------ | | 77| 24| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 24] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2354| 24|} pg_query_outfuncs_json.c:_outTruncateStmt: 2358| 262|{ 2359| 262| WRITE_LIST_FIELD(TruncateStmt, relations, relations, relations); ------------------ | | 98| 262| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 262, False: 0] | | ------------------ | | 99| 262| const ListCell *lc; \ | | 100| 262| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 262| appendStringInfoChar(out, '['); \ | | 102| 263| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 262| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 525| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.05k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 263, False: 262] | | | | | Branch (375:5): [True: 525, False: 0] | | | | ------------------ | | | | 376| 525| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 263, False: 262] | | | | ------------------ | | | | 377| 525| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 525| (cell = NULL, false); \ | | | | 379| 263| cell##__state.i++) | | ------------------ | | 103| 263| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 263|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 263] | | ------------------ | | 104| 263| appendStringInfoString(out, "{}"); \ | | 105| 263| else \ | | 106| 263| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 263|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 263| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1, False: 262] | | ------------------ | | 108| 263| appendStringInfoString(out, ","); \ | | 109| 263| } \ | | 110| 262| appendStringInfo(out, "],"); \ | | 111| 262| } ------------------ 2360| 262| WRITE_BOOL_FIELD(TruncateStmt, restart_seqs, restart_seqs, restart_seqs); ------------------ | | 77| 262| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 262] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2361| 262| WRITE_ENUM_FIELD(TruncateStmt, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 262| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 262| _enumToString##enumtype(node->fldname)); ------------------ 2362| 262|} pg_query_outfuncs_json.c:_outFetchStmt: 2397| 162|{ 2398| 162| WRITE_ENUM_FIELD(FetchStmt, FetchDirection, direction, direction, direction); ------------------ | | 68| 162| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 162| _enumToString##enumtype(node->fldname)); ------------------ 2399| 162| WRITE_LONG_FIELD(FetchStmt, how_many, howMany, howMany); ------------------ | | 56| 162| if (node->fldname != 0) { \ | | ------------------ | | | Branch (56:6): [True: 33, False: 129] | | ------------------ | | 57| 33| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%ld,", node->fldname); \ | | 58| 33| } ------------------ 2400| 162| WRITE_STRING_FIELD(FetchStmt, portalname, portalname, portalname); ------------------ | | 91| 162| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 162, False: 0] | | | Branch (91:31): [True: 162, False: 0] | | ------------------ | | 92| 162| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 162| _outToken(out, node->fldname); \ | | 94| 162| appendStringInfo(out, ","); \ | | 95| 162| } ------------------ 2401| 162| WRITE_BOOL_FIELD(FetchStmt, ismove, ismove, ismove); ------------------ | | 77| 162| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 162, False: 0] | | ------------------ | | 78| 162| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 162| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 162|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 162, False: 0] | | | | ------------------ | | ------------------ | | 80| 162| } ------------------ 2402| 162|} pg_query_outfuncs_json.c:_outIndexStmt: 2406| 10|{ 2407| 10| WRITE_STRING_FIELD(IndexStmt, idxname, idxname, idxname); ------------------ | | 91| 10| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 10] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2408| 10| WRITE_SPECIFIC_NODE_PTR_FIELD(IndexStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 10, False: 0] | | ------------------ | | 142| 10| check_stack_depth(); \ | | 143| 10| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 10| _out##typename(out, node->fldname); \ | | 145| 10| removeTrailingDelimiter(out); \ | | 146| 10| appendStringInfo(out, "},"); \ | | 147| 10| } ------------------ 2409| 10| WRITE_STRING_FIELD(IndexStmt, access_method, accessMethod, accessMethod); ------------------ | | 91| 10| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 10, False: 0] | | | Branch (91:31): [True: 10, False: 0] | | ------------------ | | 92| 10| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 10| _outToken(out, node->fldname); \ | | 94| 10| appendStringInfo(out, ","); \ | | 95| 10| } ------------------ 2410| 10| WRITE_STRING_FIELD(IndexStmt, table_space, tableSpace, tableSpace); ------------------ | | 91| 10| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 10] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2411| 10| WRITE_LIST_FIELD(IndexStmt, index_params, indexParams, indexParams); ------------------ | | 98| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 10, False: 0] | | ------------------ | | 99| 10| const ListCell *lc; \ | | 100| 10| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 10| appendStringInfoChar(out, '['); \ | | 102| 1.24k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 10| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.25k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 2.51k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.24k, False: 10] | | | | | Branch (375:5): [True: 1.25k, False: 0] | | | | ------------------ | | | | 376| 1.25k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.24k, False: 10] | | | | ------------------ | | | | 377| 1.25k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.25k| (cell = NULL, false); \ | | | | 379| 1.24k| cell##__state.i++) | | ------------------ | | 103| 1.24k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.24k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.24k] | | ------------------ | | 104| 1.24k| appendStringInfoString(out, "{}"); \ | | 105| 1.24k| else \ | | 106| 1.24k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.24k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.24k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1.23k, False: 10] | | ------------------ | | 108| 1.24k| appendStringInfoString(out, ","); \ | | 109| 1.24k| } \ | | 110| 10| appendStringInfo(out, "],"); \ | | 111| 10| } ------------------ 2412| 10| WRITE_LIST_FIELD(IndexStmt, index_including_params, indexIncludingParams, indexIncludingParams); ------------------ | | 98| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 10] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2413| 10| WRITE_LIST_FIELD(IndexStmt, options, options, options); ------------------ | | 98| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 3, False: 7] | | ------------------ | | 99| 3| const ListCell *lc; \ | | 100| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 3| appendStringInfoChar(out, '['); \ | | 102| 19.1k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 3| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 19.1k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 38.3k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 19.1k, False: 3] | | | | | Branch (375:5): [True: 19.1k, False: 0] | | | | ------------------ | | | | 376| 19.1k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 19.1k, False: 3] | | | | ------------------ | | | | 377| 19.1k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 19.1k| (cell = NULL, false); \ | | | | 379| 19.1k| cell##__state.i++) | | ------------------ | | 103| 19.1k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 19.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 19.1k] | | ------------------ | | 104| 19.1k| appendStringInfoString(out, "{}"); \ | | 105| 19.1k| else \ | | 106| 19.1k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 19.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 19.1k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 19.1k, False: 3] | | ------------------ | | 108| 19.1k| appendStringInfoString(out, ","); \ | | 109| 19.1k| } \ | | 110| 3| appendStringInfo(out, "],"); \ | | 111| 3| } ------------------ 2414| 10| WRITE_NODE_PTR_FIELD(IndexStmt, where_clause, whereClause, whereClause); ------------------ | | 121| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 10] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 2415| 10| WRITE_LIST_FIELD(IndexStmt, exclude_op_names, excludeOpNames, excludeOpNames); ------------------ | | 98| 10| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 10] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2416| 10| WRITE_STRING_FIELD(IndexStmt, idxcomment, idxcomment, idxcomment); ------------------ | | 91| 10| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 10] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2417| 10| WRITE_UINT_FIELD(IndexStmt, index_oid, indexOid, indexOid); ------------------ | | 44| 10| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 10] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2418| 10| WRITE_UINT_FIELD(IndexStmt, old_number, oldNumber, oldNumber); ------------------ | | 44| 10| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 10] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2419| 10| WRITE_UINT_FIELD(IndexStmt, old_create_subid, oldCreateSubid, oldCreateSubid); ------------------ | | 44| 10| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 10] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2420| 10| WRITE_UINT_FIELD(IndexStmt, old_first_relfilelocator_subid, oldFirstRelfilelocatorSubid, oldFirstRelfilelocatorSubid); ------------------ | | 44| 10| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 10] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2421| 10| WRITE_BOOL_FIELD(IndexStmt, unique, unique, unique); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2422| 10| WRITE_BOOL_FIELD(IndexStmt, nulls_not_distinct, nulls_not_distinct, nulls_not_distinct); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2423| 10| WRITE_BOOL_FIELD(IndexStmt, primary, primary, primary); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2424| 10| WRITE_BOOL_FIELD(IndexStmt, isconstraint, isconstraint, isconstraint); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2425| 10| WRITE_BOOL_FIELD(IndexStmt, iswithoutoverlaps, iswithoutoverlaps, iswithoutoverlaps); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2426| 10| WRITE_BOOL_FIELD(IndexStmt, deferrable, deferrable, deferrable); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2427| 10| WRITE_BOOL_FIELD(IndexStmt, initdeferred, initdeferred, initdeferred); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2428| 10| WRITE_BOOL_FIELD(IndexStmt, transformed, transformed, transformed); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2429| 10| WRITE_BOOL_FIELD(IndexStmt, concurrent, concurrent, concurrent); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2430| 10| WRITE_BOOL_FIELD(IndexStmt, if_not_exists, if_not_exists, if_not_exists); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2431| 10| WRITE_BOOL_FIELD(IndexStmt, reset_default_tblspc, reset_default_tblspc, reset_default_tblspc); ------------------ | | 77| 10| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 10] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2432| 10|} pg_query_outfuncs_json.c:_outCreateFunctionStmt: 2463| 4|{ 2464| 4| WRITE_BOOL_FIELD(CreateFunctionStmt, is_procedure, is_procedure, is_procedure); ------------------ | | 77| 4| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 4] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2465| 4| WRITE_BOOL_FIELD(CreateFunctionStmt, replace, replace, replace); ------------------ | | 77| 4| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 4] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2466| 4| WRITE_LIST_FIELD(CreateFunctionStmt, funcname, funcname, funcname); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 4, False: 0] | | ------------------ | | 99| 4| const ListCell *lc; \ | | 100| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 4| appendStringInfoChar(out, '['); \ | | 102| 1.53k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 4| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.54k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.08k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.53k, False: 4] | | | | | Branch (375:5): [True: 1.54k, False: 0] | | | | ------------------ | | | | 376| 1.54k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.53k, False: 4] | | | | ------------------ | | | | 377| 1.54k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.54k| (cell = NULL, false); \ | | | | 379| 1.53k| cell##__state.i++) | | ------------------ | | 103| 1.53k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.53k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.53k] | | ------------------ | | 104| 1.53k| appendStringInfoString(out, "{}"); \ | | 105| 1.53k| else \ | | 106| 1.53k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.53k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.53k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1.53k, False: 4] | | ------------------ | | 108| 1.53k| appendStringInfoString(out, ","); \ | | 109| 1.53k| } \ | | 110| 4| appendStringInfo(out, "],"); \ | | 111| 4| } ------------------ 2467| 4| WRITE_LIST_FIELD(CreateFunctionStmt, parameters, parameters, parameters); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 4, False: 0] | | ------------------ | | 99| 4| const ListCell *lc; \ | | 100| 4| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 4| appendStringInfoChar(out, '['); \ | | 102| 34.5k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 4| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 34.5k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 69.0k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 34.5k, False: 4] | | | | | Branch (375:5): [True: 34.5k, False: 0] | | | | ------------------ | | | | 376| 34.5k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 34.5k, False: 4] | | | | ------------------ | | | | 377| 34.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 34.5k| (cell = NULL, false); \ | | | | 379| 34.5k| cell##__state.i++) | | ------------------ | | 103| 34.5k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 34.5k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 34.5k] | | ------------------ | | 104| 34.5k| appendStringInfoString(out, "{}"); \ | | 105| 34.5k| else \ | | 106| 34.5k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 34.5k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 34.5k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 34.5k, False: 4] | | ------------------ | | 108| 34.5k| appendStringInfoString(out, ","); \ | | 109| 34.5k| } \ | | 110| 4| appendStringInfo(out, "],"); \ | | 111| 4| } ------------------ 2468| 4| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateFunctionStmt, TypeName, type_name, return_type, returnType, returnType); ------------------ | | 141| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 4] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 2469| 4| WRITE_LIST_FIELD(CreateFunctionStmt, options, options, options); ------------------ | | 98| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 4] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2470| | WRITE_NODE_PTR_FIELD(CreateFunctionStmt, sql_body, sql_body, sql_body); ------------------ | | 121| 4| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 4] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 2471| 4|} pg_query_outfuncs_json.c:_outFunctionParameter: 2475| 923k|{ 2476| 923k| WRITE_STRING_FIELD(FunctionParameter, name, name, name); ------------------ | | 91| 923k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 298, False: 923k] | | | Branch (91:31): [True: 298, False: 0] | | ------------------ | | 92| 298| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 298| _outToken(out, node->fldname); \ | | 94| 298| appendStringInfo(out, ","); \ | | 95| 298| } ------------------ 2477| 923k| WRITE_SPECIFIC_NODE_PTR_FIELD(FunctionParameter, TypeName, type_name, arg_type, argType, argType); ------------------ | | 141| 923k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 923k, False: 0] | | ------------------ | | 142| 923k| check_stack_depth(); \ | | 143| 923k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 923k| _out##typename(out, node->fldname); \ | | 145| 923k| removeTrailingDelimiter(out); \ | | 146| 923k| appendStringInfo(out, "},"); \ | | 147| 923k| } ------------------ 2478| 923k| WRITE_ENUM_FIELD(FunctionParameter, FunctionParameterMode, mode, mode, mode); ------------------ | | 68| 923k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 923k| _enumToString##enumtype(node->fldname)); ------------------ 2479| 923k| WRITE_NODE_PTR_FIELD(FunctionParameter, defexpr, defexpr, defexpr); ------------------ | | 121| 923k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 380, False: 922k] | | ------------------ | | 122| 380| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 380| _outNode(out, node->fldname); \ | | 124| 380| appendStringInfo(out, ","); \ | | 125| 380| } ------------------ 2480| 923k| WRITE_INT_FIELD(FunctionParameter, location, location, location); ------------------ | | 38| 923k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 923k, False: 0] | | ------------------ | | 39| 923k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 923k| } ------------------ 2481| 923k|} pg_query_outfuncs_json.c:_outAlterFunctionStmt: 2485| 83|{ 2486| 83| WRITE_ENUM_FIELD(AlterFunctionStmt, ObjectType, objtype, objtype, objtype); ------------------ | | 68| 83| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 83| _enumToString##enumtype(node->fldname)); ------------------ 2487| 83| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterFunctionStmt, ObjectWithArgs, object_with_args, func, func, func); ------------------ | | 141| 83| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 83, False: 0] | | ------------------ | | 142| 83| check_stack_depth(); \ | | 143| 83| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 83| _out##typename(out, node->fldname); \ | | 145| 83| removeTrailingDelimiter(out); \ | | 146| 83| appendStringInfo(out, "},"); \ | | 147| 83| } ------------------ 2488| | WRITE_LIST_FIELD(AlterFunctionStmt, actions, actions, actions); ------------------ | | 98| 83| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 83, False: 0] | | ------------------ | | 99| 83| const ListCell *lc; \ | | 100| 83| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 83| appendStringInfoChar(out, '['); \ | | 102| 83| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 83| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 166| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 332|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 83, False: 83] | | | | | Branch (375:5): [True: 166, False: 0] | | | | ------------------ | | | | 376| 166| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 83, False: 83] | | | | ------------------ | | | | 377| 166| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 166| (cell = NULL, false); \ | | | | 379| 83| cell##__state.i++) | | ------------------ | | 103| 83| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 83|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 83] | | ------------------ | | 104| 83| appendStringInfoString(out, "{}"); \ | | 105| 83| else \ | | 106| 83| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 83|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 83| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 83] | | ------------------ | | 108| 83| appendStringInfoString(out, ","); \ | | 109| 83| } \ | | 110| 83| appendStringInfo(out, "],"); \ | | 111| 83| } ------------------ 2489| 83|} pg_query_outfuncs_json.c:_outDoStmt: 2493| 152|{ 2494| | WRITE_LIST_FIELD(DoStmt, args, args, args); ------------------ | | 98| 152| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 152, False: 0] | | ------------------ | | 99| 152| const ListCell *lc; \ | | 100| 152| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 152| appendStringInfoChar(out, '['); \ | | 102| 2.74k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 152| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 2.90k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 5.80k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 2.74k, False: 152] | | | | | Branch (375:5): [True: 2.90k, False: 0] | | | | ------------------ | | | | 376| 2.90k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 2.74k, False: 152] | | | | ------------------ | | | | 377| 2.90k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 2.90k| (cell = NULL, false); \ | | | | 379| 2.74k| cell##__state.i++) | | ------------------ | | 103| 2.74k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 2.74k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 2.74k] | | ------------------ | | 104| 2.74k| appendStringInfoString(out, "{}"); \ | | 105| 2.74k| else \ | | 106| 2.74k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 2.74k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 2.74k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 2.59k, False: 152] | | ------------------ | | 108| 2.74k| appendStringInfoString(out, ","); \ | | 109| 2.74k| } \ | | 110| 152| appendStringInfo(out, "],"); \ | | 111| 152| } ------------------ 2495| 152|} pg_query_outfuncs_json.c:_outCallStmt: 2508| 5|{ 2509| 5| WRITE_SPECIFIC_NODE_PTR_FIELD(CallStmt, FuncCall, func_call, funccall, funccall, funccall); ------------------ | | 141| 5| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 5, False: 0] | | ------------------ | | 142| 5| check_stack_depth(); \ | | 143| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 5| _out##typename(out, node->fldname); \ | | 145| 5| removeTrailingDelimiter(out); \ | | 146| 5| appendStringInfo(out, "},"); \ | | 147| 5| } ------------------ 2510| 5| WRITE_SPECIFIC_NODE_PTR_FIELD(CallStmt, FuncExpr, func_expr, funcexpr, funcexpr, funcexpr); ------------------ | | 141| 5| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 5] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 2511| | WRITE_LIST_FIELD(CallStmt, outargs, outargs, outargs); ------------------ | | 98| 5| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 5] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2512| 5|} pg_query_outfuncs_json.c:_outRenameStmt: 2522| 303|{ 2523| 303| WRITE_ENUM_FIELD(RenameStmt, ObjectType, rename_type, renameType, renameType); ------------------ | | 68| 303| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 303| _enumToString##enumtype(node->fldname)); ------------------ 2524| 303| WRITE_ENUM_FIELD(RenameStmt, ObjectType, relation_type, relationType, relationType); ------------------ | | 68| 303| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 303| _enumToString##enumtype(node->fldname)); ------------------ 2525| 303| WRITE_SPECIFIC_NODE_PTR_FIELD(RenameStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 303| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 303, False: 0] | | ------------------ | | 142| 303| check_stack_depth(); \ | | 143| 303| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 303| _out##typename(out, node->fldname); \ | | 145| 303| removeTrailingDelimiter(out); \ | | 146| 303| appendStringInfo(out, "},"); \ | | 147| 303| } ------------------ 2526| 303| WRITE_NODE_PTR_FIELD(RenameStmt, object, object, object); ------------------ | | 121| 303| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 303] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 2527| 303| WRITE_STRING_FIELD(RenameStmt, subname, subname, subname); ------------------ | | 91| 303| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 202, False: 101] | | | Branch (91:31): [True: 202, False: 0] | | ------------------ | | 92| 202| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 202| _outToken(out, node->fldname); \ | | 94| 202| appendStringInfo(out, ","); \ | | 95| 202| } ------------------ 2528| 303| WRITE_STRING_FIELD(RenameStmt, newname, newname, newname); ------------------ | | 91| 303| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 303, False: 0] | | | Branch (91:31): [True: 303, False: 0] | | ------------------ | | 92| 303| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 303| _outToken(out, node->fldname); \ | | 94| 303| appendStringInfo(out, ","); \ | | 95| 303| } ------------------ 2529| 303| WRITE_ENUM_FIELD(RenameStmt, DropBehavior, behavior, behavior, behavior); ------------------ | | 68| 303| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 303| _enumToString##enumtype(node->fldname)); ------------------ 2530| 303| WRITE_BOOL_FIELD(RenameStmt, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 303| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 106, False: 197] | | ------------------ | | 78| 106| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 106| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 106|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 106, False: 0] | | | | ------------------ | | ------------------ | | 80| 106| } ------------------ 2531| 303|} pg_query_outfuncs_json.c:_outAlterObjectSchemaStmt: 2545| 1.36k|{ 2546| 1.36k| WRITE_ENUM_FIELD(AlterObjectSchemaStmt, ObjectType, object_type, objectType, objectType); ------------------ | | 68| 1.36k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 1.36k| _enumToString##enumtype(node->fldname)); ------------------ 2547| 1.36k| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterObjectSchemaStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 1.36k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 1.36k, False: 0] | | ------------------ | | 142| 1.36k| check_stack_depth(); \ | | 143| 1.36k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 1.36k| _out##typename(out, node->fldname); \ | | 145| 1.36k| removeTrailingDelimiter(out); \ | | 146| 1.36k| appendStringInfo(out, "},"); \ | | 147| 1.36k| } ------------------ 2548| 1.36k| WRITE_NODE_PTR_FIELD(AlterObjectSchemaStmt, object, object, object); ------------------ | | 121| 1.36k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 0, False: 1.36k] | | ------------------ | | 122| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 0| _outNode(out, node->fldname); \ | | 124| 0| appendStringInfo(out, ","); \ | | 125| 0| } ------------------ 2549| 1.36k| WRITE_STRING_FIELD(AlterObjectSchemaStmt, newschema, newschema, newschema); ------------------ | | 91| 1.36k| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 1.36k, False: 0] | | | Branch (91:31): [True: 1.36k, False: 0] | | ------------------ | | 92| 1.36k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 1.36k| _outToken(out, node->fldname); \ | | 94| 1.36k| appendStringInfo(out, ","); \ | | 95| 1.36k| } ------------------ 2550| 1.36k| WRITE_BOOL_FIELD(AlterObjectSchemaStmt, missing_ok, missing_ok, missing_ok); ------------------ | | 77| 1.36k| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 1.36k] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2551| 1.36k|} pg_query_outfuncs_json.c:_outAlterOwnerStmt: 2555| 132|{ 2556| 132| WRITE_ENUM_FIELD(AlterOwnerStmt, ObjectType, object_type, objectType, objectType); ------------------ | | 68| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 132| _enumToString##enumtype(node->fldname)); ------------------ 2557| 132| WRITE_SPECIFIC_NODE_PTR_FIELD(AlterOwnerStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 132| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 0, False: 132] | | ------------------ | | 142| 0| check_stack_depth(); \ | | 143| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 0| _out##typename(out, node->fldname); \ | | 145| 0| removeTrailingDelimiter(out); \ | | 146| 0| appendStringInfo(out, "},"); \ | | 147| 0| } ------------------ 2558| 132| WRITE_NODE_PTR_FIELD(AlterOwnerStmt, object, object, object); ------------------ | | 121| 132| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 132, False: 0] | | ------------------ | | 122| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 132| _outNode(out, node->fldname); \ | | 124| 132| appendStringInfo(out, ","); \ | | 125| 132| } ------------------ 2559| | WRITE_SPECIFIC_NODE_PTR_FIELD(AlterOwnerStmt, RoleSpec, role_spec, newowner, newowner, newowner); ------------------ | | 141| 132| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 132, False: 0] | | ------------------ | | 142| 132| check_stack_depth(); \ | | 143| 132| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 132| _out##typename(out, node->fldname); \ | | 145| 132| removeTrailingDelimiter(out); \ | | 146| 132| appendStringInfo(out, "},"); \ | | 147| 132| } ------------------ 2560| 132|} pg_query_outfuncs_json.c:_outTransactionStmt: 2610| 42|{ 2611| 42| WRITE_ENUM_FIELD(TransactionStmt, TransactionStmtKind, kind, kind, kind); ------------------ | | 68| 42| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 42| _enumToString##enumtype(node->fldname)); ------------------ 2612| 42| WRITE_LIST_FIELD(TransactionStmt, options, options, options); ------------------ | | 98| 42| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 42] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2613| 42| WRITE_STRING_FIELD(TransactionStmt, savepoint_name, savepoint_name, savepoint_name); ------------------ | | 91| 42| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 42, False: 0] | | | Branch (91:31): [True: 42, False: 0] | | ------------------ | | 92| 42| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 42| _outToken(out, node->fldname); \ | | 94| 42| appendStringInfo(out, ","); \ | | 95| 42| } ------------------ 2614| 42| WRITE_STRING_FIELD(TransactionStmt, gid, gid, gid); ------------------ | | 91| 42| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 42] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2615| 42| WRITE_BOOL_FIELD(TransactionStmt, chain, chain, chain); ------------------ | | 77| 42| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 42] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2616| 42| WRITE_INT_FIELD(TransactionStmt, location, location, location); ------------------ | | 38| 42| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 42, False: 0] | | ------------------ | | 39| 42| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 42| } ------------------ 2617| 42|} pg_query_outfuncs_json.c:_outCompositeTypeStmt: 2621| 903|{ 2622| 903| WRITE_SPECIFIC_NODE_PTR_FIELD(CompositeTypeStmt, RangeVar, range_var, typevar, typevar, typevar); ------------------ | | 141| 903| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 903, False: 0] | | ------------------ | | 142| 903| check_stack_depth(); \ | | 143| 903| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 903| _out##typename(out, node->fldname); \ | | 145| 903| removeTrailingDelimiter(out); \ | | 146| 903| appendStringInfo(out, "},"); \ | | 147| 903| } ------------------ 2623| | WRITE_LIST_FIELD(CompositeTypeStmt, coldeflist, coldeflist, coldeflist); ------------------ | | 98| 903| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 850, False: 53] | | ------------------ | | 99| 850| const ListCell *lc; \ | | 100| 850| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 850| appendStringInfoChar(out, '['); \ | | 102| 850| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 850| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.70k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.40k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 850, False: 850] | | | | | Branch (375:5): [True: 1.70k, False: 0] | | | | ------------------ | | | | 376| 1.70k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 850, False: 850] | | | | ------------------ | | | | 377| 1.70k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.70k| (cell = NULL, false); \ | | | | 379| 850| cell##__state.i++) | | ------------------ | | 103| 850| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 850|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 850] | | ------------------ | | 104| 850| appendStringInfoString(out, "{}"); \ | | 105| 850| else \ | | 106| 850| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 850|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 850| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 850] | | ------------------ | | 108| 850| appendStringInfoString(out, ","); \ | | 109| 850| } \ | | 110| 850| appendStringInfo(out, "],"); \ | | 111| 850| } ------------------ 2624| 903|} pg_query_outfuncs_json.c:_outViewStmt: 2653| 700|{ 2654| 700| WRITE_SPECIFIC_NODE_PTR_FIELD(ViewStmt, RangeVar, range_var, view, view, view); ------------------ | | 141| 700| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 700, False: 0] | | ------------------ | | 142| 700| check_stack_depth(); \ | | 143| 700| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 700| _out##typename(out, node->fldname); \ | | 145| 700| removeTrailingDelimiter(out); \ | | 146| 700| appendStringInfo(out, "},"); \ | | 147| 700| } ------------------ 2655| 700| WRITE_LIST_FIELD(ViewStmt, aliases, aliases, aliases); ------------------ | | 98| 700| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 431, False: 269] | | ------------------ | | 99| 431| const ListCell *lc; \ | | 100| 431| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 431| appendStringInfoChar(out, '['); \ | | 102| 41.1k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 431| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 41.5k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 83.1k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 41.1k, False: 431] | | | | | Branch (375:5): [True: 41.5k, False: 0] | | | | ------------------ | | | | 376| 41.5k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 41.1k, False: 431] | | | | ------------------ | | | | 377| 41.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 41.5k| (cell = NULL, false); \ | | | | 379| 41.1k| cell##__state.i++) | | ------------------ | | 103| 41.1k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 41.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 41.1k] | | ------------------ | | 104| 41.1k| appendStringInfoString(out, "{}"); \ | | 105| 41.1k| else \ | | 106| 41.1k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 41.1k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 41.1k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 40.6k, False: 431] | | ------------------ | | 108| 41.1k| appendStringInfoString(out, ","); \ | | 109| 41.1k| } \ | | 110| 431| appendStringInfo(out, "],"); \ | | 111| 431| } ------------------ 2656| 700| WRITE_NODE_PTR_FIELD(ViewStmt, query, query, query); ------------------ | | 121| 700| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 700, False: 0] | | ------------------ | | 122| 700| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 700| _outNode(out, node->fldname); \ | | 124| 700| appendStringInfo(out, ","); \ | | 125| 700| } ------------------ 2657| 700| WRITE_BOOL_FIELD(ViewStmt, replace, replace, replace); ------------------ | | 77| 700| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 131, False: 569] | | ------------------ | | 78| 131| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 131| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 131|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 131, False: 0] | | | | ------------------ | | ------------------ | | 80| 131| } ------------------ 2658| 700| WRITE_LIST_FIELD(ViewStmt, options, options, options); ------------------ | | 98| 700| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 136, False: 564] | | ------------------ | | 99| 136| const ListCell *lc; \ | | 100| 136| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 136| appendStringInfoChar(out, '['); \ | | 102| 136| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 136| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 272| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 544|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 136, False: 136] | | | | | Branch (375:5): [True: 272, False: 0] | | | | ------------------ | | | | 376| 272| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 136, False: 136] | | | | ------------------ | | | | 377| 272| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 272| (cell = NULL, false); \ | | | | 379| 136| cell##__state.i++) | | ------------------ | | 103| 136| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 136|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 136] | | ------------------ | | 104| 136| appendStringInfoString(out, "{}"); \ | | 105| 136| else \ | | 106| 136| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 136|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 136| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 136] | | ------------------ | | 108| 136| appendStringInfoString(out, ","); \ | | 109| 136| } \ | | 110| 136| appendStringInfo(out, "],"); \ | | 111| 136| } ------------------ 2659| 700| WRITE_ENUM_FIELD(ViewStmt, ViewCheckOption, with_check_option, withCheckOption, withCheckOption); ------------------ | | 68| 700| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 700| _enumToString##enumtype(node->fldname)); ------------------ 2660| 700|} pg_query_outfuncs_json.c:_outLoadStmt: 2664| 5|{ 2665| | WRITE_STRING_FIELD(LoadStmt, filename, filename, filename); ------------------ | | 91| 5| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 5, False: 0] | | | Branch (91:31): [True: 5, False: 0] | | ------------------ | | 92| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 5| _outToken(out, node->fldname); \ | | 94| 5| appendStringInfo(out, ","); \ | | 95| 5| } ------------------ 2666| 5|} pg_query_outfuncs_json.c:_outCreatedbStmt: 2670| 3|{ 2671| 3| WRITE_STRING_FIELD(CreatedbStmt, dbname, dbname, dbname); ------------------ | | 91| 3| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 3, False: 0] | | | Branch (91:31): [True: 3, False: 0] | | ------------------ | | 92| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 3| _outToken(out, node->fldname); \ | | 94| 3| appendStringInfo(out, ","); \ | | 95| 3| } ------------------ 2672| | WRITE_LIST_FIELD(CreatedbStmt, options, options, options); ------------------ | | 98| 3| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 3, False: 0] | | ------------------ | | 99| 3| const ListCell *lc; \ | | 100| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 3| appendStringInfoChar(out, '['); \ | | 102| 5.11k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 3| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 5.12k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 10.2k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 5.11k, False: 3] | | | | | Branch (375:5): [True: 5.12k, False: 0] | | | | ------------------ | | | | 376| 5.12k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 5.11k, False: 3] | | | | ------------------ | | | | 377| 5.12k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 5.12k| (cell = NULL, false); \ | | | | 379| 5.11k| cell##__state.i++) | | ------------------ | | 103| 5.11k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 5.11k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 5.11k] | | ------------------ | | 104| 5.11k| appendStringInfoString(out, "{}"); \ | | 105| 5.11k| else \ | | 106| 5.11k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 5.11k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 5.11k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 5.11k, False: 3] | | ------------------ | | 108| 5.11k| appendStringInfoString(out, ","); \ | | 109| 5.11k| } \ | | 110| 3| appendStringInfo(out, "],"); \ | | 111| 3| } ------------------ 2673| 3|} pg_query_outfuncs_json.c:_outAlterDatabaseStmt: 2677| 586|{ 2678| 586| WRITE_STRING_FIELD(AlterDatabaseStmt, dbname, dbname, dbname); ------------------ | | 91| 586| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 586, False: 0] | | | Branch (91:31): [True: 586, False: 0] | | ------------------ | | 92| 586| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 586| _outToken(out, node->fldname); \ | | 94| 586| appendStringInfo(out, ","); \ | | 95| 586| } ------------------ 2679| | WRITE_LIST_FIELD(AlterDatabaseStmt, options, options, options); ------------------ | | 98| 586| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 271, False: 315] | | ------------------ | | 99| 271| const ListCell *lc; \ | | 100| 271| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 271| appendStringInfoChar(out, '['); \ | | 102| 582| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 271| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 853| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 1.70k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 582, False: 271] | | | | | Branch (375:5): [True: 853, False: 0] | | | | ------------------ | | | | 376| 853| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 582, False: 271] | | | | ------------------ | | | | 377| 853| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 853| (cell = NULL, false); \ | | | | 379| 582| cell##__state.i++) | | ------------------ | | 103| 582| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 582|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 582] | | ------------------ | | 104| 582| appendStringInfoString(out, "{}"); \ | | 105| 582| else \ | | 106| 582| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 582|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 582| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 311, False: 271] | | ------------------ | | 108| 582| appendStringInfoString(out, ","); \ | | 109| 582| } \ | | 110| 271| appendStringInfo(out, "],"); \ | | 111| 271| } ------------------ 2680| 586|} pg_query_outfuncs_json.c:_outVacuumStmt: 2719| 15|{ 2720| 15| WRITE_LIST_FIELD(VacuumStmt, options, options, options); ------------------ | | 98| 15| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 5, False: 10] | | ------------------ | | 99| 5| const ListCell *lc; \ | | 100| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 5| appendStringInfoChar(out, '['); \ | | 102| 116k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 5| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 116k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 232k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 116k, False: 5] | | | | | Branch (375:5): [True: 116k, False: 0] | | | | ------------------ | | | | 376| 116k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 116k, False: 5] | | | | ------------------ | | | | 377| 116k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 116k| (cell = NULL, false); \ | | | | 379| 116k| cell##__state.i++) | | ------------------ | | 103| 116k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 116k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 116k] | | ------------------ | | 104| 116k| appendStringInfoString(out, "{}"); \ | | 105| 116k| else \ | | 106| 116k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 116k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 116k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 116k, False: 5] | | ------------------ | | 108| 116k| appendStringInfoString(out, ","); \ | | 109| 116k| } \ | | 110| 5| appendStringInfo(out, "],"); \ | | 111| 5| } ------------------ 2721| 15| WRITE_LIST_FIELD(VacuumStmt, rels, rels, rels); ------------------ | | 98| 15| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 6, False: 9] | | ------------------ | | 99| 6| const ListCell *lc; \ | | 100| 6| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 6| appendStringInfoChar(out, '['); \ | | 102| 298k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 6| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 298k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 596k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 298k, False: 6] | | | | | Branch (375:5): [True: 298k, False: 0] | | | | ------------------ | | | | 376| 298k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 298k, False: 6] | | | | ------------------ | | | | 377| 298k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 298k| (cell = NULL, false); \ | | | | 379| 298k| cell##__state.i++) | | ------------------ | | 103| 298k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 298k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 298k] | | ------------------ | | 104| 298k| appendStringInfoString(out, "{}"); \ | | 105| 298k| else \ | | 106| 298k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 298k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 298k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 298k, False: 6] | | ------------------ | | 108| 298k| appendStringInfoString(out, ","); \ | | 109| 298k| } \ | | 110| 6| appendStringInfo(out, "],"); \ | | 111| 6| } ------------------ 2722| 15| WRITE_BOOL_FIELD(VacuumStmt, is_vacuumcmd, is_vacuumcmd, is_vacuumcmd); ------------------ | | 77| 15| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 15, False: 0] | | ------------------ | | 78| 15| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 15| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 15|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 15, False: 0] | | | | ------------------ | | ------------------ | | 80| 15| } ------------------ 2723| 15|} pg_query_outfuncs_json.c:_outVacuumRelation: 2727| 298k|{ 2728| 298k| WRITE_SPECIFIC_NODE_PTR_FIELD(VacuumRelation, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 298k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 298k, False: 0] | | ------------------ | | 142| 298k| check_stack_depth(); \ | | 143| 298k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 298k| _out##typename(out, node->fldname); \ | | 145| 298k| removeTrailingDelimiter(out); \ | | 146| 298k| appendStringInfo(out, "},"); \ | | 147| 298k| } ------------------ 2729| 298k| WRITE_UINT_FIELD(VacuumRelation, oid, oid, oid); ------------------ | | 44| 298k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (44:6): [True: 0, False: 298k] | | ------------------ | | 45| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%u,", node->fldname); \ | | 46| 0| } ------------------ 2730| | WRITE_LIST_FIELD(VacuumRelation, va_cols, va_cols, va_cols); ------------------ | | 98| 298k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 10, False: 298k] | | ------------------ | | 99| 10| const ListCell *lc; \ | | 100| 10| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 10| appendStringInfoChar(out, '['); \ | | 102| 10| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 10| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 20| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 40|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 10, False: 10] | | | | | Branch (375:5): [True: 20, False: 0] | | | | ------------------ | | | | 376| 20| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 10, False: 10] | | | | ------------------ | | | | 377| 20| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 20| (cell = NULL, false); \ | | | | 379| 10| cell##__state.i++) | | ------------------ | | 103| 10| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 10|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 10] | | ------------------ | | 104| 10| appendStringInfoString(out, "{}"); \ | | 105| 10| else \ | | 106| 10| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 10|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 10| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 10] | | ------------------ | | 108| 10| appendStringInfoString(out, ","); \ | | 109| 10| } \ | | 110| 10| appendStringInfo(out, "],"); \ | | 111| 10| } ------------------ 2731| 298k|} pg_query_outfuncs_json.c:_outExplainStmt: 2735| 3|{ 2736| 3| WRITE_NODE_PTR_FIELD(ExplainStmt, query, query, query); ------------------ | | 121| 3| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 3, False: 0] | | ------------------ | | 122| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 3| _outNode(out, node->fldname); \ | | 124| 3| appendStringInfo(out, ","); \ | | 125| 3| } ------------------ 2737| | WRITE_LIST_FIELD(ExplainStmt, options, options, options); ------------------ | | 98| 3| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 3, False: 0] | | ------------------ | | 99| 3| const ListCell *lc; \ | | 100| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 3| appendStringInfoChar(out, '['); \ | | 102| 18.4k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 3| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 18.4k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 36.8k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 18.4k, False: 3] | | | | | Branch (375:5): [True: 18.4k, False: 0] | | | | ------------------ | | | | 376| 18.4k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 18.4k, False: 3] | | | | ------------------ | | | | 377| 18.4k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 18.4k| (cell = NULL, false); \ | | | | 379| 18.4k| cell##__state.i++) | | ------------------ | | 103| 18.4k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 18.4k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 18.4k] | | ------------------ | | 104| 18.4k| appendStringInfoString(out, "{}"); \ | | 105| 18.4k| else \ | | 106| 18.4k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 18.4k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 18.4k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 18.4k, False: 3] | | ------------------ | | 108| 18.4k| appendStringInfoString(out, ","); \ | | 109| 18.4k| } \ | | 110| 3| appendStringInfo(out, "],"); \ | | 111| 3| } ------------------ 2738| 3|} pg_query_outfuncs_json.c:_outCreateTableAsStmt: 2742| 445|{ 2743| 445| WRITE_NODE_PTR_FIELD(CreateTableAsStmt, query, query, query); ------------------ | | 121| 445| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 445, False: 0] | | ------------------ | | 122| 445| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 445| _outNode(out, node->fldname); \ | | 124| 445| appendStringInfo(out, ","); \ | | 125| 445| } ------------------ 2744| 445| WRITE_SPECIFIC_NODE_PTR_FIELD(CreateTableAsStmt, IntoClause, into_clause, into, into, into); ------------------ | | 141| 445| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 445, False: 0] | | ------------------ | | 142| 445| check_stack_depth(); \ | | 143| 445| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 445| _out##typename(out, node->fldname); \ | | 145| 445| removeTrailingDelimiter(out); \ | | 146| 445| appendStringInfo(out, "},"); \ | | 147| 445| } ------------------ 2745| 445| WRITE_ENUM_FIELD(CreateTableAsStmt, ObjectType, objtype, objtype, objtype); ------------------ | | 68| 445| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 445| _enumToString##enumtype(node->fldname)); ------------------ 2746| 445| WRITE_BOOL_FIELD(CreateTableAsStmt, is_select_into, is_select_into, is_select_into); ------------------ | | 77| 445| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 445] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2747| 445| WRITE_BOOL_FIELD(CreateTableAsStmt, if_not_exists, if_not_exists, if_not_exists); ------------------ | | 77| 445| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 445] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2748| 445|} pg_query_outfuncs_json.c:_outLockStmt: 2771| 5|{ 2772| 5| WRITE_LIST_FIELD(LockStmt, relations, relations, relations); ------------------ | | 98| 5| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 5, False: 0] | | ------------------ | | 99| 5| const ListCell *lc; \ | | 100| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 5| appendStringInfoChar(out, '['); \ | | 102| 234k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 5| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 235k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 470k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 234k, False: 5] | | | | | Branch (375:5): [True: 235k, False: 0] | | | | ------------------ | | | | 376| 235k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 234k, False: 5] | | | | ------------------ | | | | 377| 235k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 235k| (cell = NULL, false); \ | | | | 379| 234k| cell##__state.i++) | | ------------------ | | 103| 234k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 234k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 234k] | | ------------------ | | 104| 234k| appendStringInfoString(out, "{}"); \ | | 105| 234k| else \ | | 106| 234k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 234k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 234k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 234k, False: 5] | | ------------------ | | 108| 234k| appendStringInfoString(out, ","); \ | | 109| 234k| } \ | | 110| 5| appendStringInfo(out, "],"); \ | | 111| 5| } ------------------ 2773| 5| WRITE_INT_FIELD(LockStmt, mode, mode, mode); ------------------ | | 38| 5| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 5, False: 0] | | ------------------ | | 39| 5| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 5| } ------------------ 2774| 5| WRITE_BOOL_FIELD(LockStmt, nowait, nowait, nowait); ------------------ | | 77| 5| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 5] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2775| 5|} pg_query_outfuncs_json.c:_outReindexStmt: 2786| 3|{ 2787| 3| WRITE_ENUM_FIELD(ReindexStmt, ReindexObjectType, kind, kind, kind); ------------------ | | 68| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 3| _enumToString##enumtype(node->fldname)); ------------------ 2788| 3| WRITE_SPECIFIC_NODE_PTR_FIELD(ReindexStmt, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 3| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 3, False: 0] | | ------------------ | | 142| 3| check_stack_depth(); \ | | 143| 3| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 3| _out##typename(out, node->fldname); \ | | 145| 3| removeTrailingDelimiter(out); \ | | 146| 3| appendStringInfo(out, "},"); \ | | 147| 3| } ------------------ 2789| 3| WRITE_STRING_FIELD(ReindexStmt, name, name, name); ------------------ | | 91| 3| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 3] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2790| | WRITE_LIST_FIELD(ReindexStmt, params, params, params); ------------------ | | 98| 3| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 3] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2791| 3|} pg_query_outfuncs_json.c:_outPublicationTable: 2881| 2.18M|{ 2882| 2.18M| WRITE_SPECIFIC_NODE_PTR_FIELD(PublicationTable, RangeVar, range_var, relation, relation, relation); ------------------ | | 141| 2.18M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 2.18M, False: 0] | | ------------------ | | 142| 2.18M| check_stack_depth(); \ | | 143| 2.18M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 2.18M| _out##typename(out, node->fldname); \ | | 145| 2.18M| removeTrailingDelimiter(out); \ | | 146| 2.18M| appendStringInfo(out, "},"); \ | | 147| 2.18M| } ------------------ 2883| 2.18M| WRITE_NODE_PTR_FIELD(PublicationTable, where_clause, whereClause, whereClause); ------------------ | | 121| 2.18M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 256, False: 2.18M] | | ------------------ | | 122| 256| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 256| _outNode(out, node->fldname); \ | | 124| 256| appendStringInfo(out, ","); \ | | 125| 256| } ------------------ 2884| | WRITE_LIST_FIELD(PublicationTable, columns, columns, columns); ------------------ | | 98| 2.18M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 510, False: 2.18M] | | ------------------ | | 99| 510| const ListCell *lc; \ | | 100| 510| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 510| appendStringInfoChar(out, '['); \ | | 102| 510| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 510| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.02k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 2.04k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 510, False: 510] | | | | | Branch (375:5): [True: 1.02k, False: 0] | | | | ------------------ | | | | 376| 1.02k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 510, False: 510] | | | | ------------------ | | | | 377| 1.02k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.02k| (cell = NULL, false); \ | | | | 379| 510| cell##__state.i++) | | ------------------ | | 103| 510| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 510|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 510] | | ------------------ | | 104| 510| appendStringInfoString(out, "{}"); \ | | 105| 510| else \ | | 106| 510| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 510|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 510| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 510] | | ------------------ | | 108| 510| appendStringInfoString(out, ","); \ | | 109| 510| } \ | | 110| 510| appendStringInfo(out, "],"); \ | | 111| 510| } ------------------ 2885| 2.18M|} pg_query_outfuncs_json.c:_outPublicationObjSpec: 2889| 2.18M|{ 2890| 2.18M| WRITE_ENUM_FIELD(PublicationObjSpec, PublicationObjSpecType, pubobjtype, pubobjtype, pubobjtype); ------------------ | | 68| 2.18M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 2.18M| _enumToString##enumtype(node->fldname)); ------------------ 2891| 2.18M| WRITE_STRING_FIELD(PublicationObjSpec, name, name, name); ------------------ | | 91| 2.18M| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 0, False: 2.18M] | | | Branch (91:31): [True: 0, False: 0] | | ------------------ | | 92| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 0| _outToken(out, node->fldname); \ | | 94| 0| appendStringInfo(out, ","); \ | | 95| 0| } ------------------ 2892| 2.18M| WRITE_SPECIFIC_NODE_PTR_FIELD(PublicationObjSpec, PublicationTable, publication_table, pubtable, pubtable, pubtable); ------------------ | | 141| 2.18M| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (141:6): [True: 2.18M, False: 0] | | ------------------ | | 142| 2.18M| check_stack_depth(); \ | | 143| 2.18M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":{"); \ | | 144| 2.18M| _out##typename(out, node->fldname); \ | | 145| 2.18M| removeTrailingDelimiter(out); \ | | 146| 2.18M| appendStringInfo(out, "},"); \ | | 147| 2.18M| } ------------------ 2893| 2.18M| WRITE_INT_FIELD(PublicationObjSpec, location, location, location); ------------------ | | 38| 2.18M| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 2.18M, False: 1.37k] | | ------------------ | | 39| 2.18M| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 2.18M| } ------------------ 2894| 2.18M|} pg_query_outfuncs_json.c:_outCreatePublicationStmt: 2898| 151|{ 2899| 151| WRITE_STRING_FIELD(CreatePublicationStmt, pubname, pubname, pubname); ------------------ | | 91| 151| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 151, False: 0] | | | Branch (91:31): [True: 151, False: 0] | | ------------------ | | 92| 151| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 151| _outToken(out, node->fldname); \ | | 94| 151| appendStringInfo(out, ","); \ | | 95| 151| } ------------------ 2900| 151| WRITE_LIST_FIELD(CreatePublicationStmt, options, options, options); ------------------ | | 98| 151| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 151] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2901| 151| WRITE_LIST_FIELD(CreatePublicationStmt, pubobjects, pubobjects, pubobjects); ------------------ | | 98| 151| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 151, False: 0] | | ------------------ | | 99| 151| const ListCell *lc; \ | | 100| 151| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 151| appendStringInfoChar(out, '['); \ | | 102| 1.83M| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 151| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 1.83M| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 3.66M|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 1.83M, False: 151] | | | | | Branch (375:5): [True: 1.83M, False: 0] | | | | ------------------ | | | | 376| 1.83M| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 1.83M, False: 151] | | | | ------------------ | | | | 377| 1.83M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 1.83M| (cell = NULL, false); \ | | | | 379| 1.83M| cell##__state.i++) | | ------------------ | | 103| 1.83M| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 1.83M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 1.83M] | | ------------------ | | 104| 1.83M| appendStringInfoString(out, "{}"); \ | | 105| 1.83M| else \ | | 106| 1.83M| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 1.83M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 1.83M| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 1.83M, False: 151] | | ------------------ | | 108| 1.83M| appendStringInfoString(out, ","); \ | | 109| 1.83M| } \ | | 110| 151| appendStringInfo(out, "],"); \ | | 111| 151| } ------------------ 2902| 151| WRITE_BOOL_FIELD(CreatePublicationStmt, for_all_tables, for_all_tables, for_all_tables); ------------------ | | 77| 151| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 151] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2903| 151|} pg_query_outfuncs_json.c:_outAlterPublicationStmt: 2907| 258|{ 2908| 258| WRITE_STRING_FIELD(AlterPublicationStmt, pubname, pubname, pubname); ------------------ | | 91| 258| if (node->fldname != NULL && node->fldname[0] != '\0') { \ | | ------------------ | | | Branch (91:6): [True: 258, False: 0] | | | Branch (91:31): [True: 258, False: 0] | | ------------------ | | 92| 258| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 93| 258| _outToken(out, node->fldname); \ | | 94| 258| appendStringInfo(out, ","); \ | | 95| 258| } ------------------ 2909| 258| WRITE_LIST_FIELD(AlterPublicationStmt, options, options, options); ------------------ | | 98| 258| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 0, False: 258] | | ------------------ | | 99| 0| const ListCell *lc; \ | | 100| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 0| appendStringInfoChar(out, '['); \ | | 102| 0| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 0| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 0|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 0, False: 0] | | | | | Branch (375:5): [True: 0, False: 0] | | | | ------------------ | | | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 0, False: 0] | | | | ------------------ | | | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 0| (cell = NULL, false); \ | | | | 379| 0| cell##__state.i++) | | ------------------ | | 103| 0| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 0] | | ------------------ | | 104| 0| appendStringInfoString(out, "{}"); \ | | 105| 0| else \ | | 106| 0| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 0| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 0, False: 0] | | ------------------ | | 108| 0| appendStringInfoString(out, ","); \ | | 109| 0| } \ | | 110| 0| appendStringInfo(out, "],"); \ | | 111| 0| } ------------------ 2910| 258| WRITE_LIST_FIELD(AlterPublicationStmt, pubobjects, pubobjects, pubobjects); ------------------ | | 98| 258| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (98:6): [True: 258, False: 0] | | ------------------ | | 99| 258| const ListCell *lc; \ | | 100| 258| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 101| 258| appendStringInfoChar(out, '['); \ | | 102| 348k| foreach(lc, node->fldname) { \ | | ------------------ | | | | 374| 258| for (ForEachState cell##__state = {(lst), 0}; \ | | | | 375| 348k| (cell##__state.l != NIL && \ | | | | ------------------ | | | | | | 68| 697k|#define NIL ((List *) NULL) | | | | ------------------ | | | | | Branch (375:4): [True: 348k, False: 258] | | | | | Branch (375:5): [True: 348k, False: 0] | | | | ------------------ | | | | 376| 348k| cell##__state.i < cell##__state.l->length) ? \ | | | | ------------------ | | | | | Branch (376:5): [True: 348k, False: 258] | | | | ------------------ | | | | 377| 348k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | | | 378| 348k| (cell = NULL, false); \ | | | | 379| 348k| cell##__state.i++) | | ------------------ | | 103| 348k| if (lfirst(lc) == NULL) \ | | ------------------ | | | | 172| 348k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | | Branch (103:8): [True: 0, False: 348k] | | ------------------ | | 104| 348k| appendStringInfoString(out, "{}"); \ | | 105| 348k| else \ | | 106| 348k| _outNode(out, lfirst(lc)); \ | | ------------------ | | | | 172| 348k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ | | 107| 348k| if (lnext(node->fldname, lc)) \ | | ------------------ | | | Branch (107:8): [True: 348k, False: 258] | | ------------------ | | 108| 348k| appendStringInfoString(out, ","); \ | | 109| 348k| } \ | | 110| 258| appendStringInfo(out, "],"); \ | | 111| 258| } ------------------ 2911| 258| WRITE_BOOL_FIELD(AlterPublicationStmt, for_all_tables, for_all_tables, for_all_tables); ------------------ | | 77| 258| if (node->fldname) { \ | | ------------------ | | | Branch (77:6): [True: 0, False: 258] | | ------------------ | | 78| 0| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%s,", \ | | 79| 0| booltostr(node->fldname)); \ | | ------------------ | | | | 3| 0|#define booltostr(x) ((x) ? "true" : "false") | | | | ------------------ | | | | | Branch (3:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ | | 80| 0| } ------------------ 2912| 258| WRITE_ENUM_FIELD(AlterPublicationStmt, AlterPublicationAction, action, action, action); ------------------ | | 68| 258| appendStringInfo(out, "\"" CppAsString(outname_json) "\":\"%s\",", \ | | 69| 258| _enumToString##enumtype(node->fldname)); ------------------ 2913| 258|} pg_query_outfuncs_json.c:_outRawStmt: 1714| 30.0k|{ 1715| 30.0k| WRITE_NODE_PTR_FIELD(RawStmt, stmt, stmt, stmt); ------------------ | | 121| 30.0k| if (node->fldname != NULL) { \ | | ------------------ | | | Branch (121:6): [True: 30.0k, False: 0] | | ------------------ | | 122| 30.0k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":"); \ | | 123| 30.0k| _outNode(out, node->fldname); \ | | 124| 30.0k| appendStringInfo(out, ","); \ | | 125| 30.0k| } ------------------ 1716| 30.0k| WRITE_INT_FIELD(RawStmt, stmt_location, stmt_location, stmt_location); ------------------ | | 38| 30.0k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 29.5k, False: 499] | | ------------------ | | 39| 29.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 29.5k| } ------------------ 1717| 30.0k| WRITE_INT_FIELD(RawStmt, stmt_len, stmt_len, stmt_len); ------------------ | | 38| 30.0k| if (node->fldname != 0) { \ | | ------------------ | | | Branch (38:6): [True: 29.5k, False: 479] | | ------------------ | | 39| 29.5k| appendStringInfo(out, "\"" CppAsString(outname_json) "\":%d,", node->fldname); \ | | 40| 29.5k| } ------------------ 1718| 30.0k|} pg_query_init: 47| 1.07k|{ 48| 1.07k| if (pg_query_initialized != 0) return; ------------------ | Branch (48:6): [True: 1.07k, False: 1] ------------------ 49| 1| pg_query_initialized = 1; 50| | 51| 1| MemoryContextInit(); 52| 1| SetDatabaseEncoding(PG_UTF8); 53| | 54| 1|#ifdef HAVE_PTHREAD 55| 1| pthread_key_create(&pg_query_thread_exit_key, pg_query_thread_exit); 56| 1| pthread_setspecific(pg_query_thread_exit_key, TopMemoryContext); 57| 1|#endif 58| 1|} pg_query_enter_memory_context: 102| 1.07k|{ 103| 1.07k| MemoryContext ctx = NULL; 104| | 105| 1.07k| pg_query_init(); 106| 1.07k| pg_query_enter_stack_depth_check(); 107| | 108| 1.07k| Assert(CurrentMemoryContext == TopMemoryContext); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 109| 1.07k| ctx = AllocSetContextCreate(TopMemoryContext, ------------------ | | 126| 1.07k| (StaticAssertExpr(__builtin_constant_p(name), \ | | ------------------ | | | | 927| 1.07k| StaticAssertStmt(condition, errmessage) | | | | ------------------ | | | | | | 925| 1.07k| ((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; })) | | | | ------------------ | | ------------------ | | 127| 1.07k| "memory context names must be constant strings"), \ | | 128| 1.07k| AllocSetContextCreateInternal(parent, name, __VA_ARGS__)) ------------------ 110| 1.07k| "pg_query", 111| 1.07k| ALLOCSET_DEFAULT_SIZES); 112| 1.07k| MemoryContextSwitchTo(ctx); 113| | 114| 1.07k| return ctx; 115| 1.07k|} pg_query_exit_memory_context: 118| 1.07k|{ 119| | // Return to previous PostgreSQL memory context 120| 1.07k| MemoryContextSwitchTo(TopMemoryContext); 121| | 122| 1.07k| MemoryContextDelete(ctx); 123| 1.07k| ctx = NULL; 124| | 125| 1.07k| pg_query_exit_stack_depth_check(); 126| 1.07k|} pg_query_free_error: 129| 584|{ 130| 584| free(error->message); 131| 584| free(error->funcname); 132| 584| free(error->filename); 133| | 134| 584| if (error->context) { ------------------ | Branch (134:6): [True: 0, False: 584] ------------------ 135| 0| free(error->context); 136| 0| } 137| | 138| 584| free(error); 139| 584|} pg_query.c:pg_query_enter_stack_depth_check: 263| 1.07k|{ 264| | /* Set the reference point, similar to how Postgres does in its main() */ 265| 1.07k| set_stack_base(); 266| | 267| | /* Must follow set_stack_base() so both measure from the same point */ 268| 1.07k| set_max_stack_depth(); 269| 1.07k|} pg_query.c:set_max_stack_depth: 218| 1.07k|{ 219| 1.07k| char stack_here; 220| 1.07k| char* lowest_stackaddr = get_lowest_stackaddr(); 221| 1.07k| ssize_t usable_stack_depth; 222| 1.07k| ssize_t new_limit; 223| | 224| 1.07k| if (lowest_stackaddr == NULL) ------------------ | Branch (224:6): [True: 0, False: 1.07k] ------------------ 225| 0| return; 226| | 227| 1.07k| usable_stack_depth = (ssize_t) (&stack_here - lowest_stackaddr); 228| 1.07k| if (usable_stack_depth < 0) ------------------ | Branch (228:6): [True: 0, False: 1.07k] ------------------ 229| 0| return; 230| | 231| | /* 232| | * Determine new limit keeping a similar padding to Postgres via 233| | * STACK_DEPTH_SLOP (512 kB) to account for error handling and places 234| | * where we don't check stack depth frequently. 235| | */ 236| 1.07k| new_limit = (usable_stack_depth - STACK_DEPTH_SLOP) / 1024; ------------------ | | 297| 1.07k|#define STACK_DEPTH_SLOP (512 * 1024) ------------------ 237| | 238| | /* 239| | * In case the new limit would put us below 100 kB, ignore it, since that 240| | * is our required minimum and the default of the setting. 241| | */ 242| 1.07k| if (new_limit <= 100) ------------------ | Branch (242:6): [True: 0, False: 1.07k] ------------------ 243| 0| return; 244| | 245| | /* Clamp at 2MB, like Postgres auto-detection logic. */ 246| 1.07k| if (new_limit > 2048) ------------------ | Branch (246:6): [True: 1.07k, False: 0] ------------------ 247| 1.07k| new_limit = 2048; 248| | 249| 1.07k| max_stack_depth = (int) new_limit; 250| | assign_max_stack_depth((int) new_limit, NULL); 251| 1.07k|} pg_query.c:get_lowest_stackaddr: 146| 1.07k|{ 147| 1.07k| if (pg_query_lowest_stackaddr) ------------------ | Branch (147:6): [True: 1.07k, False: 1] ------------------ 148| 1.07k| return pg_query_lowest_stackaddr; 149| | 150| |#if defined(_WIN32) 151| | { 152| | ULONG_PTR low, high; 153| | 154| | GetCurrentThreadStackLimits(&low, &high); 155| | 156| | if (low == 0) 157| | return NULL; 158| | 159| | pg_query_lowest_stackaddr = (char *) low; 160| | } 161| |#elif defined(HAVE_PTHREAD) && defined(__linux__) 162| 1| { 163| 1| pthread_attr_t attr; 164| 1| void *stack_addr = NULL; 165| 1| size_t stack_size = 0; 166| | 167| 1| if (pthread_getattr_np(pthread_self(), &attr) != 0) ------------------ | Branch (167:7): [True: 0, False: 1] ------------------ 168| 0| return NULL; 169| | 170| 1| if (pthread_attr_getstack(&attr, &stack_addr, &stack_size) == 0 && stack_addr != NULL) ------------------ | Branch (170:7): [True: 1, False: 0] | Branch (170:70): [True: 1, False: 0] ------------------ 171| 1| pg_query_lowest_stackaddr = (char *) stack_addr; 172| | 173| 1| pthread_attr_destroy(&attr); 174| 1| } 175| |#elif defined(HAVE_PTHREAD) && defined(__APPLE__) 176| | { 177| | char *stack_high = (char *) pthread_get_stackaddr_np(pthread_self()); 178| | size_t stack_size = pthread_get_stacksize_np(pthread_self()); 179| | 180| | if (stack_size == 0) 181| | return NULL; 182| | 183| | pg_query_lowest_stackaddr = stack_high - stack_size; 184| | } 185| |#elif defined(HAVE_PTHREAD) && (defined(__FreeBSD__) || defined(__NetBSD__)) 186| | { 187| | pthread_attr_t attr; 188| | void *stack_addr = NULL; 189| | size_t stack_size = 0; 190| | 191| | if (pthread_attr_init(&attr) != 0) 192| | return NULL; 193| | 194| | if (pthread_attr_get_np(pthread_self(), &attr) == 0 && 195| | pthread_attr_getstack(&attr, &stack_addr, &stack_size) == 0 && 196| | stack_addr != NULL) 197| | { 198| | pg_query_lowest_stackaddr = (char *) stack_addr; 199| | } 200| | 201| | pthread_attr_destroy(&attr); 202| | } 203| |#endif 204| | 205| 0| return pg_query_lowest_stackaddr; 206| 1|} pg_query.c:pg_query_exit_stack_depth_check: 277| 1.07k|{ 278| | restore_stack_base(NULL); 279| 1.07k|} pg_query_nodes_to_json: 345| 504|{ 346| 504| StringInfoData out; 347| 504| const ListCell *lc; 348| | 349| 504| initStringInfo(&out); 350| | 351| 504| if (obj == NULL) /* Make sure we generate valid JSON for empty queries */ ------------------ | Branch (351:6): [True: 0, False: 504] ------------------ 352| 0| { 353| 0| appendStringInfo(&out, "{\"version\":%d,\"stmts\":[]}", PG_VERSION_NUM); ------------------ | | 625| 0|#define PG_VERSION_NUM 180006 ------------------ 354| 0| } 355| 504| else 356| 504| { 357| 504| appendStringInfoString(&out, "{"); 358| 504| appendStringInfo(&out, "\"version\":%d,", PG_VERSION_NUM); ------------------ | | 625| 504|#define PG_VERSION_NUM 180006 ------------------ 359| 504| appendStringInfoString(&out, "\"stmts\":"); 360| 504| appendStringInfoChar(&out, '['); 361| | 362| 504| foreach(lc, obj) ------------------ | | 374| 504| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 30.5k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 61.0k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 30.0k, False: 504] | | | Branch (375:5): [True: 30.5k, False: 10] | | ------------------ | | 376| 30.5k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 30.0k, False: 494] | | ------------------ | | 377| 30.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 30.5k| (cell = NULL, false); \ | | 379| 30.0k| cell##__state.i++) ------------------ 363| 30.0k| { 364| 30.0k| appendStringInfoChar(&out, '{'); 365| 30.0k| _outRawStmt(&out, lfirst(lc)); ------------------ | | 172| 30.0k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 366| 30.0k| removeTrailingDelimiter(&out); 367| 30.0k| appendStringInfoChar(&out, '}'); 368| | 369| 30.0k| if (lnext(obj, lc)) ------------------ | Branch (369:8): [True: 29.5k, False: 504] ------------------ 370| 29.5k| appendStringInfoString(&out, ","); 371| 30.0k| } 372| | 373| 504| appendStringInfoChar(&out, ']'); 374| 504| appendStringInfoString(&out, "}"); 375| 504| } 376| | 377| 504| return out.data; 378| 504|} pg_query_outfuncs_json.c:_outNode: 306| 60.3M|{ 307| 60.3M| check_stack_depth(); 308| | 309| 60.3M| if (obj == NULL) ------------------ | Branch (309:6): [True: 0, False: 60.3M] ------------------ 310| 0| { 311| 0| appendStringInfoString(out, "null"); 312| 0| } 313| 60.3M| else 314| 60.3M| { 315| 60.3M| appendStringInfoChar(out, '{'); 316| 60.3M| switch (nodeTag(obj)) ------------------ | | 139| 60.3M|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) ------------------ 317| 60.3M| { 318| 0| #include "pg_query_outfuncs_conds.c" ------------------ | | 1| |// This file is autogenerated by ./scripts/generate_protobuf_and_funcs.rb | | 2| | | | 3| 3.10k|case T_Integer: | | ------------------ | | | Branch (3:1): [True: 3.10k, False: 60.3M] | | ------------------ | | 4| 3.10k| OUT_NODE(Integer, Integer, integer, INTEGER, Integer, integer); | | ------------------ | | | | 19| 3.10k| { \ | | | | 20| 3.10k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3.10k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3.10k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3.10k| } | | ------------------ | | 5| 3.10k| break; | | 6| 1.93k|case T_Boolean: | | ------------------ | | | Branch (6:1): [True: 1.93k, False: 60.3M] | | ------------------ | | 7| 1.93k| OUT_NODE(Boolean, Boolean, boolean, BOOLEAN, Boolean, boolean); | | ------------------ | | | | 19| 1.93k| { \ | | | | 20| 1.93k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.93k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.93k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.93k| } | | ------------------ | | 8| 1.93k| break; | | 9| 5.15k|case T_Float: | | ------------------ | | | Branch (9:1): [True: 5.15k, False: 60.3M] | | ------------------ | | 10| 5.15k| OUT_NODE(Float, Float, float, FLOAT, Float, float_); | | ------------------ | | | | 19| 5.15k| { \ | | | | 20| 5.15k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 5.15k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 5.15k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 5.15k| } | | ------------------ | | 11| 5.15k| break; | | 12| 26.4M|case T_String: | | ------------------ | | | Branch (12:1): [True: 26.4M, False: 33.8M] | | ------------------ | | 13| 26.4M| OUT_NODE(String, String, string, STRING, String, string); | | ------------------ | | | | 19| 26.4M| { \ | | | | 20| 26.4M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 26.4M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 26.4M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 26.4M| } | | ------------------ | | 14| 26.4M| break; | | 15| 0|case T_BitString: | | ------------------ | | | Branch (15:1): [True: 0, False: 60.3M] | | ------------------ | | 16| 0| OUT_NODE(BitString, BitString, bit_string, BIT_STRING, BitString, bit_string); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 17| 0| break; | | 18| 136k|case T_List: | | ------------------ | | | Branch (18:1): [True: 136k, False: 60.2M] | | ------------------ | | 19| 136k| OUT_NODE(List, List, list, LIST, List, list); | | ------------------ | | | | 19| 136k| { \ | | | | 20| 136k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 136k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 136k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 136k| } | | ------------------ | | 20| 136k| break; | | 21| 0|case T_IntList: | | ------------------ | | | Branch (21:1): [True: 0, False: 60.3M] | | ------------------ | | 22| 0| OUT_NODE(IntList, IntList, int_list, INT_LIST, List, int_list); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 23| 0| break; | | 24| 0|case T_OidList: | | ------------------ | | | Branch (24:1): [True: 0, False: 60.3M] | | ------------------ | | 25| 0| OUT_NODE(OidList, OidList, oid_list, OID_LIST, List, oid_list); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 26| 0| break; | | 27| 1.42M|case T_A_Const: | | ------------------ | | | Branch (27:1): [True: 1.42M, False: 58.9M] | | ------------------ | | 28| 1.42M| OUT_NODE(A_Const, AConst, a__const, A_CONST, A_Const, a_const); | | ------------------ | | | | 19| 1.42M| { \ | | | | 20| 1.42M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.42M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.42M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.42M| } | | ------------------ | | 29| 1.42M| break; | | 30| 0|case T_Alias: | | ------------------ | | | Branch (30:1): [True: 0, False: 60.3M] | | ------------------ | | 31| 0| OUT_NODE(Alias, Alias, alias, ALIAS, Alias, alias); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 32| 0| break; | | 33| 440k|case T_RangeVar: | | ------------------ | | | Branch (33:1): [True: 440k, False: 59.9M] | | ------------------ | | 34| 440k| OUT_NODE(RangeVar, RangeVar, range_var, RANGE_VAR, RangeVar, range_var); | | ------------------ | | | | 19| 440k| { \ | | | | 20| 440k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 440k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 440k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 440k| } | | ------------------ | | 35| 440k| break; | | 36| 0|case T_TableFunc: | | ------------------ | | | Branch (36:1): [True: 0, False: 60.3M] | | ------------------ | | 37| 0| OUT_NODE(TableFunc, TableFunc, table_func, TABLE_FUNC, TableFunc, table_func); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 38| 0| break; | | 39| 0|case T_IntoClause: | | ------------------ | | | Branch (39:1): [True: 0, False: 60.3M] | | ------------------ | | 40| 0| OUT_NODE(IntoClause, IntoClause, into_clause, INTO_CLAUSE, IntoClause, into_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 41| 0| break; | | 42| 0|case T_Var: | | ------------------ | | | Branch (42:1): [True: 0, False: 60.3M] | | ------------------ | | 43| 0| OUT_NODE(Var, Var, var, VAR, Var, var); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 44| 0| break; | | 45| 0|case T_Param: | | ------------------ | | | Branch (45:1): [True: 0, False: 60.3M] | | ------------------ | | 46| 0| OUT_NODE(Param, Param, param, PARAM, Param, param); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 47| 0| break; | | 48| 0|case T_Aggref: | | ------------------ | | | Branch (48:1): [True: 0, False: 60.3M] | | ------------------ | | 49| 0| OUT_NODE(Aggref, Aggref, aggref, AGGREF, Aggref, aggref); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 50| 0| break; | | 51| 2.14k|case T_GroupingFunc: | | ------------------ | | | Branch (51:1): [True: 2.14k, False: 60.3M] | | ------------------ | | 52| 2.14k| OUT_NODE(GroupingFunc, GroupingFunc, grouping_func, GROUPING_FUNC, GroupingFunc, grouping_func); | | ------------------ | | | | 19| 2.14k| { \ | | | | 20| 2.14k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.14k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.14k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.14k| } | | ------------------ | | 53| 2.14k| break; | | 54| 0|case T_WindowFunc: | | ------------------ | | | Branch (54:1): [True: 0, False: 60.3M] | | ------------------ | | 55| 0| OUT_NODE(WindowFunc, WindowFunc, window_func, WINDOW_FUNC, WindowFunc, window_func); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 56| 0| break; | | 57| 0|case T_WindowFuncRunCondition: | | ------------------ | | | Branch (57:1): [True: 0, False: 60.3M] | | ------------------ | | 58| 0| OUT_NODE(WindowFuncRunCondition, WindowFuncRunCondition, window_func_run_condition, WINDOW_FUNC_RUN_CONDITION, WindowFuncRunCondition, window_func_run_condition); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 59| 0| break; | | 60| 0|case T_MergeSupportFunc: | | ------------------ | | | Branch (60:1): [True: 0, False: 60.3M] | | ------------------ | | 61| 0| OUT_NODE(MergeSupportFunc, MergeSupportFunc, merge_support_func, MERGE_SUPPORT_FUNC, MergeSupportFunc, merge_support_func); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 62| 0| break; | | 63| 0|case T_SubscriptingRef: | | ------------------ | | | Branch (63:1): [True: 0, False: 60.3M] | | ------------------ | | 64| 0| OUT_NODE(SubscriptingRef, SubscriptingRef, subscripting_ref, SUBSCRIPTING_REF, SubscriptingRef, subscripting_ref); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 65| 0| break; | | 66| 0|case T_FuncExpr: | | ------------------ | | | Branch (66:1): [True: 0, False: 60.3M] | | ------------------ | | 67| 0| OUT_NODE(FuncExpr, FuncExpr, func_expr, FUNC_EXPR, FuncExpr, func_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 68| 0| break; | | 69| 275|case T_NamedArgExpr: | | ------------------ | | | Branch (69:1): [True: 275, False: 60.3M] | | ------------------ | | 70| 275| OUT_NODE(NamedArgExpr, NamedArgExpr, named_arg_expr, NAMED_ARG_EXPR, NamedArgExpr, named_arg_expr); | | ------------------ | | | | 19| 275| { \ | | | | 20| 275| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 275| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 275| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 275| } | | ------------------ | | 71| 275| break; | | 72| 0|case T_OpExpr: | | ------------------ | | | Branch (72:1): [True: 0, False: 60.3M] | | ------------------ | | 73| 0| OUT_NODE(OpExpr, OpExpr, op_expr, OP_EXPR, OpExpr, op_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 74| 0| break; | | 75| 0|case T_DistinctExpr: | | ------------------ | | | Branch (75:1): [True: 0, False: 60.3M] | | ------------------ | | 76| 0| OUT_NODE(DistinctExpr, DistinctExpr, distinct_expr, DISTINCT_EXPR, DistinctExpr, distinct_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 77| 0| break; | | 78| 0|case T_NullIfExpr: | | ------------------ | | | Branch (78:1): [True: 0, False: 60.3M] | | ------------------ | | 79| 0| OUT_NODE(NullIfExpr, NullIfExpr, null_if_expr, NULL_IF_EXPR, NullIfExpr, null_if_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 80| 0| break; | | 81| 0|case T_ScalarArrayOpExpr: | | ------------------ | | | Branch (81:1): [True: 0, False: 60.3M] | | ------------------ | | 82| 0| OUT_NODE(ScalarArrayOpExpr, ScalarArrayOpExpr, scalar_array_op_expr, SCALAR_ARRAY_OP_EXPR, ScalarArrayOpExpr, scalar_array_op_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 83| 0| break; | | 84| 77.3k|case T_BoolExpr: | | ------------------ | | | Branch (84:1): [True: 77.3k, False: 60.2M] | | ------------------ | | 85| 77.3k| OUT_NODE(BoolExpr, BoolExpr, bool_expr, BOOL_EXPR, BoolExpr, bool_expr); | | ------------------ | | | | 19| 77.3k| { \ | | | | 20| 77.3k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 77.3k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 77.3k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 77.3k| } | | ------------------ | | 86| 77.3k| break; | | 87| 200k|case T_SubLink: | | ------------------ | | | Branch (87:1): [True: 200k, False: 60.1M] | | ------------------ | | 88| 200k| OUT_NODE(SubLink, SubLink, sub_link, SUB_LINK, SubLink, sub_link); | | ------------------ | | | | 19| 200k| { \ | | | | 20| 200k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 200k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 200k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 200k| } | | ------------------ | | 89| 200k| break; | | 90| 0|case T_SubPlan: | | ------------------ | | | Branch (90:1): [True: 0, False: 60.3M] | | ------------------ | | 91| 0| OUT_NODE(SubPlan, SubPlan, sub_plan, SUB_PLAN, SubPlan, sub_plan); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 92| 0| break; | | 93| 0|case T_AlternativeSubPlan: | | ------------------ | | | Branch (93:1): [True: 0, False: 60.3M] | | ------------------ | | 94| 0| OUT_NODE(AlternativeSubPlan, AlternativeSubPlan, alternative_sub_plan, ALTERNATIVE_SUB_PLAN, AlternativeSubPlan, alternative_sub_plan); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 95| 0| break; | | 96| 0|case T_FieldSelect: | | ------------------ | | | Branch (96:1): [True: 0, False: 60.3M] | | ------------------ | | 97| 0| OUT_NODE(FieldSelect, FieldSelect, field_select, FIELD_SELECT, FieldSelect, field_select); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 98| 0| break; | | 99| 0|case T_FieldStore: | | ------------------ | | | Branch (99:1): [True: 0, False: 60.3M] | | ------------------ | | 100| 0| OUT_NODE(FieldStore, FieldStore, field_store, FIELD_STORE, FieldStore, field_store); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 101| 0| break; | | 102| 0|case T_RelabelType: | | ------------------ | | | Branch (102:1): [True: 0, False: 60.3M] | | ------------------ | | 103| 0| OUT_NODE(RelabelType, RelabelType, relabel_type, RELABEL_TYPE, RelabelType, relabel_type); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 104| 0| break; | | 105| 0|case T_CoerceViaIO: | | ------------------ | | | Branch (105:1): [True: 0, False: 60.3M] | | ------------------ | | 106| 0| OUT_NODE(CoerceViaIO, CoerceViaIO, coerce_via_io, COERCE_VIA_IO, CoerceViaIO, coerce_via_io); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 107| 0| break; | | 108| 0|case T_ArrayCoerceExpr: | | ------------------ | | | Branch (108:1): [True: 0, False: 60.3M] | | ------------------ | | 109| 0| OUT_NODE(ArrayCoerceExpr, ArrayCoerceExpr, array_coerce_expr, ARRAY_COERCE_EXPR, ArrayCoerceExpr, array_coerce_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 110| 0| break; | | 111| 0|case T_ConvertRowtypeExpr: | | ------------------ | | | Branch (111:1): [True: 0, False: 60.3M] | | ------------------ | | 112| 0| OUT_NODE(ConvertRowtypeExpr, ConvertRowtypeExpr, convert_rowtype_expr, CONVERT_ROWTYPE_EXPR, ConvertRowtypeExpr, convert_rowtype_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 113| 0| break; | | 114| 0|case T_CollateExpr: | | ------------------ | | | Branch (114:1): [True: 0, False: 60.3M] | | ------------------ | | 115| 0| OUT_NODE(CollateExpr, CollateExpr, collate_expr, COLLATE_EXPR, CollateExpr, collate_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 116| 0| break; | | 117| 802|case T_CaseExpr: | | ------------------ | | | Branch (117:1): [True: 802, False: 60.3M] | | ------------------ | | 118| 802| OUT_NODE(CaseExpr, CaseExpr, case_expr, CASE_EXPR, CaseExpr, case_expr); | | ------------------ | | | | 19| 802| { \ | | | | 20| 802| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 802| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 802| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 802| } | | ------------------ | | 119| 802| break; | | 120| 877|case T_CaseWhen: | | ------------------ | | | Branch (120:1): [True: 877, False: 60.3M] | | ------------------ | | 121| 877| OUT_NODE(CaseWhen, CaseWhen, case_when, CASE_WHEN, CaseWhen, case_when); | | ------------------ | | | | 19| 877| { \ | | | | 20| 877| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 877| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 877| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 877| } | | ------------------ | | 122| 877| break; | | 123| 0|case T_CaseTestExpr: | | ------------------ | | | Branch (123:1): [True: 0, False: 60.3M] | | ------------------ | | 124| 0| OUT_NODE(CaseTestExpr, CaseTestExpr, case_test_expr, CASE_TEST_EXPR, CaseTestExpr, case_test_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 125| 0| break; | | 126| 0|case T_ArrayExpr: | | ------------------ | | | Branch (126:1): [True: 0, False: 60.3M] | | ------------------ | | 127| 0| OUT_NODE(ArrayExpr, ArrayExpr, array_expr, ARRAY_EXPR, ArrayExpr, array_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 128| 0| break; | | 129| 5.98k|case T_RowExpr: | | ------------------ | | | Branch (129:1): [True: 5.98k, False: 60.3M] | | ------------------ | | 130| 5.98k| OUT_NODE(RowExpr, RowExpr, row_expr, ROW_EXPR, RowExpr, row_expr); | | ------------------ | | | | 19| 5.98k| { \ | | | | 20| 5.98k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 5.98k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 5.98k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 5.98k| } | | ------------------ | | 131| 5.98k| break; | | 132| 0|case T_RowCompareExpr: | | ------------------ | | | Branch (132:1): [True: 0, False: 60.3M] | | ------------------ | | 133| 0| OUT_NODE(RowCompareExpr, RowCompareExpr, row_compare_expr, ROW_COMPARE_EXPR, RowCompareExpr, row_compare_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 134| 0| break; | | 135| 93|case T_CoalesceExpr: | | ------------------ | | | Branch (135:1): [True: 93, False: 60.3M] | | ------------------ | | 136| 93| OUT_NODE(CoalesceExpr, CoalesceExpr, coalesce_expr, COALESCE_EXPR, CoalesceExpr, coalesce_expr); | | ------------------ | | | | 19| 93| { \ | | | | 20| 93| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 93| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 93| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 93| } | | ------------------ | | 137| 93| break; | | 138| 3.54k|case T_MinMaxExpr: | | ------------------ | | | Branch (138:1): [True: 3.54k, False: 60.3M] | | ------------------ | | 139| 3.54k| OUT_NODE(MinMaxExpr, MinMaxExpr, min_max_expr, MIN_MAX_EXPR, MinMaxExpr, min_max_expr); | | ------------------ | | | | 19| 3.54k| { \ | | | | 20| 3.54k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3.54k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3.54k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3.54k| } | | ------------------ | | 140| 3.54k| break; | | 141| 202k|case T_SQLValueFunction: | | ------------------ | | | Branch (141:1): [True: 202k, False: 60.1M] | | ------------------ | | 142| 202k| OUT_NODE(SQLValueFunction, SQLValueFunction, sqlvalue_function, SQLVALUE_FUNCTION, SQLValueFunction, sqlvalue_function); | | ------------------ | | | | 19| 202k| { \ | | | | 20| 202k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 202k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 202k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 202k| } | | ------------------ | | 143| 202k| break; | | 144| 0|case T_XmlExpr: | | ------------------ | | | Branch (144:1): [True: 0, False: 60.3M] | | ------------------ | | 145| 0| OUT_NODE(XmlExpr, XmlExpr, xml_expr, XML_EXPR, XmlExpr, xml_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 146| 0| break; | | 147| 0|case T_JsonFormat: | | ------------------ | | | Branch (147:1): [True: 0, False: 60.3M] | | ------------------ | | 148| 0| OUT_NODE(JsonFormat, JsonFormat, json_format, JSON_FORMAT, JsonFormat, json_format); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 149| 0| break; | | 150| 0|case T_JsonReturning: | | ------------------ | | | Branch (150:1): [True: 0, False: 60.3M] | | ------------------ | | 151| 0| OUT_NODE(JsonReturning, JsonReturning, json_returning, JSON_RETURNING, JsonReturning, json_returning); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 152| 0| break; | | 153| 0|case T_JsonValueExpr: | | ------------------ | | | Branch (153:1): [True: 0, False: 60.3M] | | ------------------ | | 154| 0| OUT_NODE(JsonValueExpr, JsonValueExpr, json_value_expr, JSON_VALUE_EXPR, JsonValueExpr, json_value_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 155| 0| break; | | 156| 0|case T_JsonConstructorExpr: | | ------------------ | | | Branch (156:1): [True: 0, False: 60.3M] | | ------------------ | | 157| 0| OUT_NODE(JsonConstructorExpr, JsonConstructorExpr, json_constructor_expr, JSON_CONSTRUCTOR_EXPR, JsonConstructorExpr, json_constructor_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 158| 0| break; | | 159| 2.31k|case T_JsonIsPredicate: | | ------------------ | | | Branch (159:1): [True: 2.31k, False: 60.3M] | | ------------------ | | 160| 2.31k| OUT_NODE(JsonIsPredicate, JsonIsPredicate, json_is_predicate, JSON_IS_PREDICATE, JsonIsPredicate, json_is_predicate); | | ------------------ | | | | 19| 2.31k| { \ | | | | 20| 2.31k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.31k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.31k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.31k| } | | ------------------ | | 161| 2.31k| break; | | 162| 0|case T_JsonBehavior: | | ------------------ | | | Branch (162:1): [True: 0, False: 60.3M] | | ------------------ | | 163| 0| OUT_NODE(JsonBehavior, JsonBehavior, json_behavior, JSON_BEHAVIOR, JsonBehavior, json_behavior); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 164| 0| break; | | 165| 0|case T_JsonExpr: | | ------------------ | | | Branch (165:1): [True: 0, False: 60.3M] | | ------------------ | | 166| 0| OUT_NODE(JsonExpr, JsonExpr, json_expr, JSON_EXPR, JsonExpr, json_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 167| 0| break; | | 168| 0|case T_JsonTablePath: | | ------------------ | | | Branch (168:1): [True: 0, False: 60.3M] | | ------------------ | | 169| 0| OUT_NODE(JsonTablePath, JsonTablePath, json_table_path, JSON_TABLE_PATH, JsonTablePath, json_table_path); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 170| 0| break; | | 171| 0|case T_JsonTablePathScan: | | ------------------ | | | Branch (171:1): [True: 0, False: 60.3M] | | ------------------ | | 172| 0| OUT_NODE(JsonTablePathScan, JsonTablePathScan, json_table_path_scan, JSON_TABLE_PATH_SCAN, JsonTablePathScan, json_table_path_scan); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 173| 0| break; | | 174| 0|case T_JsonTableSiblingJoin: | | ------------------ | | | Branch (174:1): [True: 0, False: 60.3M] | | ------------------ | | 175| 0| OUT_NODE(JsonTableSiblingJoin, JsonTableSiblingJoin, json_table_sibling_join, JSON_TABLE_SIBLING_JOIN, JsonTableSiblingJoin, json_table_sibling_join); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 176| 0| break; | | 177| 10.3k|case T_NullTest: | | ------------------ | | | Branch (177:1): [True: 10.3k, False: 60.3M] | | ------------------ | | 178| 10.3k| OUT_NODE(NullTest, NullTest, null_test, NULL_TEST, NullTest, null_test); | | ------------------ | | | | 19| 10.3k| { \ | | | | 20| 10.3k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 10.3k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 10.3k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 10.3k| } | | ------------------ | | 179| 10.3k| break; | | 180| 2.74k|case T_BooleanTest: | | ------------------ | | | Branch (180:1): [True: 2.74k, False: 60.3M] | | ------------------ | | 181| 2.74k| OUT_NODE(BooleanTest, BooleanTest, boolean_test, BOOLEAN_TEST, BooleanTest, boolean_test); | | ------------------ | | | | 19| 2.74k| { \ | | | | 20| 2.74k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.74k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.74k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.74k| } | | ------------------ | | 182| 2.74k| break; | | 183| 0|case T_MergeAction: | | ------------------ | | | Branch (183:1): [True: 0, False: 60.3M] | | ------------------ | | 184| 0| OUT_NODE(MergeAction, MergeAction, merge_action, MERGE_ACTION, MergeAction, merge_action); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 185| 0| break; | | 186| 0|case T_CoerceToDomain: | | ------------------ | | | Branch (186:1): [True: 0, False: 60.3M] | | ------------------ | | 187| 0| OUT_NODE(CoerceToDomain, CoerceToDomain, coerce_to_domain, COERCE_TO_DOMAIN, CoerceToDomain, coerce_to_domain); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 188| 0| break; | | 189| 0|case T_CoerceToDomainValue: | | ------------------ | | | Branch (189:1): [True: 0, False: 60.3M] | | ------------------ | | 190| 0| OUT_NODE(CoerceToDomainValue, CoerceToDomainValue, coerce_to_domain_value, COERCE_TO_DOMAIN_VALUE, CoerceToDomainValue, coerce_to_domain_value); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 191| 0| break; | | 192| 14.6k|case T_SetToDefault: | | ------------------ | | | Branch (192:1): [True: 14.6k, False: 60.3M] | | ------------------ | | 193| 14.6k| OUT_NODE(SetToDefault, SetToDefault, set_to_default, SET_TO_DEFAULT, SetToDefault, set_to_default); | | ------------------ | | | | 19| 14.6k| { \ | | | | 20| 14.6k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 14.6k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 14.6k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 14.6k| } | | ------------------ | | 194| 14.6k| break; | | 195| 0|case T_CurrentOfExpr: | | ------------------ | | | Branch (195:1): [True: 0, False: 60.3M] | | ------------------ | | 196| 0| OUT_NODE(CurrentOfExpr, CurrentOfExpr, current_of_expr, CURRENT_OF_EXPR, CurrentOfExpr, current_of_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 197| 0| break; | | 198| 0|case T_NextValueExpr: | | ------------------ | | | Branch (198:1): [True: 0, False: 60.3M] | | ------------------ | | 199| 0| OUT_NODE(NextValueExpr, NextValueExpr, next_value_expr, NEXT_VALUE_EXPR, NextValueExpr, next_value_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 200| 0| break; | | 201| 0|case T_InferenceElem: | | ------------------ | | | Branch (201:1): [True: 0, False: 60.3M] | | ------------------ | | 202| 0| OUT_NODE(InferenceElem, InferenceElem, inference_elem, INFERENCE_ELEM, InferenceElem, inference_elem); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 203| 0| break; | | 204| 0|case T_ReturningExpr: | | ------------------ | | | Branch (204:1): [True: 0, False: 60.3M] | | ------------------ | | 205| 0| OUT_NODE(ReturningExpr, ReturningExpr, returning_expr, RETURNING_EXPR, ReturningExpr, returning_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 206| 0| break; | | 207| 0|case T_TargetEntry: | | ------------------ | | | Branch (207:1): [True: 0, False: 60.3M] | | ------------------ | | 208| 0| OUT_NODE(TargetEntry, TargetEntry, target_entry, TARGET_ENTRY, TargetEntry, target_entry); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 209| 0| break; | | 210| 0|case T_RangeTblRef: | | ------------------ | | | Branch (210:1): [True: 0, False: 60.3M] | | ------------------ | | 211| 0| OUT_NODE(RangeTblRef, RangeTblRef, range_tbl_ref, RANGE_TBL_REF, RangeTblRef, range_tbl_ref); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 212| 0| break; | | 213| 16.7k|case T_JoinExpr: | | ------------------ | | | Branch (213:1): [True: 16.7k, False: 60.3M] | | ------------------ | | 214| 16.7k| OUT_NODE(JoinExpr, JoinExpr, join_expr, JOIN_EXPR, JoinExpr, join_expr); | | ------------------ | | | | 19| 16.7k| { \ | | | | 20| 16.7k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 16.7k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 16.7k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 16.7k| } | | ------------------ | | 215| 16.7k| break; | | 216| 0|case T_FromExpr: | | ------------------ | | | Branch (216:1): [True: 0, False: 60.3M] | | ------------------ | | 217| 0| OUT_NODE(FromExpr, FromExpr, from_expr, FROM_EXPR, FromExpr, from_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 218| 0| break; | | 219| 0|case T_OnConflictExpr: | | ------------------ | | | Branch (219:1): [True: 0, False: 60.3M] | | ------------------ | | 220| 0| OUT_NODE(OnConflictExpr, OnConflictExpr, on_conflict_expr, ON_CONFLICT_EXPR, OnConflictExpr, on_conflict_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 221| 0| break; | | 222| 0|case T_Query: | | ------------------ | | | Branch (222:1): [True: 0, False: 60.3M] | | ------------------ | | 223| 0| OUT_NODE(Query, Query, query, QUERY, Query, query); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 224| 0| break; | | 225| 893k|case T_TypeName: | | ------------------ | | | Branch (225:1): [True: 893k, False: 59.4M] | | ------------------ | | 226| 893k| OUT_NODE(TypeName, TypeName, type_name, TYPE_NAME, TypeName, type_name); | | ------------------ | | | | 19| 893k| { \ | | | | 20| 893k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 893k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 893k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 893k| } | | ------------------ | | 227| 893k| break; | | 228| 4.30M|case T_ColumnRef: | | ------------------ | | | Branch (228:1): [True: 4.30M, False: 56.0M] | | ------------------ | | 229| 4.30M| OUT_NODE(ColumnRef, ColumnRef, column_ref, COLUMN_REF, ColumnRef, column_ref); | | ------------------ | | | | 19| 4.30M| { \ | | | | 20| 4.30M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 4.30M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 4.30M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 4.30M| } | | ------------------ | | 230| 4.30M| break; | | 231| 12.5k|case T_ParamRef: | | ------------------ | | | Branch (231:1): [True: 12.5k, False: 60.3M] | | ------------------ | | 232| 12.5k| OUT_NODE(ParamRef, ParamRef, param_ref, PARAM_REF, ParamRef, param_ref); | | ------------------ | | | | 19| 12.5k| { \ | | | | 20| 12.5k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 12.5k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 12.5k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 12.5k| } | | ------------------ | | 233| 12.5k| break; | | 234| 14.4M|case T_A_Expr: | | ------------------ | | | Branch (234:1): [True: 14.4M, False: 45.9M] | | ------------------ | | 235| 14.4M| OUT_NODE(A_Expr, AExpr, a__expr, A_EXPR, A_Expr, a_expr); | | ------------------ | | | | 19| 14.4M| { \ | | | | 20| 14.4M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 14.4M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 14.4M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 14.4M| } | | ------------------ | | 236| 14.4M| break; | | 237| 768k|case T_TypeCast: | | ------------------ | | | Branch (237:1): [True: 768k, False: 59.5M] | | ------------------ | | 238| 768k| OUT_NODE(TypeCast, TypeCast, type_cast, TYPE_CAST, TypeCast, type_cast); | | ------------------ | | | | 19| 768k| { \ | | | | 20| 768k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 768k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 768k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 768k| } | | ------------------ | | 239| 768k| break; | | 240| 526|case T_CollateClause: | | ------------------ | | | Branch (240:1): [True: 526, False: 60.3M] | | ------------------ | | 241| 526| OUT_NODE(CollateClause, CollateClause, collate_clause, COLLATE_CLAUSE, CollateClause, collate_clause); | | ------------------ | | | | 19| 526| { \ | | | | 20| 526| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 526| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 526| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 526| } | | ------------------ | | 242| 526| break; | | 243| 637k|case T_RoleSpec: | | ------------------ | | | Branch (243:1): [True: 637k, False: 59.7M] | | ------------------ | | 244| 637k| OUT_NODE(RoleSpec, RoleSpec, role_spec, ROLE_SPEC, RoleSpec, role_spec); | | ------------------ | | | | 19| 637k| { \ | | | | 20| 637k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 637k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 637k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 637k| } | | ------------------ | | 245| 637k| break; | | 246| 214k|case T_FuncCall: | | ------------------ | | | Branch (246:1): [True: 214k, False: 60.1M] | | ------------------ | | 247| 214k| OUT_NODE(FuncCall, FuncCall, func_call, FUNC_CALL, FuncCall, func_call); | | ------------------ | | | | 19| 214k| { \ | | | | 20| 214k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 214k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 214k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 214k| } | | ------------------ | | 248| 214k| break; | | 249| 543|case T_A_Star: | | ------------------ | | | Branch (249:1): [True: 543, False: 60.3M] | | ------------------ | | 250| 543| OUT_NODE(A_Star, AStar, a__star, A_STAR, A_Star, a_star); | | ------------------ | | | | 19| 543| { \ | | | | 20| 543| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 543| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 543| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 543| } | | ------------------ | | 251| 543| break; | | 252| 1.30k|case T_A_Indices: | | ------------------ | | | Branch (252:1): [True: 1.30k, False: 60.3M] | | ------------------ | | 253| 1.30k| OUT_NODE(A_Indices, AIndices, a__indices, A_INDICES, A_Indices, a_indices); | | ------------------ | | | | 19| 1.30k| { \ | | | | 20| 1.30k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.30k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.30k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.30k| } | | ------------------ | | 254| 1.30k| break; | | 255| 2.05k|case T_A_Indirection: | | ------------------ | | | Branch (255:1): [True: 2.05k, False: 60.3M] | | ------------------ | | 256| 2.05k| OUT_NODE(A_Indirection, AIndirection, a__indirection, A_INDIRECTION, A_Indirection, a_indirection); | | ------------------ | | | | 19| 2.05k| { \ | | | | 20| 2.05k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.05k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.05k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.05k| } | | ------------------ | | 257| 2.05k| break; | | 258| 3.11k|case T_A_ArrayExpr: | | ------------------ | | | Branch (258:1): [True: 3.11k, False: 60.3M] | | ------------------ | | 259| 3.11k| OUT_NODE(A_ArrayExpr, AArrayExpr, a__array_expr, A_ARRAY_EXPR, A_ArrayExpr, a_array_expr); | | ------------------ | | | | 19| 3.11k| { \ | | | | 20| 3.11k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3.11k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3.11k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3.11k| } | | ------------------ | | 260| 3.11k| break; | | 261| 1.48M|case T_ResTarget: | | ------------------ | | | Branch (261:1): [True: 1.48M, False: 58.8M] | | ------------------ | | 262| 1.48M| OUT_NODE(ResTarget, ResTarget, res_target, RES_TARGET, ResTarget, res_target); | | ------------------ | | | | 19| 1.48M| { \ | | | | 20| 1.48M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.48M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.48M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.48M| } | | ------------------ | | 263| 1.48M| break; | | 264| 872k|case T_MultiAssignRef: | | ------------------ | | | Branch (264:1): [True: 872k, False: 59.4M] | | ------------------ | | 265| 872k| OUT_NODE(MultiAssignRef, MultiAssignRef, multi_assign_ref, MULTI_ASSIGN_REF, MultiAssignRef, multi_assign_ref); | | ------------------ | | | | 19| 872k| { \ | | | | 20| 872k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 872k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 872k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 872k| } | | ------------------ | | 266| 872k| break; | | 267| 880k|case T_SortBy: | | ------------------ | | | Branch (267:1): [True: 880k, False: 59.4M] | | ------------------ | | 268| 880k| OUT_NODE(SortBy, SortBy, sort_by, SORT_BY, SortBy, sort_by); | | ------------------ | | | | 19| 880k| { \ | | | | 20| 880k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 880k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 880k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 880k| } | | ------------------ | | 269| 880k| break; | | 270| 0|case T_WindowDef: | | ------------------ | | | Branch (270:1): [True: 0, False: 60.3M] | | ------------------ | | 271| 0| OUT_NODE(WindowDef, WindowDef, window_def, WINDOW_DEF, WindowDef, window_def); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 272| 0| break; | | 273| 33.5k|case T_RangeSubselect: | | ------------------ | | | Branch (273:1): [True: 33.5k, False: 60.3M] | | ------------------ | | 274| 33.5k| OUT_NODE(RangeSubselect, RangeSubselect, range_subselect, RANGE_SUBSELECT, RangeSubselect, range_subselect); | | ------------------ | | | | 19| 33.5k| { \ | | | | 20| 33.5k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 33.5k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 33.5k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 33.5k| } | | ------------------ | | 275| 33.5k| break; | | 276| 121k|case T_RangeFunction: | | ------------------ | | | Branch (276:1): [True: 121k, False: 60.2M] | | ------------------ | | 277| 121k| OUT_NODE(RangeFunction, RangeFunction, range_function, RANGE_FUNCTION, RangeFunction, range_function); | | ------------------ | | | | 19| 121k| { \ | | | | 20| 121k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 121k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 121k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 121k| } | | ------------------ | | 278| 121k| break; | | 279| 0|case T_RangeTableFunc: | | ------------------ | | | Branch (279:1): [True: 0, False: 60.3M] | | ------------------ | | 280| 0| OUT_NODE(RangeTableFunc, RangeTableFunc, range_table_func, RANGE_TABLE_FUNC, RangeTableFunc, range_table_func); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 281| 0| break; | | 282| 0|case T_RangeTableFuncCol: | | ------------------ | | | Branch (282:1): [True: 0, False: 60.3M] | | ------------------ | | 283| 0| OUT_NODE(RangeTableFuncCol, RangeTableFuncCol, range_table_func_col, RANGE_TABLE_FUNC_COL, RangeTableFuncCol, range_table_func_col); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 284| 0| break; | | 285| 0|case T_RangeTableSample: | | ------------------ | | | Branch (285:1): [True: 0, False: 60.3M] | | ------------------ | | 286| 0| OUT_NODE(RangeTableSample, RangeTableSample, range_table_sample, RANGE_TABLE_SAMPLE, RangeTableSample, range_table_sample); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 287| 0| break; | | 288| 124k|case T_ColumnDef: | | ------------------ | | | Branch (288:1): [True: 124k, False: 60.2M] | | ------------------ | | 289| 124k| OUT_NODE(ColumnDef, ColumnDef, column_def, COLUMN_DEF, ColumnDef, column_def); | | ------------------ | | | | 19| 124k| { \ | | | | 20| 124k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 124k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 124k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 124k| } | | ------------------ | | 290| 124k| break; | | 291| 0|case T_TableLikeClause: | | ------------------ | | | Branch (291:1): [True: 0, False: 60.3M] | | ------------------ | | 292| 0| OUT_NODE(TableLikeClause, TableLikeClause, table_like_clause, TABLE_LIKE_CLAUSE, TableLikeClause, table_like_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 293| 0| break; | | 294| 1.24k|case T_IndexElem: | | ------------------ | | | Branch (294:1): [True: 1.24k, False: 60.3M] | | ------------------ | | 295| 1.24k| OUT_NODE(IndexElem, IndexElem, index_elem, INDEX_ELEM, IndexElem, index_elem); | | ------------------ | | | | 19| 1.24k| { \ | | | | 20| 1.24k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.24k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.24k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.24k| } | | ------------------ | | 296| 1.24k| break; | | 297| 2.59M|case T_DefElem: | | ------------------ | | | Branch (297:1): [True: 2.59M, False: 57.7M] | | ------------------ | | 298| 2.59M| OUT_NODE(DefElem, DefElem, def_elem, DEF_ELEM, DefElem, def_elem); | | ------------------ | | | | 19| 2.59M| { \ | | | | 20| 2.59M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.59M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.59M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.59M| } | | ------------------ | | 299| 2.59M| break; | | 300| 1.38k|case T_LockingClause: | | ------------------ | | | Branch (300:1): [True: 1.38k, False: 60.3M] | | ------------------ | | 301| 1.38k| OUT_NODE(LockingClause, LockingClause, locking_clause, LOCKING_CLAUSE, LockingClause, locking_clause); | | ------------------ | | | | 19| 1.38k| { \ | | | | 20| 1.38k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.38k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.38k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.38k| } | | ------------------ | | 302| 1.38k| break; | | 303| 0|case T_XmlSerialize: | | ------------------ | | | Branch (303:1): [True: 0, False: 60.3M] | | ------------------ | | 304| 0| OUT_NODE(XmlSerialize, XmlSerialize, xml_serialize, XML_SERIALIZE, XmlSerialize, xml_serialize); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 305| 0| break; | | 306| 0|case T_PartitionElem: | | ------------------ | | | Branch (306:1): [True: 0, False: 60.3M] | | ------------------ | | 307| 0| OUT_NODE(PartitionElem, PartitionElem, partition_elem, PARTITION_ELEM, PartitionElem, partition_elem); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 308| 0| break; | | 309| 0|case T_PartitionSpec: | | ------------------ | | | Branch (309:1): [True: 0, False: 60.3M] | | ------------------ | | 310| 0| OUT_NODE(PartitionSpec, PartitionSpec, partition_spec, PARTITION_SPEC, PartitionSpec, partition_spec); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 311| 0| break; | | 312| 0|case T_PartitionBoundSpec: | | ------------------ | | | Branch (312:1): [True: 0, False: 60.3M] | | ------------------ | | 313| 0| OUT_NODE(PartitionBoundSpec, PartitionBoundSpec, partition_bound_spec, PARTITION_BOUND_SPEC, PartitionBoundSpec, partition_bound_spec); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 314| 0| break; | | 315| 0|case T_PartitionRangeDatum: | | ------------------ | | | Branch (315:1): [True: 0, False: 60.3M] | | ------------------ | | 316| 0| OUT_NODE(PartitionRangeDatum, PartitionRangeDatum, partition_range_datum, PARTITION_RANGE_DATUM, PartitionRangeDatum, partition_range_datum); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 317| 0| break; | | 318| 0|case T_PartitionCmd: | | ------------------ | | | Branch (318:1): [True: 0, False: 60.3M] | | ------------------ | | 319| 0| OUT_NODE(PartitionCmd, PartitionCmd, partition_cmd, PARTITION_CMD, PartitionCmd, partition_cmd); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 320| 0| break; | | 321| 0|case T_RangeTblEntry: | | ------------------ | | | Branch (321:1): [True: 0, False: 60.3M] | | ------------------ | | 322| 0| OUT_NODE(RangeTblEntry, RangeTblEntry, range_tbl_entry, RANGE_TBL_ENTRY, RangeTblEntry, range_tbl_entry); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 323| 0| break; | | 324| 0|case T_RTEPermissionInfo: | | ------------------ | | | Branch (324:1): [True: 0, False: 60.3M] | | ------------------ | | 325| 0| OUT_NODE(RTEPermissionInfo, RTEPermissionInfo, rtepermission_info, RTEPERMISSION_INFO, RTEPermissionInfo, rtepermission_info); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 326| 0| break; | | 327| 0|case T_RangeTblFunction: | | ------------------ | | | Branch (327:1): [True: 0, False: 60.3M] | | ------------------ | | 328| 0| OUT_NODE(RangeTblFunction, RangeTblFunction, range_tbl_function, RANGE_TBL_FUNCTION, RangeTblFunction, range_tbl_function); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 329| 0| break; | | 330| 0|case T_TableSampleClause: | | ------------------ | | | Branch (330:1): [True: 0, False: 60.3M] | | ------------------ | | 331| 0| OUT_NODE(TableSampleClause, TableSampleClause, table_sample_clause, TABLE_SAMPLE_CLAUSE, TableSampleClause, table_sample_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 332| 0| break; | | 333| 0|case T_WithCheckOption: | | ------------------ | | | Branch (333:1): [True: 0, False: 60.3M] | | ------------------ | | 334| 0| OUT_NODE(WithCheckOption, WithCheckOption, with_check_option, WITH_CHECK_OPTION, WithCheckOption, with_check_option); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 335| 0| break; | | 336| 0|case T_SortGroupClause: | | ------------------ | | | Branch (336:1): [True: 0, False: 60.3M] | | ------------------ | | 337| 0| OUT_NODE(SortGroupClause, SortGroupClause, sort_group_clause, SORT_GROUP_CLAUSE, SortGroupClause, sort_group_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 338| 0| break; | | 339| 200|case T_GroupingSet: | | ------------------ | | | Branch (339:1): [True: 200, False: 60.3M] | | ------------------ | | 340| 200| OUT_NODE(GroupingSet, GroupingSet, grouping_set, GROUPING_SET, GroupingSet, grouping_set); | | ------------------ | | | | 19| 200| { \ | | | | 20| 200| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 200| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 200| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 200| } | | ------------------ | | 341| 200| break; | | 342| 0|case T_WindowClause: | | ------------------ | | | Branch (342:1): [True: 0, False: 60.3M] | | ------------------ | | 343| 0| OUT_NODE(WindowClause, WindowClause, window_clause, WINDOW_CLAUSE, WindowClause, window_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 344| 0| break; | | 345| 0|case T_RowMarkClause: | | ------------------ | | | Branch (345:1): [True: 0, False: 60.3M] | | ------------------ | | 346| 0| OUT_NODE(RowMarkClause, RowMarkClause, row_mark_clause, ROW_MARK_CLAUSE, RowMarkClause, row_mark_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 347| 0| break; | | 348| 0|case T_WithClause: | | ------------------ | | | Branch (348:1): [True: 0, False: 60.3M] | | ------------------ | | 349| 0| OUT_NODE(WithClause, WithClause, with_clause, WITH_CLAUSE, WithClause, with_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 350| 0| break; | | 351| 0|case T_InferClause: | | ------------------ | | | Branch (351:1): [True: 0, False: 60.3M] | | ------------------ | | 352| 0| OUT_NODE(InferClause, InferClause, infer_clause, INFER_CLAUSE, InferClause, infer_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 353| 0| break; | | 354| 0|case T_OnConflictClause: | | ------------------ | | | Branch (354:1): [True: 0, False: 60.3M] | | ------------------ | | 355| 0| OUT_NODE(OnConflictClause, OnConflictClause, on_conflict_clause, ON_CONFLICT_CLAUSE, OnConflictClause, on_conflict_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 356| 0| break; | | 357| 0|case T_CTESearchClause: | | ------------------ | | | Branch (357:1): [True: 0, False: 60.3M] | | ------------------ | | 358| 0| OUT_NODE(CTESearchClause, CTESearchClause, ctesearch_clause, CTESEARCH_CLAUSE, CTESearchClause, ctesearch_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 359| 0| break; | | 360| 0|case T_CTECycleClause: | | ------------------ | | | Branch (360:1): [True: 0, False: 60.3M] | | ------------------ | | 361| 0| OUT_NODE(CTECycleClause, CTECycleClause, ctecycle_clause, CTECYCLE_CLAUSE, CTECycleClause, ctecycle_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 362| 0| break; | | 363| 79.6k|case T_CommonTableExpr: | | ------------------ | | | Branch (363:1): [True: 79.6k, False: 60.2M] | | ------------------ | | 364| 79.6k| OUT_NODE(CommonTableExpr, CommonTableExpr, common_table_expr, COMMON_TABLE_EXPR, CommonTableExpr, common_table_expr); | | ------------------ | | | | 19| 79.6k| { \ | | | | 20| 79.6k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 79.6k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 79.6k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 79.6k| } | | ------------------ | | 365| 79.6k| break; | | 366| 0|case T_MergeWhenClause: | | ------------------ | | | Branch (366:1): [True: 0, False: 60.3M] | | ------------------ | | 367| 0| OUT_NODE(MergeWhenClause, MergeWhenClause, merge_when_clause, MERGE_WHEN_CLAUSE, MergeWhenClause, merge_when_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 368| 0| break; | | 369| 0|case T_ReturningOption: | | ------------------ | | | Branch (369:1): [True: 0, False: 60.3M] | | ------------------ | | 370| 0| OUT_NODE(ReturningOption, ReturningOption, returning_option, RETURNING_OPTION, ReturningOption, returning_option); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 371| 0| break; | | 372| 0|case T_ReturningClause: | | ------------------ | | | Branch (372:1): [True: 0, False: 60.3M] | | ------------------ | | 373| 0| OUT_NODE(ReturningClause, ReturningClause, returning_clause, RETURNING_CLAUSE, ReturningClause, returning_clause); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 374| 0| break; | | 375| 0|case T_TriggerTransition: | | ------------------ | | | Branch (375:1): [True: 0, False: 60.3M] | | ------------------ | | 376| 0| OUT_NODE(TriggerTransition, TriggerTransition, trigger_transition, TRIGGER_TRANSITION, TriggerTransition, trigger_transition); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 377| 0| break; | | 378| 0|case T_JsonOutput: | | ------------------ | | | Branch (378:1): [True: 0, False: 60.3M] | | ------------------ | | 379| 0| OUT_NODE(JsonOutput, JsonOutput, json_output, JSON_OUTPUT, JsonOutput, json_output); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 380| 0| break; | | 381| 0|case T_JsonArgument: | | ------------------ | | | Branch (381:1): [True: 0, False: 60.3M] | | ------------------ | | 382| 0| OUT_NODE(JsonArgument, JsonArgument, json_argument, JSON_ARGUMENT, JsonArgument, json_argument); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 383| 0| break; | | 384| 0|case T_JsonFuncExpr: | | ------------------ | | | Branch (384:1): [True: 0, False: 60.3M] | | ------------------ | | 385| 0| OUT_NODE(JsonFuncExpr, JsonFuncExpr, json_func_expr, JSON_FUNC_EXPR, JsonFuncExpr, json_func_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 386| 0| break; | | 387| 0|case T_JsonTablePathSpec: | | ------------------ | | | Branch (387:1): [True: 0, False: 60.3M] | | ------------------ | | 388| 0| OUT_NODE(JsonTablePathSpec, JsonTablePathSpec, json_table_path_spec, JSON_TABLE_PATH_SPEC, JsonTablePathSpec, json_table_path_spec); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 389| 0| break; | | 390| 0|case T_JsonTable: | | ------------------ | | | Branch (390:1): [True: 0, False: 60.3M] | | ------------------ | | 391| 0| OUT_NODE(JsonTable, JsonTable, json_table, JSON_TABLE, JsonTable, json_table); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 392| 0| break; | | 393| 0|case T_JsonTableColumn: | | ------------------ | | | Branch (393:1): [True: 0, False: 60.3M] | | ------------------ | | 394| 0| OUT_NODE(JsonTableColumn, JsonTableColumn, json_table_column, JSON_TABLE_COLUMN, JsonTableColumn, json_table_column); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 395| 0| break; | | 396| 0|case T_JsonKeyValue: | | ------------------ | | | Branch (396:1): [True: 0, False: 60.3M] | | ------------------ | | 397| 0| OUT_NODE(JsonKeyValue, JsonKeyValue, json_key_value, JSON_KEY_VALUE, JsonKeyValue, json_key_value); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 398| 0| break; | | 399| 4.29k|case T_JsonParseExpr: | | ------------------ | | | Branch (399:1): [True: 4.29k, False: 60.3M] | | ------------------ | | 400| 4.29k| OUT_NODE(JsonParseExpr, JsonParseExpr, json_parse_expr, JSON_PARSE_EXPR, JsonParseExpr, json_parse_expr); | | ------------------ | | | | 19| 4.29k| { \ | | | | 20| 4.29k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 4.29k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 4.29k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 4.29k| } | | ------------------ | | 401| 4.29k| break; | | 402| 0|case T_JsonScalarExpr: | | ------------------ | | | Branch (402:1): [True: 0, False: 60.3M] | | ------------------ | | 403| 0| OUT_NODE(JsonScalarExpr, JsonScalarExpr, json_scalar_expr, JSON_SCALAR_EXPR, JsonScalarExpr, json_scalar_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 404| 0| break; | | 405| 0|case T_JsonSerializeExpr: | | ------------------ | | | Branch (405:1): [True: 0, False: 60.3M] | | ------------------ | | 406| 0| OUT_NODE(JsonSerializeExpr, JsonSerializeExpr, json_serialize_expr, JSON_SERIALIZE_EXPR, JsonSerializeExpr, json_serialize_expr); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 407| 0| break; | | 408| 0|case T_JsonObjectConstructor: | | ------------------ | | | Branch (408:1): [True: 0, False: 60.3M] | | ------------------ | | 409| 0| OUT_NODE(JsonObjectConstructor, JsonObjectConstructor, json_object_constructor, JSON_OBJECT_CONSTRUCTOR, JsonObjectConstructor, json_object_constructor); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 410| 0| break; | | 411| 0|case T_JsonArrayConstructor: | | ------------------ | | | Branch (411:1): [True: 0, False: 60.3M] | | ------------------ | | 412| 0| OUT_NODE(JsonArrayConstructor, JsonArrayConstructor, json_array_constructor, JSON_ARRAY_CONSTRUCTOR, JsonArrayConstructor, json_array_constructor); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 413| 0| break; | | 414| 0|case T_JsonArrayQueryConstructor: | | ------------------ | | | Branch (414:1): [True: 0, False: 60.3M] | | ------------------ | | 415| 0| OUT_NODE(JsonArrayQueryConstructor, JsonArrayQueryConstructor, json_array_query_constructor, JSON_ARRAY_QUERY_CONSTRUCTOR, JsonArrayQueryConstructor, json_array_query_constructor); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 416| 0| break; | | 417| 0|case T_JsonAggConstructor: | | ------------------ | | | Branch (417:1): [True: 0, False: 60.3M] | | ------------------ | | 418| 0| OUT_NODE(JsonAggConstructor, JsonAggConstructor, json_agg_constructor, JSON_AGG_CONSTRUCTOR, JsonAggConstructor, json_agg_constructor); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 419| 0| break; | | 420| 0|case T_JsonObjectAgg: | | ------------------ | | | Branch (420:1): [True: 0, False: 60.3M] | | ------------------ | | 421| 0| OUT_NODE(JsonObjectAgg, JsonObjectAgg, json_object_agg, JSON_OBJECT_AGG, JsonObjectAgg, json_object_agg); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 422| 0| break; | | 423| 0|case T_JsonArrayAgg: | | ------------------ | | | Branch (423:1): [True: 0, False: 60.3M] | | ------------------ | | 424| 0| OUT_NODE(JsonArrayAgg, JsonArrayAgg, json_array_agg, JSON_ARRAY_AGG, JsonArrayAgg, json_array_agg); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 425| 0| break; | | 426| 0|case T_RawStmt: | | ------------------ | | | Branch (426:1): [True: 0, False: 60.3M] | | ------------------ | | 427| 0| OUT_NODE(RawStmt, RawStmt, raw_stmt, RAW_STMT, RawStmt, raw_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 428| 0| break; | | 429| 905|case T_InsertStmt: | | ------------------ | | | Branch (429:1): [True: 905, False: 60.3M] | | ------------------ | | 430| 905| OUT_NODE(InsertStmt, InsertStmt, insert_stmt, INSERT_STMT, InsertStmt, insert_stmt); | | ------------------ | | | | 19| 905| { \ | | | | 20| 905| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 905| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 905| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 905| } | | ------------------ | | 431| 905| break; | | 432| 18.3k|case T_DeleteStmt: | | ------------------ | | | Branch (432:1): [True: 18.3k, False: 60.3M] | | ------------------ | | 433| 18.3k| OUT_NODE(DeleteStmt, DeleteStmt, delete_stmt, DELETE_STMT, DeleteStmt, delete_stmt); | | ------------------ | | | | 19| 18.3k| { \ | | | | 20| 18.3k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 18.3k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 18.3k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 18.3k| } | | ------------------ | | 434| 18.3k| break; | | 435| 40.6k|case T_UpdateStmt: | | ------------------ | | | Branch (435:1): [True: 40.6k, False: 60.3M] | | ------------------ | | 436| 40.6k| OUT_NODE(UpdateStmt, UpdateStmt, update_stmt, UPDATE_STMT, UpdateStmt, update_stmt); | | ------------------ | | | | 19| 40.6k| { \ | | | | 20| 40.6k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 40.6k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 40.6k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 40.6k| } | | ------------------ | | 437| 40.6k| break; | | 438| 0|case T_MergeStmt: | | ------------------ | | | Branch (438:1): [True: 0, False: 60.3M] | | ------------------ | | 439| 0| OUT_NODE(MergeStmt, MergeStmt, merge_stmt, MERGE_STMT, MergeStmt, merge_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 440| 0| break; | | 441| 269k|case T_SelectStmt: | | ------------------ | | | Branch (441:1): [True: 269k, False: 60.0M] | | ------------------ | | 442| 269k| OUT_NODE(SelectStmt, SelectStmt, select_stmt, SELECT_STMT, SelectStmt, select_stmt); | | ------------------ | | | | 19| 269k| { \ | | | | 20| 269k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 269k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 269k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 269k| } | | ------------------ | | 443| 269k| break; | | 444| 0|case T_SetOperationStmt: | | ------------------ | | | Branch (444:1): [True: 0, False: 60.3M] | | ------------------ | | 445| 0| OUT_NODE(SetOperationStmt, SetOperationStmt, set_operation_stmt, SET_OPERATION_STMT, SetOperationStmt, set_operation_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 446| 0| break; | | 447| 0|case T_ReturnStmt: | | ------------------ | | | Branch (447:1): [True: 0, False: 60.3M] | | ------------------ | | 448| 0| OUT_NODE(ReturnStmt, ReturnStmt, return_stmt, RETURN_STMT, ReturnStmt, return_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 449| 0| break; | | 450| 0|case T_PLAssignStmt: | | ------------------ | | | Branch (450:1): [True: 0, False: 60.3M] | | ------------------ | | 451| 0| OUT_NODE(PLAssignStmt, PLAssignStmt, plassign_stmt, PLASSIGN_STMT, PLAssignStmt, plassign_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 452| 0| break; | | 453| 132|case T_CreateSchemaStmt: | | ------------------ | | | Branch (453:1): [True: 132, False: 60.3M] | | ------------------ | | 454| 132| OUT_NODE(CreateSchemaStmt, CreateSchemaStmt, create_schema_stmt, CREATE_SCHEMA_STMT, CreateSchemaStmt, create_schema_stmt); | | ------------------ | | | | 19| 132| { \ | | | | 20| 132| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 132| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 132| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 132| } | | ------------------ | | 455| 132| break; | | 456| 672|case T_AlterTableStmt: | | ------------------ | | | Branch (456:1): [True: 672, False: 60.3M] | | ------------------ | | 457| 672| OUT_NODE(AlterTableStmt, AlterTableStmt, alter_table_stmt, ALTER_TABLE_STMT, AlterTableStmt, alter_table_stmt); | | ------------------ | | | | 19| 672| { \ | | | | 20| 672| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 672| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 672| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 672| } | | ------------------ | | 458| 672| break; | | 459| 2.35k|case T_AlterTableCmd: | | ------------------ | | | Branch (459:1): [True: 2.35k, False: 60.3M] | | ------------------ | | 460| 2.35k| OUT_NODE(AlterTableCmd, AlterTableCmd, alter_table_cmd, ALTER_TABLE_CMD, AlterTableCmd, alter_table_cmd); | | ------------------ | | | | 19| 2.35k| { \ | | | | 20| 2.35k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.35k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.35k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.35k| } | | ------------------ | | 461| 2.35k| break; | | 462| 0|case T_ATAlterConstraint: | | ------------------ | | | Branch (462:1): [True: 0, False: 60.3M] | | ------------------ | | 463| 0| OUT_NODE(ATAlterConstraint, ATAlterConstraint, atalter_constraint, ATALTER_CONSTRAINT, ATAlterConstraint, atalter_constraint); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 464| 0| break; | | 465| 0|case T_ReplicaIdentityStmt: | | ------------------ | | | Branch (465:1): [True: 0, False: 60.3M] | | ------------------ | | 466| 0| OUT_NODE(ReplicaIdentityStmt, ReplicaIdentityStmt, replica_identity_stmt, REPLICA_IDENTITY_STMT, ReplicaIdentityStmt, replica_identity_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 467| 0| break; | | 468| 0|case T_AlterCollationStmt: | | ------------------ | | | Branch (468:1): [True: 0, False: 60.3M] | | ------------------ | | 469| 0| OUT_NODE(AlterCollationStmt, AlterCollationStmt, alter_collation_stmt, ALTER_COLLATION_STMT, AlterCollationStmt, alter_collation_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 470| 0| break; | | 471| 0|case T_AlterDomainStmt: | | ------------------ | | | Branch (471:1): [True: 0, False: 60.3M] | | ------------------ | | 472| 0| OUT_NODE(AlterDomainStmt, AlterDomainStmt, alter_domain_stmt, ALTER_DOMAIN_STMT, AlterDomainStmt, alter_domain_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 473| 0| break; | | 474| 392|case T_GrantStmt: | | ------------------ | | | Branch (474:1): [True: 392, False: 60.3M] | | ------------------ | | 475| 392| OUT_NODE(GrantStmt, GrantStmt, grant_stmt, GRANT_STMT, GrantStmt, grant_stmt); | | ------------------ | | | | 19| 392| { \ | | | | 20| 392| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 392| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 392| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 392| } | | ------------------ | | 476| 392| break; | | 477| 13.5k|case T_ObjectWithArgs: | | ------------------ | | | Branch (477:1): [True: 13.5k, False: 60.3M] | | ------------------ | | 478| 13.5k| OUT_NODE(ObjectWithArgs, ObjectWithArgs, object_with_args, OBJECT_WITH_ARGS, ObjectWithArgs, object_with_args); | | ------------------ | | | | 19| 13.5k| { \ | | | | 20| 13.5k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 13.5k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 13.5k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 13.5k| } | | ------------------ | | 479| 13.5k| break; | | 480| 59.0k|case T_AccessPriv: | | ------------------ | | | Branch (480:1): [True: 59.0k, False: 60.2M] | | ------------------ | | 481| 59.0k| OUT_NODE(AccessPriv, AccessPriv, access_priv, ACCESS_PRIV, AccessPriv, access_priv); | | ------------------ | | | | 19| 59.0k| { \ | | | | 20| 59.0k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 59.0k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 59.0k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 59.0k| } | | ------------------ | | 482| 59.0k| break; | | 483| 4|case T_GrantRoleStmt: | | ------------------ | | | Branch (483:1): [True: 4, False: 60.3M] | | ------------------ | | 484| 4| OUT_NODE(GrantRoleStmt, GrantRoleStmt, grant_role_stmt, GRANT_ROLE_STMT, GrantRoleStmt, grant_role_stmt); | | ------------------ | | | | 19| 4| { \ | | | | 20| 4| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 4| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 4| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 4| } | | ------------------ | | 485| 4| break; | | 486| 0|case T_AlterDefaultPrivilegesStmt: | | ------------------ | | | Branch (486:1): [True: 0, False: 60.3M] | | ------------------ | | 487| 0| OUT_NODE(AlterDefaultPrivilegesStmt, AlterDefaultPrivilegesStmt, alter_default_privileges_stmt, ALTER_DEFAULT_PRIVILEGES_STMT, AlterDefaultPrivilegesStmt, alter_default_privileges_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 488| 0| break; | | 489| 250|case T_CopyStmt: | | ------------------ | | | Branch (489:1): [True: 250, False: 60.3M] | | ------------------ | | 490| 250| OUT_NODE(CopyStmt, CopyStmt, copy_stmt, COPY_STMT, CopyStmt, copy_stmt); | | ------------------ | | | | 19| 250| { \ | | | | 20| 250| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 250| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 250| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 250| } | | ------------------ | | 491| 250| break; | | 492| 4.65k|case T_VariableSetStmt: | | ------------------ | | | Branch (492:1): [True: 4.65k, False: 60.3M] | | ------------------ | | 493| 4.65k| OUT_NODE(VariableSetStmt, VariableSetStmt, variable_set_stmt, VARIABLE_SET_STMT, VariableSetStmt, variable_set_stmt); | | ------------------ | | | | 19| 4.65k| { \ | | | | 20| 4.65k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 4.65k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 4.65k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 4.65k| } | | ------------------ | | 494| 4.65k| break; | | 495| 1.88k|case T_VariableShowStmt: | | ------------------ | | | Branch (495:1): [True: 1.88k, False: 60.3M] | | ------------------ | | 496| 1.88k| OUT_NODE(VariableShowStmt, VariableShowStmt, variable_show_stmt, VARIABLE_SHOW_STMT, VariableShowStmt, variable_show_stmt); | | ------------------ | | | | 19| 1.88k| { \ | | | | 20| 1.88k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.88k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.88k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.88k| } | | ------------------ | | 497| 1.88k| break; | | 498| 586|case T_CreateStmt: | | ------------------ | | | Branch (498:1): [True: 586, False: 60.3M] | | ------------------ | | 499| 586| OUT_NODE(CreateStmt, CreateStmt, create_stmt, CREATE_STMT, CreateStmt, create_stmt); | | ------------------ | | | | 19| 586| { \ | | | | 20| 586| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 586| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 586| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 586| } | | ------------------ | | 500| 586| break; | | 501| 18.1k|case T_Constraint: | | ------------------ | | | Branch (501:1): [True: 18.1k, False: 60.3M] | | ------------------ | | 502| 18.1k| OUT_NODE(Constraint, Constraint, constraint, CONSTRAINT, Constraint, constraint); | | ------------------ | | | | 19| 18.1k| { \ | | | | 20| 18.1k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 18.1k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 18.1k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 18.1k| } | | ------------------ | | 503| 18.1k| break; | | 504| 0|case T_CreateTableSpaceStmt: | | ------------------ | | | Branch (504:1): [True: 0, False: 60.3M] | | ------------------ | | 505| 0| OUT_NODE(CreateTableSpaceStmt, CreateTableSpaceStmt, create_table_space_stmt, CREATE_TABLE_SPACE_STMT, CreateTableSpaceStmt, create_table_space_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 506| 0| break; | | 507| 0|case T_DropTableSpaceStmt: | | ------------------ | | | Branch (507:1): [True: 0, False: 60.3M] | | ------------------ | | 508| 0| OUT_NODE(DropTableSpaceStmt, DropTableSpaceStmt, drop_table_space_stmt, DROP_TABLE_SPACE_STMT, DropTableSpaceStmt, drop_table_space_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 509| 0| break; | | 510| 0|case T_AlterTableSpaceOptionsStmt: | | ------------------ | | | Branch (510:1): [True: 0, False: 60.3M] | | ------------------ | | 511| 0| OUT_NODE(AlterTableSpaceOptionsStmt, AlterTableSpaceOptionsStmt, alter_table_space_options_stmt, ALTER_TABLE_SPACE_OPTIONS_STMT, AlterTableSpaceOptionsStmt, alter_table_space_options_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 512| 0| break; | | 513| 0|case T_AlterTableMoveAllStmt: | | ------------------ | | | Branch (513:1): [True: 0, False: 60.3M] | | ------------------ | | 514| 0| OUT_NODE(AlterTableMoveAllStmt, AlterTableMoveAllStmt, alter_table_move_all_stmt, ALTER_TABLE_MOVE_ALL_STMT, AlterTableMoveAllStmt, alter_table_move_all_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 515| 0| break; | | 516| 0|case T_CreateExtensionStmt: | | ------------------ | | | Branch (516:1): [True: 0, False: 60.3M] | | ------------------ | | 517| 0| OUT_NODE(CreateExtensionStmt, CreateExtensionStmt, create_extension_stmt, CREATE_EXTENSION_STMT, CreateExtensionStmt, create_extension_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 518| 0| break; | | 519| 0|case T_AlterExtensionStmt: | | ------------------ | | | Branch (519:1): [True: 0, False: 60.3M] | | ------------------ | | 520| 0| OUT_NODE(AlterExtensionStmt, AlterExtensionStmt, alter_extension_stmt, ALTER_EXTENSION_STMT, AlterExtensionStmt, alter_extension_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 521| 0| break; | | 522| 0|case T_AlterExtensionContentsStmt: | | ------------------ | | | Branch (522:1): [True: 0, False: 60.3M] | | ------------------ | | 523| 0| OUT_NODE(AlterExtensionContentsStmt, AlterExtensionContentsStmt, alter_extension_contents_stmt, ALTER_EXTENSION_CONTENTS_STMT, AlterExtensionContentsStmt, alter_extension_contents_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 524| 0| break; | | 525| 0|case T_CreateFdwStmt: | | ------------------ | | | Branch (525:1): [True: 0, False: 60.3M] | | ------------------ | | 526| 0| OUT_NODE(CreateFdwStmt, CreateFdwStmt, create_fdw_stmt, CREATE_FDW_STMT, CreateFdwStmt, create_fdw_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 527| 0| break; | | 528| 0|case T_AlterFdwStmt: | | ------------------ | | | Branch (528:1): [True: 0, False: 60.3M] | | ------------------ | | 529| 0| OUT_NODE(AlterFdwStmt, AlterFdwStmt, alter_fdw_stmt, ALTER_FDW_STMT, AlterFdwStmt, alter_fdw_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 530| 0| break; | | 531| 0|case T_CreateForeignServerStmt: | | ------------------ | | | Branch (531:1): [True: 0, False: 60.3M] | | ------------------ | | 532| 0| OUT_NODE(CreateForeignServerStmt, CreateForeignServerStmt, create_foreign_server_stmt, CREATE_FOREIGN_SERVER_STMT, CreateForeignServerStmt, create_foreign_server_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 533| 0| break; | | 534| 0|case T_AlterForeignServerStmt: | | ------------------ | | | Branch (534:1): [True: 0, False: 60.3M] | | ------------------ | | 535| 0| OUT_NODE(AlterForeignServerStmt, AlterForeignServerStmt, alter_foreign_server_stmt, ALTER_FOREIGN_SERVER_STMT, AlterForeignServerStmt, alter_foreign_server_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 536| 0| break; | | 537| 0|case T_CreateForeignTableStmt: | | ------------------ | | | Branch (537:1): [True: 0, False: 60.3M] | | ------------------ | | 538| 0| OUT_NODE(CreateForeignTableStmt, CreateForeignTableStmt, create_foreign_table_stmt, CREATE_FOREIGN_TABLE_STMT, CreateForeignTableStmt, create_foreign_table_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 539| 0| break; | | 540| 0|case T_CreateUserMappingStmt: | | ------------------ | | | Branch (540:1): [True: 0, False: 60.3M] | | ------------------ | | 541| 0| OUT_NODE(CreateUserMappingStmt, CreateUserMappingStmt, create_user_mapping_stmt, CREATE_USER_MAPPING_STMT, CreateUserMappingStmt, create_user_mapping_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 542| 0| break; | | 543| 0|case T_AlterUserMappingStmt: | | ------------------ | | | Branch (543:1): [True: 0, False: 60.3M] | | ------------------ | | 544| 0| OUT_NODE(AlterUserMappingStmt, AlterUserMappingStmt, alter_user_mapping_stmt, ALTER_USER_MAPPING_STMT, AlterUserMappingStmt, alter_user_mapping_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 545| 0| break; | | 546| 0|case T_DropUserMappingStmt: | | ------------------ | | | Branch (546:1): [True: 0, False: 60.3M] | | ------------------ | | 547| 0| OUT_NODE(DropUserMappingStmt, DropUserMappingStmt, drop_user_mapping_stmt, DROP_USER_MAPPING_STMT, DropUserMappingStmt, drop_user_mapping_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 548| 0| break; | | 549| 0|case T_ImportForeignSchemaStmt: | | ------------------ | | | Branch (549:1): [True: 0, False: 60.3M] | | ------------------ | | 550| 0| OUT_NODE(ImportForeignSchemaStmt, ImportForeignSchemaStmt, import_foreign_schema_stmt, IMPORT_FOREIGN_SCHEMA_STMT, ImportForeignSchemaStmt, import_foreign_schema_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 551| 0| break; | | 552| 0|case T_CreatePolicyStmt: | | ------------------ | | | Branch (552:1): [True: 0, False: 60.3M] | | ------------------ | | 553| 0| OUT_NODE(CreatePolicyStmt, CreatePolicyStmt, create_policy_stmt, CREATE_POLICY_STMT, CreatePolicyStmt, create_policy_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 554| 0| break; | | 555| 0|case T_AlterPolicyStmt: | | ------------------ | | | Branch (555:1): [True: 0, False: 60.3M] | | ------------------ | | 556| 0| OUT_NODE(AlterPolicyStmt, AlterPolicyStmt, alter_policy_stmt, ALTER_POLICY_STMT, AlterPolicyStmt, alter_policy_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 557| 0| break; | | 558| 0|case T_CreateAmStmt: | | ------------------ | | | Branch (558:1): [True: 0, False: 60.3M] | | ------------------ | | 559| 0| OUT_NODE(CreateAmStmt, CreateAmStmt, create_am_stmt, CREATE_AM_STMT, CreateAmStmt, create_am_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 560| 0| break; | | 561| 0|case T_CreateTrigStmt: | | ------------------ | | | Branch (561:1): [True: 0, False: 60.3M] | | ------------------ | | 562| 0| OUT_NODE(CreateTrigStmt, CreateTrigStmt, create_trig_stmt, CREATE_TRIG_STMT, CreateTrigStmt, create_trig_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 563| 0| break; | | 564| 0|case T_CreateEventTrigStmt: | | ------------------ | | | Branch (564:1): [True: 0, False: 60.3M] | | ------------------ | | 565| 0| OUT_NODE(CreateEventTrigStmt, CreateEventTrigStmt, create_event_trig_stmt, CREATE_EVENT_TRIG_STMT, CreateEventTrigStmt, create_event_trig_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 566| 0| break; | | 567| 0|case T_AlterEventTrigStmt: | | ------------------ | | | Branch (567:1): [True: 0, False: 60.3M] | | ------------------ | | 568| 0| OUT_NODE(AlterEventTrigStmt, AlterEventTrigStmt, alter_event_trig_stmt, ALTER_EVENT_TRIG_STMT, AlterEventTrigStmt, alter_event_trig_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 569| 0| break; | | 570| 0|case T_CreatePLangStmt: | | ------------------ | | | Branch (570:1): [True: 0, False: 60.3M] | | ------------------ | | 571| 0| OUT_NODE(CreatePLangStmt, CreatePLangStmt, create_plang_stmt, CREATE_PLANG_STMT, CreatePLangStmt, create_plang_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 572| 0| break; | | 573| 629|case T_CreateRoleStmt: | | ------------------ | | | Branch (573:1): [True: 629, False: 60.3M] | | ------------------ | | 574| 629| OUT_NODE(CreateRoleStmt, CreateRoleStmt, create_role_stmt, CREATE_ROLE_STMT, CreateRoleStmt, create_role_stmt); | | ------------------ | | | | 19| 629| { \ | | | | 20| 629| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 629| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 629| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 629| } | | ------------------ | | 575| 629| break; | | 576| 2.49k|case T_AlterRoleStmt: | | ------------------ | | | Branch (576:1): [True: 2.49k, False: 60.3M] | | ------------------ | | 577| 2.49k| OUT_NODE(AlterRoleStmt, AlterRoleStmt, alter_role_stmt, ALTER_ROLE_STMT, AlterRoleStmt, alter_role_stmt); | | ------------------ | | | | 19| 2.49k| { \ | | | | 20| 2.49k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.49k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.49k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.49k| } | | ------------------ | | 578| 2.49k| break; | | 579| 130|case T_AlterRoleSetStmt: | | ------------------ | | | Branch (579:1): [True: 130, False: 60.3M] | | ------------------ | | 580| 130| OUT_NODE(AlterRoleSetStmt, AlterRoleSetStmt, alter_role_set_stmt, ALTER_ROLE_SET_STMT, AlterRoleSetStmt, alter_role_set_stmt); | | ------------------ | | | | 19| 130| { \ | | | | 20| 130| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 130| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 130| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 130| } | | ------------------ | | 581| 130| break; | | 582| 10|case T_DropRoleStmt: | | ------------------ | | | Branch (582:1): [True: 10, False: 60.3M] | | ------------------ | | 583| 10| OUT_NODE(DropRoleStmt, DropRoleStmt, drop_role_stmt, DROP_ROLE_STMT, DropRoleStmt, drop_role_stmt); | | ------------------ | | | | 19| 10| { \ | | | | 20| 10| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 10| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 10| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 10| } | | ------------------ | | 584| 10| break; | | 585| 0|case T_CreateSeqStmt: | | ------------------ | | | Branch (585:1): [True: 0, False: 60.3M] | | ------------------ | | 586| 0| OUT_NODE(CreateSeqStmt, CreateSeqStmt, create_seq_stmt, CREATE_SEQ_STMT, CreateSeqStmt, create_seq_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 587| 0| break; | | 588| 0|case T_AlterSeqStmt: | | ------------------ | | | Branch (588:1): [True: 0, False: 60.3M] | | ------------------ | | 589| 0| OUT_NODE(AlterSeqStmt, AlterSeqStmt, alter_seq_stmt, ALTER_SEQ_STMT, AlterSeqStmt, alter_seq_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 590| 0| break; | | 591| 129|case T_DefineStmt: | | ------------------ | | | Branch (591:1): [True: 129, False: 60.3M] | | ------------------ | | 592| 129| OUT_NODE(DefineStmt, DefineStmt, define_stmt, DEFINE_STMT, DefineStmt, define_stmt); | | ------------------ | | | | 19| 129| { \ | | | | 20| 129| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 129| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 129| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 129| } | | ------------------ | | 593| 129| break; | | 594| 0|case T_CreateDomainStmt: | | ------------------ | | | Branch (594:1): [True: 0, False: 60.3M] | | ------------------ | | 595| 0| OUT_NODE(CreateDomainStmt, CreateDomainStmt, create_domain_stmt, CREATE_DOMAIN_STMT, CreateDomainStmt, create_domain_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 596| 0| break; | | 597| 0|case T_CreateOpClassStmt: | | ------------------ | | | Branch (597:1): [True: 0, False: 60.3M] | | ------------------ | | 598| 0| OUT_NODE(CreateOpClassStmt, CreateOpClassStmt, create_op_class_stmt, CREATE_OP_CLASS_STMT, CreateOpClassStmt, create_op_class_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 599| 0| break; | | 600| 0|case T_CreateOpClassItem: | | ------------------ | | | Branch (600:1): [True: 0, False: 60.3M] | | ------------------ | | 601| 0| OUT_NODE(CreateOpClassItem, CreateOpClassItem, create_op_class_item, CREATE_OP_CLASS_ITEM, CreateOpClassItem, create_op_class_item); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 602| 0| break; | | 603| 0|case T_CreateOpFamilyStmt: | | ------------------ | | | Branch (603:1): [True: 0, False: 60.3M] | | ------------------ | | 604| 0| OUT_NODE(CreateOpFamilyStmt, CreateOpFamilyStmt, create_op_family_stmt, CREATE_OP_FAMILY_STMT, CreateOpFamilyStmt, create_op_family_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 605| 0| break; | | 606| 0|case T_AlterOpFamilyStmt: | | ------------------ | | | Branch (606:1): [True: 0, False: 60.3M] | | ------------------ | | 607| 0| OUT_NODE(AlterOpFamilyStmt, AlterOpFamilyStmt, alter_op_family_stmt, ALTER_OP_FAMILY_STMT, AlterOpFamilyStmt, alter_op_family_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 608| 0| break; | | 609| 24|case T_DropStmt: | | ------------------ | | | Branch (609:1): [True: 24, False: 60.3M] | | ------------------ | | 610| 24| OUT_NODE(DropStmt, DropStmt, drop_stmt, DROP_STMT, DropStmt, drop_stmt); | | ------------------ | | | | 19| 24| { \ | | | | 20| 24| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 24| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 24| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 24| } | | ------------------ | | 611| 24| break; | | 612| 262|case T_TruncateStmt: | | ------------------ | | | Branch (612:1): [True: 262, False: 60.3M] | | ------------------ | | 613| 262| OUT_NODE(TruncateStmt, TruncateStmt, truncate_stmt, TRUNCATE_STMT, TruncateStmt, truncate_stmt); | | ------------------ | | | | 19| 262| { \ | | | | 20| 262| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 262| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 262| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 262| } | | ------------------ | | 614| 262| break; | | 615| 0|case T_CommentStmt: | | ------------------ | | | Branch (615:1): [True: 0, False: 60.3M] | | ------------------ | | 616| 0| OUT_NODE(CommentStmt, CommentStmt, comment_stmt, COMMENT_STMT, CommentStmt, comment_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 617| 0| break; | | 618| 0|case T_SecLabelStmt: | | ------------------ | | | Branch (618:1): [True: 0, False: 60.3M] | | ------------------ | | 619| 0| OUT_NODE(SecLabelStmt, SecLabelStmt, sec_label_stmt, SEC_LABEL_STMT, SecLabelStmt, sec_label_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 620| 0| break; | | 621| 0|case T_DeclareCursorStmt: | | ------------------ | | | Branch (621:1): [True: 0, False: 60.3M] | | ------------------ | | 622| 0| OUT_NODE(DeclareCursorStmt, DeclareCursorStmt, declare_cursor_stmt, DECLARE_CURSOR_STMT, DeclareCursorStmt, declare_cursor_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 623| 0| break; | | 624| 0|case T_ClosePortalStmt: | | ------------------ | | | Branch (624:1): [True: 0, False: 60.3M] | | ------------------ | | 625| 0| OUT_NODE(ClosePortalStmt, ClosePortalStmt, close_portal_stmt, CLOSE_PORTAL_STMT, ClosePortalStmt, close_portal_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 626| 0| break; | | 627| 162|case T_FetchStmt: | | ------------------ | | | Branch (627:1): [True: 162, False: 60.3M] | | ------------------ | | 628| 162| OUT_NODE(FetchStmt, FetchStmt, fetch_stmt, FETCH_STMT, FetchStmt, fetch_stmt); | | ------------------ | | | | 19| 162| { \ | | | | 20| 162| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 162| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 162| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 162| } | | ------------------ | | 629| 162| break; | | 630| 10|case T_IndexStmt: | | ------------------ | | | Branch (630:1): [True: 10, False: 60.3M] | | ------------------ | | 631| 10| OUT_NODE(IndexStmt, IndexStmt, index_stmt, INDEX_STMT, IndexStmt, index_stmt); | | ------------------ | | | | 19| 10| { \ | | | | 20| 10| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 10| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 10| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 10| } | | ------------------ | | 632| 10| break; | | 633| 0|case T_CreateStatsStmt: | | ------------------ | | | Branch (633:1): [True: 0, False: 60.3M] | | ------------------ | | 634| 0| OUT_NODE(CreateStatsStmt, CreateStatsStmt, create_stats_stmt, CREATE_STATS_STMT, CreateStatsStmt, create_stats_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 635| 0| break; | | 636| 0|case T_StatsElem: | | ------------------ | | | Branch (636:1): [True: 0, False: 60.3M] | | ------------------ | | 637| 0| OUT_NODE(StatsElem, StatsElem, stats_elem, STATS_ELEM, StatsElem, stats_elem); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 638| 0| break; | | 639| 0|case T_AlterStatsStmt: | | ------------------ | | | Branch (639:1): [True: 0, False: 60.3M] | | ------------------ | | 640| 0| OUT_NODE(AlterStatsStmt, AlterStatsStmt, alter_stats_stmt, ALTER_STATS_STMT, AlterStatsStmt, alter_stats_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 641| 0| break; | | 642| 4|case T_CreateFunctionStmt: | | ------------------ | | | Branch (642:1): [True: 4, False: 60.3M] | | ------------------ | | 643| 4| OUT_NODE(CreateFunctionStmt, CreateFunctionStmt, create_function_stmt, CREATE_FUNCTION_STMT, CreateFunctionStmt, create_function_stmt); | | ------------------ | | | | 19| 4| { \ | | | | 20| 4| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 4| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 4| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 4| } | | ------------------ | | 644| 4| break; | | 645| 923k|case T_FunctionParameter: | | ------------------ | | | Branch (645:1): [True: 923k, False: 59.4M] | | ------------------ | | 646| 923k| OUT_NODE(FunctionParameter, FunctionParameter, function_parameter, FUNCTION_PARAMETER, FunctionParameter, function_parameter); | | ------------------ | | | | 19| 923k| { \ | | | | 20| 923k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 923k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 923k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 923k| } | | ------------------ | | 647| 923k| break; | | 648| 83|case T_AlterFunctionStmt: | | ------------------ | | | Branch (648:1): [True: 83, False: 60.3M] | | ------------------ | | 649| 83| OUT_NODE(AlterFunctionStmt, AlterFunctionStmt, alter_function_stmt, ALTER_FUNCTION_STMT, AlterFunctionStmt, alter_function_stmt); | | ------------------ | | | | 19| 83| { \ | | | | 20| 83| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 83| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 83| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 83| } | | ------------------ | | 650| 83| break; | | 651| 152|case T_DoStmt: | | ------------------ | | | Branch (651:1): [True: 152, False: 60.3M] | | ------------------ | | 652| 152| OUT_NODE(DoStmt, DoStmt, do_stmt, DO_STMT, DoStmt, do_stmt); | | ------------------ | | | | 19| 152| { \ | | | | 20| 152| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 152| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 152| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 152| } | | ------------------ | | 653| 152| break; | | 654| 0|case T_InlineCodeBlock: | | ------------------ | | | Branch (654:1): [True: 0, False: 60.3M] | | ------------------ | | 655| 0| OUT_NODE(InlineCodeBlock, InlineCodeBlock, inline_code_block, INLINE_CODE_BLOCK, InlineCodeBlock, inline_code_block); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 656| 0| break; | | 657| 5|case T_CallStmt: | | ------------------ | | | Branch (657:1): [True: 5, False: 60.3M] | | ------------------ | | 658| 5| OUT_NODE(CallStmt, CallStmt, call_stmt, CALL_STMT, CallStmt, call_stmt); | | ------------------ | | | | 19| 5| { \ | | | | 20| 5| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 5| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 5| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 5| } | | ------------------ | | 659| 5| break; | | 660| 0|case T_CallContext: | | ------------------ | | | Branch (660:1): [True: 0, False: 60.3M] | | ------------------ | | 661| 0| OUT_NODE(CallContext, CallContext, call_context, CALL_CONTEXT, CallContext, call_context); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 662| 0| break; | | 663| 303|case T_RenameStmt: | | ------------------ | | | Branch (663:1): [True: 303, False: 60.3M] | | ------------------ | | 664| 303| OUT_NODE(RenameStmt, RenameStmt, rename_stmt, RENAME_STMT, RenameStmt, rename_stmt); | | ------------------ | | | | 19| 303| { \ | | | | 20| 303| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 303| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 303| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 303| } | | ------------------ | | 665| 303| break; | | 666| 0|case T_AlterObjectDependsStmt: | | ------------------ | | | Branch (666:1): [True: 0, False: 60.3M] | | ------------------ | | 667| 0| OUT_NODE(AlterObjectDependsStmt, AlterObjectDependsStmt, alter_object_depends_stmt, ALTER_OBJECT_DEPENDS_STMT, AlterObjectDependsStmt, alter_object_depends_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 668| 0| break; | | 669| 1.36k|case T_AlterObjectSchemaStmt: | | ------------------ | | | Branch (669:1): [True: 1.36k, False: 60.3M] | | ------------------ | | 670| 1.36k| OUT_NODE(AlterObjectSchemaStmt, AlterObjectSchemaStmt, alter_object_schema_stmt, ALTER_OBJECT_SCHEMA_STMT, AlterObjectSchemaStmt, alter_object_schema_stmt); | | ------------------ | | | | 19| 1.36k| { \ | | | | 20| 1.36k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 1.36k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 1.36k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 1.36k| } | | ------------------ | | 671| 1.36k| break; | | 672| 132|case T_AlterOwnerStmt: | | ------------------ | | | Branch (672:1): [True: 132, False: 60.3M] | | ------------------ | | 673| 132| OUT_NODE(AlterOwnerStmt, AlterOwnerStmt, alter_owner_stmt, ALTER_OWNER_STMT, AlterOwnerStmt, alter_owner_stmt); | | ------------------ | | | | 19| 132| { \ | | | | 20| 132| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 132| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 132| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 132| } | | ------------------ | | 674| 132| break; | | 675| 0|case T_AlterOperatorStmt: | | ------------------ | | | Branch (675:1): [True: 0, False: 60.3M] | | ------------------ | | 676| 0| OUT_NODE(AlterOperatorStmt, AlterOperatorStmt, alter_operator_stmt, ALTER_OPERATOR_STMT, AlterOperatorStmt, alter_operator_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 677| 0| break; | | 678| 0|case T_AlterTypeStmt: | | ------------------ | | | Branch (678:1): [True: 0, False: 60.3M] | | ------------------ | | 679| 0| OUT_NODE(AlterTypeStmt, AlterTypeStmt, alter_type_stmt, ALTER_TYPE_STMT, AlterTypeStmt, alter_type_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 680| 0| break; | | 681| 0|case T_RuleStmt: | | ------------------ | | | Branch (681:1): [True: 0, False: 60.3M] | | ------------------ | | 682| 0| OUT_NODE(RuleStmt, RuleStmt, rule_stmt, RULE_STMT, RuleStmt, rule_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 683| 0| break; | | 684| 0|case T_NotifyStmt: | | ------------------ | | | Branch (684:1): [True: 0, False: 60.3M] | | ------------------ | | 685| 0| OUT_NODE(NotifyStmt, NotifyStmt, notify_stmt, NOTIFY_STMT, NotifyStmt, notify_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 686| 0| break; | | 687| 0|case T_ListenStmt: | | ------------------ | | | Branch (687:1): [True: 0, False: 60.3M] | | ------------------ | | 688| 0| OUT_NODE(ListenStmt, ListenStmt, listen_stmt, LISTEN_STMT, ListenStmt, listen_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 689| 0| break; | | 690| 0|case T_UnlistenStmt: | | ------------------ | | | Branch (690:1): [True: 0, False: 60.3M] | | ------------------ | | 691| 0| OUT_NODE(UnlistenStmt, UnlistenStmt, unlisten_stmt, UNLISTEN_STMT, UnlistenStmt, unlisten_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 692| 0| break; | | 693| 42|case T_TransactionStmt: | | ------------------ | | | Branch (693:1): [True: 42, False: 60.3M] | | ------------------ | | 694| 42| OUT_NODE(TransactionStmt, TransactionStmt, transaction_stmt, TRANSACTION_STMT, TransactionStmt, transaction_stmt); | | ------------------ | | | | 19| 42| { \ | | | | 20| 42| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 42| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 42| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 42| } | | ------------------ | | 695| 42| break; | | 696| 903|case T_CompositeTypeStmt: | | ------------------ | | | Branch (696:1): [True: 903, False: 60.3M] | | ------------------ | | 697| 903| OUT_NODE(CompositeTypeStmt, CompositeTypeStmt, composite_type_stmt, COMPOSITE_TYPE_STMT, CompositeTypeStmt, composite_type_stmt); | | ------------------ | | | | 19| 903| { \ | | | | 20| 903| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 903| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 903| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 903| } | | ------------------ | | 698| 903| break; | | 699| 0|case T_CreateEnumStmt: | | ------------------ | | | Branch (699:1): [True: 0, False: 60.3M] | | ------------------ | | 700| 0| OUT_NODE(CreateEnumStmt, CreateEnumStmt, create_enum_stmt, CREATE_ENUM_STMT, CreateEnumStmt, create_enum_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 701| 0| break; | | 702| 0|case T_CreateRangeStmt: | | ------------------ | | | Branch (702:1): [True: 0, False: 60.3M] | | ------------------ | | 703| 0| OUT_NODE(CreateRangeStmt, CreateRangeStmt, create_range_stmt, CREATE_RANGE_STMT, CreateRangeStmt, create_range_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 704| 0| break; | | 705| 0|case T_AlterEnumStmt: | | ------------------ | | | Branch (705:1): [True: 0, False: 60.3M] | | ------------------ | | 706| 0| OUT_NODE(AlterEnumStmt, AlterEnumStmt, alter_enum_stmt, ALTER_ENUM_STMT, AlterEnumStmt, alter_enum_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 707| 0| break; | | 708| 700|case T_ViewStmt: | | ------------------ | | | Branch (708:1): [True: 700, False: 60.3M] | | ------------------ | | 709| 700| OUT_NODE(ViewStmt, ViewStmt, view_stmt, VIEW_STMT, ViewStmt, view_stmt); | | ------------------ | | | | 19| 700| { \ | | | | 20| 700| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 700| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 700| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 700| } | | ------------------ | | 710| 700| break; | | 711| 5|case T_LoadStmt: | | ------------------ | | | Branch (711:1): [True: 5, False: 60.3M] | | ------------------ | | 712| 5| OUT_NODE(LoadStmt, LoadStmt, load_stmt, LOAD_STMT, LoadStmt, load_stmt); | | ------------------ | | | | 19| 5| { \ | | | | 20| 5| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 5| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 5| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 5| } | | ------------------ | | 713| 5| break; | | 714| 3|case T_CreatedbStmt: | | ------------------ | | | Branch (714:1): [True: 3, False: 60.3M] | | ------------------ | | 715| 3| OUT_NODE(CreatedbStmt, CreatedbStmt, createdb_stmt, CREATEDB_STMT, CreatedbStmt, createdb_stmt); | | ------------------ | | | | 19| 3| { \ | | | | 20| 3| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3| } | | ------------------ | | 716| 3| break; | | 717| 586|case T_AlterDatabaseStmt: | | ------------------ | | | Branch (717:1): [True: 586, False: 60.3M] | | ------------------ | | 718| 586| OUT_NODE(AlterDatabaseStmt, AlterDatabaseStmt, alter_database_stmt, ALTER_DATABASE_STMT, AlterDatabaseStmt, alter_database_stmt); | | ------------------ | | | | 19| 586| { \ | | | | 20| 586| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 586| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 586| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 586| } | | ------------------ | | 719| 586| break; | | 720| 0|case T_AlterDatabaseRefreshCollStmt: | | ------------------ | | | Branch (720:1): [True: 0, False: 60.3M] | | ------------------ | | 721| 0| OUT_NODE(AlterDatabaseRefreshCollStmt, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt, ALTER_DATABASE_REFRESH_COLL_STMT, AlterDatabaseRefreshCollStmt, alter_database_refresh_coll_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 722| 0| break; | | 723| 0|case T_AlterDatabaseSetStmt: | | ------------------ | | | Branch (723:1): [True: 0, False: 60.3M] | | ------------------ | | 724| 0| OUT_NODE(AlterDatabaseSetStmt, AlterDatabaseSetStmt, alter_database_set_stmt, ALTER_DATABASE_SET_STMT, AlterDatabaseSetStmt, alter_database_set_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 725| 0| break; | | 726| 0|case T_DropdbStmt: | | ------------------ | | | Branch (726:1): [True: 0, False: 60.3M] | | ------------------ | | 727| 0| OUT_NODE(DropdbStmt, DropdbStmt, dropdb_stmt, DROPDB_STMT, DropdbStmt, dropdb_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 728| 0| break; | | 729| 0|case T_AlterSystemStmt: | | ------------------ | | | Branch (729:1): [True: 0, False: 60.3M] | | ------------------ | | 730| 0| OUT_NODE(AlterSystemStmt, AlterSystemStmt, alter_system_stmt, ALTER_SYSTEM_STMT, AlterSystemStmt, alter_system_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 731| 0| break; | | 732| 0|case T_ClusterStmt: | | ------------------ | | | Branch (732:1): [True: 0, False: 60.3M] | | ------------------ | | 733| 0| OUT_NODE(ClusterStmt, ClusterStmt, cluster_stmt, CLUSTER_STMT, ClusterStmt, cluster_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 734| 0| break; | | 735| 15|case T_VacuumStmt: | | ------------------ | | | Branch (735:1): [True: 15, False: 60.3M] | | ------------------ | | 736| 15| OUT_NODE(VacuumStmt, VacuumStmt, vacuum_stmt, VACUUM_STMT, VacuumStmt, vacuum_stmt); | | ------------------ | | | | 19| 15| { \ | | | | 20| 15| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 15| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 15| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 15| } | | ------------------ | | 737| 15| break; | | 738| 298k|case T_VacuumRelation: | | ------------------ | | | Branch (738:1): [True: 298k, False: 60.0M] | | ------------------ | | 739| 298k| OUT_NODE(VacuumRelation, VacuumRelation, vacuum_relation, VACUUM_RELATION, VacuumRelation, vacuum_relation); | | ------------------ | | | | 19| 298k| { \ | | | | 20| 298k| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 298k| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 298k| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 298k| } | | ------------------ | | 740| 298k| break; | | 741| 3|case T_ExplainStmt: | | ------------------ | | | Branch (741:1): [True: 3, False: 60.3M] | | ------------------ | | 742| 3| OUT_NODE(ExplainStmt, ExplainStmt, explain_stmt, EXPLAIN_STMT, ExplainStmt, explain_stmt); | | ------------------ | | | | 19| 3| { \ | | | | 20| 3| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3| } | | ------------------ | | 743| 3| break; | | 744| 445|case T_CreateTableAsStmt: | | ------------------ | | | Branch (744:1): [True: 445, False: 60.3M] | | ------------------ | | 745| 445| OUT_NODE(CreateTableAsStmt, CreateTableAsStmt, create_table_as_stmt, CREATE_TABLE_AS_STMT, CreateTableAsStmt, create_table_as_stmt); | | ------------------ | | | | 19| 445| { \ | | | | 20| 445| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 445| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 445| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 445| } | | ------------------ | | 746| 445| break; | | 747| 0|case T_RefreshMatViewStmt: | | ------------------ | | | Branch (747:1): [True: 0, False: 60.3M] | | ------------------ | | 748| 0| OUT_NODE(RefreshMatViewStmt, RefreshMatViewStmt, refresh_mat_view_stmt, REFRESH_MAT_VIEW_STMT, RefreshMatViewStmt, refresh_mat_view_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 749| 0| break; | | 750| 0|case T_CheckPointStmt: | | ------------------ | | | Branch (750:1): [True: 0, False: 60.3M] | | ------------------ | | 751| 0| OUT_NODE(CheckPointStmt, CheckPointStmt, check_point_stmt, CHECK_POINT_STMT, CheckPointStmt, check_point_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 752| 0| break; | | 753| 0|case T_DiscardStmt: | | ------------------ | | | Branch (753:1): [True: 0, False: 60.3M] | | ------------------ | | 754| 0| OUT_NODE(DiscardStmt, DiscardStmt, discard_stmt, DISCARD_STMT, DiscardStmt, discard_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 755| 0| break; | | 756| 5|case T_LockStmt: | | ------------------ | | | Branch (756:1): [True: 5, False: 60.3M] | | ------------------ | | 757| 5| OUT_NODE(LockStmt, LockStmt, lock_stmt, LOCK_STMT, LockStmt, lock_stmt); | | ------------------ | | | | 19| 5| { \ | | | | 20| 5| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 5| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 5| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 5| } | | ------------------ | | 758| 5| break; | | 759| 0|case T_ConstraintsSetStmt: | | ------------------ | | | Branch (759:1): [True: 0, False: 60.3M] | | ------------------ | | 760| 0| OUT_NODE(ConstraintsSetStmt, ConstraintsSetStmt, constraints_set_stmt, CONSTRAINTS_SET_STMT, ConstraintsSetStmt, constraints_set_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 761| 0| break; | | 762| 3|case T_ReindexStmt: | | ------------------ | | | Branch (762:1): [True: 3, False: 60.3M] | | ------------------ | | 763| 3| OUT_NODE(ReindexStmt, ReindexStmt, reindex_stmt, REINDEX_STMT, ReindexStmt, reindex_stmt); | | ------------------ | | | | 19| 3| { \ | | | | 20| 3| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 3| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 3| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 3| } | | ------------------ | | 764| 3| break; | | 765| 0|case T_CreateConversionStmt: | | ------------------ | | | Branch (765:1): [True: 0, False: 60.3M] | | ------------------ | | 766| 0| OUT_NODE(CreateConversionStmt, CreateConversionStmt, create_conversion_stmt, CREATE_CONVERSION_STMT, CreateConversionStmt, create_conversion_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 767| 0| break; | | 768| 0|case T_CreateCastStmt: | | ------------------ | | | Branch (768:1): [True: 0, False: 60.3M] | | ------------------ | | 769| 0| OUT_NODE(CreateCastStmt, CreateCastStmt, create_cast_stmt, CREATE_CAST_STMT, CreateCastStmt, create_cast_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 770| 0| break; | | 771| 0|case T_CreateTransformStmt: | | ------------------ | | | Branch (771:1): [True: 0, False: 60.3M] | | ------------------ | | 772| 0| OUT_NODE(CreateTransformStmt, CreateTransformStmt, create_transform_stmt, CREATE_TRANSFORM_STMT, CreateTransformStmt, create_transform_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 773| 0| break; | | 774| 0|case T_PrepareStmt: | | ------------------ | | | Branch (774:1): [True: 0, False: 60.3M] | | ------------------ | | 775| 0| OUT_NODE(PrepareStmt, PrepareStmt, prepare_stmt, PREPARE_STMT, PrepareStmt, prepare_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 776| 0| break; | | 777| 0|case T_ExecuteStmt: | | ------------------ | | | Branch (777:1): [True: 0, False: 60.3M] | | ------------------ | | 778| 0| OUT_NODE(ExecuteStmt, ExecuteStmt, execute_stmt, EXECUTE_STMT, ExecuteStmt, execute_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 779| 0| break; | | 780| 0|case T_DeallocateStmt: | | ------------------ | | | Branch (780:1): [True: 0, False: 60.3M] | | ------------------ | | 781| 0| OUT_NODE(DeallocateStmt, DeallocateStmt, deallocate_stmt, DEALLOCATE_STMT, DeallocateStmt, deallocate_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 782| 0| break; | | 783| 0|case T_DropOwnedStmt: | | ------------------ | | | Branch (783:1): [True: 0, False: 60.3M] | | ------------------ | | 784| 0| OUT_NODE(DropOwnedStmt, DropOwnedStmt, drop_owned_stmt, DROP_OWNED_STMT, DropOwnedStmt, drop_owned_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 785| 0| break; | | 786| 0|case T_ReassignOwnedStmt: | | ------------------ | | | Branch (786:1): [True: 0, False: 60.3M] | | ------------------ | | 787| 0| OUT_NODE(ReassignOwnedStmt, ReassignOwnedStmt, reassign_owned_stmt, REASSIGN_OWNED_STMT, ReassignOwnedStmt, reassign_owned_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 788| 0| break; | | 789| 0|case T_AlterTSDictionaryStmt: | | ------------------ | | | Branch (789:1): [True: 0, False: 60.3M] | | ------------------ | | 790| 0| OUT_NODE(AlterTSDictionaryStmt, AlterTSDictionaryStmt, alter_tsdictionary_stmt, ALTER_TSDICTIONARY_STMT, AlterTSDictionaryStmt, alter_tsdictionary_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 791| 0| break; | | 792| 0|case T_AlterTSConfigurationStmt: | | ------------------ | | | Branch (792:1): [True: 0, False: 60.3M] | | ------------------ | | 793| 0| OUT_NODE(AlterTSConfigurationStmt, AlterTSConfigurationStmt, alter_tsconfiguration_stmt, ALTER_TSCONFIGURATION_STMT, AlterTSConfigurationStmt, alter_tsconfiguration_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 794| 0| break; | | 795| 0|case T_PublicationTable: | | ------------------ | | | Branch (795:1): [True: 0, False: 60.3M] | | ------------------ | | 796| 0| OUT_NODE(PublicationTable, PublicationTable, publication_table, PUBLICATION_TABLE, PublicationTable, publication_table); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 797| 0| break; | | 798| 2.18M|case T_PublicationObjSpec: | | ------------------ | | | Branch (798:1): [True: 2.18M, False: 58.1M] | | ------------------ | | 799| 2.18M| OUT_NODE(PublicationObjSpec, PublicationObjSpec, publication_obj_spec, PUBLICATION_OBJ_SPEC, PublicationObjSpec, publication_obj_spec); | | ------------------ | | | | 19| 2.18M| { \ | | | | 20| 2.18M| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 2.18M| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 2.18M| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 2.18M| } | | ------------------ | | 800| 2.18M| break; | | 801| 151|case T_CreatePublicationStmt: | | ------------------ | | | Branch (801:1): [True: 151, False: 60.3M] | | ------------------ | | 802| 151| OUT_NODE(CreatePublicationStmt, CreatePublicationStmt, create_publication_stmt, CREATE_PUBLICATION_STMT, CreatePublicationStmt, create_publication_stmt); | | ------------------ | | | | 19| 151| { \ | | | | 20| 151| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 151| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 151| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 151| } | | ------------------ | | 803| 151| break; | | 804| 258|case T_AlterPublicationStmt: | | ------------------ | | | Branch (804:1): [True: 258, False: 60.3M] | | ------------------ | | 805| 258| OUT_NODE(AlterPublicationStmt, AlterPublicationStmt, alter_publication_stmt, ALTER_PUBLICATION_STMT, AlterPublicationStmt, alter_publication_stmt); | | ------------------ | | | | 19| 258| { \ | | | | 20| 258| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 258| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 258| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 258| } | | ------------------ | | 806| 258| break; | | 807| 0|case T_CreateSubscriptionStmt: | | ------------------ | | | Branch (807:1): [True: 0, False: 60.3M] | | ------------------ | | 808| 0| OUT_NODE(CreateSubscriptionStmt, CreateSubscriptionStmt, create_subscription_stmt, CREATE_SUBSCRIPTION_STMT, CreateSubscriptionStmt, create_subscription_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 809| 0| break; | | 810| 0|case T_AlterSubscriptionStmt: | | ------------------ | | | Branch (810:1): [True: 0, False: 60.3M] | | ------------------ | | 811| 0| OUT_NODE(AlterSubscriptionStmt, AlterSubscriptionStmt, alter_subscription_stmt, ALTER_SUBSCRIPTION_STMT, AlterSubscriptionStmt, alter_subscription_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 812| 0| break; | | 813| 0|case T_DropSubscriptionStmt: | | ------------------ | | | Branch (813:1): [True: 0, False: 60.3M] | | ------------------ | | 814| 0| OUT_NODE(DropSubscriptionStmt, DropSubscriptionStmt, drop_subscription_stmt, DROP_SUBSCRIPTION_STMT, DropSubscriptionStmt, drop_subscription_stmt); | | ------------------ | | | | 19| 0| { \ | | | | 20| 0| WRITE_NODE_TYPE(CppAsString(typename)); \ | | | | ------------------ | | | | | | 26| 0| appendStringInfoString(out, "\"" nodelabel "\":{") | | | | ------------------ | | | | 21| 0| _out##typename_c(out, (const typename_cast *) obj); \ | | | | 22| 0| } | | ------------------ | | 815| 0| break; ------------------ 319| | 320| 0| default: ------------------ | Branch (320:4): [True: 0, False: 60.3M] ------------------ 321| 0| elog(WARNING, "could not dump unrecognized node type: %d", ------------------ | | 240| 0| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [Folded, False: 0] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [Folded, False: 0] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 322| 0| (int) nodeTag(obj)); 323| | 324| 0| appendStringInfo(out, "}"); 325| 0| return; 326| 60.3M| } 327| 60.1M| removeTrailingDelimiter(out); 328| 60.1M| appendStringInfo(out, "}}"); 329| 60.1M| } 330| 60.3M|} pg_query_outfuncs_json.c:_outInteger: 227| 703k|{ 228| | /* Don't output anything if the value is the default (0), to match 229| | * protobuf's behavior. */ 230| 703k| if (node->ival != 0) ------------------ | Branch (230:6): [True: 515k, False: 187k] ------------------ 231| 515k| appendStringInfo(out, "\"ival\":%d", node->ival); 232| 703k|} pg_query_outfuncs_json.c:_outBoolean: 236| 1.93k|{ 237| 1.93k| appendStringInfo(out, "\"boolval\":%s", booltostr(node->boolval)); ------------------ | | 3| 1.93k|#define booltostr(x) ((x) ? "true" : "false") | | ------------------ | | | Branch (3:23): [True: 550, False: 1.38k] | | ------------------ ------------------ 238| 1.93k|} pg_query_outfuncs_json.c:_outFloat: 242| 14.2k|{ 243| 14.2k| appendStringInfo(out, "\"fval\":"); 244| 14.2k| _outToken(out, node->fval); 245| 14.2k|} pg_query_outfuncs_json.c:_outString: 249| 27.0M|{ 250| 27.0M| appendStringInfo(out, "\"sval\":"); 251| 27.0M| _outToken(out, node->sval); 252| 27.0M|} pg_query_outfuncs_json.c:_outBitString: 256| 478|{ 257| 478| appendStringInfo(out, "\"bsval\":"); 258| 478| _outToken(out, node->bsval); 259| 478|} pg_query_outfuncs_json.c:_outList: 164| 136k|{ 165| 136k| const ListCell *lc; 166| | 167| 136k| appendStringInfo(out, "\"items\":"); 168| 136k| appendStringInfoChar(out, '['); 169| | 170| 136k| foreach(lc, node) ------------------ | | 374| 136k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 396k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 792k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 259k, False: 136k] | | | Branch (375:5): [True: 396k, False: 0] | | ------------------ | | 376| 396k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 259k, False: 136k] | | ------------------ | | 377| 396k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 396k| (cell = NULL, false); \ | | 379| 259k| cell##__state.i++) ------------------ 171| 259k| { 172| 259k| if (lfirst(lc) == NULL) ------------------ | | 172| 259k|#define lfirst(lc) ((lc)->ptr_value) ------------------ | Branch (172:7): [True: 121k, False: 137k] ------------------ 173| 121k| appendStringInfoString(out, "{}"); 174| 137k| else 175| 137k| _outNode(out, lfirst(lc)); ------------------ | | 172| 137k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 176| | 177| 259k| if (lnext(node, lc)) ------------------ | Branch (177:7): [True: 122k, False: 136k] ------------------ 178| 122k| appendStringInfoString(out, ","); 179| 259k| } 180| | 181| 136k| appendStringInfoChar(out, ']'); 182| 136k| appendStringInfo(out, ","); 183| 136k|} pg_query_outfuncs_json.c:_outAConst: 263| 1.42M|{ 264| 1.42M| if (node->isnull) { ------------------ | Branch (264:6): [True: 116k, False: 1.30M] ------------------ 265| 116k| appendStringInfo(out, "\"isnull\":true"); 266| 1.30M| } else { 267| 1.30M| switch (node->val.node.type) { 268| 700k| case T_Integer: ------------------ | Branch (268:4): [True: 700k, False: 603k] ------------------ 269| 700k| appendStringInfoString(out, "\"ival\":{"); 270| 700k| _outInteger(out, &node->val.ival); 271| 700k| appendStringInfoChar(out, '}'); 272| 700k| break; 273| 9.13k| case T_Float: ------------------ | Branch (273:4): [True: 9.13k, False: 1.29M] ------------------ 274| 9.13k| appendStringInfoString(out, "\"fval\":{"); 275| 9.13k| _outFloat(out, &node->val.fval); 276| 9.13k| appendStringInfoChar(out, '}'); 277| 9.13k| break; 278| 6.87k| case T_Boolean: ------------------ | Branch (278:4): [True: 6.87k, False: 1.29M] ------------------ 279| 6.87k| appendStringInfo(out, "\"boolval\":{%s}", node->val.boolval.boolval ? "\"boolval\":true" : ""); ------------------ | Branch (279:47): [True: 4.60k, False: 2.26k] ------------------ 280| 6.87k| break; 281| 586k| case T_String: ------------------ | Branch (281:4): [True: 586k, False: 717k] ------------------ 282| 586k| appendStringInfoString(out, "\"sval\":{"); 283| 586k| _outString(out, &node->val.sval); 284| 586k| appendStringInfoChar(out, '}'); 285| 586k| break; 286| 478| case T_BitString: ------------------ | Branch (286:4): [True: 478, False: 1.30M] ------------------ 287| 478| appendStringInfoString(out, "\"bsval\":{"); 288| 478| _outBitString(out, &node->val.bsval); 289| 478| appendStringInfoChar(out, '}'); 290| 478| break; 291| | 292| | // Unreachable, A_Const cannot contain any other nodes. 293| 0| default: ------------------ | Branch (293:4): [True: 0, False: 1.30M] ------------------ 294| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 295| 1.30M| } 296| 1.30M| } 297| | 298| 1.42M| appendStringInfo(out, ",\"location\":%d", node->location); 299| 1.42M|} pg_query_raw_parse: 13| 1.07k|{ 14| 1.07k| PgQueryInternalParsetreeAndError result = {0}; 15| 1.07k| MemoryContext parse_context = CurrentMemoryContext; 16| | 17| 1.07k| char stderr_buffer[STDERR_BUFFER_LEN + 1] = {0}; 18| |#ifndef DEBUG 19| | int stderr_global; 20| | int stderr_pipe[2]; 21| |#endif 22| | 23| |#ifndef DEBUG 24| | // Setup pipe for stderr redirection 25| | if (pipe(stderr_pipe) != 0) { 26| | PgQueryError* error = malloc(sizeof(PgQueryError)); 27| | 28| | error->message = strdup("Failed to open pipe, too many open file descriptors") 29| | 30| | result.error = error; 31| | 32| | return result; 33| | } 34| | 35| | fcntl(stderr_pipe[0], F_SETFL, fcntl(stderr_pipe[0], F_GETFL) | O_NONBLOCK); 36| | 37| | // Redirect stderr to the pipe 38| | stderr_global = dup(STDERR_FILENO); 39| | dup2(stderr_pipe[1], STDERR_FILENO); 40| | close(stderr_pipe[1]); 41| |#endif 42| | 43| 1.07k| PG_TRY(); ------------------ | | 386| 1.07k| do { \ | | 387| 1.07k| sigjmp_buf *_save_exception_stack##__VA_ARGS__ = PG_exception_stack; \ | | 388| 1.07k| ErrorContextCallback *_save_context_stack##__VA_ARGS__ = error_context_stack; \ | | 389| 1.07k| sigjmp_buf _local_sigjmp_buf##__VA_ARGS__; \ | | 390| 1.07k| bool _do_rethrow##__VA_ARGS__ = false; \ | | 391| 1.07k| if (sigsetjmp(_local_sigjmp_buf##__VA_ARGS__, 0) == 0) \ | | ------------------ | | | Branch (391:7): [True: 1.07k, False: 0] | | ------------------ | | 392| 1.07k| { \ | | 393| 1.07k| PG_exception_stack = &_local_sigjmp_buf##__VA_ARGS__ ------------------ 44| 1.07k| { 45| 1.07k| RawParseMode rawParseMode = RAW_PARSE_DEFAULT; 46| 1.07k| switch (parser_options & PG_QUERY_PARSE_MODE_BITMASK) ------------------ | | 123| 1.07k|#define PG_QUERY_PARSE_MODE_BITMASK ((1 << PG_QUERY_PARSE_MODE_BITS) - 1) | | ------------------ | | | | 122| 1.07k|#define PG_QUERY_PARSE_MODE_BITS 4 | | ------------------ ------------------ | Branch (46:11): [True: 0, False: 1.07k] ------------------ 47| 1.07k| { 48| 0| case PG_QUERY_PARSE_TYPE_NAME: ------------------ | Branch (48:4): [True: 0, False: 1.07k] ------------------ 49| 0| rawParseMode = RAW_PARSE_TYPE_NAME; 50| 0| break; 51| 0| case PG_QUERY_PARSE_PLPGSQL_EXPR: ------------------ | Branch (51:4): [True: 0, False: 1.07k] ------------------ 52| 0| rawParseMode = RAW_PARSE_PLPGSQL_EXPR; 53| 0| break; 54| 0| case PG_QUERY_PARSE_PLPGSQL_ASSIGN1: ------------------ | Branch (54:4): [True: 0, False: 1.07k] ------------------ 55| 0| rawParseMode = RAW_PARSE_PLPGSQL_ASSIGN1; 56| 0| break; 57| 0| case PG_QUERY_PARSE_PLPGSQL_ASSIGN2: ------------------ | Branch (57:4): [True: 0, False: 1.07k] ------------------ 58| 0| rawParseMode = RAW_PARSE_PLPGSQL_ASSIGN2; 59| 0| break; 60| 0| case PG_QUERY_PARSE_PLPGSQL_ASSIGN3: ------------------ | Branch (60:4): [True: 0, False: 1.07k] ------------------ 61| 0| rawParseMode = RAW_PARSE_PLPGSQL_ASSIGN3; 62| 0| break; 63| 1.07k| } 64| | 65| 1.07k| if ((parser_options & PG_QUERY_DISABLE_BACKSLASH_QUOTE) == PG_QUERY_DISABLE_BACKSLASH_QUOTE) { ------------------ | | 125| 1.07k|#define PG_QUERY_DISABLE_BACKSLASH_QUOTE 16 // backslash_quote = off (default is safe_encoding, which is effectively on) ------------------ if ((parser_options & PG_QUERY_DISABLE_BACKSLASH_QUOTE) == PG_QUERY_DISABLE_BACKSLASH_QUOTE) { ------------------ | | 125| 1.07k|#define PG_QUERY_DISABLE_BACKSLASH_QUOTE 16 // backslash_quote = off (default is safe_encoding, which is effectively on) ------------------ | Branch (65:7): [True: 0, False: 1.07k] ------------------ 66| 0| backslash_quote = BACKSLASH_QUOTE_OFF; 67| 1.07k| } else { 68| 1.07k| backslash_quote = BACKSLASH_QUOTE_SAFE_ENCODING; 69| 1.07k| } 70| 1.07k| standard_conforming_strings = !((parser_options & PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS) == PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS); ------------------ | | 126| 1.07k|#define PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS 32 // standard_conforming_strings = off (default is on) ------------------ standard_conforming_strings = !((parser_options & PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS) == PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS); ------------------ | | 126| 1.07k|#define PG_QUERY_DISABLE_STANDARD_CONFORMING_STRINGS 32 // standard_conforming_strings = off (default is on) ------------------ 71| 1.07k| escape_string_warning = !((parser_options & PG_QUERY_DISABLE_ESCAPE_STRING_WARNING) == PG_QUERY_DISABLE_ESCAPE_STRING_WARNING); ------------------ | | 127| 1.07k|#define PG_QUERY_DISABLE_ESCAPE_STRING_WARNING 64 // escape_string_warning = off (default is on) ------------------ escape_string_warning = !((parser_options & PG_QUERY_DISABLE_ESCAPE_STRING_WARNING) == PG_QUERY_DISABLE_ESCAPE_STRING_WARNING); ------------------ | | 127| 1.07k|#define PG_QUERY_DISABLE_ESCAPE_STRING_WARNING 64 // escape_string_warning = off (default is on) ------------------ 72| | 73| 1.07k| result.tree = raw_parser(input, rawParseMode); 74| | 75| 1.07k| backslash_quote = BACKSLASH_QUOTE_SAFE_ENCODING; 76| 1.07k| standard_conforming_strings = true; 77| 1.07k| escape_string_warning = true; 78| | 79| |#ifndef DEBUG 80| | // Save stderr for result 81| | read(stderr_pipe[0], stderr_buffer, STDERR_BUFFER_LEN); 82| |#endif 83| | 84| 1.07k| result.stderr_buffer = strdup(stderr_buffer); 85| 1.07k| } 86| 1.07k| PG_CATCH(); ------------------ | | 396| 1.07k| } \ | | 397| 1.07k| else \ | | 398| 1.07k| { \ | | 399| 0| PG_exception_stack = _save_exception_stack##__VA_ARGS__; \ | | 400| 0| error_context_stack = _save_context_stack##__VA_ARGS__ ------------------ 87| 0| { 88| 0| ErrorData* error_data; 89| 0| PgQueryError* error; 90| | 91| 0| MemoryContextSwitchTo(parse_context); 92| 0| error_data = CopyErrorData(); 93| | 94| | // Note: This is intentionally malloc so exiting the memory context doesn't free this 95| 0| error = malloc(sizeof(PgQueryError)); 96| 0| error->message = strdup(error_data->message); 97| 0| error->filename = strdup(error_data->filename); 98| 0| error->funcname = strdup(error_data->funcname); 99| 0| error->context = NULL; 100| 0| error->lineno = error_data->lineno; 101| 0| error->cursorpos = error_data->cursorpos; 102| | 103| 0| result.error = error; 104| 0| FlushErrorState(); 105| 0| } 106| 0| PG_END_TRY(); ------------------ | | 411| 0| } \ | | 412| 1.07k| if (_do_rethrow##__VA_ARGS__) \ | | ------------------ | | | Branch (412:7): [True: 0, False: 1.07k] | | ------------------ | | 413| 1.07k| PG_RE_THROW(); \ | | ------------------ | | | | 419| 0| pg_re_throw() | | ------------------ | | 414| 1.07k| PG_exception_stack = _save_exception_stack##__VA_ARGS__; \ | | 415| 1.07k| error_context_stack = _save_context_stack##__VA_ARGS__; \ | | 416| 1.07k| } while (0) | | ------------------ | | | Branch (416:11): [Folded, False: 1.07k] | | ------------------ ------------------ 107| | 108| |#ifndef DEBUG 109| | // Restore stderr, close pipe 110| | dup2(stderr_global, STDERR_FILENO); 111| | close(stderr_pipe[0]); 112| | close(stderr_global); 113| |#endif 114| | 115| 1.07k| return result; 116| 1.07k|} pg_query_parse: 119| 1.07k|{ 120| 1.07k| return pg_query_parse_opts(input, PG_QUERY_PARSE_DEFAULT); 121| 1.07k|} pg_query_parse_opts: 124| 1.07k|{ 125| 1.07k| MemoryContext ctx = NULL; 126| 1.07k| PgQueryInternalParsetreeAndError parsetree_and_error; 127| 1.07k| PgQueryParseResult result = {0}; 128| 1.07k| char *tree_json = NULL; 129| | 130| 1.07k| ctx = pg_query_enter_memory_context(); 131| | 132| 1.07k| parsetree_and_error = pg_query_raw_parse(input, parser_options); 133| | 134| | // These are all malloc-ed and will survive exiting the memory context, the caller is responsible to free them now 135| 1.07k| result.stderr_buffer = parsetree_and_error.stderr_buffer; 136| 1.07k| result.error = parsetree_and_error.error; 137| | 138| 1.07k| if (result.error != NULL) ------------------ | Branch (138:6): [True: 574, False: 504] ------------------ 139| 574| { 140| 574| pg_query_exit_memory_context(ctx); 141| 574| return result; 142| 574| } 143| | 144| | /* 145| | * Serialize the tree to JSON. This walks the parse tree recursively and 146| | * may throw (e.g. "stack depth limit exceeded" for deeply nested 147| | * expressions), so it needs its own error handling. 148| | */ 149| 504| PG_TRY(); ------------------ | | 386| 504| do { \ | | 387| 504| sigjmp_buf *_save_exception_stack##__VA_ARGS__ = PG_exception_stack; \ | | 388| 504| ErrorContextCallback *_save_context_stack##__VA_ARGS__ = error_context_stack; \ | | 389| 504| sigjmp_buf _local_sigjmp_buf##__VA_ARGS__; \ | | 390| 504| bool _do_rethrow##__VA_ARGS__ = false; \ | | 391| 504| if (sigsetjmp(_local_sigjmp_buf##__VA_ARGS__, 0) == 0) \ | | ------------------ | | | Branch (391:7): [True: 504, False: 0] | | ------------------ | | 392| 504| { \ | | 393| 504| PG_exception_stack = &_local_sigjmp_buf##__VA_ARGS__ ------------------ 150| 504| { 151| 504| tree_json = pg_query_nodes_to_json(parsetree_and_error.tree); 152| 504| result.parse_tree = strdup(tree_json); 153| 504| pfree(tree_json); 154| 504| } 155| 504| PG_CATCH(); ------------------ | | 396| 504| } \ | | 397| 504| else \ | | 398| 504| { \ | | 399| 0| PG_exception_stack = _save_exception_stack##__VA_ARGS__; \ | | 400| 0| error_context_stack = _save_context_stack##__VA_ARGS__ ------------------ 156| 0| { 157| 0| ErrorData* error_data; 158| 0| PgQueryError* error; 159| | 160| 0| MemoryContextSwitchTo(ctx); 161| 0| error_data = CopyErrorData(); 162| | 163| | // Note: This is intentionally malloc so exiting the memory context doesn't free this 164| 0| error = malloc(sizeof(PgQueryError)); 165| 0| error->message = strdup(error_data->message); 166| 0| error->filename = strdup(error_data->filename); 167| 0| error->funcname = strdup(error_data->funcname); 168| 0| error->context = NULL; 169| 0| error->lineno = error_data->lineno; 170| 0| error->cursorpos = error_data->cursorpos; 171| | 172| 0| result.error = error; 173| 0| FlushErrorState(); 174| 0| } 175| 0| PG_END_TRY(); ------------------ | | 411| 0| } \ | | 412| 504| if (_do_rethrow##__VA_ARGS__) \ | | ------------------ | | | Branch (412:7): [True: 0, False: 504] | | ------------------ | | 413| 504| PG_RE_THROW(); \ | | ------------------ | | | | 419| 0| pg_re_throw() | | ------------------ | | 414| 504| PG_exception_stack = _save_exception_stack##__VA_ARGS__; \ | | 415| 504| error_context_stack = _save_context_stack##__VA_ARGS__; \ | | 416| 504| } while (0) | | ------------------ | | | Branch (416:11): [Folded, False: 504] | | ------------------ ------------------ 176| | 177| 504| pg_query_exit_memory_context(ctx); 178| | 179| 504| return result; 180| 1.07k|} pg_query_free_parse_result: 245| 1.07k|{ 246| 1.07k| if (result.error) { ------------------ | Branch (246:6): [True: 584, False: 494] ------------------ 247| 584| pg_query_free_error(result.error); 248| 584| } 249| | 250| 1.07k| free(result.parse_tree); 251| 1.07k| free(result.stderr_buffer); 252| 1.07k|} src_backend_parser_scan.c:GetScanKeyword: 40| 651k|{ 41| 651k| return keywords->kw_string + keywords->kw_offsets[n]; 42| 651k|} src_common_kwlookup.c:GetScanKeyword: 40| 6.26M|{ 41| 6.26M| return keywords->kw_string + keywords->kw_offsets[n]; 42| 6.26M|} src_common_keywords.c:ScanKeywords_hash_func: 1021| 15.7M|{ 1022| 15.7M| static const int16 h[989] = { 1023| 15.7M| 80, 32767, 734, 447, 183, 170, 93, 32767, 1024| 15.7M| 0, 173, 53, 224, -72, -78, 0, 578, 1025| 15.7M| 163, 32767, 32767, 0, 32767, 0, 49, 0, 1026| 15.7M| 32767, 0, 32767, 32767, 214, 32767, -103, 32767, 1027| 15.7M| 32767, -109, 0, 63, -233, 32767, -234, 146, 1028| 15.7M| 32767, 32767, 344, 32767, 32767, 0, 40, 8, 1029| 15.7M| 0, 321, 32767, 262, 527, 32767, -45, -38, 1030| 15.7M| 98, 217, -343, 264, 32767, 184, 32767, 643, 1031| 15.7M| 32767, 182, 32767, 32767, 32767, 32767, 32767, 326, 1032| 15.7M| 0, 0, 0, 300, 477, 32767, 371, 32767, 1033| 15.7M| 110, 275, 149, 32767, 32767, 116, 32767, 439, 1034| 15.7M| 183, 32767, -150, 130, 289, 32767, 392, 32767, 1035| 15.7M| 261, 471, 281, 335, 411, 32767, 32767, -372, 1036| 15.7M| 32767, 0, 0, 32767, 32767, 0, 121, 435, 1037| 15.7M| -329, 32767, 9, 37, 34, 32767, 32767, 32767, 1038| 15.7M| 32767, 32767, 187, 32767, 0, 32767, 182, 401, 1039| 15.7M| 53, 32767, 48, 32767, 32767, 0, 540, 527, 1040| 15.7M| 137, 32767, 289, 151, 31, 32767, 32767, -145, 1041| 15.7M| 429, 0, 288, -340, 32767, 301, 0, 32767, 1042| 15.7M| 32767, 0, 32767, 32767, 32767, 469, -139, 454, 1043| 15.7M| 32767, 32767, 226, -466, 32767, 32767, 0, 412, 1044| 15.7M| 326, 32767, 250, -73, 0, 282, 294, -348, 1045| 15.7M| 32767, -385, 446, 32767, 0, 862, 32767, -392, 1046| 15.7M| 79, 168, 32767, 343, 0, 156, 32767, -47, 1047| 15.7M| -6, 32767, 32767, 324, 32767, 0, 0, 393, 1048| 15.7M| 32767, 449, 354, 357, 37, 90, 207, 32767, 1049| 15.7M| 46, 32767, 32767, 505, 127, 221, 167, 32767, 1050| 15.7M| 28, 32767, 0, 119, 282, 32767, 32767, 0, 1051| 15.7M| 32767, 297, 437, 32767, 609, 0, 286, 32767, 1052| 15.7M| 32767, 100, 371, 32767, 32767, -674, 484, 734, 1053| 15.7M| 32767, 334, 335, 32767, -214, 0, 85, 252, 1054| 15.7M| 32767, 84, 32767, 8, 160, 428, 186, 0, 1055| 15.7M| 32767, 462, 23, 121, 32767, 32767, 0, 220, 1056| 15.7M| 32767, 259, 32767, 32767, 32767, -169, 435, 32767, 1057| 15.7M| -631, 32767, 32767, -223, 32767, 185, 32767, -300, 1058| 15.7M| 432, 493, 32767, 32767, 191, 356, 110, 101, 1059| 15.7M| 32767, 522, 32767, 32767, 0, 240, 561, 469, 1060| 15.7M| 0, 229, 248, 751, 32767, 32767, 32767, 0, 1061| 15.7M| 32767, 32767, 32767, 401, 32767, 32767, 270, 32767, 1062| 15.7M| 32767, 470, 337, 0, -351, 0, 245, 18, 1063| 15.7M| 24, 32767, -125, 0, 32767, 114, 0, 146, 1064| 15.7M| 32767, 333, 467, 0, -65, 193, 32767, 180, 1065| 15.7M| 0, -196, 229, 32767, 324, 387, 32767, 418, 1066| 15.7M| 100, 32767, 32767, 0, 32767, 32767, 30, -359, 1067| 15.7M| 32767, 107, 164, 32767, 457, 32767, 265, 32767, 1068| 15.7M| -116, 5, -47, 32767, -223, 413, 355, 32767, 1069| 15.7M| 237, 0, 0, -210, 32767, 698, 264, 283, 1070| 15.7M| 36, 0, 32767, 133, 504, -8, 32767, 0, 1071| 15.7M| 176, 32767, 0, 32767, 32767, 0, 198, 32767, 1072| 15.7M| -413, 225, 32767, -91, 32767, 205, 0, 482, 1073| 15.7M| 445, 32767, 0, 391, -76, 32767, 32767, 515, 1074| 15.7M| 312, 32767, 0, 306, 32767, -239, 32767, 69, 1075| 15.7M| 402, 0, 300, 32767, 32767, 4, 32767, -204, 1076| 15.7M| 319, 440, 32767, 68, 32767, 83, 203, 25, 1077| 15.7M| 32767, 32767, 32767, 32767, 236, 110, 215, 123, 1078| 15.7M| 32767, 288, 142, -131, 247, 32767, 32767, 32767, 1079| 15.7M| 32767, 10, 32767, 454, 49, 230, 43, 0, 1080| 15.7M| 271, 32767, 450, 337, 32767, 222, 86, 479, 1081| 15.7M| 32767, 32767, 44, -59, 0, -300, 32767, -306, 1082| 15.7M| 32767, 32767, 153, -188, 0, 32767, 32767, 242, 1083| 15.7M| 681, 32767, 32767, -158, 32767, 436, 284, 117, 1084| 15.7M| 238, 0, 32767, 0, 32767, -314, 0, 32767, 1085| 15.7M| 32767, 116, -475, 32767, 482, 32767, 20, 32767, 1086| 15.7M| -671, 32767, 471, 359, 0, -419, 216, 32767, 1087| 15.7M| 92, 541, -15, 32767, 459, 460, -104, 32767, 1088| 15.7M| 442, 354, 0, 227, -341, 411, 312, 32767, 1089| 15.7M| -163, -19, 0, 571, 32767, 32767, 32767, 207, 1090| 15.7M| 236, 402, 0, 32767, 9, 414, 32767, 272, 1091| 15.7M| 88, 168, 32767, 32767, -128, 32767, 32767, 32767, 1092| 15.7M| 460, -289, 32767, 32767, 0, 32767, 183, -104, 1093| 15.7M| 32767, 32767, 32767, 179, 32767, 32767, 32767, 32767, 1094| 15.7M| 32767, 32767, 32767, 32767, 304, 226, 0, 81, 1095| 15.7M| 32767, 141, 32767, -96, -6, 230, 39, 395, 1096| 15.7M| -237, 32767, 0, -70, -122, 349, 107, 276, 1097| 15.7M| 0, 770, 270, 159, 32767, 101, 86, 118, 1098| 15.7M| -407, 32767, 427, 5, 234, 254, 32767, 0, 1099| 15.7M| 218, 32767, 0, 32767, 32767, 32767, 150, 78, 1100| 15.7M| 32767, -53, 32767, 128, 32767, 405, -223, 32767, 1101| 15.7M| 370, -31, 32767, 216, 2, 45, 32767, 32767, 1102| 15.7M| 32767, 379, 98, 360, 240, 32767, 212, 260, 1103| 15.7M| 32767, -316, 391, 32767, -54, 0, 7, 0, 1104| 15.7M| 363, 0, 438, 0, 206, 0, 317, 32767, 1105| 15.7M| -290, 32767, 167, 32767, 159, 419, 32767, 421, 1106| 15.7M| 204, 0, 251, 32767, 32767, 32767, 485, 0, 1107| 15.7M| 32767, -41, 341, 464, 376, -27, 313, 0, 1108| 15.7M| 32767, 198, 32767, -129, 439, 491, 32767, 32767, 1109| 15.7M| 0, -178, 0, 32767, -339, 226, 32767, 543, 1110| 15.7M| 32767, 311, 0, 0, -120, 0, 0, 0, 1111| 15.7M| -245, 32767, 0, 32767, -121, 32767, -148, 32767, 1112| 15.7M| 423, 239, 32767, 32767, 217, 189, 32767, 0, 1113| 15.7M| 0, -202, 0, 32767, 0, 284, 0, 32767, 1114| 15.7M| 79, 175, -41, 61, 244, 0, 0, 32767, 1115| 15.7M| 32767, 32767, 32767, 0, 32767, 550, 160, 145, 1116| 15.7M| 32767, 32767, 470, 32767, 172, -282, 89, 32767, 1117| 15.7M| 32767, -98, 0, 32767, 0, 0, 188, 100, 1118| 15.7M| 386, 32767, 32767, 32767, 472, 32767, 300, 32767, 1119| 15.7M| 32767, 0, 32767, -235, 32767, -170, 32767, 0, 1120| 15.7M| 0, 0, 0, 32767, 141, -71, 0, 0, 1121| 15.7M| 32767, 32767, 0, 32767, 32767, 489, 474, 0, 1122| 15.7M| 177, 0, -255, 184, 266, 32767, 0, 32767, 1123| 15.7M| 32767, 32767, 32767, 356, 338, 237, 32767, 0, 1124| 15.7M| 32767, 89, 388, 0, 0, 32767, 255, 41, 1125| 15.7M| 32767, -14, 287, 32767, -163, 244, -355, -161, 1126| 15.7M| -1, 406, 506, 0, 475, 119, 305, 32767, 1127| 15.7M| 360, 0, 280, 32767, 32767, 32767, -108, 249, 1128| 15.7M| 374, 32767, 32767, 0, 123, 0, 32767, 32767, 1129| 15.7M| 420, 316, 0, 32767, 32767, -549, 0, 136, 1130| 15.7M| 21, 32767, 133, 32767, 0, 32767, 0, -9, 1131| 15.7M| -483, 110, 32767, 74, 0, 32767, 32767, 32767, 1132| 15.7M| 32767, 0, 0, 32767, 103, 32767, 32767, 315, 1133| 15.7M| 0, -390, 0, 32767, 32767, 150, 0, -58, 1134| 15.7M| 32767, -270, 76, 0, 79, 275, 0, 0, 1135| 15.7M| -100, 0, 0, 785, 0, 243, 0, 32767, 1136| 15.7M| 32767, -223, 595, 217, -108, 0, 231, 0, 1137| 15.7M| -342, 32767, 32767, 32767, -24, 32767, 32767, 32767, 1138| 15.7M| 147, 0, 32767, 135, 0, 32767, 300, 32767, 1139| 15.7M| -3, 32767, 0, 32767, 32767, 88, 0, 32767, 1140| 15.7M| 407, 60, -186, 169, 32767, 0, 0, 234, 1141| 15.7M| 179, 290, 0, 32767, 32767, 295, 330, -2, 1142| 15.7M| 32767, -22, 32767, 32767, 0, 96, 157, 0, 1143| 15.7M| 0, 0, 314, 473, 32767, 32767, 0, 32767, 1144| 15.7M| 32767, 410, 426, 328, 32767, 32767, 213, 32767, 1145| 15.7M| 0, 32767, 166, 298, 32767, 0, 0, 32767, 1146| 15.7M| 19, 32767, 81, 0, 32767 1147| 15.7M| }; 1148| | 1149| 15.7M| const unsigned char *k = (const unsigned char *) key; 1150| 15.7M| uint32 a = 0; 1151| 15.7M| uint32 b = 0; 1152| | 1153| 40.4M| while (keylen--) ------------------ | Branch (1153:9): [True: 24.7M, False: 15.7M] ------------------ 1154| 24.7M| { 1155| 24.7M| unsigned char c = *k++ | 0x20; 1156| | 1157| 24.7M| a = a * 257 + c; 1158| 24.7M| b = b * 17 + c; 1159| 24.7M| } 1160| 15.7M| return h[a % 989] + h[b % 989]; 1161| 15.7M|} src_backend_parser_parser.c:is_valid_unicode_codepoint: 536| 414|{ 537| 414| return (c > 0 && c <= 0x10FFFF); ------------------ | Branch (537:10): [True: 413, False: 1] | Branch (537:19): [True: 410, False: 3] ------------------ 538| 414|} src_backend_parser_parser.c:is_utf16_surrogate_second: 548| 410|{ 549| 410| return (c >= 0xDC00 && c <= 0xDFFF); ------------------ | Branch (549:10): [True: 183, False: 227] | Branch (549:25): [True: 31, False: 152] ------------------ 550| 410|} src_backend_parser_parser.c:surrogate_pair_to_codepoint: 554| 31|{ 555| 31| return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF); 556| 31|} src_backend_parser_parser.c:is_utf16_surrogate_first: 542| 409|{ 543| 409| return (c >= 0xD800 && c <= 0xDBFF); ------------------ | Branch (543:10): [True: 215, False: 194] | Branch (543:25): [True: 32, False: 183] ------------------ 544| 409|} src_backend_utils_mb_mbutils.c:unicode_to_utf8: 592| 869|{ 593| 869| if (c <= 0x7F) ------------------ | Branch (593:6): [True: 0, False: 869] ------------------ 594| 0| { 595| 0| utf8string[0] = c; 596| 0| } 597| 869| else if (c <= 0x7FF) ------------------ | Branch (597:11): [True: 138, False: 731] ------------------ 598| 138| { 599| 138| utf8string[0] = 0xC0 | ((c >> 6) & 0x1F); 600| 138| utf8string[1] = 0x80 | (c & 0x3F); 601| 138| } 602| 731| else if (c <= 0xFFFF) ------------------ | Branch (602:11): [True: 693, False: 38] ------------------ 603| 693| { 604| 693| utf8string[0] = 0xE0 | ((c >> 12) & 0x0F); 605| 693| utf8string[1] = 0x80 | ((c >> 6) & 0x3F); 606| 693| utf8string[2] = 0x80 | (c & 0x3F); 607| 693| } 608| 38| else 609| 38| { 610| 38| utf8string[0] = 0xF0 | ((c >> 18) & 0x07); 611| 38| utf8string[1] = 0x80 | ((c >> 12) & 0x3F); 612| 38| utf8string[2] = 0x80 | ((c >> 6) & 0x3F); 613| 38| utf8string[3] = 0x80 | (c & 0x3F); 614| 38| } 615| | 616| 869| return utf8string; 617| 869|} src_backend_utils_mb_mbutils.c:is_valid_unicode_codepoint: 536| 883|{ 537| 883| return (c > 0 && c <= 0x10FFFF); ------------------ | Branch (537:10): [True: 883, False: 0] | Branch (537:19): [True: 883, False: 0] ------------------ 538| 883|} src_backend_parser_scan.c:is_utf16_surrogate_first: 542| 506|{ 543| 506| return (c >= 0xD800 && c <= 0xDBFF); ------------------ | Branch (543:10): [True: 156, False: 350] | Branch (543:25): [True: 1, False: 155] ------------------ 544| 506|} src_backend_parser_scan.c:is_utf16_surrogate_second: 548| 506|{ 549| 506| return (c >= 0xDC00 && c <= 0xDFFF); ------------------ | Branch (549:10): [True: 156, False: 350] | Branch (549:25): [True: 1, False: 155] ------------------ 550| 506|} src_backend_parser_scan.c:surrogate_pair_to_codepoint: 554| 1|{ 555| 1| return ((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF); 556| 1|} src_backend_parser_scan.c:is_valid_unicode_codepoint: 536| 506|{ 537| 506| return (c > 0 && c <= 0x10FFFF); ------------------ | Branch (537:10): [True: 506, False: 0] | Branch (537:19): [True: 506, False: 0] ------------------ 538| 506|} src_backend_parser_gram.c:newNode: 151| 12.7M|{ 152| 12.7M| Node *result; 153| | 154| 12.7M| Assert(size >= sizeof(Node)); /* need the tag, at least */ ------------------ | | 844| 12.7M|#define Assert(condition) ((void)true) ------------------ 155| 12.7M| result = (Node *) palloc0(size); 156| 12.7M| result->type = tag; 157| | 158| 12.7M| return result; 159| 12.7M|} src_backend_nodes_value.c:newNode: 151| 13.2M|{ 152| 13.2M| Node *result; 153| | 154| 13.2M| Assert(size >= sizeof(Node)); /* need the tag, at least */ ------------------ | | 844| 13.2M|#define Assert(condition) ((void)true) ------------------ 155| 13.2M| result = (Node *) palloc0(size); 156| 13.2M| result->type = tag; 157| | 158| 13.2M| return result; 159| 13.2M|} src_backend_nodes_makefuncs.c:newNode: 151| 11.4M|{ 152| 11.4M| Node *result; 153| | 154| 11.4M| Assert(size >= sizeof(Node)); /* need the tag, at least */ ------------------ | | 844| 11.4M|#define Assert(condition) ((void)true) ------------------ 155| 11.4M| result = (Node *) palloc0(size); 156| 11.4M| result->type = tag; 157| | 158| 11.4M| return result; 159| 11.4M|} pg_query_outfuncs_json.c:lnext: 344| 38.2M|{ 345| 38.2M| Assert(c >= &l->elements[0] && c < &l->elements[l->length]); ------------------ | | 844| 38.2M|#define Assert(condition) ((void)true) ------------------ 346| 38.2M| c++; 347| 38.2M| if (c < &l->elements[l->length]) ------------------ | Branch (347:6): [True: 15.3M, False: 22.8M] ------------------ 348| 15.3M| return (ListCell *) c; 349| 22.8M| else 350| 22.8M| return NULL; 351| 38.2M|} src_backend_parser_gram.c:list_last_cell: 289| 61.4k|{ 290| | Assert(list != NIL); ------------------ | | 844| 61.4k|#define Assert(condition) ((void)true) ------------------ 291| 61.4k| return &list->elements[list->length - 1]; 292| 61.4k|} src_backend_parser_gram.c:list_nth_cell: 278| 14.2k|{ 279| 14.2k| Assert(list != NIL); ------------------ | | 844| 14.2k|#define Assert(condition) ((void)true) ------------------ 280| | Assert(n >= 0 && n < list->length); ------------------ | | 844| 14.2k|#define Assert(condition) ((void)true) ------------------ 281| 14.2k| return &list->elements[n]; 282| 14.2k|} src_backend_parser_gram.c:list_length: 153| 8.84k|{ 154| 8.84k| return l ? l->length : 0; ------------------ | Branch (154:9): [True: 8.84k, False: 0] ------------------ 155| 8.84k|} src_backend_parser_gram.c:lnext: 344| 162|{ 345| 162| Assert(c >= &l->elements[0] && c < &l->elements[l->length]); ------------------ | | 844| 162|#define Assert(condition) ((void)true) ------------------ 346| 162| c++; 347| 162| if (c < &l->elements[l->length]) ------------------ | Branch (347:6): [True: 24, False: 138] ------------------ 348| 24| return (ListCell *) c; 349| 138| else 350| 138| return NULL; 351| 162|} src_backend_catalog_namespace.c:list_head: 129| 849k|{ 130| 849k| return l ? &l->elements[0] : NULL; ------------------ | Branch (130:9): [True: 849k, False: 0] ------------------ 131| 849k|} src_backend_nodes_list.c:list_last_cell: 289| 13.2M|{ 290| | Assert(list != NIL); ------------------ | | 844| 13.2M|#define Assert(condition) ((void)true) ------------------ 291| 13.2M| return &list->elements[list->length - 1]; 292| 13.2M|} src_backend_nodes_list.c:list_nth_cell: 278| 3.96M|{ 279| 3.96M| Assert(list != NIL); ------------------ | | 844| 3.96M|#define Assert(condition) ((void)true) ------------------ 280| | Assert(n >= 0 && n < list->length); ------------------ | | 844| 3.96M|#define Assert(condition) ((void)true) ------------------ 281| 3.96M| return &list->elements[n]; 282| 3.96M|} src_backend_nodes_list.c:list_length: 153| 134|{ 154| 134| return l ? l->length : 0; ------------------ | Branch (154:9): [True: 134, False: 0] ------------------ 155| 134|} src_backend_parser_scan.c:pg_nextpower2_32: 190| 765|{ 191| 765| Assert(num > 0 && num <= PG_UINT32_MAX / 2 + 1); ------------------ | | 844| 765|#define Assert(condition) ((void)true) ------------------ 192| | 193| | /* 194| | * A power 2 number has only 1 bit set. Subtracting 1 from such a number 195| | * will turn on all previous bits resulting in no common bits being set 196| | * between num and num-1. 197| | */ 198| 765| if ((num & (num - 1)) == 0) ------------------ | Branch (198:6): [True: 20, False: 745] ------------------ 199| 20| return num; /* already power 2 */ 200| | 201| 745| return ((uint32) 1) << (pg_leftmost_one_pos32(num) + 1); 202| 765|} src_backend_parser_scan.c:pg_leftmost_one_pos32: 42| 745|{ 43| 745|#ifdef HAVE__BUILTIN_CLZ 44| 745| Assert(word != 0); ------------------ | | 844| 745|#define Assert(condition) ((void)true) ------------------ 45| | 46| 745| return 31 - __builtin_clz(word); 47| |#elif defined(_MSC_VER) 48| | unsigned long result; 49| | bool non_zero; 50| | 51| | Assert(word != 0); 52| | 53| | non_zero = _BitScanReverse(&result, word); 54| | return (int) result; 55| |#else 56| | int shift = 32 - 8; 57| | 58| | Assert(word != 0); 59| | 60| | while ((word >> shift) == 0) 61| | shift -= 8; 62| | 63| | return shift + pg_leftmost_one_pos[(word >> shift) & 255]; 64| |#endif /* HAVE__BUILTIN_CLZ */ 65| 745|} src_backend_utils_mmgr_aset.c:pg_leftmost_one_pos32: 42| 47.8M|{ 43| 47.8M|#ifdef HAVE__BUILTIN_CLZ 44| 47.8M| Assert(word != 0); ------------------ | | 844| 47.8M|#define Assert(condition) ((void)true) ------------------ 45| | 46| 47.8M| return 31 - __builtin_clz(word); 47| |#elif defined(_MSC_VER) 48| | unsigned long result; 49| | bool non_zero; 50| | 51| | Assert(word != 0); 52| | 53| | non_zero = _BitScanReverse(&result, word); 54| | return (int) result; 55| |#else 56| | int shift = 32 - 8; 57| | 58| | Assert(word != 0); 59| | 60| | while ((word >> shift) == 0) 61| | shift -= 8; 62| | 63| | return shift + pg_leftmost_one_pos[(word >> shift) & 255]; 64| |#endif /* HAVE__BUILTIN_CLZ */ 65| 47.8M|} src_backend_nodes_list.c:pg_nextpower2_32: 190| 9.85M|{ 191| 9.85M| Assert(num > 0 && num <= PG_UINT32_MAX / 2 + 1); ------------------ | | 844| 9.85M|#define Assert(condition) ((void)true) ------------------ 192| | 193| | /* 194| | * A power 2 number has only 1 bit set. Subtracting 1 from such a number 195| | * will turn on all previous bits resulting in no common bits being set 196| | * between num and num-1. 197| | */ 198| 9.85M| if ((num & (num - 1)) == 0) ------------------ | Branch (198:6): [True: 9.82M, False: 24.6k] ------------------ 199| 9.82M| return num; /* already power 2 */ 200| | 201| 24.6k| return ((uint32) 1) << (pg_leftmost_one_pos32(num) + 1); 202| 9.85M|} src_backend_nodes_list.c:pg_leftmost_one_pos32: 42| 24.6k|{ 43| 24.6k|#ifdef HAVE__BUILTIN_CLZ 44| 24.6k| Assert(word != 0); ------------------ | | 844| 24.6k|#define Assert(condition) ((void)true) ------------------ 45| | 46| 24.6k| return 31 - __builtin_clz(word); 47| |#elif defined(_MSC_VER) 48| | unsigned long result; 49| | bool non_zero; 50| | 51| | Assert(word != 0); 52| | 53| | non_zero = _BitScanReverse(&result, word); 54| | return (int) result; 55| |#else 56| | int shift = 32 - 8; 57| | 58| | Assert(word != 0); 59| | 60| | while ((word >> shift) == 0) 61| | shift -= 8; 62| | 63| | return shift + pg_leftmost_one_pos[(word >> shift) & 255]; 64| |#endif /* HAVE__BUILTIN_CLZ */ 65| 24.6k|} src_common_wchar.c:vector8_broadcast: 136| 23.4k|{ 137| 23.4k|#if defined(USE_SSE2) 138| 23.4k| return _mm_set1_epi8(c); 139| |#elif defined(USE_NEON) 140| | return vdupq_n_u8(c); 141| |#else 142| | return ~UINT64CONST(0) / 0xFF * c; 143| |#endif 144| 23.4k|} src_common_wchar.c:vector8_load: 109| 15.6k|{ 110| 15.6k|#if defined(USE_SSE2) 111| 15.6k| *v = _mm_loadu_si128((const __m128i *) s); 112| |#elif defined(USE_NEON) 113| | *v = vld1q_u8(s); 114| |#else 115| | memcpy(v, s, sizeof(Vector8)); 116| |#endif 117| 15.6k|} src_common_wchar.c:vector8_or: 339| 31.2k|{ 340| 31.2k|#ifdef USE_SSE2 341| 31.2k| return _mm_or_si128(v1, v2); 342| |#elif defined(USE_NEON) 343| | return vorrq_u8(v1, v2); 344| |#else 345| | return v1 | v2; 346| |#endif 347| 31.2k|} src_common_wchar.c:vector8_eq: 386| 15.6k|{ 387| 15.6k|#ifdef USE_SSE2 388| 15.6k| return _mm_cmpeq_epi8(v1, v2); 389| |#elif defined(USE_NEON) 390| | return vceqq_u8(v1, v2); 391| |#endif 392| 15.6k|} src_common_wchar.c:vector8_is_highbit_set: 272| 7.80k|{ 273| 7.80k|#ifdef USE_SSE2 274| 7.80k| return _mm_movemask_epi8(v) != 0; 275| |#elif defined(USE_NEON) 276| | return vmaxvq_u8(v) > 0x7F; 277| |#else 278| | return v & vector8_broadcast(0x80); 279| |#endif 280| 7.80k|} src_common_wchar.c:is_valid_ascii: 26| 7.80k|{ 27| 7.80k| const unsigned char *const s_end = s + len; 28| 7.80k| Vector8 chunk; 29| 7.80k| Vector8 highbit_cum = vector8_broadcast(0); 30| |#ifdef USE_NO_SIMD 31| | Vector8 zero_cum = vector8_broadcast(0x80); 32| |#endif 33| | 34| 7.80k| Assert(len % sizeof(chunk) == 0); ------------------ | | 844| 7.80k|#define Assert(condition) ((void)true) ------------------ 35| | 36| 23.4k| while (s < s_end) ------------------ | Branch (36:9): [True: 15.6k, False: 7.80k] ------------------ 37| 15.6k| { 38| 15.6k| vector8_load(&chunk, s); 39| | 40| | /* Capture any zero bytes in this chunk. */ 41| |#ifdef USE_NO_SIMD 42| | 43| | /* 44| | * First, add 0x7f to each byte. This sets the high bit in each byte, 45| | * unless it was a zero. If any resulting high bits are zero, the 46| | * corresponding high bits in the zero accumulator will be cleared. 47| | * 48| | * If none of the bytes in the chunk had the high bit set, the max 49| | * value each byte can have after the addition is 0x7f + 0x7f = 0xfe, 50| | * and we don't need to worry about carrying over to the next byte. If 51| | * any input bytes did have the high bit set, it doesn't matter 52| | * because we check for those separately. 53| | */ 54| | zero_cum &= (chunk + vector8_broadcast(0x7F)); 55| |#else 56| | 57| | /* 58| | * Set all bits in each lane of the highbit accumulator where input 59| | * bytes are zero. 60| | */ 61| 15.6k| highbit_cum = vector8_or(highbit_cum, 62| 15.6k| vector8_eq(chunk, vector8_broadcast(0))); 63| 15.6k|#endif 64| | 65| | /* Capture all set bits in this chunk. */ 66| 15.6k| highbit_cum = vector8_or(highbit_cum, chunk); 67| | 68| 15.6k| s += sizeof(chunk); 69| 15.6k| } 70| | 71| | /* Check if any high bits in the high bit accumulator got set. */ 72| 7.80k| if (vector8_is_highbit_set(highbit_cum)) ------------------ | Branch (72:6): [True: 757, False: 7.04k] ------------------ 73| 757| return false; 74| | 75| |#ifdef USE_NO_SIMD 76| | /* Check if any high bits in the zero accumulator got cleared. */ 77| | if (zero_cum != vector8_broadcast(0x80)) 78| | return false; 79| |#endif 80| | 81| 7.04k| return true; 82| 7.80k|} src_backend_utils_mmgr_aset.c:MemoryContextCheckSize: 168| 8.71k|{ 169| 8.71k| if (unlikely(!AllocSizeIsValid(size))) ------------------ | | 361| 8.71k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 8.71k] | | ------------------ ------------------ 170| 0| { 171| 0| if (!(flags & MCXT_ALLOC_HUGE) || !AllocHugeSizeIsValid(size)) ------------------ | | 64| 0|#define MCXT_ALLOC_HUGE 0x01 /* allow huge allocation (> 1 GB) */ ------------------ if (!(flags & MCXT_ALLOC_HUGE) || !AllocHugeSizeIsValid(size)) ------------------ | | 49| 0|#define AllocHugeSizeIsValid(size) ((Size) (size) <= MaxAllocHugeSize) | | ------------------ | | | | 45| 0|#define MaxAllocHugeSize (SIZE_MAX / 2) | | ------------------ ------------------ | Branch (171:7): [True: 0, False: 0] | Branch (171:37): [True: 0, False: 0] ------------------ 172| 0| MemoryContextSizeFailure(context, size, flags); 173| 0| } 174| 8.71k|} src_backend_utils_mmgr_aset.c:MemoryChunkSetHdrMaskExternal: 192| 4.28k|{ 193| 4.28k| Assert((int) methodid <= MEMORY_CONTEXT_METHODID_MASK); ------------------ | | 844| 4.28k|#define Assert(condition) ((void)true) ------------------ 194| | 195| 4.28k| chunk->hdrmask = MEMORYCHUNK_MAGIC | (((uint64) 1) << MEMORYCHUNK_EXTERNAL_BASEBIT) | ------------------ | | 120| 4.28k|#define MEMORYCHUNK_MAGIC (UINT64CONST(0xB1A8DB858EB6EFBA) >> \ | | ------------------ | | | | 534| 4.28k|#define UINT64CONST(x) UINT64_C(x) | | ------------------ | | 121| 4.28k| MEMORYCHUNK_VALUE_BASEBIT << \ | | ------------------ | | | | 112| 4.28k|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | | | ------------------ | | | | | | 111| 4.28k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | | | ------------------ | | | | | | | | 145| 4.28k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 122| 4.28k| MEMORYCHUNK_VALUE_BASEBIT) | | ------------------ | | | | 112| 4.28k|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | | | ------------------ | | | | | | 111| 4.28k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | | | ------------------ | | | | | | | | 145| 4.28k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ chunk->hdrmask = MEMORYCHUNK_MAGIC | (((uint64) 1) << MEMORYCHUNK_EXTERNAL_BASEBIT) | ------------------ | | 111| 4.28k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | ------------------ | | | | 145| 4.28k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | ------------------ ------------------ 196| 4.28k| methodid; 197| 4.28k|} src_backend_utils_mmgr_aset.c:MemoryChunkSetHdrMask: 171| 63.8M|{ 172| 63.8M| Size blockoffset = (char *) chunk - (char *) block; 173| | 174| 63.8M| Assert((char *) chunk >= (char *) block); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 175| 63.8M| Assert((blockoffset & MEMORYCHUNK_BLOCKOFFSET_MASK) == blockoffset); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 176| 63.8M| Assert(value <= MEMORYCHUNK_MAX_VALUE); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 177| 63.8M| Assert((int) methodid <= MEMORY_CONTEXT_METHODID_MASK); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 178| | 179| 63.8M| chunk->hdrmask = (((uint64) blockoffset) << MEMORYCHUNK_BLOCKOFFSET_BASEBIT) | ------------------ | | 113| 63.8M|#define MEMORYCHUNK_BLOCKOFFSET_BASEBIT (MEMORYCHUNK_VALUE_BASEBIT + 29) | | ------------------ | | | | 112| 63.8M|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | | | ------------------ | | | | | | 111| 63.8M|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | | | ------------------ | | | | | | | | 145| 63.8M|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 180| 63.8M| (((uint64) value) << MEMORYCHUNK_VALUE_BASEBIT) | ------------------ | | 112| 63.8M|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | ------------------ | | | | 111| 63.8M|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | ------------------ | | | | | | 145| 63.8M|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | ------------------ | | ------------------ ------------------ 181| 63.8M| methodid; 182| 63.8M|} src_backend_utils_mmgr_aset.c:MemoryChunkIsExternal: 205| 74.4k|{ 206| | /* 207| | * External chunks should always store MEMORYCHUNK_MAGIC in the upper 208| | * portion of the hdrmask, check that nothing has stomped on that. 209| | */ 210| 74.4k| Assert(!HdrMaskIsExternal(chunk->hdrmask) || ------------------ | | 844| 74.4k|#define Assert(condition) ((void)true) ------------------ 211| 74.4k| HdrMaskCheckMagic(chunk->hdrmask)); 212| | 213| 74.4k| return HdrMaskIsExternal(chunk->hdrmask); ------------------ | | 143| 74.4k| ((hdrmask) & (((uint64) 1) << MEMORYCHUNK_EXTERNAL_BASEBIT)) | | ------------------ | | | | 111| 74.4k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | ------------------ | | | | | | 145| 74.4k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | ------------------ | | ------------------ ------------------ 214| 74.4k|} src_backend_utils_mmgr_aset.c:MemoryChunkGetBlock: 236| 68.7k|{ 237| 68.7k| Assert(!HdrMaskIsExternal(chunk->hdrmask)); ------------------ | | 844| 68.7k|#define Assert(condition) ((void)true) ------------------ 238| | 239| | return (void *) ((char *) chunk - HdrMaskBlockOffset(chunk->hdrmask)); ------------------ | | 152| 68.7k| (((hdrmask) >> MEMORYCHUNK_BLOCKOFFSET_BASEBIT) & MEMORYCHUNK_BLOCKOFFSET_MASK) | | ------------------ | | | | 113| 68.7k|#define MEMORYCHUNK_BLOCKOFFSET_BASEBIT (MEMORYCHUNK_VALUE_BASEBIT + 29) | | | | ------------------ | | | | | | 112| 68.7k|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | | | | | ------------------ | | | | | | | | 111| 68.7k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | | | | | ------------------ | | | | | | | | | | 145| 68.7k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | | | | | ------------------ | | | | | | ------------------ | | | | ------------------ | | ------------------ | | (((hdrmask) >> MEMORYCHUNK_BLOCKOFFSET_BASEBIT) & MEMORYCHUNK_BLOCKOFFSET_MASK) | | ------------------ | | | | 108| 68.7k|#define MEMORYCHUNK_BLOCKOFFSET_MASK UINT64CONST(0x3FFFFFFE) | | | | ------------------ | | | | | | 534| 68.7k|#define UINT64CONST(x) UINT64_C(x) | | | | ------------------ | | ------------------ ------------------ 240| 68.7k|} src_backend_utils_mmgr_aset.c:MemoryChunkGetValue: 223| 54.7k|{ 224| 54.7k| Assert(!HdrMaskIsExternal(chunk->hdrmask)); ------------------ | | 844| 54.7k|#define Assert(condition) ((void)true) ------------------ 225| | 226| | return HdrMaskGetValue(chunk->hdrmask); ------------------ | | 145| 54.7k| (((hdrmask) >> MEMORYCHUNK_VALUE_BASEBIT) & MEMORYCHUNK_MAX_VALUE) | | ------------------ | | | | 112| 54.7k|#define MEMORYCHUNK_VALUE_BASEBIT (MEMORYCHUNK_EXTERNAL_BASEBIT + 1) | | | | ------------------ | | | | | | 111| 54.7k|#define MEMORYCHUNK_EXTERNAL_BASEBIT MEMORY_CONTEXT_METHODID_BITS | | | | | | ------------------ | | | | | | | | 145| 54.7k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | | | | | ------------------ | | | | ------------------ | | ------------------ | | (((hdrmask) >> MEMORYCHUNK_VALUE_BASEBIT) & MEMORYCHUNK_MAX_VALUE) | | ------------------ | | | | 96| 54.7k|#define MEMORYCHUNK_MAX_VALUE UINT64CONST(0x3FFFFFFF) | | | | ------------------ | | | | | | 534| 54.7k|#define UINT64CONST(x) UINT64_C(x) | | | | ------------------ | | ------------------ ------------------ 227| 54.7k|} pg_query_parse.c:MemoryContextSwitchTo: 139| 584|{ 140| 584| MemoryContext old = CurrentMemoryContext; 141| | 142| 584| CurrentMemoryContext = context; 143| 584| return old; 144| 584|} src_backend_utils_error_elog.c:MemoryContextSwitchTo: 139| 1.83k|{ 140| 1.83k| MemoryContext old = CurrentMemoryContext; 141| | 142| 1.83k| CurrentMemoryContext = context; 143| 1.83k| return old; 144| 1.83k|} pg_query.c:MemoryContextSwitchTo: 139| 2.15k|{ 140| 2.15k| MemoryContext old = CurrentMemoryContext; 141| | 142| 2.15k| CurrentMemoryContext = context; 143| 2.15k| return old; 144| 2.15k|} NameListToString: 1069| 5.53k|{ 1070| 5.53k| StringInfoData string; 1071| 5.53k| ListCell *l; 1072| | 1073| 5.53k| initStringInfo(&string); 1074| | 1075| 5.53k| foreach(l, names) ------------------ | | 374| 5.53k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 854k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 1.70M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 849k, False: 5.53k] | | | Branch (375:5): [True: 854k, False: 0] | | ------------------ | | 376| 854k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 849k, False: 5.53k] | | ------------------ | | 377| 854k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 854k| (cell = NULL, false); \ | | 379| 849k| cell##__state.i++) ------------------ 1076| 849k| { 1077| 849k| Node *name = (Node *) lfirst(l); ------------------ | | 172| 849k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 1078| | 1079| 849k| if (l != list_head(names)) ------------------ | Branch (1079:7): [True: 843k, False: 5.53k] ------------------ 1080| 843k| appendStringInfoChar(&string, '.'); 1081| | 1082| 849k| if (IsA(name, String)) ------------------ | | 164| 849k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 849k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 849k, False: 0] | | ------------------ ------------------ 1083| 849k| appendStringInfoString(&string, strVal(name)); ------------------ | | 82| 849k|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 849k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 1084| 0| else if (IsA(name, A_Star)) ------------------ | | 164| 0|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 0|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 0] | | ------------------ ------------------ 1085| 0| appendStringInfoChar(&string, '*'); 1086| 0| else 1087| 0| elog(ERROR, "unexpected node type in name list: %d", ------------------ | | 240| 0| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1088| 849k| (int) nodeTag(name)); 1089| 849k| } 1090| | 1091| 5.53k| return string.data; 1092| 5.53k|} list_make1_impl: 266| 5.84M|{ 267| 5.84M| List *list = new_list(t, 1); 268| | 269| 5.84M| list->elements[0] = datum1; 270| 5.84M| check_list_invariants(list); ------------------ | | 109| 5.84M|#define check_list_invariants(l) ((void) 0) ------------------ 271| 5.84M| return list; 272| 5.84M|} list_make2_impl: 276| 15.2k|{ 277| 15.2k| List *list = new_list(t, 2); 278| | 279| 15.2k| list->elements[0] = datum1; 280| 15.2k| list->elements[1] = datum2; 281| 15.2k| check_list_invariants(list); ------------------ | | 109| 15.2k|#define check_list_invariants(l) ((void) 0) ------------------ 282| 15.2k| return list; 283| 15.2k|} lappend: 356| 13.2M|{ 357| 13.2M| Assert(IsPointerList(list)); ------------------ | | 844| 13.2M|#define Assert(condition) ((void)true) ------------------ 358| | 359| 13.2M| if (list == NIL) ------------------ | | 68| 13.2M|#define NIL ((List *) NULL) ------------------ | Branch (359:6): [True: 7.97k, False: 13.2M] ------------------ 360| 7.97k| list = new_list(T_List, 1); 361| 13.2M| else 362| 13.2M| new_tail_cell(list); 363| | 364| 13.2M| llast(list) = datum; ------------------ | | 198| 13.2M|#define llast(l) lfirst(list_last_cell(l)) | | ------------------ | | | | 172| 13.2M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 365| 13.2M| check_list_invariants(list); ------------------ | | 109| 13.2M|#define check_list_invariants(l) ((void) 0) ------------------ 366| 13.2M| return list; 367| 13.2M|} lcons: 462| 3.96M|{ 463| 3.96M| Assert(IsPointerList(list)); ------------------ | | 844| 3.96M|#define Assert(condition) ((void)true) ------------------ 464| | 465| 3.96M| if (list == NIL) ------------------ | | 68| 3.96M|#define NIL ((List *) NULL) ------------------ | Branch (465:6): [True: 3.94M, False: 23.8k] ------------------ 466| 3.94M| list = new_list(T_List, 1); 467| 23.8k| else 468| 23.8k| new_head_cell(list); 469| | 470| 3.96M| linitial(list) = datum; ------------------ | | 178| 3.96M|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 3.96M|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 471| 3.96M| check_list_invariants(list); ------------------ | | 109| 3.96M|#define check_list_invariants(l) ((void) 0) ------------------ 472| 3.96M| return list; 473| 3.96M|} list_concat: 502| 6.00k|{ 503| 6.00k| int new_len; 504| | 505| 6.00k| if (list1 == NIL) ------------------ | | 68| 6.00k|#define NIL ((List *) NULL) ------------------ | Branch (505:6): [True: 4.85k, False: 1.14k] ------------------ 506| 4.85k| return list_copy(list2); 507| 1.14k| if (list2 == NIL) ------------------ | | 68| 1.14k|#define NIL ((List *) NULL) ------------------ | Branch (507:6): [True: 129, False: 1.02k] ------------------ 508| 129| return list1; 509| | 510| 1.02k| Assert(list1->type == list2->type); ------------------ | | 844| 1.02k|#define Assert(condition) ((void)true) ------------------ 511| | 512| 1.02k| new_len = list1->length + list2->length; 513| | /* Enlarge array if necessary */ 514| 1.02k| if (new_len > list1->max_length) ------------------ | Branch (514:6): [True: 751, False: 269] ------------------ 515| 751| enlarge_list(list1, new_len); 516| | 517| | /* Even if list1 == list2, using memcpy should be safe here */ 518| 1.02k| memcpy(&list1->elements[list1->length], &list2->elements[0], 519| 1.02k| list2->length * sizeof(ListCell)); 520| 1.02k| list1->length = new_len; 521| | 522| 1.02k| check_list_invariants(list1); ------------------ | | 109| 1.02k|#define check_list_invariants(l) ((void) 0) ------------------ 523| 1.02k| return list1; 524| 1.14k|} list_truncate: 550| 134|{ 551| 134| if (new_size <= 0) ------------------ | Branch (551:6): [True: 0, False: 134] ------------------ 552| 0| return NIL; /* truncate to zero length */ ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 553| | 554| | /* If asked to effectively extend the list, do nothing */ 555| 134| if (new_size < list_length(list)) ------------------ | Branch (555:6): [True: 134, False: 0] ------------------ 556| 134| list->length = new_size; 557| | 558| | /* 559| | * Note: unlike the individual-list-cell deletion functions, we don't move 560| | * the list cells to new storage, even in DEBUG_LIST_MEMORY_USAGE mode. 561| | * This is because none of them can move in this operation, so just like 562| | * in the old cons-cell-based implementation, this function doesn't 563| | * invalidate any pointers to cells of the list. This is also the reason 564| | * for not wiping the memory of the deleted cells: the old code didn't 565| | * free them either. Perhaps later we'll tighten this up. 566| | */ 567| | 568| 134| return list; 569| 134|} list_delete_nth_cell: 611| 131|{ 612| 131| check_list_invariants(list); ------------------ | | 109| 131|#define check_list_invariants(l) ((void) 0) ------------------ 613| | 614| 131| Assert(n >= 0 && n < list->length); ------------------ | | 844| 131|#define Assert(condition) ((void)true) ------------------ 615| | 616| | /* 617| | * If we're about to delete the last node from the list, free the whole 618| | * list instead and return NIL, which is the only valid representation of 619| | * a zero-length list. 620| | */ 621| 131| if (list->length == 1) ------------------ | Branch (621:6): [True: 0, False: 131] ------------------ 622| 0| { 623| 0| list_free(list); 624| 0| return NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 625| 0| } 626| | 627| | /* 628| | * Otherwise, we normally just collapse out the removed element. But for 629| | * debugging purposes, move the whole list contents someplace else. 630| | * 631| | * (Note that we *must* keep the contents in the same memory context.) 632| | */ 633| 131|#ifndef DEBUG_LIST_MEMORY_USAGE 634| 131| memmove(&list->elements[n], &list->elements[n + 1], 635| 131| (list->length - 1 - n) * sizeof(ListCell)); 636| 131| list->length--; 637| |#else 638| | { 639| | ListCell *newelems; 640| | int newmaxlen = list->length - 1; 641| | 642| | newelems = (ListCell *) 643| | MemoryContextAlloc(GetMemoryChunkContext(list), 644| | newmaxlen * sizeof(ListCell)); 645| | memcpy(newelems, list->elements, n * sizeof(ListCell)); 646| | memcpy(&newelems[n], &list->elements[n + 1], 647| | (list->length - 1 - n) * sizeof(ListCell)); 648| | if (list->elements != list->initial_elements) 649| | pfree(list->elements); 650| | else 651| | { 652| | /* 653| | * As in enlarge_list(), clear the initial_elements[] space and/or 654| | * mark it inaccessible. 655| | */ 656| |#ifdef CLOBBER_FREED_MEMORY 657| | wipe_mem(list->initial_elements, 658| | list->max_length * sizeof(ListCell)); 659| |#else 660| | VALGRIND_MAKE_MEM_NOACCESS(list->initial_elements, 661| | list->max_length * sizeof(ListCell)); 662| |#endif 663| | } 664| | list->elements = newelems; 665| | list->max_length = newmaxlen; 666| | list->length--; 667| | check_list_invariants(list); 668| | } 669| |#endif 670| | 671| 131| return list; 672| 131|} list_copy: 972| 4.85k|{ 973| 4.85k| List *newlist; 974| | 975| 4.85k| if (oldlist == NIL) ------------------ | | 68| 4.85k|#define NIL ((List *) NULL) ------------------ | Branch (975:6): [True: 3.10k, False: 1.75k] ------------------ 976| 3.10k| return NIL; ------------------ | | 68| 3.10k|#define NIL ((List *) NULL) ------------------ 977| | 978| 1.75k| newlist = new_list(oldlist->type, oldlist->length); 979| 1.75k| memcpy(newlist->elements, oldlist->elements, 980| 1.75k| newlist->length * sizeof(ListCell)); 981| | 982| 1.75k| check_list_invariants(newlist); ------------------ | | 109| 1.75k|#define check_list_invariants(l) ((void) 0) ------------------ 983| 1.75k| return newlist; 984| 4.85k|} list_copy_tail: 997| 153|{ 998| 153| List *newlist; 999| | 1000| 153| if (nskip < 0) ------------------ | Branch (1000:6): [True: 0, False: 153] ------------------ 1001| 0| nskip = 0; /* would it be better to elog? */ 1002| | 1003| 153| if (oldlist == NIL || nskip >= oldlist->length) ------------------ | | 68| 306|#define NIL ((List *) NULL) ------------------ | Branch (1003:6): [True: 0, False: 153] | Branch (1003:24): [True: 0, False: 153] ------------------ 1004| 0| return NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 1005| | 1006| 153| newlist = new_list(oldlist->type, oldlist->length - nskip); 1007| 153| memcpy(newlist->elements, &oldlist->elements[nskip], 1008| 153| newlist->length * sizeof(ListCell)); 1009| | 1010| 153| check_list_invariants(newlist); ------------------ | | 109| 153|#define check_list_invariants(l) ((void) 0) ------------------ 1011| 153| return newlist; 1012| 153|} src_backend_nodes_list.c:new_list: 121| 9.81M|{ 122| 9.81M| List *newlist; 123| 9.81M| int max_size; 124| | 125| 9.81M| Assert(min_size > 0); ------------------ | | 844| 9.81M|#define Assert(condition) ((void)true) ------------------ 126| | 127| | /* 128| | * We allocate all the requested cells, and possibly some more, as part of 129| | * the same palloc request as the List header. This is a big win for the 130| | * typical case of short fixed-length lists. It can lose if we allocate a 131| | * moderately long list and then it gets extended; we'll be wasting more 132| | * initial_elements[] space than if we'd made the header small. However, 133| | * rounding up the request as we do in the normal code path provides some 134| | * defense against small extensions. 135| | */ 136| | 137| 9.81M|#ifndef DEBUG_LIST_MEMORY_USAGE 138| | 139| | /* 140| | * Normally, we set up a list with some extra cells, to allow it to grow 141| | * without a repalloc. Prefer cell counts chosen to make the total 142| | * allocation a power-of-2, since palloc would round it up to that anyway. 143| | * (That stops being true for very large allocations, but very long lists 144| | * are infrequent, so it doesn't seem worth special logic for such cases.) 145| | * 146| | * The minimum allocation is 8 ListCell units, providing either 4 or 5 147| | * available ListCells depending on the machine's word width. Counting 148| | * palloc's overhead, this uses the same amount of space as a one-cell 149| | * list did in the old implementation, and less space for any longer list. 150| | * 151| | * We needn't worry about integer overflow; no caller passes min_size 152| | * that's more than twice the size of an existing list, so the size limits 153| | * within palloc will ensure that we don't overflow here. 154| | */ 155| 9.81M| max_size = pg_nextpower2_32(Max(8, min_size + LIST_HEADER_OVERHEAD)); ------------------ | | 984| 9.81M|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 9.81M, False: 338] | | ------------------ ------------------ 156| 9.81M| max_size -= LIST_HEADER_OVERHEAD; ------------------ | | 78| 9.81M| ((int) ((offsetof(List, initial_elements) - 1) / sizeof(ListCell) + 1)) ------------------ 157| |#else 158| | 159| | /* 160| | * For debugging, don't allow any extra space. This forces any cell 161| | * addition to go through enlarge_list() and thus move the existing data. 162| | */ 163| | max_size = min_size; 164| |#endif 165| | 166| 9.81M| newlist = (List *) palloc(offsetof(List, initial_elements) + 167| 9.81M| max_size * sizeof(ListCell)); 168| 9.81M| newlist->type = type; 169| 9.81M| newlist->length = min_size; 170| 9.81M| newlist->max_length = max_size; 171| 9.81M| newlist->elements = newlist->initial_elements; 172| | 173| 9.81M| return newlist; 174| 9.81M|} src_backend_nodes_list.c:new_tail_cell: 340| 13.2M|{ 341| | /* Enlarge array if necessary */ 342| 13.2M| if (list->length >= list->max_length) ------------------ | Branch (342:6): [True: 36.9k, False: 13.1M] ------------------ 343| 36.9k| enlarge_list(list, list->length + 1); 344| 13.2M| list->length++; 345| 13.2M|} src_backend_nodes_list.c:new_head_cell: 322| 23.8k|{ 323| | /* Enlarge array if necessary */ 324| 23.8k| if (list->length >= list->max_length) ------------------ | Branch (324:6): [True: 544, False: 23.2k] ------------------ 325| 544| enlarge_list(list, list->length + 1); 326| | /* Now shove the existing data over */ 327| 23.8k| memmove(&list->elements[1], &list->elements[0], 328| 23.8k| list->length * sizeof(ListCell)); 329| 23.8k| list->length++; 330| 23.8k|} src_backend_nodes_list.c:enlarge_list: 185| 38.2k|{ 186| 38.2k| int new_max_len; 187| | 188| 38.2k| Assert(min_size > list->max_length); /* else we shouldn't be here */ ------------------ | | 844| 38.2k|#define Assert(condition) ((void)true) ------------------ 189| | 190| 38.2k|#ifndef DEBUG_LIST_MEMORY_USAGE 191| | 192| | /* 193| | * As above, we prefer power-of-two total allocations; but here we need 194| | * not account for list header overhead. 195| | */ 196| | 197| | /* clamp the minimum value to 16, a semi-arbitrary small power of 2 */ 198| 38.2k| new_max_len = pg_nextpower2_32(Max(16, min_size)); ------------------ | | 984| 38.2k|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 13.6k, False: 24.5k] | | ------------------ ------------------ 199| | 200| |#else 201| | /* As above, don't allocate anything extra */ 202| | new_max_len = min_size; 203| |#endif 204| | 205| 38.2k| if (list->elements == list->initial_elements) ------------------ | Branch (205:6): [True: 13.9k, False: 24.2k] ------------------ 206| 13.9k| { 207| | /* 208| | * Replace original in-line allocation with a separate palloc block. 209| | * Ensure it is in the same memory context as the List header. (The 210| | * previous List implementation did not offer any guarantees about 211| | * keeping all list cells in the same context, but it seems reasonable 212| | * to create such a guarantee now.) 213| | */ 214| 13.9k| list->elements = (ListCell *) 215| 13.9k| MemoryContextAlloc(GetMemoryChunkContext(list), 216| 13.9k| new_max_len * sizeof(ListCell)); 217| 13.9k| memcpy(list->elements, list->initial_elements, 218| 13.9k| list->length * sizeof(ListCell)); 219| | 220| | /* 221| | * We must not move the list header, so it's unsafe to try to reclaim 222| | * the initial_elements[] space via repalloc. In debugging builds, 223| | * however, we can clear that space and/or mark it inaccessible. 224| | * (wipe_mem includes VALGRIND_MAKE_MEM_NOACCESS.) 225| | */ 226| |#ifdef CLOBBER_FREED_MEMORY 227| | wipe_mem(list->initial_elements, 228| | list->max_length * sizeof(ListCell)); 229| |#else 230| 13.9k| VALGRIND_MAKE_MEM_NOACCESS(list->initial_elements, ------------------ | | 27| 13.9k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 13.9k] | | ------------------ ------------------ 231| 13.9k| list->max_length * sizeof(ListCell)); 232| 13.9k|#endif 233| 13.9k| } 234| 24.2k| else 235| 24.2k| { 236| 24.2k|#ifndef DEBUG_LIST_MEMORY_USAGE 237| | /* Normally, let repalloc deal with enlargement */ 238| 24.2k| list->elements = (ListCell *) repalloc(list->elements, 239| 24.2k| new_max_len * sizeof(ListCell)); 240| |#else 241| | /* 242| | * repalloc() might enlarge the space in-place, which we don't want 243| | * for debugging purposes, so forcibly move the data somewhere else. 244| | */ 245| | ListCell *newelements; 246| | 247| | newelements = (ListCell *) 248| | MemoryContextAlloc(GetMemoryChunkContext(list), 249| | new_max_len * sizeof(ListCell)); 250| | memcpy(newelements, list->elements, 251| | list->length * sizeof(ListCell)); 252| | pfree(list->elements); 253| | list->elements = newelements; 254| |#endif 255| 24.2k| } 256| | 257| 38.2k| list->max_length = new_max_len; 258| 38.2k|} makeA_Expr: 56| 433k|{ 57| 433k| A_Expr *a = makeNode(A_Expr); ------------------ | | 161| 433k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 58| | 59| 433k| a->kind = kind; 60| 433k| a->name = name; 61| 433k| a->lexpr = lexpr; 62| 433k| a->rexpr = rexpr; 63| 433k| a->location = location; 64| 433k| return a; 65| 433k|} makeSimpleA_Expr: 74| 4.24M|{ 75| 4.24M| A_Expr *a = makeNode(A_Expr); ------------------ | | 161| 4.24M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 76| | 77| 4.24M| a->kind = kind; 78| 4.24M| a->name = list_make1(makeString(name)); ------------------ | | 213| 4.24M| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 4.24M|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 79| 4.24M| a->lexpr = lexpr; 80| 4.24M| a->rexpr = rexpr; 81| 4.24M| a->location = location; 82| 4.24M| return a; 83| 4.24M|} makeBoolExpr: 166| 5.37k|{ 167| 5.37k| BoolExpr *b = makeNode(BoolExpr); ------------------ | | 161| 5.37k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 168| | 169| 5.37k| b->boolop = boolop; 170| 5.37k| b->args = args; 171| 5.37k| b->location = location; 172| | 173| 5.37k| return (Expr *) b; 174| 5.37k|} makeRangeVar: 205| 2.81M|{ 206| 2.81M| RangeVar *r = makeNode(RangeVar); ------------------ | | 161| 2.81M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 207| | 208| 2.81M| r->catalogname = NULL; 209| 2.81M| r->schemaname = schemaname; 210| 2.81M| r->relname = relname; 211| 2.81M| r->inh = true; 212| 2.81M| r->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 2.81M|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 213| 2.81M| r->alias = NULL; 214| 2.81M| r->location = location; 215| | 216| 2.81M| return r; 217| 2.81M|} makeTypeName: 233| 947k|{ 234| 947k| return makeTypeNameFromNameList(list_make1(makeString(typnam))); ------------------ | | 213| 947k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 947k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 235| 947k|} makeTypeNameFromNameList: 245| 975k|{ 246| 975k| TypeName *n = makeNode(TypeName); ------------------ | | 161| 975k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 247| | 248| 975k| n->names = names; 249| | n->typmods = NIL; ------------------ | | 68| 975k|#define NIL ((List *) NULL) ------------------ 250| 975k| n->typemod = -1; 251| 975k| n->location = -1; 252| 975k| return n; 253| 975k|} makeStringConst: 284| 9.47k|{ 285| 9.47k| A_Const *n = makeNode(A_Const); ------------------ | | 161| 9.47k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 286| | 287| 9.47k| n->val.sval.type = T_String; 288| 9.47k| n->val.sval.sval = str; 289| 9.47k| n->location = location; 290| | 291| 9.47k| return (Node *) n; 292| 9.47k|} makeDefElem: 303| 2.60M|{ 304| 2.60M| DefElem *res = makeNode(DefElem); ------------------ | | 161| 2.60M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 305| | 306| 2.60M| res->defnamespace = NULL; 307| 2.60M| res->defname = name; 308| 2.60M| res->arg = arg; 309| 2.60M| res->defaction = DEFELEM_UNSPEC; 310| 2.60M| res->location = location; 311| 2.60M| res->arg_location = -1; 312| | 313| 2.60M| return res; 314| 2.60M|} makeDefElemExtended: 323| 643|{ 324| 643| DefElem *res = makeNode(DefElem); ------------------ | | 161| 643|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 325| | 326| 643| res->defnamespace = nameSpace; 327| 643| res->defname = name; 328| 643| res->arg = arg; 329| 643| res->defaction = defaction; 330| 643| res->location = location; 331| 643| res->arg_location = -1; 332| | 333| 643| return res; 334| 643|} makeFuncCall: 344| 32.7k|{ 345| 32.7k| FuncCall *n = makeNode(FuncCall); ------------------ | | 161| 32.7k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 346| | 347| 32.7k| n->funcname = name; 348| 32.7k| n->args = args; 349| 32.7k| n->agg_order = NIL; ------------------ | | 68| 32.7k|#define NIL ((List *) NULL) ------------------ 350| 32.7k| n->agg_filter = NULL; 351| 32.7k| n->over = NULL; 352| 32.7k| n->agg_within_group = false; 353| 32.7k| n->agg_star = false; 354| 32.7k| n->agg_distinct = false; 355| | n->func_variadic = false; 356| 32.7k| n->funcformat = funcformat; 357| 32.7k| n->location = location; 358| 32.7k| return n; 359| 32.7k|} makeGroupingSet: 427| 273|{ 428| 273| GroupingSet *n = makeNode(GroupingSet); ------------------ | | 161| 273|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 429| | 430| 273| n->kind = kind; 431| 273| n->content = content; 432| 273| n->location = location; 433| 273| return n; 434| 273|} makeVacuumRelation: 442| 298k|{ 443| 298k| VacuumRelation *v = makeNode(VacuumRelation); ------------------ | | 161| 298k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 444| | 445| 298k| v->relation = relation; 446| 298k| v->oid = oid; 447| 298k| v->va_cols = va_cols; 448| 298k| return v; 449| 298k|} makeJsonFormat: 457| 6.96k|{ 458| 6.96k| JsonFormat *jf = makeNode(JsonFormat); ------------------ | | 161| 6.96k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 459| | 460| 6.96k| jf->format_type = type; 461| 6.96k| jf->encoding = encoding; 462| 6.96k| jf->location = location; 463| | 464| 6.96k| return jf; 465| 6.96k|} makeJsonValueExpr: 474| 4.63k|{ 475| 4.63k| JsonValueExpr *jve = makeNode(JsonValueExpr); ------------------ | | 161| 4.63k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 476| | 477| 4.63k| jve->raw_expr = raw_expr; 478| 4.63k| jve->formatted_expr = formatted_expr; 479| 4.63k| jve->format = format; 480| | 481| 4.63k| return jve; 482| 4.63k|} makeJsonIsPredicate: 522| 2.32k|{ 523| 2.32k| JsonIsPredicate *n = makeNode(JsonIsPredicate); ------------------ | | 161| 2.32k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 524| | 525| 2.32k| Assert(expr != NULL); ------------------ | | 844| 2.32k|#define Assert(condition) ((void)true) ------------------ 526| | 527| 2.32k| n->expr = expr; 528| 2.32k| n->format = format; 529| 2.32k| n->item_type = item_type; 530| 2.32k| n->unique_keys = unique_keys; 531| 2.32k| n->location = location; 532| | 533| 2.32k| return (Node *) n; 534| 2.32k|} exprLocation: 190| 111k|{ 191| 111k| int loc; 192| | 193| 111k| if (expr == NULL) ------------------ | Branch (193:6): [True: 0, False: 111k] ------------------ 194| 0| return -1; 195| | 196| | /* Guard against stack overflow due to overly complex expressions */ 197| 111k| check_stack_depth(); 198| | 199| 111k| switch (nodeTag(expr)) ------------------ | | 139| 111k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) ------------------ 200| 111k| { 201| 0| case T_RangeVar: ------------------ | Branch (201:3): [True: 0, False: 111k] ------------------ 202| 0| loc = ((const RangeVar *) expr)->location; 203| 0| break; 204| 0| case T_TableFunc: ------------------ | Branch (204:3): [True: 0, False: 111k] ------------------ 205| 0| loc = ((const TableFunc *) expr)->location; 206| 0| break; 207| 0| case T_Var: ------------------ | Branch (207:3): [True: 0, False: 111k] ------------------ 208| 0| loc = ((const Var *) expr)->location; 209| 0| break; 210| 0| case T_Const: ------------------ | Branch (210:3): [True: 0, False: 111k] ------------------ 211| 0| loc = ((const Const *) expr)->location; 212| 0| break; 213| 0| case T_Param: ------------------ | Branch (213:3): [True: 0, False: 111k] ------------------ 214| 0| loc = ((const Param *) expr)->location; 215| 0| break; 216| 0| case T_Aggref: ------------------ | Branch (216:3): [True: 0, False: 111k] ------------------ 217| | /* function name should always be the first thing */ 218| 0| loc = ((const Aggref *) expr)->location; 219| 0| break; 220| 0| case T_GroupingFunc: ------------------ | Branch (220:3): [True: 0, False: 111k] ------------------ 221| 0| loc = ((const GroupingFunc *) expr)->location; 222| 0| break; 223| 0| case T_WindowFunc: ------------------ | Branch (223:3): [True: 0, False: 111k] ------------------ 224| | /* function name should always be the first thing */ 225| 0| loc = ((const WindowFunc *) expr)->location; 226| 0| break; 227| 0| case T_MergeSupportFunc: ------------------ | Branch (227:3): [True: 0, False: 111k] ------------------ 228| 0| loc = ((const MergeSupportFunc *) expr)->location; 229| 0| break; 230| 0| case T_SubscriptingRef: ------------------ | Branch (230:3): [True: 0, False: 111k] ------------------ 231| | /* just use container argument's location */ 232| 0| loc = exprLocation((Node *) ((const SubscriptingRef *) expr)->refexpr); 233| 0| break; 234| 0| case T_FuncExpr: ------------------ | Branch (234:3): [True: 0, False: 111k] ------------------ 235| 0| { 236| 0| const FuncExpr *fexpr = (const FuncExpr *) expr; 237| | 238| | /* consider both function name and leftmost arg */ 239| 0| loc = leftmostLoc(fexpr->location, 240| 0| exprLocation((Node *) fexpr->args)); 241| 0| } 242| 0| break; 243| 73| case T_NamedArgExpr: ------------------ | Branch (243:3): [True: 73, False: 111k] ------------------ 244| 73| { 245| 73| const NamedArgExpr *na = (const NamedArgExpr *) expr; 246| | 247| | /* consider both argument name and value */ 248| 73| loc = leftmostLoc(na->location, 249| 73| exprLocation((Node *) na->arg)); 250| 73| } 251| 73| break; 252| 0| case T_OpExpr: ------------------ | Branch (252:3): [True: 0, False: 111k] ------------------ 253| 0| case T_DistinctExpr: /* struct-equivalent to OpExpr */ ------------------ | Branch (253:3): [True: 0, False: 111k] ------------------ 254| 0| case T_NullIfExpr: /* struct-equivalent to OpExpr */ ------------------ | Branch (254:3): [True: 0, False: 111k] ------------------ 255| 0| { 256| 0| const OpExpr *opexpr = (const OpExpr *) expr; 257| | 258| | /* consider both operator name and leftmost arg */ 259| 0| loc = leftmostLoc(opexpr->location, 260| 0| exprLocation((Node *) opexpr->args)); 261| 0| } 262| 0| break; 263| 0| case T_ScalarArrayOpExpr: ------------------ | Branch (263:3): [True: 0, False: 111k] ------------------ 264| 0| { 265| 0| const ScalarArrayOpExpr *saopexpr = (const ScalarArrayOpExpr *) expr; 266| | 267| | /* consider both operator name and leftmost arg */ 268| 0| loc = leftmostLoc(saopexpr->location, 269| 0| exprLocation((Node *) saopexpr->args)); 270| 0| } 271| 0| break; 272| 177| case T_BoolExpr: ------------------ | Branch (272:3): [True: 177, False: 111k] ------------------ 273| 177| { 274| 177| const BoolExpr *bexpr = (const BoolExpr *) expr; 275| | 276| | /* 277| | * Same as above, to handle either NOT or AND/OR. We can't 278| | * special-case NOT because of the way that it's used for 279| | * things like IS NOT BETWEEN. 280| | */ 281| 177| loc = leftmostLoc(bexpr->location, 282| 177| exprLocation((Node *) bexpr->args)); 283| 177| } 284| 177| break; 285| 370| case T_SubLink: ------------------ | Branch (285:3): [True: 370, False: 111k] ------------------ 286| 370| { 287| 370| const SubLink *sublink = (const SubLink *) expr; 288| | 289| | /* check the testexpr, if any, and the operator/keyword */ 290| 370| loc = leftmostLoc(exprLocation(sublink->testexpr), 291| 370| sublink->location); 292| 370| } 293| 370| break; 294| 0| case T_FieldSelect: ------------------ | Branch (294:3): [True: 0, False: 111k] ------------------ 295| | /* just use argument's location */ 296| 0| loc = exprLocation((Node *) ((const FieldSelect *) expr)->arg); 297| 0| break; 298| 0| case T_FieldStore: ------------------ | Branch (298:3): [True: 0, False: 111k] ------------------ 299| | /* just use argument's location */ 300| 0| loc = exprLocation((Node *) ((const FieldStore *) expr)->arg); 301| 0| break; 302| 0| case T_RelabelType: ------------------ | Branch (302:3): [True: 0, False: 111k] ------------------ 303| 0| { 304| 0| const RelabelType *rexpr = (const RelabelType *) expr; 305| | 306| | /* Much as above */ 307| 0| loc = leftmostLoc(rexpr->location, 308| 0| exprLocation((Node *) rexpr->arg)); 309| 0| } 310| 0| break; 311| 0| case T_CoerceViaIO: ------------------ | Branch (311:3): [True: 0, False: 111k] ------------------ 312| 0| { 313| 0| const CoerceViaIO *cexpr = (const CoerceViaIO *) expr; 314| | 315| | /* Much as above */ 316| 0| loc = leftmostLoc(cexpr->location, 317| 0| exprLocation((Node *) cexpr->arg)); 318| 0| } 319| 0| break; 320| 0| case T_ArrayCoerceExpr: ------------------ | Branch (320:3): [True: 0, False: 111k] ------------------ 321| 0| { 322| 0| const ArrayCoerceExpr *cexpr = (const ArrayCoerceExpr *) expr; 323| | 324| | /* Much as above */ 325| 0| loc = leftmostLoc(cexpr->location, 326| 0| exprLocation((Node *) cexpr->arg)); 327| 0| } 328| 0| break; 329| 0| case T_ConvertRowtypeExpr: ------------------ | Branch (329:3): [True: 0, False: 111k] ------------------ 330| 0| { 331| 0| const ConvertRowtypeExpr *cexpr = (const ConvertRowtypeExpr *) expr; 332| | 333| | /* Much as above */ 334| 0| loc = leftmostLoc(cexpr->location, 335| 0| exprLocation((Node *) cexpr->arg)); 336| 0| } 337| 0| break; 338| 0| case T_CollateExpr: ------------------ | Branch (338:3): [True: 0, False: 111k] ------------------ 339| | /* just use argument's location */ 340| 0| loc = exprLocation((Node *) ((const CollateExpr *) expr)->arg); 341| 0| break; 342| 0| case T_CaseExpr: ------------------ | Branch (342:3): [True: 0, False: 111k] ------------------ 343| | /* CASE keyword should always be the first thing */ 344| 0| loc = ((const CaseExpr *) expr)->location; 345| 0| break; 346| 0| case T_CaseWhen: ------------------ | Branch (346:3): [True: 0, False: 111k] ------------------ 347| | /* WHEN keyword should always be the first thing */ 348| 0| loc = ((const CaseWhen *) expr)->location; 349| 0| break; 350| 0| case T_ArrayExpr: ------------------ | Branch (350:3): [True: 0, False: 111k] ------------------ 351| | /* the location points at ARRAY or [, which must be leftmost */ 352| 0| loc = ((const ArrayExpr *) expr)->location; 353| 0| break; 354| 0| case T_RowExpr: ------------------ | Branch (354:3): [True: 0, False: 111k] ------------------ 355| | /* the location points at ROW or (, which must be leftmost */ 356| 0| loc = ((const RowExpr *) expr)->location; 357| 0| break; 358| 0| case T_RowCompareExpr: ------------------ | Branch (358:3): [True: 0, False: 111k] ------------------ 359| | /* just use leftmost argument's location */ 360| 0| loc = exprLocation((Node *) ((const RowCompareExpr *) expr)->largs); 361| 0| break; 362| 0| case T_CoalesceExpr: ------------------ | Branch (362:3): [True: 0, False: 111k] ------------------ 363| | /* COALESCE keyword should always be the first thing */ 364| 0| loc = ((const CoalesceExpr *) expr)->location; 365| 0| break; 366| 0| case T_MinMaxExpr: ------------------ | Branch (366:3): [True: 0, False: 111k] ------------------ 367| | /* GREATEST/LEAST keyword should always be the first thing */ 368| 0| loc = ((const MinMaxExpr *) expr)->location; 369| 0| break; 370| 0| case T_SQLValueFunction: ------------------ | Branch (370:3): [True: 0, False: 111k] ------------------ 371| | /* function keyword should always be the first thing */ 372| 0| loc = ((const SQLValueFunction *) expr)->location; 373| 0| break; 374| 0| case T_XmlExpr: ------------------ | Branch (374:3): [True: 0, False: 111k] ------------------ 375| 0| { 376| 0| const XmlExpr *xexpr = (const XmlExpr *) expr; 377| | 378| | /* consider both function name and leftmost arg */ 379| 0| loc = leftmostLoc(xexpr->location, 380| 0| exprLocation((Node *) xexpr->args)); 381| 0| } 382| 0| break; 383| 0| case T_JsonFormat: ------------------ | Branch (383:3): [True: 0, False: 111k] ------------------ 384| 0| loc = ((const JsonFormat *) expr)->location; 385| 0| break; 386| 0| case T_JsonValueExpr: ------------------ | Branch (386:3): [True: 0, False: 111k] ------------------ 387| 0| loc = exprLocation((Node *) ((const JsonValueExpr *) expr)->raw_expr); 388| 0| break; 389| 0| case T_JsonConstructorExpr: ------------------ | Branch (389:3): [True: 0, False: 111k] ------------------ 390| 0| loc = ((const JsonConstructorExpr *) expr)->location; 391| 0| break; 392| 0| case T_JsonIsPredicate: ------------------ | Branch (392:3): [True: 0, False: 111k] ------------------ 393| 0| loc = ((const JsonIsPredicate *) expr)->location; 394| 0| break; 395| 0| case T_JsonExpr: ------------------ | Branch (395:3): [True: 0, False: 111k] ------------------ 396| 0| { 397| 0| const JsonExpr *jsexpr = (const JsonExpr *) expr; 398| | 399| | /* consider both function name and leftmost arg */ 400| 0| loc = leftmostLoc(jsexpr->location, 401| 0| exprLocation(jsexpr->formatted_expr)); 402| 0| } 403| 0| break; 404| 0| case T_JsonBehavior: ------------------ | Branch (404:3): [True: 0, False: 111k] ------------------ 405| 0| loc = exprLocation(((JsonBehavior *) expr)->expr); 406| 0| break; 407| 401| case T_NullTest: ------------------ | Branch (407:3): [True: 401, False: 111k] ------------------ 408| 401| { 409| 401| const NullTest *nexpr = (const NullTest *) expr; 410| | 411| | /* Much as above */ 412| 401| loc = leftmostLoc(nexpr->location, 413| 401| exprLocation((Node *) nexpr->arg)); 414| 401| } 415| 401| break; 416| 286| case T_BooleanTest: ------------------ | Branch (416:3): [True: 286, False: 111k] ------------------ 417| 286| { 418| 286| const BooleanTest *bexpr = (const BooleanTest *) expr; 419| | 420| | /* Much as above */ 421| 286| loc = leftmostLoc(bexpr->location, 422| 286| exprLocation((Node *) bexpr->arg)); 423| 286| } 424| 286| break; 425| 0| case T_CoerceToDomain: ------------------ | Branch (425:3): [True: 0, False: 111k] ------------------ 426| 0| { 427| 0| const CoerceToDomain *cexpr = (const CoerceToDomain *) expr; 428| | 429| | /* Much as above */ 430| 0| loc = leftmostLoc(cexpr->location, 431| 0| exprLocation((Node *) cexpr->arg)); 432| 0| } 433| 0| break; 434| 0| case T_CoerceToDomainValue: ------------------ | Branch (434:3): [True: 0, False: 111k] ------------------ 435| 0| loc = ((const CoerceToDomainValue *) expr)->location; 436| 0| break; 437| 0| case T_SetToDefault: ------------------ | Branch (437:3): [True: 0, False: 111k] ------------------ 438| 0| loc = ((const SetToDefault *) expr)->location; 439| 0| break; 440| 0| case T_ReturningExpr: ------------------ | Branch (440:3): [True: 0, False: 111k] ------------------ 441| 0| loc = exprLocation((Node *) ((const ReturningExpr *) expr)->retexpr); 442| 0| break; 443| 0| case T_TargetEntry: ------------------ | Branch (443:3): [True: 0, False: 111k] ------------------ 444| | /* just use argument's location */ 445| 0| loc = exprLocation((Node *) ((const TargetEntry *) expr)->expr); 446| 0| break; 447| 0| case T_IntoClause: ------------------ | Branch (447:3): [True: 0, False: 111k] ------------------ 448| | /* use the contained RangeVar's location --- close enough */ 449| 0| loc = exprLocation((Node *) ((const IntoClause *) expr)->rel); 450| 0| break; 451| 397| case T_List: ------------------ | Branch (451:3): [True: 397, False: 111k] ------------------ 452| 397| { 453| | /* report location of first list member that has a location */ 454| 397| ListCell *lc; 455| | 456| 397| loc = -1; /* just to suppress compiler warning */ 457| 397| foreach(lc, (const List *) expr) ------------------ | | 374| 397| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 405| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 810|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 404, False: 1] | | | Branch (375:5): [True: 404, False: 1] | | ------------------ | | 376| 405| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 404, False: 0] | | ------------------ | | 377| 405| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 405| (cell = NULL, false); \ | | 379| 397| cell##__state.i++) ------------------ 458| 404| { 459| 404| loc = exprLocation((Node *) lfirst(lc)); ------------------ | | 172| 404|#define lfirst(lc) ((lc)->ptr_value) ------------------ 460| 404| if (loc >= 0) ------------------ | Branch (460:10): [True: 396, False: 8] ------------------ 461| 396| break; 462| 404| } 463| 397| } 464| 397| break; 465| 109k| case T_A_Expr: ------------------ | Branch (465:3): [True: 109k, False: 2.20k] ------------------ 466| 109k| { 467| 109k| const A_Expr *aexpr = (const A_Expr *) expr; 468| | 469| | /* use leftmost of operator or left operand (if any) */ 470| | /* we assume right operand can't be to left of operator */ 471| 109k| loc = leftmostLoc(aexpr->location, 472| 109k| exprLocation(aexpr->lexpr)); 473| 109k| } 474| 109k| break; 475| 107| case T_ColumnRef: ------------------ | Branch (475:3): [True: 107, False: 111k] ------------------ 476| 107| loc = ((const ColumnRef *) expr)->location; 477| 107| break; 478| 4| case T_ParamRef: ------------------ | Branch (478:3): [True: 4, False: 111k] ------------------ 479| 4| loc = ((const ParamRef *) expr)->location; 480| 4| break; 481| 5| case T_A_Const: ------------------ | Branch (481:3): [True: 5, False: 111k] ------------------ 482| 5| loc = ((const A_Const *) expr)->location; 483| 5| break; 484| 92| case T_FuncCall: ------------------ | Branch (484:3): [True: 92, False: 111k] ------------------ 485| 92| { 486| 92| const FuncCall *fc = (const FuncCall *) expr; 487| | 488| | /* consider both function name and leftmost arg */ 489| | /* (we assume any ORDER BY nodes must be to right of name) */ 490| 92| loc = leftmostLoc(fc->location, 491| 92| exprLocation((Node *) fc->args)); 492| 92| } 493| 92| break; 494| 0| case T_A_ArrayExpr: ------------------ | Branch (494:3): [True: 0, False: 111k] ------------------ 495| | /* the location points at ARRAY or [, which must be leftmost */ 496| 0| loc = ((const A_ArrayExpr *) expr)->location; 497| 0| break; 498| 0| case T_ResTarget: ------------------ | Branch (498:3): [True: 0, False: 111k] ------------------ 499| | /* we need not examine the contained expression (if any) */ 500| 0| loc = ((const ResTarget *) expr)->location; 501| 0| break; 502| 0| case T_MultiAssignRef: ------------------ | Branch (502:3): [True: 0, False: 111k] ------------------ 503| 0| loc = exprLocation(((const MultiAssignRef *) expr)->source); 504| 0| break; 505| 134| case T_TypeCast: ------------------ | Branch (505:3): [True: 134, False: 111k] ------------------ 506| 134| { 507| 134| const TypeCast *tc = (const TypeCast *) expr; 508| | 509| | /* 510| | * This could represent CAST(), ::, or TypeName 'literal', so 511| | * any of the components might be leftmost. 512| | */ 513| 134| loc = exprLocation(tc->arg); 514| 134| loc = leftmostLoc(loc, tc->typeName->location); 515| 134| loc = leftmostLoc(loc, tc->location); 516| 134| } 517| 134| break; 518| 0| case T_CollateClause: ------------------ | Branch (518:3): [True: 0, False: 111k] ------------------ 519| | /* just use argument's location */ 520| 0| loc = exprLocation(((const CollateClause *) expr)->arg); 521| 0| break; 522| 135| case T_SortBy: ------------------ | Branch (522:3): [True: 135, False: 111k] ------------------ 523| | /* just use argument's location (ignore operator, if any) */ 524| 135| loc = exprLocation(((const SortBy *) expr)->node); 525| 135| break; 526| 0| case T_WindowDef: ------------------ | Branch (526:3): [True: 0, False: 111k] ------------------ 527| 0| loc = ((const WindowDef *) expr)->location; 528| 0| break; 529| 0| case T_RangeTableSample: ------------------ | Branch (529:3): [True: 0, False: 111k] ------------------ 530| 0| loc = ((const RangeTableSample *) expr)->location; 531| 0| break; 532| 0| case T_TypeName: ------------------ | Branch (532:3): [True: 0, False: 111k] ------------------ 533| 0| loc = ((const TypeName *) expr)->location; 534| 0| break; 535| 0| case T_ColumnDef: ------------------ | Branch (535:3): [True: 0, False: 111k] ------------------ 536| 0| loc = ((const ColumnDef *) expr)->location; 537| 0| break; 538| 0| case T_Constraint: ------------------ | Branch (538:3): [True: 0, False: 111k] ------------------ 539| 0| loc = ((const Constraint *) expr)->location; 540| 0| break; 541| 0| case T_FunctionParameter: ------------------ | Branch (541:3): [True: 0, False: 111k] ------------------ 542| 0| loc = ((const FunctionParameter *) expr)->location; 543| 0| break; 544| 0| case T_XmlSerialize: ------------------ | Branch (544:3): [True: 0, False: 111k] ------------------ 545| | /* XMLSERIALIZE keyword should always be the first thing */ 546| 0| loc = ((const XmlSerialize *) expr)->location; 547| 0| break; 548| 0| case T_GroupingSet: ------------------ | Branch (548:3): [True: 0, False: 111k] ------------------ 549| 0| loc = ((const GroupingSet *) expr)->location; 550| 0| break; 551| 0| case T_WithClause: ------------------ | Branch (551:3): [True: 0, False: 111k] ------------------ 552| 0| loc = ((const WithClause *) expr)->location; 553| 0| break; 554| 0| case T_InferClause: ------------------ | Branch (554:3): [True: 0, False: 111k] ------------------ 555| 0| loc = ((const InferClause *) expr)->location; 556| 0| break; 557| 0| case T_OnConflictClause: ------------------ | Branch (557:3): [True: 0, False: 111k] ------------------ 558| 0| loc = ((const OnConflictClause *) expr)->location; 559| 0| break; 560| 0| case T_CTESearchClause: ------------------ | Branch (560:3): [True: 0, False: 111k] ------------------ 561| 0| loc = ((const CTESearchClause *) expr)->location; 562| 0| break; 563| 0| case T_CTECycleClause: ------------------ | Branch (563:3): [True: 0, False: 111k] ------------------ 564| 0| loc = ((const CTECycleClause *) expr)->location; 565| 0| break; 566| 0| case T_CommonTableExpr: ------------------ | Branch (566:3): [True: 0, False: 111k] ------------------ 567| 0| loc = ((const CommonTableExpr *) expr)->location; 568| 0| break; 569| 0| case T_JsonKeyValue: ------------------ | Branch (569:3): [True: 0, False: 111k] ------------------ 570| | /* just use the key's location */ 571| 0| loc = exprLocation((Node *) ((const JsonKeyValue *) expr)->key); 572| 0| break; 573| 0| case T_JsonObjectConstructor: ------------------ | Branch (573:3): [True: 0, False: 111k] ------------------ 574| 0| loc = ((const JsonObjectConstructor *) expr)->location; 575| 0| break; 576| 0| case T_JsonArrayConstructor: ------------------ | Branch (576:3): [True: 0, False: 111k] ------------------ 577| 0| loc = ((const JsonArrayConstructor *) expr)->location; 578| 0| break; 579| 0| case T_JsonArrayQueryConstructor: ------------------ | Branch (579:3): [True: 0, False: 111k] ------------------ 580| 0| loc = ((const JsonArrayQueryConstructor *) expr)->location; 581| 0| break; 582| 0| case T_JsonAggConstructor: ------------------ | Branch (582:3): [True: 0, False: 111k] ------------------ 583| 0| loc = ((const JsonAggConstructor *) expr)->location; 584| 0| break; 585| 0| case T_JsonObjectAgg: ------------------ | Branch (585:3): [True: 0, False: 111k] ------------------ 586| 0| loc = exprLocation((Node *) ((const JsonObjectAgg *) expr)->constructor); 587| 0| break; 588| 0| case T_JsonArrayAgg: ------------------ | Branch (588:3): [True: 0, False: 111k] ------------------ 589| 0| loc = exprLocation((Node *) ((const JsonArrayAgg *) expr)->constructor); 590| 0| break; 591| 0| case T_PlaceHolderVar: ------------------ | Branch (591:3): [True: 0, False: 111k] ------------------ 592| | /* just use argument's location */ 593| 0| loc = exprLocation((Node *) ((const PlaceHolderVar *) expr)->phexpr); 594| 0| break; 595| 0| case T_InferenceElem: ------------------ | Branch (595:3): [True: 0, False: 111k] ------------------ 596| | /* just use nested expr's location */ 597| 0| loc = exprLocation((Node *) ((const InferenceElem *) expr)->expr); 598| 0| break; 599| 0| case T_PartitionElem: ------------------ | Branch (599:3): [True: 0, False: 111k] ------------------ 600| 0| loc = ((const PartitionElem *) expr)->location; 601| 0| break; 602| 0| case T_PartitionSpec: ------------------ | Branch (602:3): [True: 0, False: 111k] ------------------ 603| 0| loc = ((const PartitionSpec *) expr)->location; 604| 0| break; 605| 0| case T_PartitionBoundSpec: ------------------ | Branch (605:3): [True: 0, False: 111k] ------------------ 606| 0| loc = ((const PartitionBoundSpec *) expr)->location; 607| 0| break; 608| 0| case T_PartitionRangeDatum: ------------------ | Branch (608:3): [True: 0, False: 111k] ------------------ 609| 0| loc = ((const PartitionRangeDatum *) expr)->location; 610| 0| break; 611| 18| default: ------------------ | Branch (611:3): [True: 18, False: 111k] ------------------ 612| | /* for any other node type it's just unknown... */ 613| 18| loc = -1; 614| 18| break; 615| 111k| } 616| 46.4k| return loc; 617| 111k|} src_backend_nodes_nodeFuncs.c:leftmostLoc: 626| 45.9k|{ 627| 45.9k| if (loc1 < 0) ------------------ | Branch (627:6): [True: 8, False: 45.9k] ------------------ 628| 8| return loc2; 629| 45.9k| else if (loc2 < 0) ------------------ | Branch (629:11): [True: 12, False: 45.9k] ------------------ 630| 12| return loc1; 631| 45.9k| else 632| 45.9k| return Min(loc1, loc2); ------------------ | | 990| 45.9k|#define Min(x, y) ((x) < (y) ? (x) : (y)) | | ------------------ | | | Branch (990:21): [True: 806, False: 45.1k] | | ------------------ ------------------ 633| 45.9k|} makeInteger: 34| 4.05k|{ 35| 4.05k| Integer *v = makeNode(Integer); ------------------ | | 161| 4.05k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36| | 37| 4.05k| v->ival = i; 38| 4.05k| return v; 39| 4.05k|} makeFloat: 48| 5.16k|{ 49| 5.16k| Float *v = makeNode(Float); ------------------ | | 161| 5.16k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50| | 51| 5.16k| v->fval = numericStr; 52| 5.16k| return v; 53| 5.16k|} makeBoolean: 60| 2.09k|{ 61| 2.09k| Boolean *v = makeNode(Boolean); ------------------ | | 161| 2.09k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 62| | 63| 2.09k| v->boolval = val; 64| 2.09k| return v; 65| 2.09k|} makeString: 74| 13.2M|{ 75| 13.2M| String *v = makeNode(String); ------------------ | | 161| 13.2M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 76| | 77| 13.2M| v->sval = str; 78| 13.2M| return v; 79| 13.2M|} base_yyparse: 32387| 1.07k|{ 32388| | /* The look-ahead symbol. */ 32389| 1.07k|int yychar; 32390| | 32391| |/* The semantic value of the look-ahead symbol. */ 32392| 1.07k|YYSTYPE yylval; 32393| | 32394| |/* Number of syntax errors so far. */ 32395| 1.07k|int yynerrs; 32396| |/* Location data for the look-ahead symbol. */ 32397| 1.07k|YYLTYPE yylloc; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32398| | 32399| 1.07k| int yystate; 32400| 1.07k| int yyn; 32401| 1.07k| int yyresult; 32402| | /* Number of tokens to shift before error messages enabled. */ 32403| 1.07k| int yyerrstatus; 32404| | /* Look-ahead token as an internal (translated) token number. */ 32405| 1.07k| int yytoken = 0; 32406| |#if YYERROR_VERBOSE 32407| | /* Buffer for error messages, and its allocated size. */ 32408| | char yymsgbuf[128]; 32409| | char *yymsg = yymsgbuf; 32410| | YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 32411| |#endif 32412| | 32413| | /* Three stacks and their tools: 32414| | `yyss': related to states, 32415| | `yyvs': related to semantic values, 32416| | `yyls': related to locations. 32417| | 32418| | Refer to the stacks thru separate pointers, to allow yyoverflow 32419| | to reallocate them elsewhere. */ 32420| | 32421| | /* The state stack. */ 32422| 1.07k| yytype_int16 yyssa[YYINITDEPTH]; 32423| 1.07k| yytype_int16 *yyss = yyssa; 32424| 1.07k| yytype_int16 *yyssp; 32425| | 32426| | /* The semantic value stack. */ 32427| 1.07k| YYSTYPE yyvsa[YYINITDEPTH]; 32428| 1.07k| YYSTYPE *yyvs = yyvsa; 32429| 1.07k| YYSTYPE *yyvsp; 32430| | 32431| | /* The location stack. */ 32432| 1.07k| YYLTYPE yylsa[YYINITDEPTH]; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32433| 1.07k| YYLTYPE *yyls = yylsa; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32434| 1.07k| YYLTYPE *yylsp; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32435| | /* The locations where the error started and ended. */ 32436| 1.07k| YYLTYPE yyerror_range[2]; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32437| | 32438| 1.07k|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) 32439| | 32440| 1.07k| YYSIZE_T yystacksize = YYINITDEPTH; ------------------ | | 1540| 1.07k|# define YYSIZE_T __SIZE_TYPE__ ------------------ YYSIZE_T yystacksize = YYINITDEPTH; ------------------ | |32078| 1.07k|# define YYINITDEPTH 200 ------------------ 32441| | 32442| | /* The variables used to return semantic value and location from the 32443| | action routines. */ 32444| 1.07k| YYSTYPE yyval; 32445| 1.07k| YYLTYPE yyloc; ------------------ | | 44| 1.07k|#define YYLTYPE int ------------------ 32446| | 32447| | /* The number of symbols on the RHS of the reduced rule. 32448| | Keep to zero when no symbol should be popped. */ 32449| 1.07k| int yylen = 0; 32450| | 32451| 1.07k| YYDPRINTF ((stderr, "Starting parse\n")); 32452| | 32453| 1.07k| yystate = 0; 32454| 1.07k| yyerrstatus = 0; 32455| 1.07k| yynerrs = 0; ------------------ | | 128| 1.07k|#define yynerrs base_yynerrs ------------------ 32456| 1.07k| yychar = YYEMPTY; /* Cause a token to be read. */ ------------------ | | 126| 1.07k|#define yychar base_yychar ------------------ yychar = YYEMPTY; /* Cause a token to be read. */ ------------------ | |31817| 1.07k|#define YYEMPTY (-2) ------------------ 32457| | 32458| | /* Initialize stack pointers. 32459| | Waste one element of value and location stack 32460| | so that they stay on the same level as the state stack. 32461| | The wasted elements are never initialized. */ 32462| | 32463| 1.07k| yyssp = yyss; 32464| 1.07k| yyvsp = yyvs; 32465| 1.07k| yylsp = yyls; 32466| |#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 32467| | /* Initialize the default location before parsing starts. */ 32468| | yylloc.first_line = yylloc.last_line = 1; 32469| | yylloc.first_column = yylloc.last_column = 0; 32470| |#endif 32471| | 32472| 1.07k| goto yysetstate; 32473| | 32474| |/*------------------------------------------------------------. 32475| || yynewstate -- Push a new state, which is found in yystate. | 32476| |`------------------------------------------------------------*/ 32477| 110M| yynewstate: 32478| | /* In all cases, when you get here, the value and location stacks 32479| | have just been pushed. So pushing a state here evens the stacks. */ 32480| 110M| yyssp++; 32481| | 32482| 110M| yysetstate: 32483| 110M| *yyssp = yystate; 32484| | 32485| 110M| if (yyss + yystacksize - 1 <= yyssp) ------------------ | Branch (32485:7): [True: 168, False: 110M] ------------------ 32486| 168| { 32487| | /* Get the current used size of the three stacks, in elements. */ 32488| 168| YYSIZE_T yysize = yyssp - yyss + 1; ------------------ | | 1540| 168|# define YYSIZE_T __SIZE_TYPE__ ------------------ 32489| | 32490| |#ifdef yyoverflow 32491| | { 32492| | /* Give user a chance to reallocate the stack. Use copies of 32493| | these so that the &'s don't force the real ones into 32494| | memory. */ 32495| | YYSTYPE *yyvs1 = yyvs; 32496| | yytype_int16 *yyss1 = yyss; 32497| | YYLTYPE *yyls1 = yyls; 32498| | 32499| | /* Each stack pointer address is followed by the size of the 32500| | data in use in that stack, in bytes. This used to be a 32501| | conditional around just the two extra args, but that might 32502| | be undefined if yyoverflow is a macro. */ 32503| | yyoverflow (YY_("memory exhausted"), 32504| | &yyss1, yysize * sizeof (*yyssp), 32505| | &yyvs1, yysize * sizeof (*yyvsp), 32506| | &yyls1, yysize * sizeof (*yylsp), 32507| | &yystacksize); 32508| | yyls = yyls1; 32509| | yyss = yyss1; 32510| | yyvs = yyvs1; 32511| | } 32512| |#else /* no yyoverflow */ 32513| |# ifndef YYSTACK_RELOCATE 32514| | goto yyexhaustedlab; 32515| |# else 32516| | /* Extend the stack our own way. */ 32517| 168| if (YYMAXDEPTH <= yystacksize) ------------------ | |32089| 168|# define YYMAXDEPTH 10000 ------------------ | Branch (32517:11): [True: 4, False: 164] ------------------ 32518| 4| goto yyexhaustedlab; 32519| 164| yystacksize *= 2; 32520| 164| if (YYMAXDEPTH < yystacksize) ------------------ | |32089| 164|# define YYMAXDEPTH 10000 ------------------ | Branch (32520:11): [True: 11, False: 153] ------------------ 32521| 11| yystacksize = YYMAXDEPTH; ------------------ | |32089| 11|# define YYMAXDEPTH 10000 ------------------ 32522| | 32523| 164| { 32524| 164| yytype_int16 *yyss1 = yyss; 32525| 164| union yyalloc *yyptr = 32526| 164| (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ------------------ | | 1630| 164|# define YYSTACK_ALLOC YYMALLOC | | ------------------ | | | | 1283| 164|#define YYMALLOC palloc | | ------------------ ------------------ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ------------------ | | 1680| 164| ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ | | 1681| 164| + 2 * YYSTACK_GAP_MAXIMUM) | | ------------------ | | | | 1675| 164|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | | ------------------ ------------------ 32527| 164| if (! yyptr) ------------------ | Branch (32527:6): [True: 0, False: 164] ------------------ 32528| 0| goto yyexhaustedlab; 32529| 164| YYSTACK_RELOCATE (yyss); ------------------ | | 1707| 164| do \ | | 1708| 164| { \ | | 1709| 164| YYSIZE_T yynewbytes; \ | | ------------------ | | | | 1540| 164|# define YYSIZE_T __SIZE_TYPE__ | | ------------------ | | 1710| 164| YYCOPY (&yyptr->Stack, Stack, yysize); \ | | ------------------ | | | | 1688| 164| __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | | ------------------ | | 1711| 164| Stack = &yyptr->Stack; \ | | 1712| 164| yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | | ------------------ | | | | 1675| 164|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | | ------------------ | | 1713| 164| yyptr += yynewbytes / sizeof (*yyptr); \ | | 1714| 164| } \ | | 1715| 164| while (YYID (0)) | | ------------------ | | | | 1575| 164|# define YYID(n) (n) | | | | ------------------ | | | | | Branch (1575:18): [Folded, False: 164] | | | | ------------------ | | ------------------ ------------------ 32530| 164| YYSTACK_RELOCATE (yyvs); ------------------ | | 1707| 164| do \ | | 1708| 164| { \ | | 1709| 164| YYSIZE_T yynewbytes; \ | | ------------------ | | | | 1540| 164|# define YYSIZE_T __SIZE_TYPE__ | | ------------------ | | 1710| 164| YYCOPY (&yyptr->Stack, Stack, yysize); \ | | ------------------ | | | | 1688| 164| __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | | ------------------ | | 1711| 164| Stack = &yyptr->Stack; \ | | 1712| 164| yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | | ------------------ | | | | 1675| 164|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | | ------------------ | | 1713| 164| yyptr += yynewbytes / sizeof (*yyptr); \ | | 1714| 164| } \ | | 1715| 164| while (YYID (0)) | | ------------------ | | | | 1575| 164|# define YYID(n) (n) | | | | ------------------ | | | | | Branch (1575:18): [Folded, False: 164] | | | | ------------------ | | ------------------ ------------------ 32531| 164| YYSTACK_RELOCATE (yyls); ------------------ | | 1707| 164| do \ | | 1708| 164| { \ | | 1709| 164| YYSIZE_T yynewbytes; \ | | ------------------ | | | | 1540| 164|# define YYSIZE_T __SIZE_TYPE__ | | ------------------ | | 1710| 164| YYCOPY (&yyptr->Stack, Stack, yysize); \ | | ------------------ | | | | 1688| 164| __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | | ------------------ | | 1711| 164| Stack = &yyptr->Stack; \ | | 1712| 164| yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | | ------------------ | | | | 1675| 164|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | | ------------------ | | 1713| 164| yyptr += yynewbytes / sizeof (*yyptr); \ | | 1714| 164| } \ | | 1715| 164| while (YYID (0)) | | ------------------ | | | | 1575| 164|# define YYID(n) (n) | | | | ------------------ | | | | | Branch (1575:18): [Folded, False: 164] | | | | ------------------ | | ------------------ ------------------ 32532| 164|# undef YYSTACK_RELOCATE 32533| 164| if (yyss1 != yyssa) ------------------ | Branch (32533:6): [True: 93, False: 71] ------------------ 32534| 93| YYSTACK_FREE (yyss1); ------------------ | | 1631| 93|# define YYSTACK_FREE YYFREE | | ------------------ | | | | 1284| 93|#define YYFREE pfree | | ------------------ ------------------ 32535| 164| } 32536| 0|# endif 32537| 0|#endif /* no yyoverflow */ 32538| | 32539| 0| yyssp = yyss + yysize - 1; 32540| 164| yyvsp = yyvs + yysize - 1; 32541| 164| yylsp = yyls + yysize - 1; 32542| | 32543| 164| YYDPRINTF ((stderr, "Stack size increased to %lu\n", 32544| 164| (unsigned long int) yystacksize)); 32545| | 32546| 164| if (yyss + yystacksize - 1 <= yyssp) ------------------ | Branch (32546:11): [True: 0, False: 164] ------------------ 32547| 0| YYABORT; ------------------ | |31821| 0|#define YYABORT goto yyabortlab ------------------ 32548| 164| } 32549| | 32550| 110M| YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 32551| | 32552| 110M| goto yybackup; 32553| | 32554| |/*-----------. 32555| || yybackup. | 32556| |`-----------*/ 32557| 110M|yybackup: 32558| | 32559| | /* Do appropriate processing given the current state. Read a 32560| | look-ahead token if we need one and don't already have one. */ 32561| | 32562| | /* First try to decide what to do without reference to look-ahead token. */ 32563| 110M| yyn = yypact[yystate]; 32564| 110M| if (yyn == YYPACT_NINF) ------------------ | | 5540| 110M|#define YYPACT_NINF -5909 ------------------ | Branch (32564:7): [True: 49.5M, False: 60.5M] ------------------ 32565| 49.5M| goto yydefault; 32566| | 32567| | /* Not known => get a look-ahead token if don't already have one. */ 32568| | 32569| | /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ 32570| 60.5M| if (yychar == YYEMPTY) ------------------ | | 126| 60.5M|#define yychar base_yychar ------------------ if (yychar == YYEMPTY) ------------------ | |31817| 60.5M|#define YYEMPTY (-2) ------------------ | Branch (32570:7): [True: 33.2M, False: 27.2M] ------------------ 32571| 33.2M| { 32572| 33.2M| YYDPRINTF ((stderr, "Reading a token: ")); 32573| 33.2M| yychar = YYLEX; ------------------ | | 126| 33.2M|#define yychar base_yychar ------------------ yychar = YYLEX; ------------------ | |31902| 33.2M|# define YYLEX yylex (&yylval, &yylloc, yyscanner) | | ------------------ | | | | 123| 33.2M|#define yylex base_yylex | | ------------------ | | # define YYLEX yylex (&yylval, &yylloc, yyscanner) | | ------------------ | | | | 125| 33.2M|#define yylval base_yylval | | ------------------ | | # define YYLEX yylex (&yylval, &yylloc, yyscanner) | | ------------------ | | | | 129| 33.2M|#define yylloc base_yylloc | | ------------------ ------------------ 32574| 33.2M| } 32575| | 32576| 60.5M| if (yychar <= YYEOF) ------------------ | | 126| 60.5M|#define yychar base_yychar ------------------ if (yychar <= YYEOF) ------------------ | |31818| 60.5M|#define YYEOF 0 ------------------ | Branch (32576:7): [True: 14.1k, False: 60.5M] ------------------ 32577| 14.1k| { 32578| 14.1k| yychar = yytoken = YYEOF; ------------------ | | 126| 14.1k|#define yychar base_yychar ------------------ yychar = yytoken = YYEOF; ------------------ | |31818| 14.1k|#define YYEOF 0 ------------------ 32579| 14.1k| YYDPRINTF ((stderr, "Now at end of input.\n")); 32580| 14.1k| } 32581| 60.5M| else 32582| 60.5M| { 32583| 60.5M| yytoken = YYTRANSLATE (yychar); ------------------ | | 1738| 60.5M| ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | | ------------------ | | | | 1735| 60.5M|#define YYMAXUTOK 781 | | ------------------ | | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | | ------------------ | | | | 1734| 260|#define YYUNDEFTOK 2 | | ------------------ | | | Branch (1738:4): [True: 60.5M, False: 260] | | ------------------ ------------------ 32584| 60.5M| YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 32585| 60.5M| } 32586| | 32587| | /* If the proper action on seeing token YYTOKEN is to reduce or to 32588| | detect an error, take that action. */ 32589| 60.5M| yyn += yytoken; 32590| 60.5M| if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) ------------------ | | 1722| 60.5M|#define YYLAST 124337 ------------------ | Branch (32590:7): [True: 260, False: 60.5M] | Branch (32590:18): [True: 0, False: 60.5M] | Branch (32590:34): [True: 26.2M, False: 34.2M] ------------------ 32591| 26.2M| goto yydefault; 32592| 34.2M| yyn = yytable[yyn]; 32593| 34.2M| if (yyn <= 0) ------------------ | Branch (32593:7): [True: 1.01M, False: 33.2M] ------------------ 32594| 1.01M| { 32595| 1.01M| if (yyn == 0 || yyn == YYTABLE_NINF) ------------------ | | 6280| 1.01M|#define YYTABLE_NINF -3026 ------------------ | Branch (32595:11): [True: 0, False: 1.01M] | Branch (32595:23): [True: 1, False: 1.01M] ------------------ 32596| 1| goto yyerrlab; 32597| 1.01M| yyn = -yyn; 32598| 1.01M| goto yyreduce; 32599| 1.01M| } 32600| | 32601| 33.2M| if (yyn == YYFINAL) ------------------ | | 1720| 33.2M|#define YYFINAL 932 ------------------ | Branch (32601:7): [True: 504, False: 33.2M] ------------------ 32602| 504| YYACCEPT; ------------------ | |31820| 504|#define YYACCEPT goto yyacceptlab ------------------ 32603| | 32604| | /* Count tokens shifted since error; after three, turn off error 32605| | status. */ 32606| 33.2M| if (yyerrstatus) ------------------ | Branch (32606:7): [True: 0, False: 33.2M] ------------------ 32607| 0| yyerrstatus--; 32608| | 32609| | /* Shift the look-ahead token. */ 32610| 33.2M| YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 32611| | 32612| | /* Discard the shifted token unless it is eof. */ 32613| 33.2M| if (yychar != YYEOF) ------------------ | | 126| 33.2M|#define yychar base_yychar ------------------ if (yychar != YYEOF) ------------------ | |31818| 33.2M|#define YYEOF 0 ------------------ | Branch (32613:7): [True: 33.2M, False: 260] ------------------ 32614| 33.2M| yychar = YYEMPTY; ------------------ | | 126| 33.2M|#define yychar base_yychar ------------------ yychar = YYEMPTY; ------------------ | |31817| 33.2M|#define YYEMPTY (-2) ------------------ 32615| | 32616| 33.2M| yystate = yyn; 32617| 33.2M| *++yyvsp = yylval; ------------------ | | 125| 33.2M|#define yylval base_yylval ------------------ 32618| 33.2M| *++yylsp = yylloc; ------------------ | | 129| 33.2M|#define yylloc base_yylloc ------------------ 32619| 33.2M| goto yynewstate; 32620| | 32621| | 32622| |/*-----------------------------------------------------------. 32623| || yydefault -- do the default action for the current state. | 32624| |`-----------------------------------------------------------*/ 32625| 75.7M|yydefault: 32626| 75.7M| yyn = yydefact[yystate]; 32627| 75.7M| if (yyn == 0) ------------------ | Branch (32627:7): [True: 142, False: 75.7M] ------------------ 32628| 142| goto yyerrlab; 32629| 75.7M| goto yyreduce; 32630| | 32631| | 32632| |/*-----------------------------. 32633| || yyreduce -- Do a reduction. | 32634| |`-----------------------------*/ 32635| 76.7M|yyreduce: 32636| | /* yyn is the number of a rule to reduce with. */ 32637| 76.7M| yylen = yyr2[yyn]; 32638| | 32639| | /* If YYLEN is nonzero, implement the default value of the action: 32640| | `$$ = $1'. 32641| | 32642| | Otherwise, the following line sets YYVAL to garbage. 32643| | This behavior is undocumented and Bison 32644| | users should not rely upon it. Assigning to YYVAL 32645| | unconditionally makes the parser a bit smaller, and it avoids a 32646| | GCC warning that YYVAL may be used uninitialized. */ 32647| 76.7M| yyval = yyvsp[1-yylen]; 32648| | 32649| | /* Default location. */ 32650| 76.7M| YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); ------------------ | | 1266| 76.7M| do { \ | | 1267| 76.7M| (Current) = (-1); \ | | 1268| 76.8M| for (int _i = 1; _i <= (N); _i++) \ | | ------------------ | | | Branch (1268:20): [True: 66.0M, False: 10.7M] | | ------------------ | | 1269| 76.7M| { \ | | 1270| 66.0M| if ((Rhs)[_i] >= 0) \ | | ------------------ | | | Branch (1270:8): [True: 66.0M, False: 32.8k] | | ------------------ | | 1271| 66.0M| { \ | | 1272| 66.0M| (Current) = (Rhs)[_i]; \ | | 1273| 66.0M| break; \ | | 1274| 66.0M| } \ | | 1275| 66.0M| } \ | | 1276| 76.7M| } while (0) | | ------------------ | | | Branch (1276:11): [Folded, False: 76.7M] | | ------------------ ------------------ 32651| 76.7M| YY_REDUCE_PRINT (yyn); 32652| 76.7M| switch (yyn) 32653| 76.7M| { 32654| 521| case 2: ------------------ | Branch (32654:9): [True: 521, False: 76.7M] ------------------ 32655| 521|#line 919 "gram.y" 32656| 521| { 32657| 521| pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); ------------------ | | 64| 521|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 32658| 521| (void) yynerrs; /* suppress compiler warning */ ------------------ | | 128| 521|#define yynerrs base_yynerrs ------------------ 32659| 521| ;} 32660| 521| break; 32661| | 32662| 0| case 3: ------------------ | Branch (32662:3): [True: 0, False: 76.7M] ------------------ 32663| 0|#line 924 "gram.y" 32664| 0| { 32665| 0| pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[(2) - (2)].typnam)); ------------------ | | 64| 0|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[(2) - (2)].typnam)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32666| 0| ;} 32667| 0| break; 32668| | 32669| 0| case 4: ------------------ | Branch (32669:3): [True: 0, False: 76.7M] ------------------ 32670| 0|#line 928 "gram.y" 32671| 0| { 32672| 0| pg_yyget_extra(yyscanner)->parsetree = ------------------ | | 64| 0|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 32673| 0| list_make1(makeRawStmt((yyvsp[(2) - (2)].node), (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32674| 0| ;} 32675| 0| break; 32676| | 32677| 0| case 5: ------------------ | Branch (32677:3): [True: 0, False: 76.7M] ------------------ 32678| 0|#line 933 "gram.y" 32679| 0| { 32680| 0| PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); 32681| | 32682| 0| n->nnames = 1; 32683| 0| pg_yyget_extra(yyscanner)->parsetree = ------------------ | | 64| 0|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 32684| 0| list_make1(makeRawStmt((Node *) n, (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32685| 0| ;} 32686| 0| break; 32687| | 32688| 0| case 6: ------------------ | Branch (32688:3): [True: 0, False: 76.7M] ------------------ 32689| 0|#line 941 "gram.y" 32690| 0| { 32691| 0| PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); 32692| | 32693| 0| n->nnames = 2; 32694| 0| pg_yyget_extra(yyscanner)->parsetree = ------------------ | | 64| 0|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 32695| 0| list_make1(makeRawStmt((Node *) n, (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32696| 0| ;} 32697| 0| break; 32698| | 32699| 0| case 7: ------------------ | Branch (32699:3): [True: 0, False: 76.7M] ------------------ 32700| 0|#line 949 "gram.y" 32701| 0| { 32702| 0| PLAssignStmt *n = (PLAssignStmt *) (yyvsp[(2) - (2)].node); 32703| | 32704| 0| n->nnames = 3; 32705| 0| pg_yyget_extra(yyscanner)->parsetree = ------------------ | | 64| 0|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 32706| 0| list_make1(makeRawStmt((Node *) n, (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32707| 0| ;} 32708| 0| break; 32709| | 32710| 61.6k| case 8: ------------------ | Branch (32710:3): [True: 61.6k, False: 76.7M] ------------------ 32711| 61.6k|#line 965 "gram.y" 32712| 61.6k| { 32713| 61.6k| if ((yyvsp[(1) - (3)].list) != NIL) ------------------ | | 68| 61.6k|#define NIL ((List *) NULL) ------------------ | Branch (32713:10): [True: 61.4k, False: 164] ------------------ 32714| 61.4k| { 32715| | /* update length of previous stmt */ 32716| 61.4k| updateRawStmtEnd(llast_node(RawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)])); ------------------ | | 202| 61.4k|#define llast_node(type,l) castNode(type, llast(l)) | | ------------------ | | | | 182| 61.4k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 32717| 61.4k| } 32718| 61.6k| if ((yyvsp[(3) - (3)].node) != NULL) ------------------ | Branch (32718:10): [True: 40.7k, False: 20.8k] ------------------ 32719| 40.7k| (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(3) - (3)]))); 32720| 20.8k| else 32721| 20.8k| (yyval.list) = (yyvsp[(1) - (3)].list); 32722| 61.6k| ;} 32723| 61.6k| break; 32724| | 32725| 576| case 9: ------------------ | Branch (32725:3): [True: 576, False: 76.7M] ------------------ 32726| 576|#line 977 "gram.y" 32727| 576| { 32728| 576| if ((yyvsp[(1) - (1)].node) != NULL) ------------------ | Branch (32728:10): [True: 569, False: 7] ------------------ 32729| 569| (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)]))); ------------------ | | 213| 569| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 569|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 32730| 7| else 32731| 7| (yyval.list) = NIL; ------------------ | | 68| 7|#define NIL ((List *) NULL) ------------------ 32732| 576| ;} 32733| 576| break; 32734| | 32735| 20.9k| case 136: ------------------ | Branch (32735:3): [True: 20.9k, False: 76.7M] ------------------ 32736| 20.9k|#line 1120 "gram.y" 32737| 20.9k| { (yyval.node) = NULL; ;} 32738| 20.9k| break; 32739| | 32740| 0| case 137: ------------------ | Branch (32740:3): [True: 0, False: 76.7M] ------------------ 32741| 0|#line 1127 "gram.y" 32742| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 32743| 0| break; 32744| | 32745| 155| case 138: ------------------ | Branch (32745:3): [True: 155, False: 76.7M] ------------------ 32746| 155|#line 1128 "gram.y" 32747| 155| { (yyval.str) = NULL; ;} 32748| 155| break; 32749| | 32750| 17| case 139: ------------------ | Branch (32750:3): [True: 17, False: 76.7M] ------------------ 32751| 17|#line 1132 "gram.y" 32752| 17| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 32753| 17| break; 32754| | 32755| 1.37k| case 140: ------------------ | Branch (32755:3): [True: 1.37k, False: 76.7M] ------------------ 32756| 1.37k|#line 1133 "gram.y" 32757| 1.37k| { (yyval.list) = NIL; ;} ------------------ | | 68| 1.37k|#define NIL ((List *) NULL) ------------------ 32758| 1.37k| break; 32759| | 32760| 0| case 141: ------------------ | Branch (32760:3): [True: 0, False: 76.7M] ------------------ 32761| 0|#line 1137 "gram.y" 32762| 0| { (yyval.boolean) = true; ;} 32763| 0| break; 32764| | 32765| 158| case 142: ------------------ | Branch (32765:3): [True: 158, False: 76.7M] ------------------ 32766| 158|#line 1138 "gram.y" 32767| 158| { (yyval.boolean) = false; ;} 32768| 158| break; 32769| | 32770| 0| case 143: ------------------ | Branch (32770:3): [True: 0, False: 76.7M] ------------------ 32771| 0|#line 1142 "gram.y" 32772| 0| { (yyval.dbehavior) = DROP_CASCADE; ;} 32773| 0| break; 32774| | 32775| 0| case 144: ------------------ | Branch (32775:3): [True: 0, False: 76.7M] ------------------ 32776| 0|#line 1143 "gram.y" 32777| 0| { (yyval.dbehavior) = DROP_RESTRICT; ;} 32778| 0| break; 32779| | 32780| 873| case 145: ------------------ | Branch (32780:3): [True: 873, False: 76.7M] ------------------ 32781| 873|#line 1144 "gram.y" 32782| 873| { (yyval.dbehavior) = DROP_RESTRICT; /* default */ ;} 32783| 873| break; 32784| | 32785| 5| case 146: ------------------ | Branch (32785:3): [True: 5, False: 76.7M] ------------------ 32786| 5|#line 1154 "gram.y" 32787| 5| { 32788| 5| CallStmt *n = makeNode(CallStmt); ------------------ | | 161| 5|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 32789| | 32790| 5| n->funccall = castNode(FuncCall, (yyvsp[(2) - (2)].node)); ------------------ | | 182| 5|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 32791| 5| (yyval.node) = (Node *) n; 32792| 5| ;} 32793| 5| break; 32794| | 32795| 0| case 147: ------------------ | Branch (32795:3): [True: 0, False: 76.7M] ------------------ 32796| 0|#line 1170 "gram.y" 32797| 0| { 32798| 0| CreateRoleStmt *n = makeNode(CreateRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 32799| | 32800| 0| n->stmt_type = ROLESTMT_ROLE; 32801| 0| n->role = (yyvsp[(3) - (5)].str); 32802| 0| n->options = (yyvsp[(5) - (5)].list); 32803| 0| (yyval.node) = (Node *) n; 32804| 0| ;} 32805| 0| break; 32806| | 32807| 1.17k| case 151: ------------------ | Branch (32807:3): [True: 1.17k, False: 76.7M] ------------------ 32808| 1.17k|#line 1192 "gram.y" 32809| 1.17k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 32810| 1.17k| break; 32811| | 32812| 630| case 152: ------------------ | Branch (32812:3): [True: 630, False: 76.7M] ------------------ 32813| 630|#line 1193 "gram.y" 32814| 630| { (yyval.list) = NIL; ;} ------------------ | | 68| 630|#define NIL ((List *) NULL) ------------------ 32815| 630| break; 32816| | 32817| 12.3k| case 153: ------------------ | Branch (32817:3): [True: 12.3k, False: 76.7M] ------------------ 32818| 12.3k|#line 1197 "gram.y" 32819| 12.3k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 32820| 12.3k| break; 32821| | 32822| 2.55k| case 154: ------------------ | Branch (32822:3): [True: 2.55k, False: 76.7M] ------------------ 32823| 2.55k|#line 1198 "gram.y" 32824| 2.55k| { (yyval.list) = NIL; ;} ------------------ | | 68| 2.55k|#define NIL ((List *) NULL) ------------------ 32825| 2.55k| break; 32826| | 32827| 0| case 155: ------------------ | Branch (32827:3): [True: 0, False: 76.7M] ------------------ 32828| 0|#line 1203 "gram.y" 32829| 0| { 32830| 0| (yyval.defelt) = makeDefElem("password", 32831| 0| (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 32832| 0| (yyval.defelt)->arg_location = (yylsp[(2) - (2)]); 32833| 0| ;} 32834| 0| break; 32835| | 32836| 0| case 156: ------------------ | Branch (32836:3): [True: 0, False: 76.7M] ------------------ 32837| 0|#line 1209 "gram.y" 32838| 0| { 32839| 0| (yyval.defelt) = makeDefElem("password", 32840| 0| (Node *)makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)])), (yylsp[(1) - (2)])); 32841| 0| ;} 32842| 0| break; 32843| | 32844| 0| case 157: ------------------ | Branch (32844:3): [True: 0, False: 76.7M] ------------------ 32845| 0|#line 1214 "gram.y" 32846| 0| { 32847| 0| (yyval.defelt) = makeDefElem("password", NULL, (yylsp[(1) - (2)])); 32848| 0| ;} 32849| 0| break; 32850| | 32851| 0| case 158: ------------------ | Branch (32851:3): [True: 0, False: 76.7M] ------------------ 32852| 0|#line 1218 "gram.y" 32853| 0| { 32854| | /* 32855| | * These days, passwords are always stored in encrypted 32856| | * form, so there is no difference between PASSWORD and 32857| | * ENCRYPTED PASSWORD. 32858| | */ 32859| 0| (yyval.defelt) = makeDefElem("password", 32860| 0| (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 32861| 0| (yyval.defelt)->arg_location = (yylsp[(3) - (3)]); 32862| 0| ;} 32863| 0| break; 32864| | 32865| 0| case 159: ------------------ | Branch (32865:3): [True: 0, False: 76.7M] ------------------ 32866| 0|#line 1229 "gram.y" 32867| 0| { 32868| | /* 32869| | * These days, passwords are always stored in encrypted 32870| | * form, so there is no difference between PASSWORD and 32871| | * ENCRYPTED PASSWORD. 32872| | */ 32873| 0| (yyval.defelt) = makeDefElem("password", 32874| 0| (Node *)makeParamRef((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)])), (yylsp[(1) - (3)])); 32875| 0| ;} 32876| 0| break; 32877| | 32878| 0| case 160: ------------------ | Branch (32878:3): [True: 0, False: 76.7M] ------------------ 32879| 0|#line 1239 "gram.y" 32880| 0| { 32881| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 32882| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 32883| 0| errmsg("UNENCRYPTED PASSWORD is no longer supported"), 32884| 0| errhint("Remove UNENCRYPTED to store the password in encrypted form instead."), 32885| 0| parser_errposition((yylsp[(1) - (3)])))); 32886| 0| ;} 32887| 0| break; 32888| | 32889| 0| case 161: ------------------ | Branch (32889:3): [True: 0, False: 76.7M] ------------------ 32890| 0|#line 1247 "gram.y" 32891| 0| { 32892| 0| (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32893| 0| ;} 32894| 0| break; 32895| | 32896| 0| case 162: ------------------ | Branch (32896:3): [True: 0, False: 76.7M] ------------------ 32897| 0|#line 1251 "gram.y" 32898| 0| { 32899| 0| (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); 32900| 0| ;} 32901| 0| break; 32902| | 32903| 0| case 163: ------------------ | Branch (32903:3): [True: 0, False: 76.7M] ------------------ 32904| 0|#line 1255 "gram.y" 32905| 0| { 32906| 0| (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 32907| 0| (yyval.defelt)->arg_location = (yylsp[(3) - (3)]); 32908| 0| ;} 32909| 0| break; 32910| | 32911| 11.4k| case 164: ------------------ | Branch (32911:3): [True: 11.4k, False: 76.7M] ------------------ 32912| 11.4k|#line 1261 "gram.y" 32913| 11.4k| { 32914| 11.4k| (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 32915| 11.4k| ;} 32916| 11.4k| break; 32917| | 32918| 2.09k| case 165: ------------------ | Branch (32918:3): [True: 2.09k, False: 76.7M] ------------------ 32919| 2.09k|#line 1265 "gram.y" 32920| 2.09k| { 32921| | /* 32922| | * We handle identifiers that aren't parser keywords with 32923| | * the following special-case codes, to avoid bloating the 32924| | * size of the main parser. 32925| | */ 32926| 2.09k| if (strcmp((yyvsp[(1) - (1)].str), "superuser") == 0) ------------------ | Branch (32926:10): [True: 395, False: 1.70k] ------------------ 32927| 395| (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32928| 1.70k| else if (strcmp((yyvsp[(1) - (1)].str), "nosuperuser") == 0) ------------------ | Branch (32928:15): [True: 0, False: 1.70k] ------------------ 32929| 0| (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32930| 1.70k| else if (strcmp((yyvsp[(1) - (1)].str), "createrole") == 0) ------------------ | Branch (32930:15): [True: 52, False: 1.65k] ------------------ 32931| 52| (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32932| 1.65k| else if (strcmp((yyvsp[(1) - (1)].str), "nocreaterole") == 0) ------------------ | Branch (32932:15): [True: 0, False: 1.65k] ------------------ 32933| 0| (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32934| 1.65k| else if (strcmp((yyvsp[(1) - (1)].str), "replication") == 0) ------------------ | Branch (32934:15): [True: 6, False: 1.64k] ------------------ 32935| 6| (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32936| 1.64k| else if (strcmp((yyvsp[(1) - (1)].str), "noreplication") == 0) ------------------ | Branch (32936:15): [True: 352, False: 1.29k] ------------------ 32937| 352| (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32938| 1.29k| else if (strcmp((yyvsp[(1) - (1)].str), "createdb") == 0) ------------------ | Branch (32938:15): [True: 0, False: 1.29k] ------------------ 32939| 0| (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32940| 1.29k| else if (strcmp((yyvsp[(1) - (1)].str), "nocreatedb") == 0) ------------------ | Branch (32940:15): [True: 0, False: 1.29k] ------------------ 32941| 0| (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32942| 1.29k| else if (strcmp((yyvsp[(1) - (1)].str), "login") == 0) ------------------ | Branch (32942:15): [True: 29, False: 1.26k] ------------------ 32943| 29| (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32944| 1.26k| else if (strcmp((yyvsp[(1) - (1)].str), "nologin") == 0) ------------------ | Branch (32944:15): [True: 0, False: 1.26k] ------------------ 32945| 0| (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32946| 1.26k| else if (strcmp((yyvsp[(1) - (1)].str), "bypassrls") == 0) ------------------ | Branch (32946:15): [True: 232, False: 1.03k] ------------------ 32947| 232| (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 32948| 1.03k| else if (strcmp((yyvsp[(1) - (1)].str), "nobypassrls") == 0) ------------------ | Branch (32948:15): [True: 0, False: 1.03k] ------------------ 32949| 0| (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32950| 1.03k| else if (strcmp((yyvsp[(1) - (1)].str), "noinherit") == 0) ------------------ | Branch (32950:15): [True: 1.03k, False: 1] ------------------ 32951| 1.03k| { 32952| | /* 32953| | * Note that INHERIT is a keyword, so it's handled by main parser, but 32954| | * NOINHERIT is handled here. 32955| | */ 32956| 1.03k| (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); 32957| 1.03k| } 32958| 1| else 32959| 1| ereport(ERROR, ------------------ | | 164| 1| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 1| do { \ | | | | 143| 1| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 1|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 1|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 1, Folded] | | | | | Branch (144:7): [True: 1, False: 0] | | | | | Branch (144:39): [True: 1, Folded] | | | | ------------------ | | | | 145| 1| errstart_cold(elevel, domain) : \ | | | | 146| 1| errstart(elevel, domain)) \ | | | | 147| 1| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 1| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 1| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 1] | | | | ------------------ | | ------------------ ------------------ 32960| 2.09k| (errcode(ERRCODE_SYNTAX_ERROR), 32961| 2.09k| errmsg("unrecognized role option \"%s\"", (yyvsp[(1) - (1)].str)), 32962| 2.09k| parser_errposition((yylsp[(1) - (1)])))); 32963| 2.09k| ;} 32964| 0| break; 32965| | 32966| 1.17k| case 166: ------------------ | Branch (32966:3): [True: 1.17k, False: 76.7M] ------------------ 32967| 1.17k|#line 1312 "gram.y" 32968| 1.17k| { (yyval.defelt) = (yyvsp[(1) - (1)].defelt); ;} 32969| 1.17k| break; 32970| | 32971| 0| case 167: ------------------ | Branch (32971:3): [True: 0, False: 76.7M] ------------------ 32972| 0|#line 1315 "gram.y" 32973| 0| { 32974| 0| (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); 32975| 0| ;} 32976| 0| break; 32977| | 32978| 0| case 168: ------------------ | Branch (32978:3): [True: 0, False: 76.7M] ------------------ 32979| 0|#line 1319 "gram.y" 32980| 0| { 32981| 0| (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 32982| 0| ;} 32983| 0| break; 32984| | 32985| 0| case 169: ------------------ | Branch (32985:3): [True: 0, False: 76.7M] ------------------ 32986| 0|#line 1323 "gram.y" 32987| 0| { 32988| 0| (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 32989| 0| ;} 32990| 0| break; 32991| | 32992| 0| case 170: ------------------ | Branch (32992:3): [True: 0, False: 76.7M] ------------------ 32993| 0|#line 1327 "gram.y" 32994| 0| { 32995| 0| (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 32996| 0| ;} 32997| 0| break; 32998| | 32999| 0| case 171: ------------------ | Branch (32999:3): [True: 0, False: 76.7M] ------------------ 33000| 0|#line 1331 "gram.y" 33001| 0| { 33002| 0| (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 33003| 0| ;} 33004| 0| break; 33005| | 33006| 629| case 172: ------------------ | Branch (33006:3): [True: 629, False: 76.7M] ------------------ 33007| 629|#line 1345 "gram.y" 33008| 629| { 33009| 629| CreateRoleStmt *n = makeNode(CreateRoleStmt); ------------------ | | 161| 629|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33010| | 33011| 629| n->stmt_type = ROLESTMT_USER; 33012| 629| n->role = (yyvsp[(3) - (5)].str); 33013| 629| n->options = (yyvsp[(5) - (5)].list); 33014| 629| (yyval.node) = (Node *) n; 33015| 629| ;} 33016| 629| break; 33017| | 33018| 2.33k| case 173: ------------------ | Branch (33018:3): [True: 2.33k, False: 76.7M] ------------------ 33019| 2.33k|#line 1364 "gram.y" 33020| 2.33k| { 33021| 2.33k| AlterRoleStmt *n = makeNode(AlterRoleStmt); ------------------ | | 161| 2.33k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33022| | 33023| 2.33k| n->role = (yyvsp[(3) - (5)].rolespec); 33024| 2.33k| n->action = +1; /* add, if there are members */ 33025| 2.33k| n->options = (yyvsp[(5) - (5)].list); 33026| 2.33k| (yyval.node) = (Node *) n; 33027| 2.33k| ;} 33028| 2.33k| break; 33029| | 33030| 219| case 174: ------------------ | Branch (33030:3): [True: 219, False: 76.7M] ------------------ 33031| 219|#line 1373 "gram.y" 33032| 219| { 33033| 219| AlterRoleStmt *n = makeNode(AlterRoleStmt); ------------------ | | 161| 219|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33034| | 33035| 219| n->role = (yyvsp[(3) - (5)].rolespec); 33036| 219| n->action = +1; /* add, if there are members */ 33037| 219| n->options = (yyvsp[(5) - (5)].list); 33038| 219| (yyval.node) = (Node *) n; 33039| 219| ;} 33040| 219| break; 33041| | 33042| 130| case 175: ------------------ | Branch (33042:3): [True: 130, False: 76.7M] ------------------ 33043| 130|#line 1384 "gram.y" 33044| 130| { (yyval.str) = NULL; ;} 33045| 130| break; 33046| | 33047| 0| case 176: ------------------ | Branch (33047:3): [True: 0, False: 76.7M] ------------------ 33048| 0|#line 1385 "gram.y" 33049| 0| { (yyval.str) = (yyvsp[(3) - (3)].str); ;} 33050| 0| break; 33051| | 33052| 130| case 177: ------------------ | Branch (33052:3): [True: 130, False: 76.7M] ------------------ 33053| 130|#line 1390 "gram.y" 33054| 130| { 33055| 130| AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); ------------------ | | 161| 130|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33056| | 33057| 130| n->role = (yyvsp[(3) - (5)].rolespec); 33058| 130| n->database = (yyvsp[(4) - (5)].str); 33059| 130| n->setstmt = (yyvsp[(5) - (5)].vsetstmt); 33060| 130| (yyval.node) = (Node *) n; 33061| 130| ;} 33062| 130| break; 33063| | 33064| 0| case 178: ------------------ | Branch (33064:3): [True: 0, False: 76.7M] ------------------ 33065| 0|#line 1399 "gram.y" 33066| 0| { 33067| 0| AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33068| | 33069| 0| n->role = NULL; 33070| 0| n->database = (yyvsp[(4) - (5)].str); 33071| 0| n->setstmt = (yyvsp[(5) - (5)].vsetstmt); 33072| 0| (yyval.node) = (Node *) n; 33073| 0| ;} 33074| 0| break; 33075| | 33076| 0| case 179: ------------------ | Branch (33076:3): [True: 0, False: 76.7M] ------------------ 33077| 0|#line 1408 "gram.y" 33078| 0| { 33079| 0| AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33080| | 33081| 0| n->role = (yyvsp[(3) - (5)].rolespec); 33082| 0| n->database = (yyvsp[(4) - (5)].str); 33083| 0| n->setstmt = (yyvsp[(5) - (5)].vsetstmt); 33084| 0| (yyval.node) = (Node *) n; 33085| 0| ;} 33086| 0| break; 33087| | 33088| 0| case 180: ------------------ | Branch (33088:3): [True: 0, False: 76.7M] ------------------ 33089| 0|#line 1417 "gram.y" 33090| 0| { 33091| 0| AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33092| | 33093| 0| n->role = NULL; 33094| 0| n->database = (yyvsp[(4) - (5)].str); 33095| 0| n->setstmt = (yyvsp[(5) - (5)].vsetstmt); 33096| 0| (yyval.node) = (Node *) n; 33097| 0| ;} 33098| 0| break; 33099| | 33100| 0| case 181: ------------------ | Branch (33100:3): [True: 0, False: 76.7M] ------------------ 33101| 0|#line 1439 "gram.y" 33102| 0| { 33103| 0| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33104| | 33105| 0| n->missing_ok = false; 33106| 0| n->roles = (yyvsp[(3) - (3)].list); 33107| 0| (yyval.node) = (Node *) n; 33108| 0| ;} 33109| 0| break; 33110| | 33111| 0| case 182: ------------------ | Branch (33111:3): [True: 0, False: 76.7M] ------------------ 33112| 0|#line 1447 "gram.y" 33113| 0| { 33114| 0| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33115| | 33116| 0| n->missing_ok = true; 33117| 0| n->roles = (yyvsp[(5) - (5)].list); 33118| 0| (yyval.node) = (Node *) n; 33119| 0| ;} 33120| 0| break; 33121| | 33122| 1| case 183: ------------------ | Branch (33122:3): [True: 1, False: 76.7M] ------------------ 33123| 1|#line 1455 "gram.y" 33124| 1| { 33125| 1| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 1|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33126| | 33127| 1| n->missing_ok = false; 33128| 1| n->roles = (yyvsp[(3) - (3)].list); 33129| 1| (yyval.node) = (Node *) n; 33130| 1| ;} 33131| 1| break; 33132| | 33133| 0| case 184: ------------------ | Branch (33133:3): [True: 0, False: 76.7M] ------------------ 33134| 0|#line 1463 "gram.y" 33135| 0| { 33136| 0| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33137| | 33138| 0| n->roles = (yyvsp[(5) - (5)].list); 33139| 0| n->missing_ok = true; 33140| 0| (yyval.node) = (Node *) n; 33141| 0| ;} 33142| 0| break; 33143| | 33144| 9| case 185: ------------------ | Branch (33144:3): [True: 9, False: 76.7M] ------------------ 33145| 9|#line 1471 "gram.y" 33146| 9| { 33147| 9| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 9|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33148| | 33149| 9| n->missing_ok = false; 33150| 9| n->roles = (yyvsp[(3) - (3)].list); 33151| 9| (yyval.node) = (Node *) n; 33152| 9| ;} 33153| 9| break; 33154| | 33155| 0| case 186: ------------------ | Branch (33155:3): [True: 0, False: 76.7M] ------------------ 33156| 0|#line 1479 "gram.y" 33157| 0| { 33158| 0| DropRoleStmt *n = makeNode(DropRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33159| | 33160| 0| n->missing_ok = true; 33161| 0| n->roles = (yyvsp[(5) - (5)].list); 33162| 0| (yyval.node) = (Node *) n; 33163| 0| ;} 33164| 0| break; 33165| | 33166| 0| case 187: ------------------ | Branch (33166:3): [True: 0, False: 76.7M] ------------------ 33167| 0|#line 1497 "gram.y" 33168| 0| { 33169| 0| CreateRoleStmt *n = makeNode(CreateRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33170| | 33171| 0| n->stmt_type = ROLESTMT_GROUP; 33172| 0| n->role = (yyvsp[(3) - (5)].str); 33173| 0| n->options = (yyvsp[(5) - (5)].list); 33174| 0| (yyval.node) = (Node *) n; 33175| 0| ;} 33176| 0| break; 33177| | 33178| 0| case 188: ------------------ | Branch (33178:3): [True: 0, False: 76.7M] ------------------ 33179| 0|#line 1516 "gram.y" 33180| 0| { 33181| 0| AlterRoleStmt *n = makeNode(AlterRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33182| | 33183| 0| n->role = (yyvsp[(3) - (6)].rolespec); 33184| 0| n->action = (yyvsp[(4) - (6)].ival); 33185| 0| n->options = list_make1(makeDefElem("rolemembers", ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33186| 0| (Node *) (yyvsp[(6) - (6)].list), (yylsp[(6) - (6)]))); 33187| 0| (yyval.node) = (Node *) n; 33188| 0| ;} 33189| 0| break; 33190| | 33191| 0| case 189: ------------------ | Branch (33191:3): [True: 0, False: 76.7M] ------------------ 33192| 0|#line 1527 "gram.y" 33193| 0| { (yyval.ival) = +1; ;} 33194| 0| break; 33195| | 33196| 0| case 190: ------------------ | Branch (33196:3): [True: 0, False: 76.7M] ------------------ 33197| 0|#line 1528 "gram.y" 33198| 0| { (yyval.ival) = -1; ;} 33199| 0| break; 33200| | 33201| 0| case 191: ------------------ | Branch (33201:3): [True: 0, False: 76.7M] ------------------ 33202| 0|#line 1540 "gram.y" 33203| 0| { 33204| 0| CreateSchemaStmt *n = makeNode(CreateSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33205| | 33206| | /* One can omit the schema name or the authorization id. */ 33207| 0| n->schemaname = (yyvsp[(3) - (6)].str); 33208| 0| n->authrole = (yyvsp[(5) - (6)].rolespec); 33209| 0| n->schemaElts = (yyvsp[(6) - (6)].list); 33210| 0| n->if_not_exists = false; 33211| 0| (yyval.node) = (Node *) n; 33212| 0| ;} 33213| 0| break; 33214| | 33215| 262| case 192: ------------------ | Branch (33215:3): [True: 262, False: 76.7M] ------------------ 33216| 262|#line 1551 "gram.y" 33217| 262| { 33218| 262| CreateSchemaStmt *n = makeNode(CreateSchemaStmt); ------------------ | | 161| 262|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33219| | 33220| | /* ...but not both */ 33221| 262| n->schemaname = (yyvsp[(3) - (4)].str); 33222| 262| n->authrole = NULL; 33223| 262| n->schemaElts = (yyvsp[(4) - (4)].list); 33224| 262| n->if_not_exists = false; 33225| 262| (yyval.node) = (Node *) n; 33226| 262| ;} 33227| 262| break; 33228| | 33229| 0| case 193: ------------------ | Branch (33229:3): [True: 0, False: 76.7M] ------------------ 33230| 0|#line 1562 "gram.y" 33231| 0| { 33232| 0| CreateSchemaStmt *n = makeNode(CreateSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33233| | 33234| | /* schema name can be omitted here, too */ 33235| 0| n->schemaname = (yyvsp[(6) - (9)].str); 33236| 0| n->authrole = (yyvsp[(8) - (9)].rolespec); 33237| 0| if ((yyvsp[(9) - (9)].list) != NIL) ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ | Branch (33237:10): [True: 0, False: 0] ------------------ 33238| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 33239| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 33240| 0| errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), 33241| 0| parser_errposition((yylsp[(9) - (9)])))); 33242| 0| n->schemaElts = (yyvsp[(9) - (9)].list); 33243| 0| n->if_not_exists = true; 33244| 0| (yyval.node) = (Node *) n; 33245| 0| ;} 33246| 0| break; 33247| | 33248| 0| case 194: ------------------ | Branch (33248:3): [True: 0, False: 76.7M] ------------------ 33249| 0|#line 1578 "gram.y" 33250| 0| { 33251| 0| CreateSchemaStmt *n = makeNode(CreateSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33252| | 33253| | /* ...but not here */ 33254| 0| n->schemaname = (yyvsp[(6) - (7)].str); 33255| 0| n->authrole = NULL; 33256| 0| if ((yyvsp[(7) - (7)].list) != NIL) ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ | Branch (33256:10): [True: 0, False: 0] ------------------ 33257| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 33258| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 33259| 0| errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"), 33260| 0| parser_errposition((yylsp[(7) - (7)])))); 33261| 0| n->schemaElts = (yyvsp[(7) - (7)].list); 33262| 0| n->if_not_exists = true; 33263| 0| (yyval.node) = (Node *) n; 33264| 0| ;} 33265| 0| break; 33266| | 33267| 518| case 195: ------------------ | Branch (33267:3): [True: 518, False: 76.7M] ------------------ 33268| 518|#line 1597 "gram.y" 33269| 518| { 33270| 518| (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); 33271| 518| ;} 33272| 518| break; 33273| | 33274| 262| case 196: ------------------ | Branch (33274:3): [True: 262, False: 76.7M] ------------------ 33275| 262|#line 1601 "gram.y" 33276| 262| { (yyval.list) = NIL; ;} ------------------ | | 68| 262|#define NIL ((List *) NULL) ------------------ 33277| 262| break; 33278| | 33279| 5.34k| case 203: ------------------ | Branch (33279:3): [True: 5.34k, False: 76.7M] ------------------ 33280| 5.34k|#line 1629 "gram.y" 33281| 5.34k| { 33282| 5.34k| VariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); 33283| | 33284| 5.34k| n->is_local = false; 33285| 5.34k| (yyval.node) = (Node *) n; 33286| 5.34k| ;} 33287| 5.34k| break; 33288| | 33289| 0| case 204: ------------------ | Branch (33289:3): [True: 0, False: 76.7M] ------------------ 33290| 0|#line 1636 "gram.y" 33291| 0| { 33292| 0| VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); 33293| | 33294| 0| n->is_local = true; 33295| 0| (yyval.node) = (Node *) n; 33296| 0| ;} 33297| 0| break; 33298| | 33299| 0| case 205: ------------------ | Branch (33299:3): [True: 0, False: 76.7M] ------------------ 33300| 0|#line 1643 "gram.y" 33301| 0| { 33302| 0| VariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); 33303| | 33304| 0| n->is_local = false; 33305| 0| (yyval.node) = (Node *) n; 33306| 0| ;} 33307| 0| break; 33308| | 33309| 0| case 206: ------------------ | Branch (33309:3): [True: 0, False: 76.7M] ------------------ 33310| 0|#line 1653 "gram.y" 33311| 0| { 33312| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33313| | 33314| 0| n->kind = VAR_SET_MULTI; 33315| 0| n->name = "TRANSACTION"; 33316| 0| n->args = (yyvsp[(2) - (2)].list); 33317| 0| n->jumble_args = true; 33318| 0| n->location = -1; 33319| 0| (yyval.vsetstmt) = n; 33320| 0| ;} 33321| 0| break; 33322| | 33323| 0| case 207: ------------------ | Branch (33323:3): [True: 0, False: 76.7M] ------------------ 33324| 0|#line 1664 "gram.y" 33325| 0| { 33326| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33327| | 33328| 0| n->kind = VAR_SET_MULTI; 33329| 0| n->name = "SESSION CHARACTERISTICS"; 33330| 0| n->args = (yyvsp[(5) - (5)].list); 33331| 0| n->jumble_args = true; 33332| 0| n->location = -1; 33333| 0| (yyval.vsetstmt) = n; 33334| 0| ;} 33335| 0| break; 33336| | 33337| 0| case 209: ------------------ | Branch (33337:3): [True: 0, False: 76.7M] ------------------ 33338| 0|#line 1679 "gram.y" 33339| 0| { 33340| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33341| | 33342| 0| n->kind = VAR_SET_VALUE; 33343| 0| n->name = (yyvsp[(1) - (3)].str); 33344| 0| n->args = (yyvsp[(3) - (3)].list); 33345| 0| n->location = (yylsp[(3) - (3)]); 33346| 0| (yyval.vsetstmt) = n; 33347| 0| ;} 33348| 0| break; 33349| | 33350| 889| case 210: ------------------ | Branch (33350:3): [True: 889, False: 76.7M] ------------------ 33351| 889|#line 1689 "gram.y" 33352| 889| { 33353| 889| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 889|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33354| | 33355| 889| n->kind = VAR_SET_VALUE; 33356| 889| n->name = (yyvsp[(1) - (3)].str); 33357| 889| n->args = (yyvsp[(3) - (3)].list); 33358| 889| n->location = (yylsp[(3) - (3)]); 33359| 889| (yyval.vsetstmt) = n; 33360| 889| ;} 33361| 889| break; 33362| | 33363| 1| case 211: ------------------ | Branch (33363:3): [True: 1, False: 76.7M] ------------------ 33364| 1|#line 1699 "gram.y" 33365| 1| { 33366| 1| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 1|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33367| | 33368| 1| n->kind = VAR_SET_DEFAULT; 33369| 1| n->name = (yyvsp[(1) - (3)].str); 33370| 1| n->location = -1; 33371| 1| (yyval.vsetstmt) = n; 33372| 1| ;} 33373| 1| break; 33374| | 33375| 0| case 212: ------------------ | Branch (33375:3): [True: 0, False: 76.7M] ------------------ 33376| 0|#line 1708 "gram.y" 33377| 0| { 33378| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33379| | 33380| 0| n->kind = VAR_SET_DEFAULT; 33381| 0| n->name = (yyvsp[(1) - (3)].str); 33382| 0| n->location = -1; 33383| 0| (yyval.vsetstmt) = n; 33384| 0| ;} 33385| 0| break; 33386| | 33387| 890| case 213: ------------------ | Branch (33387:3): [True: 890, False: 76.7M] ------------------ 33388| 890|#line 1719 "gram.y" 33389| 890| {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} 33390| 890| break; 33391| | 33392| 4.08k| case 214: ------------------ | Branch (33392:3): [True: 4.08k, False: 76.7M] ------------------ 33393| 4.08k|#line 1721 "gram.y" 33394| 4.08k| { 33395| 4.08k| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 4.08k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33396| | 33397| 4.08k| n->kind = VAR_SET_CURRENT; 33398| 4.08k| n->name = (yyvsp[(1) - (3)].str); 33399| 4.08k| n->location = -1; 33400| 4.08k| (yyval.vsetstmt) = n; 33401| 4.08k| ;} 33402| 4.08k| break; 33403| | 33404| 0| case 215: ------------------ | Branch (33404:3): [True: 0, False: 76.7M] ------------------ 33405| 0|#line 1731 "gram.y" 33406| 0| { 33407| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33408| | 33409| 0| n->kind = VAR_SET_VALUE; 33410| 0| n->name = "timezone"; 33411| 0| n->location = -1; 33412| 0| n->jumble_args = true; 33413| 0| if ((yyvsp[(3) - (3)].node) != NULL) ------------------ | Branch (33413:10): [True: 0, False: 0] ------------------ 33414| 0| n->args = list_make1((yyvsp[(3) - (3)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33415| 0| else 33416| 0| n->kind = VAR_SET_DEFAULT; 33417| 0| (yyval.vsetstmt) = n; 33418| 0| ;} 33419| 0| break; 33420| | 33421| 0| case 216: ------------------ | Branch (33421:3): [True: 0, False: 76.7M] ------------------ 33422| 0|#line 1745 "gram.y" 33423| 0| { 33424| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 33425| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 33426| 0| errmsg("current database cannot be changed"), 33427| 0| parser_errposition((yylsp[(2) - (2)])))); 33428| 0| (yyval.vsetstmt) = NULL; /*not reached*/ 33429| 0| ;} 33430| 0| break; 33431| | 33432| 1| case 217: ------------------ | Branch (33432:3): [True: 1, False: 76.7M] ------------------ 33433| 1|#line 1753 "gram.y" 33434| 1| { 33435| 1| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 1|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33436| | 33437| 1| n->kind = VAR_SET_VALUE; 33438| 1| n->name = "search_path"; 33439| 1| n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); ------------------ | | 213| 1| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33440| 1| n->location = (yylsp[(2) - (2)]); 33441| 1| (yyval.vsetstmt) = n; 33442| 1| ;} 33443| 1| break; 33444| | 33445| 884| case 218: ------------------ | Branch (33445:3): [True: 884, False: 76.7M] ------------------ 33446| 884|#line 1763 "gram.y" 33447| 884| { 33448| 884| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 884|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33449| 884| n->kind = VAR_SET_VALUE; 33450| 884| n->name = "search_path"; 33451| 884| n->args = list_make1(makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]))); ------------------ | | 213| 884| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 884|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33452| 884| (yyval.vsetstmt) = n; 33453| 884| ;} 33454| 884| break; 33455| | 33456| 0| case 219: ------------------ | Branch (33456:3): [True: 0, False: 76.7M] ------------------ 33457| 0|#line 1771 "gram.y" 33458| 0| { 33459| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33460| | 33461| 0| n->kind = VAR_SET_VALUE; 33462| 0| n->name = "client_encoding"; 33463| 0| n->location = (yylsp[(2) - (2)]); 33464| 0| if ((yyvsp[(2) - (2)].str) != NULL) ------------------ | Branch (33464:10): [True: 0, False: 0] ------------------ 33465| 0| n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33466| 0| else 33467| 0| n->kind = VAR_SET_DEFAULT; 33468| 0| (yyval.vsetstmt) = n; 33469| 0| ;} 33470| 0| break; 33471| | 33472| 0| case 220: ------------------ | Branch (33472:3): [True: 0, False: 76.7M] ------------------ 33473| 0|#line 1784 "gram.y" 33474| 0| { 33475| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33476| | 33477| 0| n->kind = VAR_SET_VALUE; 33478| 0| n->name = "role"; 33479| 0| n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33480| 0| n->location = (yylsp[(2) - (2)]); 33481| 0| (yyval.vsetstmt) = n; 33482| 0| ;} 33483| 0| break; 33484| | 33485| 0| case 221: ------------------ | Branch (33485:3): [True: 0, False: 76.7M] ------------------ 33486| 0|#line 1794 "gram.y" 33487| 0| { 33488| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33489| 0| n->kind = VAR_SET_VALUE; 33490| 0| n->name = "role"; 33491| 0| n->args = list_make1(makeParamRef((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33492| 0| (yyval.vsetstmt) = n; 33493| 0| ;} 33494| 0| break; 33495| | 33496| 0| case 222: ------------------ | Branch (33496:3): [True: 0, False: 76.7M] ------------------ 33497| 0|#line 1802 "gram.y" 33498| 0| { 33499| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33500| | 33501| 0| n->kind = VAR_SET_VALUE; 33502| 0| n->name = "session_authorization"; 33503| 0| n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33504| 0| n->location = (yylsp[(3) - (3)]); 33505| 0| (yyval.vsetstmt) = n; 33506| 0| ;} 33507| 0| break; 33508| | 33509| 0| case 223: ------------------ | Branch (33509:3): [True: 0, False: 76.7M] ------------------ 33510| 0|#line 1812 "gram.y" 33511| 0| { 33512| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33513| 0| n->kind = VAR_SET_VALUE; 33514| 0| n->name = "session_authorization"; 33515| 0| n->args = list_make1(makeParamRef((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33516| 0| (yyval.vsetstmt) = n; 33517| 0| ;} 33518| 0| break; 33519| | 33520| 0| case 224: ------------------ | Branch (33520:3): [True: 0, False: 76.7M] ------------------ 33521| 0|#line 1820 "gram.y" 33522| 0| { 33523| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33524| | 33525| 0| n->kind = VAR_SET_DEFAULT; 33526| 0| n->name = "session_authorization"; 33527| 0| n->location = -1; 33528| 0| (yyval.vsetstmt) = n; 33529| 0| ;} 33530| 0| break; 33531| | 33532| 0| case 225: ------------------ | Branch (33532:3): [True: 0, False: 76.7M] ------------------ 33533| 0|#line 1829 "gram.y" 33534| 0| { 33535| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33536| | 33537| 0| n->kind = VAR_SET_VALUE; 33538| 0| n->name = "xmloption"; 33539| 0| n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[(3) - (3)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | | | ------------------ | | | | | Branch (207:58): [True: 0, False: 0] | | | | ------------------ | | ------------------ ------------------ 33540| 0| n->jumble_args = true; 33541| 0| n->location = -1; 33542| 0| (yyval.vsetstmt) = n; 33543| 0| ;} 33544| 0| break; 33545| | 33546| 0| case 226: ------------------ | Branch (33546:3): [True: 0, False: 76.7M] ------------------ 33547| 0|#line 1841 "gram.y" 33548| 0| { 33549| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33550| | 33551| 0| n->kind = VAR_SET_MULTI; 33552| 0| n->name = "TRANSACTION SNAPSHOT"; 33553| 0| n->args = list_make1(makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33554| 0| n->location = (yylsp[(3) - (3)]); 33555| 0| (yyval.vsetstmt) = n; 33556| 0| ;} 33557| 0| break; 33558| | 33559| 5.52k| case 227: ------------------ | Branch (33559:3): [True: 5.52k, False: 76.7M] ------------------ 33560| 5.52k|#line 1852 "gram.y" 33561| 5.52k| { (yyval.str) = NameListToString((yyvsp[(1) - (1)].list)); ;} 33562| 5.52k| break; 33563| | 33564| 5.52k| case 228: ------------------ | Branch (33564:3): [True: 5.52k, False: 76.7M] ------------------ 33565| 5.52k|#line 1856 "gram.y" 33566| 5.52k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 5.52k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 5.52k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33567| 5.52k| break; 33568| | 33569| 497k| case 229: ------------------ | Branch (33569:3): [True: 497k, False: 76.2M] ------------------ 33570| 497k|#line 1857 "gram.y" 33571| 497k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} 33572| 497k| break; 33573| | 33574| 893| case 230: ------------------ | Branch (33574:3): [True: 893, False: 76.7M] ------------------ 33575| 893|#line 1860 "gram.y" 33576| 893| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 893| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 893|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33577| 893| break; 33578| | 33579| 0| case 231: ------------------ | Branch (33579:3): [True: 0, False: 76.7M] ------------------ 33580| 0|#line 1861 "gram.y" 33581| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 33582| 0| break; 33583| | 33584| 890| case 232: ------------------ | Branch (33584:3): [True: 890, False: 76.7M] ------------------ 33585| 890|#line 1865 "gram.y" 33586| 890| { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} 33587| 890| break; 33588| | 33589| 3| case 233: ------------------ | Branch (33589:3): [True: 3, False: 76.7M] ------------------ 33590| 3|#line 1867 "gram.y" 33591| 3| { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} 33592| 3| break; 33593| | 33594| 0| case 234: ------------------ | Branch (33594:3): [True: 0, False: 76.7M] ------------------ 33595| 0|#line 1869 "gram.y" 33596| 0| { (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} 33597| 0| break; 33598| | 33599| 0| case 235: ------------------ | Branch (33599:3): [True: 0, False: 76.7M] ------------------ 33600| 0|#line 1872 "gram.y" 33601| 0| { (yyval.str) = "read uncommitted"; ;} 33602| 0| break; 33603| | 33604| 0| case 236: ------------------ | Branch (33604:3): [True: 0, False: 76.7M] ------------------ 33605| 0|#line 1873 "gram.y" 33606| 0| { (yyval.str) = "read committed"; ;} 33607| 0| break; 33608| | 33609| 0| case 237: ------------------ | Branch (33609:3): [True: 0, False: 76.7M] ------------------ 33610| 0|#line 1874 "gram.y" 33611| 0| { (yyval.str) = "repeatable read"; ;} 33612| 0| break; 33613| | 33614| 0| case 238: ------------------ | Branch (33614:3): [True: 0, False: 76.7M] ------------------ 33615| 0|#line 1875 "gram.y" 33616| 0| { (yyval.str) = "serializable"; ;} 33617| 0| break; 33618| | 33619| 0| case 239: ------------------ | Branch (33619:3): [True: 0, False: 76.7M] ------------------ 33620| 0|#line 1879 "gram.y" 33621| 0| { (yyval.str) = "true"; ;} 33622| 0| break; 33623| | 33624| 0| case 240: ------------------ | Branch (33624:3): [True: 0, False: 76.7M] ------------------ 33625| 0|#line 1880 "gram.y" 33626| 0| { (yyval.str) = "false"; ;} 33627| 0| break; 33628| | 33629| 0| case 241: ------------------ | Branch (33629:3): [True: 0, False: 76.7M] ------------------ 33630| 0|#line 1881 "gram.y" 33631| 0| { (yyval.str) = "on"; ;} 33632| 0| break; 33633| | 33634| 7.49k| case 242: ------------------ | Branch (33634:3): [True: 7.49k, False: 76.7M] ------------------ 33635| 7.49k|#line 1887 "gram.y" 33636| 7.49k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 33637| 7.49k| break; 33638| | 33639| 0| case 243: ------------------ | Branch (33639:3): [True: 0, False: 76.7M] ------------------ 33640| 0|#line 1900 "gram.y" 33641| 0| { 33642| 0| (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 33643| 0| ;} 33644| 0| break; 33645| | 33646| 0| case 244: ------------------ | Branch (33646:3): [True: 0, False: 76.7M] ------------------ 33647| 0|#line 1904 "gram.y" 33648| 0| { 33649| 0| (yyval.node) = makeParamRef((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); 33650| 0| ;} 33651| 0| break; 33652| | 33653| 0| case 245: ------------------ | Branch (33653:3): [True: 0, False: 76.7M] ------------------ 33654| 0|#line 1908 "gram.y" 33655| 0| { 33656| 0| (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 33657| 0| ;} 33658| 0| break; 33659| | 33660| 0| case 246: ------------------ | Branch (33660:3): [True: 0, False: 76.7M] ------------------ 33661| 0|#line 1912 "gram.y" 33662| 0| { 33663| 0| TypeName *t = (yyvsp[(1) - (3)].typnam); 33664| | 33665| 0| if ((yyvsp[(3) - (3)].list) != NIL) ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ | Branch (33665:10): [True: 0, False: 0] ------------------ 33666| 0| { 33667| 0| A_Const *n = (A_Const *) linitial((yyvsp[(3) - (3)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 33668| | 33669| 0| if ((n->val.ival.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ if ((n->val.ival.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ | Branch (33669:11): [True: 0, False: 0] ------------------ 33670| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 33671| 0| (errcode(ERRCODE_SYNTAX_ERROR), 33672| 0| errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), 33673| 0| parser_errposition((yylsp[(3) - (3)])))); 33674| 0| } 33675| 0| t->typmods = (yyvsp[(3) - (3)].list); 33676| 0| (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); 33677| 0| ;} 33678| 0| break; 33679| | 33680| 0| case 247: ------------------ | Branch (33680:3): [True: 0, False: 76.7M] ------------------ 33681| 0|#line 1929 "gram.y" 33682| 0| { 33683| 0| TypeName *t = (yyvsp[(1) - (5)].typnam); 33684| | 33685| 0| t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33686| 0| makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); 33687| 0| (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); 33688| 0| ;} 33689| 0| break; 33690| | 33691| 0| case 248: ------------------ | Branch (33691:3): [True: 0, False: 76.7M] ------------------ 33692| 0|#line 1936 "gram.y" 33693| 0| { (yyval.node) = makeAConst((yyvsp[(1) - (1)].node), (yylsp[(1) - (1)])); ;} 33694| 0| break; 33695| | 33696| 0| case 249: ------------------ | Branch (33696:3): [True: 0, False: 76.7M] ------------------ 33697| 0|#line 1937 "gram.y" 33698| 0| { (yyval.node) = NULL; ;} 33699| 0| break; 33700| | 33701| 0| case 250: ------------------ | Branch (33701:3): [True: 0, False: 76.7M] ------------------ 33702| 0|#line 1938 "gram.y" 33703| 0| { (yyval.node) = NULL; ;} 33704| 0| break; 33705| | 33706| 0| case 251: ------------------ | Branch (33706:3): [True: 0, False: 76.7M] ------------------ 33707| 0|#line 1942 "gram.y" 33708| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 33709| 0| break; 33710| | 33711| 0| case 252: ------------------ | Branch (33711:3): [True: 0, False: 76.7M] ------------------ 33712| 0|#line 1943 "gram.y" 33713| 0| { (yyval.str) = NULL; ;} 33714| 0| break; 33715| | 33716| 0| case 253: ------------------ | Branch (33716:3): [True: 0, False: 76.7M] ------------------ 33717| 0|#line 1944 "gram.y" 33718| 0| { (yyval.str) = NULL; ;} 33719| 0| break; 33720| | 33721| 7.49k| case 254: ------------------ | Branch (33721:3): [True: 7.49k, False: 76.7M] ------------------ 33722| 7.49k|#line 1948 "gram.y" 33723| 7.49k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 33724| 7.49k| break; 33725| | 33726| 0| case 255: ------------------ | Branch (33726:3): [True: 0, False: 76.7M] ------------------ 33727| 0|#line 1949 "gram.y" 33728| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 33729| 0| break; 33730| | 33731| 0| case 256: ------------------ | Branch (33731:3): [True: 0, False: 76.7M] ------------------ 33732| 0|#line 1953 "gram.y" 33733| 0| { (yyval.node) = (Node *) (yyvsp[(2) - (2)].vsetstmt); ;} 33734| 0| break; 33735| | 33736| 0| case 257: ------------------ | Branch (33736:3): [True: 0, False: 76.7M] ------------------ 33737| 0|#line 1957 "gram.y" 33738| 0| { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} 33739| 0| break; 33740| | 33741| 0| case 258: ------------------ | Branch (33741:3): [True: 0, False: 76.7M] ------------------ 33742| 0|#line 1959 "gram.y" 33743| 0| { 33744| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33745| | 33746| 0| n->kind = VAR_RESET; 33747| 0| n->name = "timezone"; 33748| 0| n->location = -1; 33749| 0| (yyval.vsetstmt) = n; 33750| 0| ;} 33751| 0| break; 33752| | 33753| 0| case 259: ------------------ | Branch (33753:3): [True: 0, False: 76.7M] ------------------ 33754| 0|#line 1968 "gram.y" 33755| 0| { 33756| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33757| | 33758| 0| n->kind = VAR_RESET; 33759| 0| n->name = "transaction_isolation"; 33760| 0| n->location = -1; 33761| 0| (yyval.vsetstmt) = n; 33762| 0| ;} 33763| 0| break; 33764| | 33765| 0| case 260: ------------------ | Branch (33765:3): [True: 0, False: 76.7M] ------------------ 33766| 0|#line 1977 "gram.y" 33767| 0| { 33768| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33769| | 33770| 0| n->kind = VAR_RESET; 33771| 0| n->name = "session_authorization"; 33772| 0| n->location = -1; 33773| 0| (yyval.vsetstmt) = n; 33774| 0| ;} 33775| 0| break; 33776| | 33777| 0| case 261: ------------------ | Branch (33777:3): [True: 0, False: 76.7M] ------------------ 33778| 0|#line 1989 "gram.y" 33779| 0| { 33780| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33781| | 33782| 0| n->kind = VAR_RESET; 33783| 0| n->name = (yyvsp[(1) - (1)].str); 33784| 0| n->location = -1; 33785| 0| (yyval.vsetstmt) = n; 33786| 0| ;} 33787| 0| break; 33788| | 33789| 0| case 262: ------------------ | Branch (33789:3): [True: 0, False: 76.7M] ------------------ 33790| 0|#line 1998 "gram.y" 33791| 0| { 33792| 0| VariableSetStmt *n = makeNode(VariableSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33793| | 33794| 0| n->kind = VAR_RESET_ALL; 33795| 0| n->location = -1; 33796| 0| (yyval.vsetstmt) = n; 33797| 0| ;} 33798| 0| break; 33799| | 33800| 130| case 263: ------------------ | Branch (33800:3): [True: 130, False: 76.7M] ------------------ 33801| 130|#line 2009 "gram.y" 33802| 130| { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} 33803| 130| break; 33804| | 33805| 0| case 264: ------------------ | Branch (33805:3): [True: 0, False: 76.7M] ------------------ 33806| 0|#line 2010 "gram.y" 33807| 0| { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} 33808| 0| break; 33809| | 33810| 388| case 265: ------------------ | Branch (33810:3): [True: 388, False: 76.7M] ------------------ 33811| 388|#line 2015 "gram.y" 33812| 388| { (yyval.vsetstmt) = (yyvsp[(2) - (2)].vsetstmt); ;} 33813| 388| break; 33814| | 33815| 0| case 266: ------------------ | Branch (33815:3): [True: 0, False: 76.7M] ------------------ 33816| 0|#line 2016 "gram.y" 33817| 0| { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[(1) - (1)].node); ;} 33818| 0| break; 33819| | 33820| 546| case 267: ------------------ | Branch (33820:3): [True: 546, False: 76.7M] ------------------ 33821| 546|#line 2022 "gram.y" 33822| 546| { 33823| 546| VariableShowStmt *n = makeNode(VariableShowStmt); ------------------ | | 161| 546|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33824| | 33825| 546| n->name = (yyvsp[(2) - (2)].str); 33826| 546| (yyval.node) = (Node *) n; 33827| 546| ;} 33828| 546| break; 33829| | 33830| 0| case 268: ------------------ | Branch (33830:3): [True: 0, False: 76.7M] ------------------ 33831| 0|#line 2029 "gram.y" 33832| 0| { 33833| 0| VariableShowStmt *n = makeNode(VariableShowStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33834| | 33835| 0| n->name = "timezone"; 33836| 0| (yyval.node) = (Node *) n; 33837| 0| ;} 33838| 0| break; 33839| | 33840| 0| case 269: ------------------ | Branch (33840:3): [True: 0, False: 76.7M] ------------------ 33841| 0|#line 2036 "gram.y" 33842| 0| { 33843| 0| VariableShowStmt *n = makeNode(VariableShowStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33844| | 33845| 0| n->name = "transaction_isolation"; 33846| 0| (yyval.node) = (Node *) n; 33847| 0| ;} 33848| 0| break; 33849| | 33850| 0| case 270: ------------------ | Branch (33850:3): [True: 0, False: 76.7M] ------------------ 33851| 0|#line 2043 "gram.y" 33852| 0| { 33853| 0| VariableShowStmt *n = makeNode(VariableShowStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33854| | 33855| 0| n->name = "session_authorization"; 33856| 0| (yyval.node) = (Node *) n; 33857| 0| ;} 33858| 0| break; 33859| | 33860| 1.52k| case 271: ------------------ | Branch (33860:3): [True: 1.52k, False: 76.7M] ------------------ 33861| 1.52k|#line 2050 "gram.y" 33862| 1.52k| { 33863| 1.52k| VariableShowStmt *n = makeNode(VariableShowStmt); ------------------ | | 161| 1.52k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33864| | 33865| 1.52k| n->name = "all"; 33866| 1.52k| (yyval.node) = (Node *) n; 33867| 1.52k| ;} 33868| 1.52k| break; 33869| | 33870| 0| case 272: ------------------ | Branch (33870:3): [True: 0, False: 76.7M] ------------------ 33871| 0|#line 2061 "gram.y" 33872| 0| { 33873| 0| ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33874| | 33875| 0| n->constraints = (yyvsp[(3) - (4)].list); 33876| 0| n->deferred = (yyvsp[(4) - (4)].boolean); 33877| 0| (yyval.node) = (Node *) n; 33878| 0| ;} 33879| 0| break; 33880| | 33881| 0| case 273: ------------------ | Branch (33881:3): [True: 0, False: 76.7M] ------------------ 33882| 0|#line 2071 "gram.y" 33883| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 33884| 0| break; 33885| | 33886| 0| case 274: ------------------ | Branch (33886:3): [True: 0, False: 76.7M] ------------------ 33887| 0|#line 2072 "gram.y" 33888| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 33889| 0| break; 33890| | 33891| 0| case 275: ------------------ | Branch (33891:3): [True: 0, False: 76.7M] ------------------ 33892| 0|#line 2076 "gram.y" 33893| 0| { (yyval.boolean) = true; ;} 33894| 0| break; 33895| | 33896| 0| case 276: ------------------ | Branch (33896:3): [True: 0, False: 76.7M] ------------------ 33897| 0|#line 2077 "gram.y" 33898| 0| { (yyval.boolean) = false; ;} 33899| 0| break; 33900| | 33901| 0| case 277: ------------------ | Branch (33901:3): [True: 0, False: 76.7M] ------------------ 33902| 0|#line 2086 "gram.y" 33903| 0| { 33904| 0| CheckPointStmt *n = makeNode(CheckPointStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33905| | 33906| 0| (yyval.node) = (Node *) n; 33907| 0| ;} 33908| 0| break; 33909| | 33910| 0| case 278: ------------------ | Branch (33910:3): [True: 0, False: 76.7M] ------------------ 33911| 0|#line 2102 "gram.y" 33912| 0| { 33913| 0| DiscardStmt *n = makeNode(DiscardStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33914| | 33915| 0| n->target = DISCARD_ALL; 33916| 0| (yyval.node) = (Node *) n; 33917| 0| ;} 33918| 0| break; 33919| | 33920| 0| case 279: ------------------ | Branch (33920:3): [True: 0, False: 76.7M] ------------------ 33921| 0|#line 2109 "gram.y" 33922| 0| { 33923| 0| DiscardStmt *n = makeNode(DiscardStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33924| | 33925| 0| n->target = DISCARD_TEMP; 33926| 0| (yyval.node) = (Node *) n; 33927| 0| ;} 33928| 0| break; 33929| | 33930| 0| case 280: ------------------ | Branch (33930:3): [True: 0, False: 76.7M] ------------------ 33931| 0|#line 2116 "gram.y" 33932| 0| { 33933| 0| DiscardStmt *n = makeNode(DiscardStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33934| | 33935| 0| n->target = DISCARD_TEMP; 33936| 0| (yyval.node) = (Node *) n; 33937| 0| ;} 33938| 0| break; 33939| | 33940| 0| case 281: ------------------ | Branch (33940:3): [True: 0, False: 76.7M] ------------------ 33941| 0|#line 2123 "gram.y" 33942| 0| { 33943| 0| DiscardStmt *n = makeNode(DiscardStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33944| | 33945| 0| n->target = DISCARD_PLANS; 33946| 0| (yyval.node) = (Node *) n; 33947| 0| ;} 33948| 0| break; 33949| | 33950| 0| case 282: ------------------ | Branch (33950:3): [True: 0, False: 76.7M] ------------------ 33951| 0|#line 2130 "gram.y" 33952| 0| { 33953| 0| DiscardStmt *n = makeNode(DiscardStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33954| | 33955| 0| n->target = DISCARD_SEQUENCES; 33956| 0| (yyval.node) = (Node *) n; 33957| 0| ;} 33958| 0| break; 33959| | 33960| 556| case 283: ------------------ | Branch (33960:3): [True: 556, False: 76.7M] ------------------ 33961| 556|#line 2150 "gram.y" 33962| 556| { 33963| 556| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 556|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33964| | 33965| 556| n->relation = (yyvsp[(3) - (4)].range); 33966| 556| n->cmds = (yyvsp[(4) - (4)].list); 33967| 556| n->objtype = OBJECT_TABLE; 33968| 556| n->missing_ok = false; 33969| 556| (yyval.node) = (Node *) n; 33970| 556| ;} 33971| 556| break; 33972| | 33973| 0| case 284: ------------------ | Branch (33973:3): [True: 0, False: 76.7M] ------------------ 33974| 0|#line 2160 "gram.y" 33975| 0| { 33976| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33977| | 33978| 0| n->relation = (yyvsp[(5) - (6)].range); 33979| 0| n->cmds = (yyvsp[(6) - (6)].list); 33980| 0| n->objtype = OBJECT_TABLE; 33981| 0| n->missing_ok = true; 33982| 0| (yyval.node) = (Node *) n; 33983| 0| ;} 33984| 0| break; 33985| | 33986| 0| case 285: ------------------ | Branch (33986:3): [True: 0, False: 76.7M] ------------------ 33987| 0|#line 2170 "gram.y" 33988| 0| { 33989| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 33990| | 33991| 0| n->relation = (yyvsp[(3) - (4)].range); 33992| 0| n->cmds = list_make1((yyvsp[(4) - (4)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 33993| 0| n->objtype = OBJECT_TABLE; 33994| 0| n->missing_ok = false; 33995| 0| (yyval.node) = (Node *) n; 33996| 0| ;} 33997| 0| break; 33998| | 33999| 0| case 286: ------------------ | Branch (33999:3): [True: 0, False: 76.7M] ------------------ 34000| 0|#line 2180 "gram.y" 34001| 0| { 34002| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34003| | 34004| 0| n->relation = (yyvsp[(5) - (6)].range); 34005| 0| n->cmds = list_make1((yyvsp[(6) - (6)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 34006| 0| n->objtype = OBJECT_TABLE; 34007| 0| n->missing_ok = true; 34008| 0| (yyval.node) = (Node *) n; 34009| 0| ;} 34010| 0| break; 34011| | 34012| 0| case 287: ------------------ | Branch (34012:3): [True: 0, False: 76.7M] ------------------ 34013| 0|#line 2190 "gram.y" 34014| 0| { 34015| 0| AlterTableMoveAllStmt *n = 34016| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34017| | 34018| 0| n->orig_tablespacename = (yyvsp[(6) - (10)].str); 34019| 0| n->objtype = OBJECT_TABLE; 34020| 0| n->roles = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 34021| 0| n->new_tablespacename = (yyvsp[(9) - (10)].str); 34022| 0| n->nowait = (yyvsp[(10) - (10)].boolean); 34023| 0| (yyval.node) = (Node *) n; 34024| 0| ;} 34025| 0| break; 34026| | 34027| 0| case 288: ------------------ | Branch (34027:3): [True: 0, False: 76.7M] ------------------ 34028| 0|#line 2202 "gram.y" 34029| 0| { 34030| 0| AlterTableMoveAllStmt *n = 34031| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34032| | 34033| 0| n->orig_tablespacename = (yyvsp[(6) - (13)].str); 34034| 0| n->objtype = OBJECT_TABLE; 34035| 0| n->roles = (yyvsp[(9) - (13)].list); 34036| 0| n->new_tablespacename = (yyvsp[(12) - (13)].str); 34037| 0| n->nowait = (yyvsp[(13) - (13)].boolean); 34038| 0| (yyval.node) = (Node *) n; 34039| 0| ;} 34040| 0| break; 34041| | 34042| 0| case 289: ------------------ | Branch (34042:3): [True: 0, False: 76.7M] ------------------ 34043| 0|#line 2214 "gram.y" 34044| 0| { 34045| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34046| | 34047| 0| n->relation = (yyvsp[(3) - (4)].range); 34048| 0| n->cmds = (yyvsp[(4) - (4)].list); 34049| 0| n->objtype = OBJECT_INDEX; 34050| 0| n->missing_ok = false; 34051| 0| (yyval.node) = (Node *) n; 34052| 0| ;} 34053| 0| break; 34054| | 34055| 0| case 290: ------------------ | Branch (34055:3): [True: 0, False: 76.7M] ------------------ 34056| 0|#line 2224 "gram.y" 34057| 0| { 34058| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34059| | 34060| 0| n->relation = (yyvsp[(5) - (6)].range); 34061| 0| n->cmds = (yyvsp[(6) - (6)].list); 34062| 0| n->objtype = OBJECT_INDEX; 34063| 0| n->missing_ok = true; 34064| 0| (yyval.node) = (Node *) n; 34065| 0| ;} 34066| 0| break; 34067| | 34068| 0| case 291: ------------------ | Branch (34068:3): [True: 0, False: 76.7M] ------------------ 34069| 0|#line 2234 "gram.y" 34070| 0| { 34071| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34072| | 34073| 0| n->relation = (yyvsp[(3) - (4)].range); 34074| 0| n->cmds = list_make1((yyvsp[(4) - (4)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 34075| 0| n->objtype = OBJECT_INDEX; 34076| 0| n->missing_ok = false; 34077| 0| (yyval.node) = (Node *) n; 34078| 0| ;} 34079| 0| break; 34080| | 34081| 0| case 292: ------------------ | Branch (34081:3): [True: 0, False: 76.7M] ------------------ 34082| 0|#line 2244 "gram.y" 34083| 0| { 34084| 0| AlterTableMoveAllStmt *n = 34085| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34086| | 34087| 0| n->orig_tablespacename = (yyvsp[(6) - (10)].str); 34088| 0| n->objtype = OBJECT_INDEX; 34089| 0| n->roles = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 34090| 0| n->new_tablespacename = (yyvsp[(9) - (10)].str); 34091| 0| n->nowait = (yyvsp[(10) - (10)].boolean); 34092| 0| (yyval.node) = (Node *) n; 34093| 0| ;} 34094| 0| break; 34095| | 34096| 0| case 293: ------------------ | Branch (34096:3): [True: 0, False: 76.7M] ------------------ 34097| 0|#line 2256 "gram.y" 34098| 0| { 34099| 0| AlterTableMoveAllStmt *n = 34100| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34101| | 34102| 0| n->orig_tablespacename = (yyvsp[(6) - (13)].str); 34103| 0| n->objtype = OBJECT_INDEX; 34104| 0| n->roles = (yyvsp[(9) - (13)].list); 34105| 0| n->new_tablespacename = (yyvsp[(12) - (13)].str); 34106| 0| n->nowait = (yyvsp[(13) - (13)].boolean); 34107| 0| (yyval.node) = (Node *) n; 34108| 0| ;} 34109| 0| break; 34110| | 34111| 0| case 294: ------------------ | Branch (34111:3): [True: 0, False: 76.7M] ------------------ 34112| 0|#line 2268 "gram.y" 34113| 0| { 34114| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34115| | 34116| 0| n->relation = (yyvsp[(3) - (4)].range); 34117| 0| n->cmds = (yyvsp[(4) - (4)].list); 34118| 0| n->objtype = OBJECT_SEQUENCE; 34119| 0| n->missing_ok = false; 34120| 0| (yyval.node) = (Node *) n; 34121| 0| ;} 34122| 0| break; 34123| | 34124| 0| case 295: ------------------ | Branch (34124:3): [True: 0, False: 76.7M] ------------------ 34125| 0|#line 2278 "gram.y" 34126| 0| { 34127| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34128| | 34129| 0| n->relation = (yyvsp[(5) - (6)].range); 34130| 0| n->cmds = (yyvsp[(6) - (6)].list); 34131| 0| n->objtype = OBJECT_SEQUENCE; 34132| 0| n->missing_ok = true; 34133| 0| (yyval.node) = (Node *) n; 34134| 0| ;} 34135| 0| break; 34136| | 34137| 277| case 296: ------------------ | Branch (34137:3): [True: 277, False: 76.7M] ------------------ 34138| 277|#line 2288 "gram.y" 34139| 277| { 34140| 277| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 277|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34141| | 34142| 277| n->relation = (yyvsp[(3) - (4)].range); 34143| 277| n->cmds = (yyvsp[(4) - (4)].list); 34144| 277| n->objtype = OBJECT_VIEW; 34145| 277| n->missing_ok = false; 34146| 277| (yyval.node) = (Node *) n; 34147| 277| ;} 34148| 277| break; 34149| | 34150| 0| case 297: ------------------ | Branch (34150:3): [True: 0, False: 76.7M] ------------------ 34151| 0|#line 2298 "gram.y" 34152| 0| { 34153| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34154| | 34155| 0| n->relation = (yyvsp[(5) - (6)].range); 34156| 0| n->cmds = (yyvsp[(6) - (6)].list); 34157| 0| n->objtype = OBJECT_VIEW; 34158| 0| n->missing_ok = true; 34159| 0| (yyval.node) = (Node *) n; 34160| 0| ;} 34161| 0| break; 34162| | 34163| 0| case 298: ------------------ | Branch (34163:3): [True: 0, False: 76.7M] ------------------ 34164| 0|#line 2308 "gram.y" 34165| 0| { 34166| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34167| | 34168| 0| n->relation = (yyvsp[(4) - (5)].range); 34169| 0| n->cmds = (yyvsp[(5) - (5)].list); 34170| 0| n->objtype = OBJECT_MATVIEW; 34171| 0| n->missing_ok = false; 34172| 0| (yyval.node) = (Node *) n; 34173| 0| ;} 34174| 0| break; 34175| | 34176| 0| case 299: ------------------ | Branch (34176:3): [True: 0, False: 76.7M] ------------------ 34177| 0|#line 2318 "gram.y" 34178| 0| { 34179| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34180| | 34181| 0| n->relation = (yyvsp[(6) - (7)].range); 34182| 0| n->cmds = (yyvsp[(7) - (7)].list); 34183| 0| n->objtype = OBJECT_MATVIEW; 34184| 0| n->missing_ok = true; 34185| 0| (yyval.node) = (Node *) n; 34186| 0| ;} 34187| 0| break; 34188| | 34189| 0| case 300: ------------------ | Branch (34189:3): [True: 0, False: 76.7M] ------------------ 34190| 0|#line 2328 "gram.y" 34191| 0| { 34192| 0| AlterTableMoveAllStmt *n = 34193| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34194| | 34195| 0| n->orig_tablespacename = (yyvsp[(7) - (11)].str); 34196| 0| n->objtype = OBJECT_MATVIEW; 34197| 0| n->roles = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 34198| 0| n->new_tablespacename = (yyvsp[(10) - (11)].str); 34199| 0| n->nowait = (yyvsp[(11) - (11)].boolean); 34200| 0| (yyval.node) = (Node *) n; 34201| 0| ;} 34202| 0| break; 34203| | 34204| 0| case 301: ------------------ | Branch (34204:3): [True: 0, False: 76.7M] ------------------ 34205| 0|#line 2340 "gram.y" 34206| 0| { 34207| 0| AlterTableMoveAllStmt *n = 34208| 0| makeNode(AlterTableMoveAllStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34209| | 34210| 0| n->orig_tablespacename = (yyvsp[(7) - (14)].str); 34211| 0| n->objtype = OBJECT_MATVIEW; 34212| 0| n->roles = (yyvsp[(10) - (14)].list); 34213| 0| n->new_tablespacename = (yyvsp[(13) - (14)].str); 34214| 0| n->nowait = (yyvsp[(14) - (14)].boolean); 34215| 0| (yyval.node) = (Node *) n; 34216| 0| ;} 34217| 0| break; 34218| | 34219| 0| case 302: ------------------ | Branch (34219:3): [True: 0, False: 76.7M] ------------------ 34220| 0|#line 2352 "gram.y" 34221| 0| { 34222| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34223| | 34224| 0| n->relation = (yyvsp[(4) - (5)].range); 34225| 0| n->cmds = (yyvsp[(5) - (5)].list); 34226| 0| n->objtype = OBJECT_FOREIGN_TABLE; 34227| 0| n->missing_ok = false; 34228| 0| (yyval.node) = (Node *) n; 34229| 0| ;} 34230| 0| break; 34231| | 34232| 0| case 303: ------------------ | Branch (34232:3): [True: 0, False: 76.7M] ------------------ 34233| 0|#line 2362 "gram.y" 34234| 0| { 34235| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34236| | 34237| 0| n->relation = (yyvsp[(6) - (7)].range); 34238| 0| n->cmds = (yyvsp[(7) - (7)].list); 34239| 0| n->objtype = OBJECT_FOREIGN_TABLE; 34240| 0| n->missing_ok = true; 34241| 0| (yyval.node) = (Node *) n; 34242| 0| ;} 34243| 0| break; 34244| | 34245| 835| case 304: ------------------ | Branch (34245:3): [True: 835, False: 76.7M] ------------------ 34246| 835|#line 2374 "gram.y" 34247| 835| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 835| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 835|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 34248| 835| break; 34249| | 34250| 2.23k| case 305: ------------------ | Branch (34250:3): [True: 2.23k, False: 76.7M] ------------------ 34251| 2.23k|#line 2375 "gram.y" 34252| 2.23k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 34253| 2.23k| break; 34254| | 34255| 0| case 306: ------------------ | Branch (34255:3): [True: 0, False: 76.7M] ------------------ 34256| 0|#line 2381 "gram.y" 34257| 0| { 34258| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34259| 0| PartitionCmd *cmd = makeNode(PartitionCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34260| | 34261| 0| n->subtype = AT_AttachPartition; 34262| 0| cmd->name = (yyvsp[(3) - (4)].range); 34263| 0| cmd->bound = (yyvsp[(4) - (4)].partboundspec); 34264| 0| cmd->concurrent = false; 34265| 0| n->def = (Node *) cmd; 34266| | 34267| 0| (yyval.node) = (Node *) n; 34268| 0| ;} 34269| 0| break; 34270| | 34271| 0| case 307: ------------------ | Branch (34271:3): [True: 0, False: 76.7M] ------------------ 34272| 0|#line 2395 "gram.y" 34273| 0| { 34274| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34275| 0| PartitionCmd *cmd = makeNode(PartitionCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34276| | 34277| 0| n->subtype = AT_DetachPartition; 34278| 0| cmd->name = (yyvsp[(3) - (4)].range); 34279| 0| cmd->bound = NULL; 34280| 0| cmd->concurrent = (yyvsp[(4) - (4)].boolean); 34281| 0| n->def = (Node *) cmd; 34282| | 34283| 0| (yyval.node) = (Node *) n; 34284| 0| ;} 34285| 0| break; 34286| | 34287| 0| case 308: ------------------ | Branch (34287:3): [True: 0, False: 76.7M] ------------------ 34288| 0|#line 2408 "gram.y" 34289| 0| { 34290| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34291| 0| PartitionCmd *cmd = makeNode(PartitionCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34292| | 34293| 0| n->subtype = AT_DetachPartitionFinalize; 34294| 0| cmd->name = (yyvsp[(3) - (4)].range); 34295| 0| cmd->bound = NULL; 34296| 0| cmd->concurrent = false; 34297| 0| n->def = (Node *) cmd; 34298| 0| (yyval.node) = (Node *) n; 34299| 0| ;} 34300| 0| break; 34301| | 34302| 0| case 309: ------------------ | Branch (34302:3): [True: 0, False: 76.7M] ------------------ 34303| 0|#line 2424 "gram.y" 34304| 0| { 34305| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34306| 0| PartitionCmd *cmd = makeNode(PartitionCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34307| | 34308| 0| n->subtype = AT_AttachPartition; 34309| 0| cmd->name = (yyvsp[(3) - (3)].range); 34310| 0| cmd->bound = NULL; 34311| 0| cmd->concurrent = false; 34312| 0| n->def = (Node *) cmd; 34313| | 34314| 0| (yyval.node) = (Node *) n; 34315| 0| ;} 34316| 0| break; 34317| | 34318| 0| case 310: ------------------ | Branch (34318:3): [True: 0, False: 76.7M] ------------------ 34319| 0|#line 2441 "gram.y" 34320| 0| { 34321| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34322| | 34323| 0| n->subtype = AT_AddColumn; 34324| 0| n->def = (yyvsp[(2) - (2)].node); 34325| 0| n->missing_ok = false; 34326| 0| (yyval.node) = (Node *) n; 34327| 0| ;} 34328| 0| break; 34329| | 34330| 0| case 311: ------------------ | Branch (34330:3): [True: 0, False: 76.7M] ------------------ 34331| 0|#line 2451 "gram.y" 34332| 0| { 34333| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34334| | 34335| 0| n->subtype = AT_AddColumn; 34336| 0| n->def = (yyvsp[(5) - (5)].node); 34337| 0| n->missing_ok = true; 34338| 0| (yyval.node) = (Node *) n; 34339| 0| ;} 34340| 0| break; 34341| | 34342| 0| case 312: ------------------ | Branch (34342:3): [True: 0, False: 76.7M] ------------------ 34343| 0|#line 2461 "gram.y" 34344| 0| { 34345| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34346| | 34347| 0| n->subtype = AT_AddColumn; 34348| 0| n->def = (yyvsp[(3) - (3)].node); 34349| 0| n->missing_ok = false; 34350| 0| (yyval.node) = (Node *) n; 34351| 0| ;} 34352| 0| break; 34353| | 34354| 0| case 313: ------------------ | Branch (34354:3): [True: 0, False: 76.7M] ------------------ 34355| 0|#line 2471 "gram.y" 34356| 0| { 34357| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34358| | 34359| 0| n->subtype = AT_AddColumn; 34360| 0| n->def = (yyvsp[(6) - (6)].node); 34361| 0| n->missing_ok = true; 34362| 0| (yyval.node) = (Node *) n; 34363| 0| ;} 34364| 0| break; 34365| | 34366| 511| case 314: ------------------ | Branch (34366:3): [True: 511, False: 76.7M] ------------------ 34367| 511|#line 2481 "gram.y" 34368| 511| { 34369| 511| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 511|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34370| | 34371| 511| n->subtype = AT_ColumnDefault; 34372| 511| n->name = (yyvsp[(3) - (4)].str); 34373| 511| n->def = (yyvsp[(4) - (4)].node); 34374| 511| (yyval.node) = (Node *) n; 34375| 511| ;} 34376| 511| break; 34377| | 34378| 0| case 315: ------------------ | Branch (34378:3): [True: 0, False: 76.7M] ------------------ 34379| 0|#line 2491 "gram.y" 34380| 0| { 34381| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34382| | 34383| 0| n->subtype = AT_DropNotNull; 34384| 0| n->name = (yyvsp[(3) - (6)].str); 34385| 0| (yyval.node) = (Node *) n; 34386| 0| ;} 34387| 0| break; 34388| | 34389| 0| case 316: ------------------ | Branch (34389:3): [True: 0, False: 76.7M] ------------------ 34390| 0|#line 2500 "gram.y" 34391| 0| { 34392| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34393| | 34394| 0| n->subtype = AT_SetNotNull; 34395| 0| n->name = (yyvsp[(3) - (6)].str); 34396| 0| (yyval.node) = (Node *) n; 34397| 0| ;} 34398| 0| break; 34399| | 34400| 0| case 317: ------------------ | Branch (34400:3): [True: 0, False: 76.7M] ------------------ 34401| 0|#line 2509 "gram.y" 34402| 0| { 34403| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34404| | 34405| 0| n->subtype = AT_SetExpression; 34406| 0| n->name = (yyvsp[(3) - (9)].str); 34407| 0| n->def = (yyvsp[(8) - (9)].node); 34408| 0| (yyval.node) = (Node *) n; 34409| 0| ;} 34410| 0| break; 34411| | 34412| 0| case 318: ------------------ | Branch (34412:3): [True: 0, False: 76.7M] ------------------ 34413| 0|#line 2519 "gram.y" 34414| 0| { 34415| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34416| | 34417| 0| n->subtype = AT_DropExpression; 34418| 0| n->name = (yyvsp[(3) - (5)].str); 34419| 0| (yyval.node) = (Node *) n; 34420| 0| ;} 34421| 0| break; 34422| | 34423| 0| case 319: ------------------ | Branch (34423:3): [True: 0, False: 76.7M] ------------------ 34424| 0|#line 2528 "gram.y" 34425| 0| { 34426| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34427| | 34428| 0| n->subtype = AT_DropExpression; 34429| 0| n->name = (yyvsp[(3) - (7)].str); 34430| 0| n->missing_ok = true; 34431| 0| (yyval.node) = (Node *) n; 34432| 0| ;} 34433| 0| break; 34434| | 34435| 0| case 320: ------------------ | Branch (34435:3): [True: 0, False: 76.7M] ------------------ 34436| 0|#line 2538 "gram.y" 34437| 0| { 34438| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34439| | 34440| 0| n->subtype = AT_SetStatistics; 34441| 0| n->name = (yyvsp[(3) - (6)].str); 34442| 0| n->def = (yyvsp[(6) - (6)].node); 34443| 0| (yyval.node) = (Node *) n; 34444| 0| ;} 34445| 0| break; 34446| | 34447| 0| case 321: ------------------ | Branch (34447:3): [True: 0, False: 76.7M] ------------------ 34448| 0|#line 2548 "gram.y" 34449| 0| { 34450| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34451| | 34452| 0| if ((yyvsp[(3) - (6)].ival) <= 0 || (yyvsp[(3) - (6)].ival) > PG_INT16_MAX) ------------------ | | 572| 0|#define PG_INT16_MAX INT16_MAX ------------------ | Branch (34452:10): [True: 0, False: 0] | Branch (34452:42): [True: 0, False: 0] ------------------ 34453| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 34454| 0| (errcode(ERRCODE_INVALID_PARAMETER_VALUE), 34455| 0| errmsg("column number must be in range from 1 to %d", PG_INT16_MAX), 34456| 0| parser_errposition((yylsp[(3) - (6)])))); 34457| | 34458| 0| n->subtype = AT_SetStatistics; 34459| 0| n->num = (int16) (yyvsp[(3) - (6)].ival); 34460| 0| n->def = (yyvsp[(6) - (6)].node); 34461| 0| (yyval.node) = (Node *) n; 34462| 0| ;} 34463| 0| break; 34464| | 34465| 174| case 322: ------------------ | Branch (34465:3): [True: 174, False: 76.7M] ------------------ 34466| 174|#line 2564 "gram.y" 34467| 174| { 34468| 174| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 174|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34469| | 34470| 174| n->subtype = AT_SetOptions; 34471| 174| n->name = (yyvsp[(3) - (5)].str); 34472| 174| n->def = (Node *) (yyvsp[(5) - (5)].list); 34473| 174| (yyval.node) = (Node *) n; 34474| 174| ;} 34475| 174| break; 34476| | 34477| 175| case 323: ------------------ | Branch (34477:3): [True: 175, False: 76.7M] ------------------ 34478| 175|#line 2574 "gram.y" 34479| 175| { 34480| 175| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 175|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34481| | 34482| 175| n->subtype = AT_ResetOptions; 34483| 175| n->name = (yyvsp[(3) - (5)].str); 34484| 175| n->def = (Node *) (yyvsp[(5) - (5)].list); 34485| 175| (yyval.node) = (Node *) n; 34486| 175| ;} 34487| 175| break; 34488| | 34489| 0| case 324: ------------------ | Branch (34489:3): [True: 0, False: 76.7M] ------------------ 34490| 0|#line 2584 "gram.y" 34491| 0| { 34492| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34493| | 34494| 0| n->subtype = AT_SetStorage; 34495| 0| n->name = (yyvsp[(3) - (5)].str); 34496| 0| n->def = (Node *) makeString((yyvsp[(5) - (5)].str)); 34497| 0| (yyval.node) = (Node *) n; 34498| 0| ;} 34499| 0| break; 34500| | 34501| 0| case 325: ------------------ | Branch (34501:3): [True: 0, False: 76.7M] ------------------ 34502| 0|#line 2594 "gram.y" 34503| 0| { 34504| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34505| | 34506| 0| n->subtype = AT_SetCompression; 34507| 0| n->name = (yyvsp[(3) - (5)].str); 34508| 0| n->def = (Node *) makeString((yyvsp[(5) - (5)].str)); 34509| 0| (yyval.node) = (Node *) n; 34510| 0| ;} 34511| 0| break; 34512| | 34513| 0| case 326: ------------------ | Branch (34513:3): [True: 0, False: 76.7M] ------------------ 34514| 0|#line 2604 "gram.y" 34515| 0| { 34516| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34517| 0| Constraint *c = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34518| | 34519| 0| c->contype = CONSTR_IDENTITY; 34520| 0| c->generated_when = (yyvsp[(6) - (9)].ival); 34521| 0| c->options = (yyvsp[(9) - (9)].list); 34522| 0| c->location = (yylsp[(5) - (9)]); 34523| | 34524| 0| n->subtype = AT_AddIdentity; 34525| 0| n->name = (yyvsp[(3) - (9)].str); 34526| 0| n->def = (Node *) c; 34527| | 34528| 0| (yyval.node) = (Node *) n; 34529| 0| ;} 34530| 0| break; 34531| | 34532| 555| case 327: ------------------ | Branch (34532:3): [True: 555, False: 76.7M] ------------------ 34533| 555|#line 2621 "gram.y" 34534| 555| { 34535| 555| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 555|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34536| | 34537| 555| n->subtype = AT_SetIdentity; 34538| 555| n->name = (yyvsp[(3) - (4)].str); 34539| 555| n->def = (Node *) (yyvsp[(4) - (4)].list); 34540| 555| (yyval.node) = (Node *) n; 34541| 555| ;} 34542| 555| break; 34543| | 34544| 0| case 328: ------------------ | Branch (34544:3): [True: 0, False: 76.7M] ------------------ 34545| 0|#line 2631 "gram.y" 34546| 0| { 34547| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34548| | 34549| 0| n->subtype = AT_DropIdentity; 34550| 0| n->name = (yyvsp[(3) - (5)].str); 34551| 0| n->missing_ok = false; 34552| 0| (yyval.node) = (Node *) n; 34553| 0| ;} 34554| 0| break; 34555| | 34556| 0| case 329: ------------------ | Branch (34556:3): [True: 0, False: 76.7M] ------------------ 34557| 0|#line 2641 "gram.y" 34558| 0| { 34559| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34560| | 34561| 0| n->subtype = AT_DropIdentity; 34562| 0| n->name = (yyvsp[(3) - (7)].str); 34563| 0| n->missing_ok = true; 34564| 0| (yyval.node) = (Node *) n; 34565| 0| ;} 34566| 0| break; 34567| | 34568| 136| case 330: ------------------ | Branch (34568:3): [True: 136, False: 76.7M] ------------------ 34569| 136|#line 2651 "gram.y" 34570| 136| { 34571| 136| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 136|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34572| | 34573| 136| n->subtype = AT_DropColumn; 34574| 136| n->name = (yyvsp[(5) - (6)].str); 34575| 136| n->behavior = (yyvsp[(6) - (6)].dbehavior); 34576| 136| n->missing_ok = true; 34577| 136| (yyval.node) = (Node *) n; 34578| 136| ;} 34579| 136| break; 34580| | 34581| 0| case 331: ------------------ | Branch (34581:3): [True: 0, False: 76.7M] ------------------ 34582| 0|#line 2662 "gram.y" 34583| 0| { 34584| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34585| | 34586| 0| n->subtype = AT_DropColumn; 34587| 0| n->name = (yyvsp[(3) - (4)].str); 34588| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 34589| 0| n->missing_ok = false; 34590| 0| (yyval.node) = (Node *) n; 34591| 0| ;} 34592| 0| break; 34593| | 34594| 0| case 332: ------------------ | Branch (34594:3): [True: 0, False: 76.7M] ------------------ 34595| 0|#line 2676 "gram.y" 34596| 0| { 34597| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34598| 0| ColumnDef *def = makeNode(ColumnDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34599| | 34600| 0| n->subtype = AT_AlterColumnType; 34601| 0| n->name = (yyvsp[(3) - (8)].str); 34602| 0| n->def = (Node *) def; 34603| | /* We only use these fields of the ColumnDef node */ 34604| 0| def->typeName = (yyvsp[(6) - (8)].typnam); 34605| 0| def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); 34606| 0| def->raw_default = (yyvsp[(8) - (8)].node); 34607| 0| def->location = (yylsp[(3) - (8)]); 34608| 0| (yyval.node) = (Node *) n; 34609| 0| ;} 34610| 0| break; 34611| | 34612| 0| case 333: ------------------ | Branch (34612:3): [True: 0, False: 76.7M] ------------------ 34613| 0|#line 2692 "gram.y" 34614| 0| { 34615| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34616| | 34617| 0| n->subtype = AT_AlterColumnGenericOptions; 34618| 0| n->name = (yyvsp[(3) - (4)].str); 34619| 0| n->def = (Node *) (yyvsp[(4) - (4)].list); 34620| 0| (yyval.node) = (Node *) n; 34621| 0| ;} 34622| 0| break; 34623| | 34624| 0| case 334: ------------------ | Branch (34624:3): [True: 0, False: 76.7M] ------------------ 34625| 0|#line 2702 "gram.y" 34626| 0| { 34627| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34628| | 34629| 0| n->subtype = AT_AddConstraint; 34630| 0| n->def = (yyvsp[(2) - (2)].node); 34631| 0| (yyval.node) = (Node *) n; 34632| 0| ;} 34633| 0| break; 34634| | 34635| 0| case 335: ------------------ | Branch (34635:3): [True: 0, False: 76.7M] ------------------ 34636| 0|#line 2711 "gram.y" 34637| 0| { 34638| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34639| 0| ATAlterConstraint *c = makeNode(ATAlterConstraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34640| | 34641| 0| n->subtype = AT_AlterConstraint; 34642| 0| n->def = (Node *) c; 34643| 0| c->conname = (yyvsp[(3) - (4)].str); 34644| 0| if ((yyvsp[(4) - (4)].ival) & (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1339| 0|#define CAS_NOT_ENFORCED 0x40 ------------------ if ((yyvsp[(4) - (4)].ival) & (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1340| 0|#define CAS_ENFORCED 0x80 ------------------ | Branch (34644:10): [True: 0, False: 0] ------------------ 34645| 0| c->alterEnforceability = true; 34646| 0| if ((yyvsp[(4) - (4)].ival) & (CAS_DEFERRABLE | CAS_NOT_DEFERRABLE | ------------------ | | 1334| 0|#define CAS_DEFERRABLE 0x02 ------------------ if ((yyvsp[(4) - (4)].ival) & (CAS_DEFERRABLE | CAS_NOT_DEFERRABLE | ------------------ | | 1333| 0|#define CAS_NOT_DEFERRABLE 0x01 ------------------ | Branch (34646:10): [True: 0, False: 0] ------------------ 34647| 0| CAS_INITIALLY_DEFERRED | CAS_INITIALLY_IMMEDIATE)) ------------------ | | 1336| 0|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ CAS_INITIALLY_DEFERRED | CAS_INITIALLY_IMMEDIATE)) ------------------ | | 1335| 0|#define CAS_INITIALLY_IMMEDIATE 0x04 ------------------ 34648| 0| c->alterDeferrability = true; 34649| 0| if ((yyvsp[(4) - (4)].ival) & CAS_NO_INHERIT) ------------------ | | 1338| 0|#define CAS_NO_INHERIT 0x20 ------------------ | Branch (34649:10): [True: 0, False: 0] ------------------ 34650| 0| c->alterInheritability = true; 34651| | /* handle unsupported case with specific error message */ 34652| 0| if ((yyvsp[(4) - (4)].ival) & CAS_NOT_VALID) ------------------ | | 1337| 0|#define CAS_NOT_VALID 0x10 ------------------ | Branch (34652:10): [True: 0, False: 0] ------------------ 34653| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 34654| 0| errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 34655| 0| errmsg("constraints cannot be altered to be NOT VALID"), 34656| 0| parser_errposition((yylsp[(4) - (4)]))); 34657| 0| processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "FOREIGN KEY", 34658| 0| &c->deferrable, 34659| 0| &c->initdeferred, 34660| 0| &c->is_enforced, 34661| 0| NULL, 34662| 0| &c->noinherit, 34663| 0| yyscanner); 34664| 0| (yyval.node) = (Node *) n; 34665| 0| ;} 34666| 0| break; 34667| | 34668| 0| case 336: ------------------ | Branch (34668:3): [True: 0, False: 76.7M] ------------------ 34669| 0|#line 2742 "gram.y" 34670| 0| { 34671| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34672| 0| ATAlterConstraint *c = makeNode(ATAlterConstraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34673| | 34674| 0| n->subtype = AT_AlterConstraint; 34675| 0| n->def = (Node *) c; 34676| 0| c->conname = (yyvsp[(3) - (4)].str); 34677| 0| c->alterInheritability = true; 34678| 0| c->noinherit = false; 34679| | 34680| 0| (yyval.node) = (Node *) n; 34681| 0| ;} 34682| 0| break; 34683| | 34684| 0| case 337: ------------------ | Branch (34684:3): [True: 0, False: 76.7M] ------------------ 34685| 0|#line 2756 "gram.y" 34686| 0| { 34687| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34688| | 34689| 0| n->subtype = AT_ValidateConstraint; 34690| 0| n->name = (yyvsp[(3) - (3)].str); 34691| 0| (yyval.node) = (Node *) n; 34692| 0| ;} 34693| 0| break; 34694| | 34695| 140| case 338: ------------------ | Branch (34695:3): [True: 140, False: 76.7M] ------------------ 34696| 140|#line 2765 "gram.y" 34697| 140| { 34698| 140| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 140|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34699| | 34700| 140| n->subtype = AT_DropConstraint; 34701| 140| n->name = (yyvsp[(5) - (6)].str); 34702| 140| n->behavior = (yyvsp[(6) - (6)].dbehavior); 34703| 140| n->missing_ok = true; 34704| 140| (yyval.node) = (Node *) n; 34705| 140| ;} 34706| 140| break; 34707| | 34708| 0| case 339: ------------------ | Branch (34708:3): [True: 0, False: 76.7M] ------------------ 34709| 0|#line 2776 "gram.y" 34710| 0| { 34711| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34712| | 34713| 0| n->subtype = AT_DropConstraint; 34714| 0| n->name = (yyvsp[(3) - (4)].str); 34715| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 34716| 0| n->missing_ok = false; 34717| 0| (yyval.node) = (Node *) n; 34718| 0| ;} 34719| 0| break; 34720| | 34721| 0| case 340: ------------------ | Branch (34721:3): [True: 0, False: 76.7M] ------------------ 34722| 0|#line 2787 "gram.y" 34723| 0| { 34724| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34725| | 34726| 0| n->subtype = AT_DropOids; 34727| 0| (yyval.node) = (Node *) n; 34728| 0| ;} 34729| 0| break; 34730| | 34731| 0| case 341: ------------------ | Branch (34731:3): [True: 0, False: 76.7M] ------------------ 34732| 0|#line 2795 "gram.y" 34733| 0| { 34734| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34735| | 34736| 0| n->subtype = AT_ClusterOn; 34737| 0| n->name = (yyvsp[(3) - (3)].str); 34738| 0| (yyval.node) = (Node *) n; 34739| 0| ;} 34740| 0| break; 34741| | 34742| 0| case 342: ------------------ | Branch (34742:3): [True: 0, False: 76.7M] ------------------ 34743| 0|#line 2804 "gram.y" 34744| 0| { 34745| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34746| | 34747| 0| n->subtype = AT_DropCluster; 34748| 0| n->name = NULL; 34749| 0| (yyval.node) = (Node *) n; 34750| 0| ;} 34751| 0| break; 34752| | 34753| 0| case 343: ------------------ | Branch (34753:3): [True: 0, False: 76.7M] ------------------ 34754| 0|#line 2813 "gram.y" 34755| 0| { 34756| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34757| | 34758| 0| n->subtype = AT_SetLogged; 34759| 0| (yyval.node) = (Node *) n; 34760| 0| ;} 34761| 0| break; 34762| | 34763| 0| case 344: ------------------ | Branch (34763:3): [True: 0, False: 76.7M] ------------------ 34764| 0|#line 2821 "gram.y" 34765| 0| { 34766| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34767| | 34768| 0| n->subtype = AT_SetUnLogged; 34769| 0| (yyval.node) = (Node *) n; 34770| 0| ;} 34771| 0| break; 34772| | 34773| 0| case 345: ------------------ | Branch (34773:3): [True: 0, False: 76.7M] ------------------ 34774| 0|#line 2829 "gram.y" 34775| 0| { 34776| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34777| | 34778| 0| n->subtype = AT_EnableTrig; 34779| 0| n->name = (yyvsp[(3) - (3)].str); 34780| 0| (yyval.node) = (Node *) n; 34781| 0| ;} 34782| 0| break; 34783| | 34784| 0| case 346: ------------------ | Branch (34784:3): [True: 0, False: 76.7M] ------------------ 34785| 0|#line 2838 "gram.y" 34786| 0| { 34787| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34788| | 34789| 0| n->subtype = AT_EnableAlwaysTrig; 34790| 0| n->name = (yyvsp[(4) - (4)].str); 34791| 0| (yyval.node) = (Node *) n; 34792| 0| ;} 34793| 0| break; 34794| | 34795| 0| case 347: ------------------ | Branch (34795:3): [True: 0, False: 76.7M] ------------------ 34796| 0|#line 2847 "gram.y" 34797| 0| { 34798| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34799| | 34800| 0| n->subtype = AT_EnableReplicaTrig; 34801| 0| n->name = (yyvsp[(4) - (4)].str); 34802| 0| (yyval.node) = (Node *) n; 34803| 0| ;} 34804| 0| break; 34805| | 34806| 0| case 348: ------------------ | Branch (34806:3): [True: 0, False: 76.7M] ------------------ 34807| 0|#line 2856 "gram.y" 34808| 0| { 34809| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34810| | 34811| 0| n->subtype = AT_EnableTrigAll; 34812| 0| (yyval.node) = (Node *) n; 34813| 0| ;} 34814| 0| break; 34815| | 34816| 0| case 349: ------------------ | Branch (34816:3): [True: 0, False: 76.7M] ------------------ 34817| 0|#line 2864 "gram.y" 34818| 0| { 34819| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34820| | 34821| 0| n->subtype = AT_EnableTrigUser; 34822| 0| (yyval.node) = (Node *) n; 34823| 0| ;} 34824| 0| break; 34825| | 34826| 0| case 350: ------------------ | Branch (34826:3): [True: 0, False: 76.7M] ------------------ 34827| 0|#line 2872 "gram.y" 34828| 0| { 34829| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34830| | 34831| 0| n->subtype = AT_DisableTrig; 34832| 0| n->name = (yyvsp[(3) - (3)].str); 34833| 0| (yyval.node) = (Node *) n; 34834| 0| ;} 34835| 0| break; 34836| | 34837| 0| case 351: ------------------ | Branch (34837:3): [True: 0, False: 76.7M] ------------------ 34838| 0|#line 2881 "gram.y" 34839| 0| { 34840| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34841| | 34842| 0| n->subtype = AT_DisableTrigAll; 34843| 0| (yyval.node) = (Node *) n; 34844| 0| ;} 34845| 0| break; 34846| | 34847| 0| case 352: ------------------ | Branch (34847:3): [True: 0, False: 76.7M] ------------------ 34848| 0|#line 2889 "gram.y" 34849| 0| { 34850| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34851| | 34852| 0| n->subtype = AT_DisableTrigUser; 34853| 0| (yyval.node) = (Node *) n; 34854| 0| ;} 34855| 0| break; 34856| | 34857| 0| case 353: ------------------ | Branch (34857:3): [True: 0, False: 76.7M] ------------------ 34858| 0|#line 2897 "gram.y" 34859| 0| { 34860| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34861| | 34862| 0| n->subtype = AT_EnableRule; 34863| 0| n->name = (yyvsp[(3) - (3)].str); 34864| 0| (yyval.node) = (Node *) n; 34865| 0| ;} 34866| 0| break; 34867| | 34868| 0| case 354: ------------------ | Branch (34868:3): [True: 0, False: 76.7M] ------------------ 34869| 0|#line 2906 "gram.y" 34870| 0| { 34871| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34872| | 34873| 0| n->subtype = AT_EnableAlwaysRule; 34874| 0| n->name = (yyvsp[(4) - (4)].str); 34875| 0| (yyval.node) = (Node *) n; 34876| 0| ;} 34877| 0| break; 34878| | 34879| 0| case 355: ------------------ | Branch (34879:3): [True: 0, False: 76.7M] ------------------ 34880| 0|#line 2915 "gram.y" 34881| 0| { 34882| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34883| | 34884| 0| n->subtype = AT_EnableReplicaRule; 34885| 0| n->name = (yyvsp[(4) - (4)].str); 34886| 0| (yyval.node) = (Node *) n; 34887| 0| ;} 34888| 0| break; 34889| | 34890| 0| case 356: ------------------ | Branch (34890:3): [True: 0, False: 76.7M] ------------------ 34891| 0|#line 2924 "gram.y" 34892| 0| { 34893| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34894| | 34895| 0| n->subtype = AT_DisableRule; 34896| 0| n->name = (yyvsp[(3) - (3)].str); 34897| 0| (yyval.node) = (Node *) n; 34898| 0| ;} 34899| 0| break; 34900| | 34901| 0| case 357: ------------------ | Branch (34901:3): [True: 0, False: 76.7M] ------------------ 34902| 0|#line 2933 "gram.y" 34903| 0| { 34904| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34905| | 34906| 0| n->subtype = AT_AddInherit; 34907| 0| n->def = (Node *) (yyvsp[(2) - (2)].range); 34908| 0| (yyval.node) = (Node *) n; 34909| 0| ;} 34910| 0| break; 34911| | 34912| 0| case 358: ------------------ | Branch (34912:3): [True: 0, False: 76.7M] ------------------ 34913| 0|#line 2942 "gram.y" 34914| 0| { 34915| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34916| | 34917| 0| n->subtype = AT_DropInherit; 34918| 0| n->def = (Node *) (yyvsp[(3) - (3)].range); 34919| 0| (yyval.node) = (Node *) n; 34920| 0| ;} 34921| 0| break; 34922| | 34923| 0| case 359: ------------------ | Branch (34923:3): [True: 0, False: 76.7M] ------------------ 34924| 0|#line 2951 "gram.y" 34925| 0| { 34926| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34927| 0| TypeName *def = makeTypeNameFromNameList((yyvsp[(2) - (2)].list)); 34928| | 34929| 0| def->location = (yylsp[(2) - (2)]); 34930| 0| n->subtype = AT_AddOf; 34931| 0| n->def = (Node *) def; 34932| 0| (yyval.node) = (Node *) n; 34933| 0| ;} 34934| 0| break; 34935| | 34936| 0| case 360: ------------------ | Branch (34936:3): [True: 0, False: 76.7M] ------------------ 34937| 0|#line 2962 "gram.y" 34938| 0| { 34939| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34940| | 34941| 0| n->subtype = AT_DropOf; 34942| 0| (yyval.node) = (Node *) n; 34943| 0| ;} 34944| 0| break; 34945| | 34946| 1| case 361: ------------------ | Branch (34946:3): [True: 1, False: 76.7M] ------------------ 34947| 1|#line 2970 "gram.y" 34948| 1| { 34949| 1| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 1|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34950| | 34951| 1| n->subtype = AT_ChangeOwner; 34952| 1| n->newowner = (yyvsp[(3) - (3)].rolespec); 34953| 1| (yyval.node) = (Node *) n; 34954| 1| ;} 34955| 1| break; 34956| | 34957| 0| case 362: ------------------ | Branch (34957:3): [True: 0, False: 76.7M] ------------------ 34958| 0|#line 2979 "gram.y" 34959| 0| { 34960| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34961| | 34962| 0| n->subtype = AT_SetAccessMethod; 34963| 0| n->name = (yyvsp[(4) - (4)].str); 34964| 0| (yyval.node) = (Node *) n; 34965| 0| ;} 34966| 0| break; 34967| | 34968| 0| case 363: ------------------ | Branch (34968:3): [True: 0, False: 76.7M] ------------------ 34969| 0|#line 2988 "gram.y" 34970| 0| { 34971| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34972| | 34973| 0| n->subtype = AT_SetTableSpace; 34974| 0| n->name = (yyvsp[(3) - (3)].str); 34975| 0| (yyval.node) = (Node *) n; 34976| 0| ;} 34977| 0| break; 34978| | 34979| 1.02k| case 364: ------------------ | Branch (34979:3): [True: 1.02k, False: 76.7M] ------------------ 34980| 1.02k|#line 2997 "gram.y" 34981| 1.02k| { 34982| 1.02k| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 1.02k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34983| | 34984| 1.02k| n->subtype = AT_SetRelOptions; 34985| 1.02k| n->def = (Node *) (yyvsp[(2) - (2)].list); 34986| 1.02k| (yyval.node) = (Node *) n; 34987| 1.02k| ;} 34988| 1.02k| break; 34989| | 34990| 354| case 365: ------------------ | Branch (34990:3): [True: 354, False: 76.7M] ------------------ 34991| 354|#line 3006 "gram.y" 34992| 354| { 34993| 354| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 354|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 34994| | 34995| 354| n->subtype = AT_ResetRelOptions; 34996| 354| n->def = (Node *) (yyvsp[(2) - (2)].list); 34997| 354| (yyval.node) = (Node *) n; 34998| 354| ;} 34999| 354| break; 35000| | 35001| 0| case 366: ------------------ | Branch (35001:3): [True: 0, False: 76.7M] ------------------ 35002| 0|#line 3015 "gram.y" 35003| 0| { 35004| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35005| | 35006| 0| n->subtype = AT_ReplicaIdentity; 35007| 0| n->def = (yyvsp[(3) - (3)].node); 35008| 0| (yyval.node) = (Node *) n; 35009| 0| ;} 35010| 0| break; 35011| | 35012| 0| case 367: ------------------ | Branch (35012:3): [True: 0, False: 76.7M] ------------------ 35013| 0|#line 3024 "gram.y" 35014| 0| { 35015| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35016| | 35017| 0| n->subtype = AT_EnableRowSecurity; 35018| 0| (yyval.node) = (Node *) n; 35019| 0| ;} 35020| 0| break; 35021| | 35022| 0| case 368: ------------------ | Branch (35022:3): [True: 0, False: 76.7M] ------------------ 35023| 0|#line 3032 "gram.y" 35024| 0| { 35025| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35026| | 35027| 0| n->subtype = AT_DisableRowSecurity; 35028| 0| (yyval.node) = (Node *) n; 35029| 0| ;} 35030| 0| break; 35031| | 35032| 0| case 369: ------------------ | Branch (35032:3): [True: 0, False: 76.7M] ------------------ 35033| 0|#line 3040 "gram.y" 35034| 0| { 35035| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35036| | 35037| 0| n->subtype = AT_ForceRowSecurity; 35038| 0| (yyval.node) = (Node *) n; 35039| 0| ;} 35040| 0| break; 35041| | 35042| 0| case 370: ------------------ | Branch (35042:3): [True: 0, False: 76.7M] ------------------ 35043| 0|#line 3048 "gram.y" 35044| 0| { 35045| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35046| | 35047| 0| n->subtype = AT_NoForceRowSecurity; 35048| 0| (yyval.node) = (Node *) n; 35049| 0| ;} 35050| 0| break; 35051| | 35052| 0| case 371: ------------------ | Branch (35052:3): [True: 0, False: 76.7M] ------------------ 35053| 0|#line 3055 "gram.y" 35054| 0| { 35055| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35056| | 35057| 0| n->subtype = AT_GenericOptions; 35058| 0| n->def = (Node *) (yyvsp[(1) - (1)].list); 35059| 0| (yyval.node) = (Node *) n; 35060| 0| ;} 35061| 0| break; 35062| | 35063| 511| case 372: ------------------ | Branch (35063:3): [True: 511, False: 76.7M] ------------------ 35064| 511|#line 3065 "gram.y" 35065| 511| { (yyval.node) = (yyvsp[(3) - (3)].node); ;} 35066| 511| break; 35067| | 35068| 0| case 373: ------------------ | Branch (35068:3): [True: 0, False: 76.7M] ------------------ 35069| 0|#line 3066 "gram.y" 35070| 0| { (yyval.node) = NULL; ;} 35071| 0| break; 35072| | 35073| 5| case 374: ------------------ | Branch (35073:3): [True: 5, False: 76.7M] ------------------ 35074| 5|#line 3071 "gram.y" 35075| 5| { 35076| 5| CollateClause *n = makeNode(CollateClause); ------------------ | | 161| 5|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35077| | 35078| 5| n->arg = NULL; 35079| 5| n->collname = (yyvsp[(2) - (2)].list); 35080| 5| n->location = (yylsp[(1) - (2)]); 35081| 5| (yyval.node) = (Node *) n; 35082| 5| ;} 35083| 5| break; 35084| | 35085| 1.89k| case 375: ------------------ | Branch (35085:3): [True: 1.89k, False: 76.7M] ------------------ 35086| 1.89k|#line 3079 "gram.y" 35087| 1.89k| { (yyval.node) = NULL; ;} 35088| 1.89k| break; 35089| | 35090| 0| case 376: ------------------ | Branch (35090:3): [True: 0, False: 76.7M] ------------------ 35091| 0|#line 3083 "gram.y" 35092| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 35093| 0| break; 35094| | 35095| 0| case 377: ------------------ | Branch (35095:3): [True: 0, False: 76.7M] ------------------ 35096| 0|#line 3084 "gram.y" 35097| 0| { (yyval.node) = NULL; ;} 35098| 0| break; 35099| | 35100| 0| case 378: ------------------ | Branch (35100:3): [True: 0, False: 76.7M] ------------------ 35101| 0|#line 3089 "gram.y" 35102| 0| { 35103| 0| ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35104| | 35105| 0| n->identity_type = REPLICA_IDENTITY_NOTHING; ------------------ | | 87| 0|#define REPLICA_IDENTITY_NOTHING 'n' ------------------ 35106| 0| n->name = NULL; 35107| 0| (yyval.node) = (Node *) n; 35108| 0| ;} 35109| 0| break; 35110| | 35111| 0| case 379: ------------------ | Branch (35111:3): [True: 0, False: 76.7M] ------------------ 35112| 0|#line 3097 "gram.y" 35113| 0| { 35114| 0| ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35115| | 35116| 0| n->identity_type = REPLICA_IDENTITY_FULL; ------------------ | | 89| 0|#define REPLICA_IDENTITY_FULL 'f' ------------------ 35117| 0| n->name = NULL; 35118| 0| (yyval.node) = (Node *) n; 35119| 0| ;} 35120| 0| break; 35121| | 35122| 0| case 380: ------------------ | Branch (35122:3): [True: 0, False: 76.7M] ------------------ 35123| 0|#line 3105 "gram.y" 35124| 0| { 35125| 0| ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35126| | 35127| 0| n->identity_type = REPLICA_IDENTITY_DEFAULT; ------------------ | | 85| 0|#define REPLICA_IDENTITY_DEFAULT 'd' ------------------ 35128| 0| n->name = NULL; 35129| 0| (yyval.node) = (Node *) n; 35130| 0| ;} 35131| 0| break; 35132| | 35133| 0| case 381: ------------------ | Branch (35133:3): [True: 0, False: 76.7M] ------------------ 35134| 0|#line 3113 "gram.y" 35135| 0| { 35136| 0| ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35137| | 35138| 0| n->identity_type = REPLICA_IDENTITY_INDEX; ------------------ | | 95| 0|#define REPLICA_IDENTITY_INDEX 'i' ------------------ 35139| 0| n->name = (yyvsp[(3) - (3)].str); 35140| 0| (yyval.node) = (Node *) n; 35141| 0| ;} 35142| 0| break; 35143| | 35144| 1.86k| case 382: ------------------ | Branch (35144:3): [True: 1.86k, False: 76.7M] ------------------ 35145| 1.86k|#line 3123 "gram.y" 35146| 1.86k| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 35147| 1.86k| break; 35148| | 35149| 139| case 383: ------------------ | Branch (35149:3): [True: 139, False: 76.7M] ------------------ 35150| 139|#line 3126 "gram.y" 35151| 139| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 35152| 139| break; 35153| | 35154| 864| case 384: ------------------ | Branch (35154:3): [True: 864, False: 76.7M] ------------------ 35155| 864|#line 3127 "gram.y" 35156| 864| { (yyval.list) = NIL; ;} ------------------ | | 68| 864|#define NIL ((List *) NULL) ------------------ 35157| 864| break; 35158| | 35159| 1.86k| case 385: ------------------ | Branch (35159:3): [True: 1.86k, False: 76.7M] ------------------ 35160| 1.86k|#line 3131 "gram.y" 35161| 1.86k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 1.86k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.86k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35162| 1.86k| break; 35163| | 35164| 19.2k| case 386: ------------------ | Branch (35164:3): [True: 19.2k, False: 76.7M] ------------------ 35165| 19.2k|#line 3132 "gram.y" 35166| 19.2k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 35167| 19.2k| break; 35168| | 35169| 43| case 387: ------------------ | Branch (35169:3): [True: 43, False: 76.7M] ------------------ 35170| 43|#line 3138 "gram.y" 35171| 43| { 35172| 43| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 35173| 43| ;} 35174| 43| break; 35175| | 35176| 20.3k| case 388: ------------------ | Branch (35176:3): [True: 20.3k, False: 76.7M] ------------------ 35177| 20.3k|#line 3142 "gram.y" 35178| 20.3k| { 35179| 20.3k| (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); 35180| 20.3k| ;} 35181| 20.3k| break; 35182| | 35183| 643| case 389: ------------------ | Branch (35183:3): [True: 643, False: 76.7M] ------------------ 35184| 643|#line 3146 "gram.y" 35185| 643| { 35186| 643| (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (Node *) (yyvsp[(5) - (5)].node), 35187| 643| DEFELEM_UNSPEC, (yylsp[(1) - (5)])); 35188| 643| ;} 35189| 643| break; 35190| | 35191| 0| case 390: ------------------ | Branch (35191:3): [True: 0, False: 76.7M] ------------------ 35192| 0|#line 3151 "gram.y" 35193| 0| { 35194| 0| (yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, DEFELEM_UNSPEC, (yylsp[(1) - (3)])); 35195| 0| ;} 35196| 0| break; 35197| | 35198| 555| case 391: ------------------ | Branch (35198:3): [True: 555, False: 76.7M] ------------------ 35199| 555|#line 3158 "gram.y" 35200| 555| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 555| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 555|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35201| 555| break; 35202| | 35203| 143| case 392: ------------------ | Branch (35203:3): [True: 143, False: 76.7M] ------------------ 35204| 143|#line 3160 "gram.y" 35205| 143| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 35206| 143| break; 35207| | 35208| 508| case 393: ------------------ | Branch (35208:3): [True: 508, False: 76.7M] ------------------ 35209| 508|#line 3165 "gram.y" 35210| 508| { 35211| 508| (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); 35212| 508| ;} 35213| 508| break; 35214| | 35215| 0| case 394: ------------------ | Branch (35215:3): [True: 0, False: 76.7M] ------------------ 35216| 0|#line 3169 "gram.y" 35217| 0| { 35218| 0| (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 35219| 0| ;} 35220| 0| break; 35221| | 35222| 0| case 395: ------------------ | Branch (35222:3): [True: 0, False: 76.7M] ------------------ 35223| 0|#line 3173 "gram.y" 35224| 0| { 35225| 0| if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 || ------------------ | Branch (35225:10): [True: 0, False: 0] ------------------ 35226| 0| strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 || ------------------ | Branch (35226:7): [True: 0, False: 0] ------------------ 35227| 0| strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0) ------------------ | Branch (35227:7): [True: 0, False: 0] ------------------ 35228| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35229| 0| (errcode(ERRCODE_SYNTAX_ERROR), 35230| 0| errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname), 35231| 0| parser_errposition((yylsp[(2) - (2)])))); 35232| 0| (yyval.defelt) = (yyvsp[(2) - (2)].defelt); 35233| 0| ;} 35234| 0| break; 35235| | 35236| 190| case 396: ------------------ | Branch (35236:3): [True: 190, False: 76.7M] ------------------ 35237| 190|#line 3184 "gram.y" 35238| 190| { 35239| 190| (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)])); 35240| 190| ;} 35241| 190| break; 35242| | 35243| 0| case 397: ------------------ | Branch (35243:3): [True: 0, False: 76.7M] ------------------ 35244| 0|#line 3190 "gram.y" 35245| 0| { (yyval.node) = (Node *) makeInteger((yyvsp[(1) - (1)].ival)); ;} 35246| 0| break; 35247| | 35248| 0| case 398: ------------------ | Branch (35248:3): [True: 0, False: 76.7M] ------------------ 35249| 0|#line 3191 "gram.y" 35250| 0| { (yyval.node) = NULL; ;} 35251| 0| break; 35252| | 35253| 0| case 399: ------------------ | Branch (35253:3): [True: 0, False: 76.7M] ------------------ 35254| 0|#line 3195 "gram.y" 35255| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 35256| 0| break; 35257| | 35258| 0| case 400: ------------------ | Branch (35258:3): [True: 0, False: 76.7M] ------------------ 35259| 0|#line 3196 "gram.y" 35260| 0| { (yyval.str) = NULL; ;} 35261| 0| break; 35262| | 35263| 0| case 401: ------------------ | Branch (35263:3): [True: 0, False: 76.7M] ------------------ 35264| 0|#line 3202 "gram.y" 35265| 0| { 35266| 0| ListCell *lc; 35267| 0| PartitionBoundSpec *n = makeNode(PartitionBoundSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35268| | 35269| 0| n->strategy = PARTITION_STRATEGY_HASH; 35270| 0| n->modulus = n->remainder = -1; 35271| | 35272| 0| foreach (lc, (yyvsp[(5) - (6)].list)) ------------------ | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 0| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 0|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 0, False: 0] | | | Branch (375:5): [True: 0, False: 0] | | ------------------ | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 0, False: 0] | | ------------------ | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 0| (cell = NULL, false); \ | | 379| 0| cell##__state.i++) ------------------ 35273| 0| { 35274| 0| DefElem *opt = lfirst_node(DefElem, lc); ------------------ | | 176| 0|#define lfirst_node(type,lc) castNode(type, lfirst(lc)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 35275| | 35276| 0| if (strcmp(opt->defname, "modulus") == 0) ------------------ | Branch (35276:11): [True: 0, False: 0] ------------------ 35277| 0| { 35278| 0| if (n->modulus != -1) ------------------ | Branch (35278:12): [True: 0, False: 0] ------------------ 35279| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35280| 0| (errcode(ERRCODE_DUPLICATE_OBJECT), 35281| 0| errmsg("modulus for hash partition provided more than once"), 35282| 0| parser_errposition(opt->location))); 35283| 0| n->modulus = defGetInt32(opt); 35284| 0| } 35285| 0| else if (strcmp(opt->defname, "remainder") == 0) ------------------ | Branch (35285:16): [True: 0, False: 0] ------------------ 35286| 0| { 35287| 0| if (n->remainder != -1) ------------------ | Branch (35287:12): [True: 0, False: 0] ------------------ 35288| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35289| 0| (errcode(ERRCODE_DUPLICATE_OBJECT), 35290| 0| errmsg("remainder for hash partition provided more than once"), 35291| 0| parser_errposition(opt->location))); 35292| 0| n->remainder = defGetInt32(opt); 35293| 0| } 35294| 0| else 35295| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35296| 0| (errcode(ERRCODE_SYNTAX_ERROR), 35297| 0| errmsg("unrecognized hash partition bound specification \"%s\"", 35298| 0| opt->defname), 35299| 0| parser_errposition(opt->location))); 35300| 0| } 35301| | 35302| 0| if (n->modulus == -1) ------------------ | Branch (35302:10): [True: 0, False: 0] ------------------ 35303| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35304| 0| (errcode(ERRCODE_SYNTAX_ERROR), 35305| 0| errmsg("modulus for hash partition must be specified"), 35306| 0| parser_errposition((yylsp[(3) - (6)])))); 35307| 0| if (n->remainder == -1) ------------------ | Branch (35307:10): [True: 0, False: 0] ------------------ 35308| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35309| 0| (errcode(ERRCODE_SYNTAX_ERROR), 35310| 0| errmsg("remainder for hash partition must be specified"), 35311| 0| parser_errposition((yylsp[(3) - (6)])))); 35312| | 35313| 0| n->location = (yylsp[(3) - (6)]); 35314| | 35315| 0| (yyval.partboundspec) = n; 35316| 0| ;} 35317| 0| break; 35318| | 35319| 0| case 402: ------------------ | Branch (35319:3): [True: 0, False: 76.7M] ------------------ 35320| 0|#line 3257 "gram.y" 35321| 0| { 35322| 0| PartitionBoundSpec *n = makeNode(PartitionBoundSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35323| | 35324| 0| n->strategy = PARTITION_STRATEGY_LIST; 35325| 0| n->is_default = false; 35326| 0| n->listdatums = (yyvsp[(5) - (6)].list); 35327| 0| n->location = (yylsp[(3) - (6)]); 35328| | 35329| 0| (yyval.partboundspec) = n; 35330| 0| ;} 35331| 0| break; 35332| | 35333| 0| case 403: ------------------ | Branch (35333:3): [True: 0, False: 76.7M] ------------------ 35334| 0|#line 3270 "gram.y" 35335| 0| { 35336| 0| PartitionBoundSpec *n = makeNode(PartitionBoundSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35337| | 35338| 0| n->strategy = PARTITION_STRATEGY_RANGE; 35339| 0| n->is_default = false; 35340| 0| n->lowerdatums = (yyvsp[(5) - (10)].list); 35341| 0| n->upperdatums = (yyvsp[(9) - (10)].list); 35342| 0| n->location = (yylsp[(3) - (10)]); 35343| | 35344| 0| (yyval.partboundspec) = n; 35345| 0| ;} 35346| 0| break; 35347| | 35348| 0| case 404: ------------------ | Branch (35348:3): [True: 0, False: 76.7M] ------------------ 35349| 0|#line 3284 "gram.y" 35350| 0| { 35351| 0| PartitionBoundSpec *n = makeNode(PartitionBoundSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35352| | 35353| 0| n->is_default = true; 35354| 0| n->location = (yylsp[(1) - (1)]); 35355| | 35356| 0| (yyval.partboundspec) = n; 35357| 0| ;} 35358| 0| break; 35359| | 35360| 0| case 405: ------------------ | Branch (35360:3): [True: 0, False: 76.7M] ------------------ 35361| 0|#line 3296 "gram.y" 35362| 0| { 35363| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (Node *) makeInteger((yyvsp[(2) - (2)].ival)), (yylsp[(1) - (2)])); 35364| 0| ;} 35365| 0| break; 35366| | 35367| 0| case 406: ------------------ | Branch (35367:3): [True: 0, False: 76.7M] ------------------ 35368| 0|#line 3303 "gram.y" 35369| 0| { 35370| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35371| 0| ;} 35372| 0| break; 35373| | 35374| 0| case 407: ------------------ | Branch (35374:3): [True: 0, False: 76.7M] ------------------ 35375| 0|#line 3307 "gram.y" 35376| 0| { 35377| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); 35378| 0| ;} 35379| 0| break; 35380| | 35381| 0| case 408: ------------------ | Branch (35381:3): [True: 0, False: 76.7M] ------------------ 35382| 0|#line 3321 "gram.y" 35383| 0| { 35384| 0| AlterTableStmt *n = makeNode(AlterTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35385| | 35386| | /* can't use qualified_name, sigh */ 35387| 0| n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (4)].list), (yylsp[(3) - (4)]), yyscanner); 35388| 0| n->cmds = (yyvsp[(4) - (4)].list); 35389| 0| n->objtype = OBJECT_TYPE; 35390| 0| (yyval.node) = (Node *) n; 35391| 0| ;} 35392| 0| break; 35393| | 35394| 0| case 409: ------------------ | Branch (35394:3): [True: 0, False: 76.7M] ------------------ 35395| 0|#line 3333 "gram.y" 35396| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35397| 0| break; 35398| | 35399| 0| case 410: ------------------ | Branch (35399:3): [True: 0, False: 76.7M] ------------------ 35400| 0|#line 3334 "gram.y" 35401| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 35402| 0| break; 35403| | 35404| 0| case 411: ------------------ | Branch (35404:3): [True: 0, False: 76.7M] ------------------ 35405| 0|#line 3340 "gram.y" 35406| 0| { 35407| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35408| | 35409| 0| n->subtype = AT_AddColumn; 35410| 0| n->def = (yyvsp[(3) - (4)].node); 35411| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 35412| 0| (yyval.node) = (Node *) n; 35413| 0| ;} 35414| 0| break; 35415| | 35416| 0| case 412: ------------------ | Branch (35416:3): [True: 0, False: 76.7M] ------------------ 35417| 0|#line 3350 "gram.y" 35418| 0| { 35419| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35420| | 35421| 0| n->subtype = AT_DropColumn; 35422| 0| n->name = (yyvsp[(5) - (6)].str); 35423| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 35424| 0| n->missing_ok = true; 35425| 0| (yyval.node) = (Node *) n; 35426| 0| ;} 35427| 0| break; 35428| | 35429| 0| case 413: ------------------ | Branch (35429:3): [True: 0, False: 76.7M] ------------------ 35430| 0|#line 3361 "gram.y" 35431| 0| { 35432| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35433| | 35434| 0| n->subtype = AT_DropColumn; 35435| 0| n->name = (yyvsp[(3) - (4)].str); 35436| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 35437| 0| n->missing_ok = false; 35438| 0| (yyval.node) = (Node *) n; 35439| 0| ;} 35440| 0| break; 35441| | 35442| 0| case 414: ------------------ | Branch (35442:3): [True: 0, False: 76.7M] ------------------ 35443| 0|#line 3372 "gram.y" 35444| 0| { 35445| 0| AlterTableCmd *n = makeNode(AlterTableCmd); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35446| 0| ColumnDef *def = makeNode(ColumnDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35447| | 35448| 0| n->subtype = AT_AlterColumnType; 35449| 0| n->name = (yyvsp[(3) - (8)].str); 35450| 0| n->def = (Node *) def; 35451| 0| n->behavior = (yyvsp[(8) - (8)].dbehavior); 35452| | /* We only use these fields of the ColumnDef node */ 35453| 0| def->typeName = (yyvsp[(6) - (8)].typnam); 35454| 0| def->collClause = (CollateClause *) (yyvsp[(7) - (8)].node); 35455| 0| def->raw_default = NULL; 35456| 0| def->location = (yylsp[(3) - (8)]); 35457| 0| (yyval.node) = (Node *) n; 35458| 0| ;} 35459| 0| break; 35460| | 35461| 0| case 415: ------------------ | Branch (35461:3): [True: 0, False: 76.7M] ------------------ 35462| 0|#line 3399 "gram.y" 35463| 0| { 35464| 0| ClosePortalStmt *n = makeNode(ClosePortalStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35465| | 35466| 0| n->portalname = (yyvsp[(2) - (2)].str); 35467| 0| (yyval.node) = (Node *) n; 35468| 0| ;} 35469| 0| break; 35470| | 35471| 0| case 416: ------------------ | Branch (35471:3): [True: 0, False: 76.7M] ------------------ 35472| 0|#line 3406 "gram.y" 35473| 0| { 35474| 0| ClosePortalStmt *n = makeNode(ClosePortalStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35475| | 35476| 0| n->portalname = NULL; 35477| 0| (yyval.node) = (Node *) n; 35478| 0| ;} 35479| 0| break; 35480| | 35481| 260| case 417: ------------------ | Branch (35481:3): [True: 260, False: 76.7M] ------------------ 35482| 260|#line 3442 "gram.y" 35483| 260| { 35484| 260| CopyStmt *n = makeNode(CopyStmt); ------------------ | | 161| 260|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35485| | 35486| 260| n->relation = (yyvsp[(3) - (11)].range); 35487| 260| n->query = NULL; 35488| 260| n->attlist = (yyvsp[(4) - (11)].list); 35489| 260| n->is_from = (yyvsp[(5) - (11)].boolean); 35490| 260| n->is_program = (yyvsp[(6) - (11)].boolean); 35491| 260| n->filename = (yyvsp[(7) - (11)].str); 35492| 260| n->whereClause = (yyvsp[(11) - (11)].node); 35493| | 35494| 260| if (n->is_program && n->filename == NULL) ------------------ | Branch (35494:10): [True: 0, False: 260] | Branch (35494:27): [True: 0, False: 0] ------------------ 35495| 260| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35496| 260| (errcode(ERRCODE_SYNTAX_ERROR), 35497| 260| errmsg("STDIN/STDOUT not allowed with PROGRAM"), 35498| 260| parser_errposition((yylsp[(8) - (11)])))); 35499| | 35500| 260| if (!n->is_from && n->whereClause != NULL) ------------------ | Branch (35500:10): [True: 260, False: 0] | Branch (35500:25): [True: 0, False: 260] ------------------ 35501| 260| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35502| 260| (errcode(ERRCODE_SYNTAX_ERROR), 35503| 260| errmsg("WHERE clause not allowed with COPY TO"), 35504| 260| parser_errposition((yylsp[(11) - (11)])))); 35505| | 35506| 260| n->options = NIL; ------------------ | | 68| 260|#define NIL ((List *) NULL) ------------------ 35507| | /* Concatenate user-supplied flags */ 35508| 260| if ((yyvsp[(2) - (11)].defelt)) ------------------ | Branch (35508:10): [True: 0, False: 260] ------------------ 35509| 0| n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt)); 35510| 260| if ((yyvsp[(8) - (11)].defelt)) ------------------ | Branch (35510:10): [True: 0, False: 260] ------------------ 35511| 0| n->options = lappend(n->options, (yyvsp[(8) - (11)].defelt)); 35512| 260| if ((yyvsp[(10) - (11)].list)) ------------------ | Branch (35512:10): [True: 260, False: 0] ------------------ 35513| 260| n->options = list_concat(n->options, (yyvsp[(10) - (11)].list)); 35514| 260| (yyval.node) = (Node *) n; 35515| 260| ;} 35516| 0| break; 35517| | 35518| 0| case 418: ------------------ | Branch (35518:3): [True: 0, False: 76.7M] ------------------ 35519| 0|#line 3476 "gram.y" 35520| 0| { 35521| 0| CopyStmt *n = makeNode(CopyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35522| | 35523| 0| n->relation = NULL; 35524| 0| n->query = (yyvsp[(3) - (9)].node); 35525| 0| n->attlist = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35526| 0| n->is_from = false; 35527| 0| n->is_program = (yyvsp[(6) - (9)].boolean); 35528| 0| n->filename = (yyvsp[(7) - (9)].str); 35529| 0| n->options = (yyvsp[(9) - (9)].list); 35530| | 35531| 0| if (n->is_program && n->filename == NULL) ------------------ | Branch (35531:10): [True: 0, False: 0] | Branch (35531:27): [True: 0, False: 0] ------------------ 35532| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35533| 0| (errcode(ERRCODE_SYNTAX_ERROR), 35534| 0| errmsg("STDIN/STDOUT not allowed with PROGRAM"), 35535| 0| parser_errposition((yylsp[(5) - (9)])))); 35536| | 35537| 0| (yyval.node) = (Node *) n; 35538| 0| ;} 35539| 0| break; 35540| | 35541| 0| case 419: ------------------ | Branch (35541:3): [True: 0, False: 76.7M] ------------------ 35542| 0|#line 3498 "gram.y" 35543| 0| { (yyval.boolean) = true; ;} 35544| 0| break; 35545| | 35546| 261| case 420: ------------------ | Branch (35546:3): [True: 261, False: 76.7M] ------------------ 35547| 261|#line 3499 "gram.y" 35548| 261| { (yyval.boolean) = false; ;} 35549| 261| break; 35550| | 35551| 0| case 421: ------------------ | Branch (35551:3): [True: 0, False: 76.7M] ------------------ 35552| 0|#line 3503 "gram.y" 35553| 0| { (yyval.boolean) = true; ;} 35554| 0| break; 35555| | 35556| 261| case 422: ------------------ | Branch (35556:3): [True: 261, False: 76.7M] ------------------ 35557| 261|#line 3504 "gram.y" 35558| 261| { (yyval.boolean) = false; ;} 35559| 261| break; 35560| | 35561| 261| case 423: ------------------ | Branch (35561:3): [True: 261, False: 76.7M] ------------------ 35562| 261|#line 3513 "gram.y" 35563| 261| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 35564| 261| break; 35565| | 35566| 0| case 424: ------------------ | Branch (35566:3): [True: 0, False: 76.7M] ------------------ 35567| 0|#line 3514 "gram.y" 35568| 0| { (yyval.str) = NULL; ;} 35569| 0| break; 35570| | 35571| 0| case 425: ------------------ | Branch (35571:3): [True: 0, False: 76.7M] ------------------ 35572| 0|#line 3515 "gram.y" 35573| 0| { (yyval.str) = NULL; ;} 35574| 0| break; 35575| | 35576| 0| case 426: ------------------ | Branch (35576:3): [True: 0, False: 76.7M] ------------------ 35577| 0|#line 3518 "gram.y" 35578| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 35579| 0| break; 35580| | 35581| 260| case 427: ------------------ | Branch (35581:3): [True: 260, False: 76.7M] ------------------ 35582| 260|#line 3519 "gram.y" 35583| 260| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 35584| 260| break; 35585| | 35586| 0| case 428: ------------------ | Branch (35586:3): [True: 0, False: 76.7M] ------------------ 35587| 0|#line 3524 "gram.y" 35588| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 35589| 0| break; 35590| | 35591| 0| case 429: ------------------ | Branch (35591:3): [True: 0, False: 76.7M] ------------------ 35592| 0|#line 3525 "gram.y" 35593| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35594| 0| break; 35595| | 35596| 0| case 430: ------------------ | Branch (35596:3): [True: 0, False: 76.7M] ------------------ 35597| 0|#line 3530 "gram.y" 35598| 0| { 35599| 0| (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); 35600| 0| ;} 35601| 0| break; 35602| | 35603| 0| case 431: ------------------ | Branch (35603:3): [True: 0, False: 76.7M] ------------------ 35604| 0|#line 3534 "gram.y" 35605| 0| { 35606| 0| (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 35607| 0| ;} 35608| 0| break; 35609| | 35610| 0| case 432: ------------------ | Branch (35610:3): [True: 0, False: 76.7M] ------------------ 35611| 0|#line 3538 "gram.y" 35612| 0| { 35613| 0| (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 35614| 0| ;} 35615| 0| break; 35616| | 35617| 0| case 433: ------------------ | Branch (35617:3): [True: 0, False: 76.7M] ------------------ 35618| 0|#line 3542 "gram.y" 35619| 0| { 35620| 0| (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 35621| 0| ;} 35622| 0| break; 35623| | 35624| 0| case 434: ------------------ | Branch (35624:3): [True: 0, False: 76.7M] ------------------ 35625| 0|#line 3546 "gram.y" 35626| 0| { 35627| 0| (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[(1) - (1)])); 35628| 0| ;} 35629| 0| break; 35630| | 35631| 0| case 435: ------------------ | Branch (35631:3): [True: 0, False: 76.7M] ------------------ 35632| 0|#line 3550 "gram.y" 35633| 0| { 35634| 0| (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 35635| 0| ;} 35636| 0| break; 35637| | 35638| 0| case 436: ------------------ | Branch (35638:3): [True: 0, False: 76.7M] ------------------ 35639| 0|#line 3554 "gram.y" 35640| 0| { 35641| 0| (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 35642| 0| ;} 35643| 0| break; 35644| | 35645| 0| case 437: ------------------ | Branch (35645:3): [True: 0, False: 76.7M] ------------------ 35646| 0|#line 3558 "gram.y" 35647| 0| { 35648| 0| (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 35649| 0| ;} 35650| 0| break; 35651| | 35652| 0| case 438: ------------------ | Branch (35652:3): [True: 0, False: 76.7M] ------------------ 35653| 0|#line 3562 "gram.y" 35654| 0| { 35655| 0| (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 35656| 0| ;} 35657| 0| break; 35658| | 35659| 0| case 439: ------------------ | Branch (35659:3): [True: 0, False: 76.7M] ------------------ 35660| 0|#line 3566 "gram.y" 35661| 0| { 35662| 0| (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[(1) - (3)])); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35663| 0| ;} 35664| 0| break; 35665| | 35666| 0| case 440: ------------------ | Branch (35666:3): [True: 0, False: 76.7M] ------------------ 35667| 0|#line 3570 "gram.y" 35668| 0| { 35669| 0| (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[(4) - (4)].list), (yylsp[(1) - (4)])); 35670| 0| ;} 35671| 0| break; 35672| | 35673| 0| case 441: ------------------ | Branch (35673:3): [True: 0, False: 76.7M] ------------------ 35674| 0|#line 3574 "gram.y" 35675| 0| { 35676| 0| (yyval.defelt) = makeDefElem("force_not_null", (Node *) makeNode(A_Star), (yylsp[(1) - (4)])); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35677| 0| ;} 35678| 0| break; 35679| | 35680| 0| case 442: ------------------ | Branch (35680:3): [True: 0, False: 76.7M] ------------------ 35681| 0|#line 3578 "gram.y" 35682| 0| { 35683| 0| (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 35684| 0| ;} 35685| 0| break; 35686| | 35687| 0| case 443: ------------------ | Branch (35687:3): [True: 0, False: 76.7M] ------------------ 35688| 0|#line 3582 "gram.y" 35689| 0| { 35690| 0| (yyval.defelt) = makeDefElem("force_null", (Node *) makeNode(A_Star), (yylsp[(1) - (3)])); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35691| 0| ;} 35692| 0| break; 35693| | 35694| 0| case 444: ------------------ | Branch (35694:3): [True: 0, False: 76.7M] ------------------ 35695| 0|#line 3586 "gram.y" 35696| 0| { 35697| 0| (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 35698| 0| ;} 35699| 0| break; 35700| | 35701| 0| case 445: ------------------ | Branch (35701:3): [True: 0, False: 76.7M] ------------------ 35702| 0|#line 3595 "gram.y" 35703| 0| { 35704| 0| (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[(1) - (1)])); 35705| 0| ;} 35706| 0| break; 35707| | 35708| 261| case 446: ------------------ | Branch (35708:3): [True: 261, False: 76.7M] ------------------ 35709| 261|#line 3598 "gram.y" 35710| 261| { (yyval.defelt) = NULL; ;} 35711| 261| break; 35712| | 35713| 0| case 447: ------------------ | Branch (35713:3): [True: 0, False: 76.7M] ------------------ 35714| 0|#line 3603 "gram.y" 35715| 0| { 35716| 0| (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)])); 35717| 0| ;} 35718| 0| break; 35719| | 35720| 261| case 448: ------------------ | Branch (35720:3): [True: 261, False: 76.7M] ------------------ 35721| 261|#line 3606 "gram.y" 35722| 261| { (yyval.defelt) = NULL; ;} 35723| 261| break; 35724| | 35725| 261| case 451: ------------------ | Branch (35725:3): [True: 261, False: 76.7M] ------------------ 35726| 261|#line 3617 "gram.y" 35727| 261| { 35728| 261| (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 261| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 261|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35729| 261| ;} 35730| 261| break; 35731| | 35732| 2.42M| case 452: ------------------ | Branch (35732:3): [True: 2.42M, False: 74.3M] ------------------ 35733| 2.42M|#line 3621 "gram.y" 35734| 2.42M| { 35735| 2.42M| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); 35736| 2.42M| ;} 35737| 2.42M| break; 35738| | 35739| 2.42M| case 453: ------------------ | Branch (35739:3): [True: 2.42M, False: 74.3M] ------------------ 35740| 2.42M|#line 3628 "gram.y" 35741| 2.42M| { 35742| 2.42M| (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 35743| 2.42M| ;} 35744| 2.42M| break; 35745| | 35746| 66| case 454: ------------------ | Branch (35746:3): [True: 66, False: 76.7M] ------------------ 35747| 66|#line 3634 "gram.y" 35748| 66| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 35749| 66| break; 35750| | 35751| 141| case 455: ------------------ | Branch (35751:3): [True: 141, False: 76.7M] ------------------ 35752| 141|#line 3635 "gram.y" 35753| 141| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} 35754| 141| break; 35755| | 35756| 0| case 456: ------------------ | Branch (35756:3): [True: 0, False: 76.7M] ------------------ 35757| 0|#line 3636 "gram.y" 35758| 0| { (yyval.node) = (Node *) makeNode(A_Star); ;} ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35759| 0| break; 35760| | 35761| 0| case 457: ------------------ | Branch (35761:3): [True: 0, False: 76.7M] ------------------ 35762| 0|#line 3637 "gram.y" 35763| 0| { (yyval.node) = (Node *) makeString("default"); ;} 35764| 0| break; 35765| | 35766| 0| case 458: ------------------ | Branch (35766:3): [True: 0, False: 76.7M] ------------------ 35767| 0|#line 3638 "gram.y" 35768| 0| { (yyval.node) = (Node *) (yyvsp[(2) - (3)].list); ;} 35769| 0| break; 35770| | 35771| 2.42M| case 459: ------------------ | Branch (35771:3): [True: 2.42M, False: 74.3M] ------------------ 35772| 2.42M|#line 3639 "gram.y" 35773| 2.42M| { (yyval.node) = NULL; ;} 35774| 2.42M| break; 35775| | 35776| 0| case 460: ------------------ | Branch (35776:3): [True: 0, False: 76.7M] ------------------ 35777| 0|#line 3644 "gram.y" 35778| 0| { 35779| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35780| 0| ;} 35781| 0| break; 35782| | 35783| 0| case 461: ------------------ | Branch (35783:3): [True: 0, False: 76.7M] ------------------ 35784| 0|#line 3648 "gram.y" 35785| 0| { 35786| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 35787| 0| ;} 35788| 0| break; 35789| | 35790| 0| case 462: ------------------ | Branch (35790:3): [True: 0, False: 76.7M] ------------------ 35791| 0|#line 3655 "gram.y" 35792| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 35793| 0| break; 35794| | 35795| 961| case 463: ------------------ | Branch (35795:3): [True: 961, False: 76.7M] ------------------ 35796| 961|#line 3669 "gram.y" 35797| 961| { 35798| 961| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 961|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35799| | 35800| 961| (yyvsp[(4) - (13)].range)->relpersistence = (yyvsp[(2) - (13)].ival); 35801| 961| n->relation = (yyvsp[(4) - (13)].range); 35802| 961| n->tableElts = (yyvsp[(6) - (13)].list); 35803| 961| n->inhRelations = (yyvsp[(8) - (13)].list); 35804| 961| n->partspec = (yyvsp[(9) - (13)].partspec); 35805| 961| n->ofTypename = NULL; 35806| 961| n->constraints = NIL; ------------------ | | 68| 961|#define NIL ((List *) NULL) ------------------ 35807| 961| n->accessMethod = (yyvsp[(10) - (13)].str); 35808| 961| n->options = (yyvsp[(11) - (13)].list); 35809| 961| n->oncommit = (yyvsp[(12) - (13)].oncommit); 35810| 961| n->tablespacename = (yyvsp[(13) - (13)].str); 35811| 961| n->if_not_exists = false; 35812| 961| (yyval.node) = (Node *) n; 35813| 961| ;} 35814| 961| break; 35815| | 35816| 0| case 464: ------------------ | Branch (35816:3): [True: 0, False: 76.7M] ------------------ 35817| 0|#line 3689 "gram.y" 35818| 0| { 35819| 0| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35820| | 35821| 0| (yyvsp[(7) - (16)].range)->relpersistence = (yyvsp[(2) - (16)].ival); 35822| 0| n->relation = (yyvsp[(7) - (16)].range); 35823| 0| n->tableElts = (yyvsp[(9) - (16)].list); 35824| 0| n->inhRelations = (yyvsp[(11) - (16)].list); 35825| 0| n->partspec = (yyvsp[(12) - (16)].partspec); 35826| 0| n->ofTypename = NULL; 35827| 0| n->constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35828| 0| n->accessMethod = (yyvsp[(13) - (16)].str); 35829| 0| n->options = (yyvsp[(14) - (16)].list); 35830| 0| n->oncommit = (yyvsp[(15) - (16)].oncommit); 35831| 0| n->tablespacename = (yyvsp[(16) - (16)].str); 35832| 0| n->if_not_exists = true; 35833| 0| (yyval.node) = (Node *) n; 35834| 0| ;} 35835| 0| break; 35836| | 35837| 23| case 465: ------------------ | Branch (35837:3): [True: 23, False: 76.7M] ------------------ 35838| 23|#line 3709 "gram.y" 35839| 23| { 35840| 23| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 23|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35841| | 35842| 23| (yyvsp[(4) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival); 35843| 23| n->relation = (yyvsp[(4) - (12)].range); 35844| 23| n->tableElts = (yyvsp[(7) - (12)].list); 35845| 23| n->inhRelations = NIL; ------------------ | | 68| 23|#define NIL ((List *) NULL) ------------------ 35846| 23| n->partspec = (yyvsp[(8) - (12)].partspec); 35847| 23| n->ofTypename = makeTypeNameFromNameList((yyvsp[(6) - (12)].list)); 35848| 23| n->ofTypename->location = (yylsp[(6) - (12)]); 35849| 23| n->constraints = NIL; ------------------ | | 68| 23|#define NIL ((List *) NULL) ------------------ 35850| 23| n->accessMethod = (yyvsp[(9) - (12)].str); 35851| 23| n->options = (yyvsp[(10) - (12)].list); 35852| 23| n->oncommit = (yyvsp[(11) - (12)].oncommit); 35853| 23| n->tablespacename = (yyvsp[(12) - (12)].str); 35854| 23| n->if_not_exists = false; 35855| 23| (yyval.node) = (Node *) n; 35856| 23| ;} 35857| 23| break; 35858| | 35859| 0| case 466: ------------------ | Branch (35859:3): [True: 0, False: 76.7M] ------------------ 35860| 0|#line 3730 "gram.y" 35861| 0| { 35862| 0| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35863| | 35864| 0| (yyvsp[(7) - (15)].range)->relpersistence = (yyvsp[(2) - (15)].ival); 35865| 0| n->relation = (yyvsp[(7) - (15)].range); 35866| 0| n->tableElts = (yyvsp[(10) - (15)].list); 35867| 0| n->inhRelations = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35868| 0| n->partspec = (yyvsp[(11) - (15)].partspec); 35869| 0| n->ofTypename = makeTypeNameFromNameList((yyvsp[(9) - (15)].list)); 35870| 0| n->ofTypename->location = (yylsp[(9) - (15)]); 35871| 0| n->constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35872| 0| n->accessMethod = (yyvsp[(12) - (15)].str); 35873| 0| n->options = (yyvsp[(13) - (15)].list); 35874| 0| n->oncommit = (yyvsp[(14) - (15)].oncommit); 35875| 0| n->tablespacename = (yyvsp[(15) - (15)].str); 35876| 0| n->if_not_exists = true; 35877| 0| (yyval.node) = (Node *) n; 35878| 0| ;} 35879| 0| break; 35880| | 35881| 0| case 467: ------------------ | Branch (35881:3): [True: 0, False: 76.7M] ------------------ 35882| 0|#line 3751 "gram.y" 35883| 0| { 35884| 0| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35885| | 35886| 0| (yyvsp[(4) - (14)].range)->relpersistence = (yyvsp[(2) - (14)].ival); 35887| 0| n->relation = (yyvsp[(4) - (14)].range); 35888| 0| n->tableElts = (yyvsp[(8) - (14)].list); 35889| 0| n->inhRelations = list_make1((yyvsp[(7) - (14)].range)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35890| 0| n->partbound = (yyvsp[(9) - (14)].partboundspec); 35891| 0| n->partspec = (yyvsp[(10) - (14)].partspec); 35892| 0| n->ofTypename = NULL; 35893| 0| n->constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35894| 0| n->accessMethod = (yyvsp[(11) - (14)].str); 35895| 0| n->options = (yyvsp[(12) - (14)].list); 35896| 0| n->oncommit = (yyvsp[(13) - (14)].oncommit); 35897| 0| n->tablespacename = (yyvsp[(14) - (14)].str); 35898| 0| n->if_not_exists = false; 35899| 0| (yyval.node) = (Node *) n; 35900| 0| ;} 35901| 0| break; 35902| | 35903| 0| case 468: ------------------ | Branch (35903:3): [True: 0, False: 76.7M] ------------------ 35904| 0|#line 3772 "gram.y" 35905| 0| { 35906| 0| CreateStmt *n = makeNode(CreateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 35907| | 35908| 0| (yyvsp[(7) - (17)].range)->relpersistence = (yyvsp[(2) - (17)].ival); 35909| 0| n->relation = (yyvsp[(7) - (17)].range); 35910| 0| n->tableElts = (yyvsp[(11) - (17)].list); 35911| 0| n->inhRelations = list_make1((yyvsp[(10) - (17)].range)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35912| 0| n->partbound = (yyvsp[(12) - (17)].partboundspec); 35913| 0| n->partspec = (yyvsp[(13) - (17)].partspec); 35914| 0| n->ofTypename = NULL; 35915| 0| n->constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35916| 0| n->accessMethod = (yyvsp[(14) - (17)].str); 35917| 0| n->options = (yyvsp[(15) - (17)].list); 35918| 0| n->oncommit = (yyvsp[(16) - (17)].oncommit); 35919| 0| n->tablespacename = (yyvsp[(17) - (17)].str); 35920| 0| n->if_not_exists = true; 35921| 0| (yyval.node) = (Node *) n; 35922| 0| ;} 35923| 0| break; 35924| | 35925| 0| case 469: ------------------ | Branch (35925:3): [True: 0, False: 76.7M] ------------------ 35926| 0|#line 3803 "gram.y" 35927| 0| { (yyval.ival) = RELPERSISTENCE_TEMP; ;} ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35928| 0| break; 35929| | 35930| 421| case 470: ------------------ | Branch (35930:3): [True: 421, False: 76.7M] ------------------ 35931| 421|#line 3804 "gram.y" 35932| 421| { (yyval.ival) = RELPERSISTENCE_TEMP; ;} ------------------ | | 82| 421|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35933| 421| break; 35934| | 35935| 0| case 471: ------------------ | Branch (35935:3): [True: 0, False: 76.7M] ------------------ 35936| 0|#line 3805 "gram.y" 35937| 0| { (yyval.ival) = RELPERSISTENCE_TEMP; ;} ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35938| 0| break; 35939| | 35940| 0| case 472: ------------------ | Branch (35940:3): [True: 0, False: 76.7M] ------------------ 35941| 0|#line 3806 "gram.y" 35942| 0| { (yyval.ival) = RELPERSISTENCE_TEMP; ;} ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35943| 0| break; 35944| | 35945| 0| case 473: ------------------ | Branch (35945:3): [True: 0, False: 76.7M] ------------------ 35946| 0|#line 3808 "gram.y" 35947| 0| { 35948| 0| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35949| 0| (errmsg("GLOBAL is deprecated in temporary table creation"), 35950| 0| parser_errposition((yylsp[(1) - (2)])))); 35951| 0| (yyval.ival) = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35952| 0| ;} 35953| 0| break; 35954| | 35955| 0| case 474: ------------------ | Branch (35955:3): [True: 0, False: 76.7M] ------------------ 35956| 0|#line 3815 "gram.y" 35957| 0| { 35958| 0| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 35959| 0| (errmsg("GLOBAL is deprecated in temporary table creation"), 35960| 0| parser_errposition((yylsp[(1) - (2)])))); 35961| 0| (yyval.ival) = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 35962| 0| ;} 35963| 0| break; 35964| | 35965| 0| case 475: ------------------ | Branch (35965:3): [True: 0, False: 76.7M] ------------------ 35966| 0|#line 3821 "gram.y" 35967| 0| { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} ------------------ | | 81| 0|#define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */ ------------------ 35968| 0| break; 35969| | 35970| 1.87k| case 476: ------------------ | Branch (35970:3): [True: 1.87k, False: 76.7M] ------------------ 35971| 1.87k|#line 3822 "gram.y" 35972| 1.87k| { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} ------------------ | | 80| 1.87k|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 35973| 1.87k| break; 35974| | 35975| 445| case 477: ------------------ | Branch (35975:3): [True: 445, False: 76.7M] ------------------ 35976| 445|#line 3826 "gram.y" 35977| 445| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 35978| 445| break; 35979| | 35980| 518| case 478: ------------------ | Branch (35980:3): [True: 518, False: 76.7M] ------------------ 35981| 518|#line 3827 "gram.y" 35982| 518| { (yyval.list) = NIL; ;} ------------------ | | 68| 518|#define NIL ((List *) NULL) ------------------ 35983| 518| break; 35984| | 35985| 23| case 479: ------------------ | Branch (35985:3): [True: 23, False: 76.7M] ------------------ 35986| 23|#line 3831 "gram.y" 35987| 23| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 35988| 23| break; 35989| | 35990| 0| case 480: ------------------ | Branch (35990:3): [True: 0, False: 76.7M] ------------------ 35991| 0|#line 3832 "gram.y" 35992| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 35993| 0| break; 35994| | 35995| 446| case 481: ------------------ | Branch (35995:3): [True: 446, False: 76.7M] ------------------ 35996| 446|#line 3837 "gram.y" 35997| 446| { 35998| 446| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 446| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 446|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 35999| 446| ;} 36000| 446| break; 36001| | 36002| 472| case 482: ------------------ | Branch (36002:3): [True: 472, False: 76.7M] ------------------ 36003| 472|#line 3841 "gram.y" 36004| 472| { 36005| 472| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 36006| 472| ;} 36007| 472| break; 36008| | 36009| 32| case 483: ------------------ | Branch (36009:3): [True: 32, False: 76.7M] ------------------ 36010| 32|#line 3848 "gram.y" 36011| 32| { 36012| 32| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 32| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 32|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36013| 32| ;} 36014| 32| break; 36015| | 36016| 4.29k| case 484: ------------------ | Branch (36016:3): [True: 4.29k, False: 76.7M] ------------------ 36017| 4.29k|#line 3852 "gram.y" 36018| 4.29k| { 36019| 4.29k| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 36020| 4.29k| ;} 36021| 4.29k| break; 36022| | 36023| 382| case 485: ------------------ | Branch (36023:3): [True: 382, False: 76.7M] ------------------ 36024| 382|#line 3858 "gram.y" 36025| 382| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36026| 382| break; 36027| | 36028| 0| case 486: ------------------ | Branch (36028:3): [True: 0, False: 76.7M] ------------------ 36029| 0|#line 3859 "gram.y" 36030| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36031| 0| break; 36032| | 36033| 536| case 487: ------------------ | Branch (36033:3): [True: 536, False: 76.7M] ------------------ 36034| 536|#line 3860 "gram.y" 36035| 536| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36036| 536| break; 36037| | 36038| 3.71k| case 488: ------------------ | Branch (36038:3): [True: 3.71k, False: 76.7M] ------------------ 36039| 3.71k|#line 3864 "gram.y" 36040| 3.71k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36041| 3.71k| break; 36042| | 36043| 611| case 489: ------------------ | Branch (36043:3): [True: 611, False: 76.7M] ------------------ 36044| 611|#line 3865 "gram.y" 36045| 611| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36046| 611| break; 36047| | 36048| 382| case 490: ------------------ | Branch (36048:3): [True: 382, False: 76.7M] ------------------ 36049| 382|#line 3869 "gram.y" 36050| 382| { 36051| 382| ColumnDef *n = makeNode(ColumnDef); ------------------ | | 161| 382|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36052| | 36053| 382| n->colname = (yyvsp[(1) - (6)].str); 36054| 382| n->typeName = (yyvsp[(2) - (6)].typnam); 36055| 382| n->storage_name = (yyvsp[(3) - (6)].str); 36056| 382| n->compression = (yyvsp[(4) - (6)].str); 36057| 382| n->inhcount = 0; 36058| 382| n->is_local = true; 36059| 382| n->is_not_null = false; 36060| 382| n->is_from_type = false; 36061| 382| n->storage = 0; 36062| 382| n->raw_default = NULL; 36063| 382| n->cooked_default = NULL; 36064| 382| n->collOid = InvalidOid; ------------------ | | 37| 382|#define InvalidOid ((Oid) 0) ------------------ 36065| 382| n->fdwoptions = (yyvsp[(5) - (6)].list); 36066| 382| SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause, 36067| 382| yyscanner); 36068| 382| n->location = (yylsp[(1) - (6)]); 36069| 382| (yyval.node) = (Node *) n; 36070| 382| ;} 36071| 382| break; 36072| | 36073| 3.71k| case 491: ------------------ | Branch (36073:3): [True: 3.71k, False: 76.7M] ------------------ 36074| 3.71k|#line 3893 "gram.y" 36075| 3.71k| { 36076| 3.71k| ColumnDef *n = makeNode(ColumnDef); ------------------ | | 161| 3.71k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36077| | 36078| 3.71k| n->colname = (yyvsp[(1) - (2)].str); 36079| 3.71k| n->typeName = NULL; 36080| 3.71k| n->inhcount = 0; 36081| 3.71k| n->is_local = true; 36082| 3.71k| n->is_not_null = false; 36083| 3.71k| n->is_from_type = false; 36084| 3.71k| n->storage = 0; 36085| 3.71k| n->raw_default = NULL; 36086| 3.71k| n->cooked_default = NULL; 36087| 3.71k| n->collOid = InvalidOid; ------------------ | | 37| 3.71k|#define InvalidOid ((Oid) 0) ------------------ 36088| 3.71k| SplitColQualList((yyvsp[(2) - (2)].list), &n->constraints, &n->collClause, 36089| 3.71k| yyscanner); 36090| 3.71k| n->location = (yylsp[(1) - (2)]); 36091| 3.71k| (yyval.node) = (Node *) n; 36092| 3.71k| ;} 36093| 3.71k| break; 36094| | 36095| 0| case 492: ------------------ | Branch (36095:3): [True: 0, False: 76.7M] ------------------ 36096| 0|#line 3912 "gram.y" 36097| 0| { 36098| 0| ColumnDef *n = makeNode(ColumnDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36099| | 36100| 0| n->colname = (yyvsp[(1) - (4)].str); 36101| 0| n->typeName = NULL; 36102| 0| n->inhcount = 0; 36103| 0| n->is_local = true; 36104| 0| n->is_not_null = false; 36105| 0| n->is_from_type = false; 36106| 0| n->storage = 0; 36107| 0| n->raw_default = NULL; 36108| 0| n->cooked_default = NULL; 36109| 0| n->collOid = InvalidOid; ------------------ | | 37| 0|#define InvalidOid ((Oid) 0) ------------------ 36110| 0| SplitColQualList((yyvsp[(4) - (4)].list), &n->constraints, &n->collClause, 36111| 0| yyscanner); 36112| 0| n->location = (yylsp[(1) - (4)]); 36113| 0| (yyval.node) = (Node *) n; 36114| 0| ;} 36115| 0| break; 36116| | 36117| 0| case 493: ------------------ | Branch (36117:3): [True: 0, False: 76.7M] ------------------ 36118| 0|#line 3933 "gram.y" 36119| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 36120| 0| break; 36121| | 36122| 0| case 494: ------------------ | Branch (36122:3): [True: 0, False: 76.7M] ------------------ 36123| 0|#line 3934 "gram.y" 36124| 0| { (yyval.str) = pstrdup("default"); ;} 36125| 0| break; 36126| | 36127| 0| case 495: ------------------ | Branch (36127:3): [True: 0, False: 76.7M] ------------------ 36128| 0|#line 3938 "gram.y" 36129| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 36130| 0| break; 36131| | 36132| 383| case 496: ------------------ | Branch (36132:3): [True: 383, False: 76.7M] ------------------ 36133| 383|#line 3939 "gram.y" 36134| 383| { (yyval.str) = NULL; ;} 36135| 383| break; 36136| | 36137| 0| case 497: ------------------ | Branch (36137:3): [True: 0, False: 76.7M] ------------------ 36138| 0|#line 3943 "gram.y" 36139| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 36140| 0| break; 36141| | 36142| 0| case 498: ------------------ | Branch (36142:3): [True: 0, False: 76.7M] ------------------ 36143| 0|#line 3944 "gram.y" 36144| 0| { (yyval.str) = pstrdup("default"); ;} 36145| 0| break; 36146| | 36147| 0| case 499: ------------------ | Branch (36147:3): [True: 0, False: 76.7M] ------------------ 36148| 0|#line 3948 "gram.y" 36149| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 36150| 0| break; 36151| | 36152| 383| case 500: ------------------ | Branch (36152:3): [True: 383, False: 76.7M] ------------------ 36153| 383|#line 3949 "gram.y" 36154| 383| { (yyval.str) = NULL; ;} 36155| 383| break; 36156| | 36157| 23.0k| case 501: ------------------ | Branch (36157:3): [True: 23.0k, False: 76.7M] ------------------ 36158| 23.0k|#line 3953 "gram.y" 36159| 23.0k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 36160| 23.0k| break; 36161| | 36162| 4.10k| case 502: ------------------ | Branch (36162:3): [True: 4.10k, False: 76.7M] ------------------ 36163| 4.10k|#line 3954 "gram.y" 36164| 4.10k| { (yyval.list) = NIL; ;} ------------------ | | 68| 4.10k|#define NIL ((List *) NULL) ------------------ 36165| 4.10k| break; 36166| | 36167| 0| case 503: ------------------ | Branch (36167:3): [True: 0, False: 76.7M] ------------------ 36168| 0|#line 3959 "gram.y" 36169| 0| { 36170| 0| Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 36171| | 36172| 0| n->conname = (yyvsp[(2) - (3)].str); 36173| 0| n->location = (yylsp[(1) - (3)]); 36174| 0| (yyval.node) = (Node *) n; 36175| 0| ;} 36176| 0| break; 36177| | 36178| 22.6k| case 504: ------------------ | Branch (36178:3): [True: 22.6k, False: 76.7M] ------------------ 36179| 22.6k|#line 3966 "gram.y" 36180| 22.6k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36181| 22.6k| break; 36182| | 36183| 208| case 505: ------------------ | Branch (36183:3): [True: 208, False: 76.7M] ------------------ 36184| 208|#line 3967 "gram.y" 36185| 208| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36186| 208| break; 36187| | 36188| 131| case 506: ------------------ | Branch (36188:3): [True: 131, False: 76.7M] ------------------ 36189| 131|#line 3969 "gram.y" 36190| 131| { 36191| | /* 36192| | * Note: the CollateClause is momentarily included in 36193| | * the list built by ColQualList, but we split it out 36194| | * again in SplitColQualList. 36195| | */ 36196| 131| CollateClause *n = makeNode(CollateClause); ------------------ | | 161| 131|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36197| | 36198| 131| n->arg = NULL; 36199| 131| n->collname = (yyvsp[(2) - (2)].list); 36200| 131| n->location = (yylsp[(1) - (2)]); 36201| 131| (yyval.node) = (Node *) n; 36202| 131| ;} 36203| 131| break; 36204| | 36205| 13| case 507: ------------------ | Branch (36205:3): [True: 13, False: 76.7M] ------------------ 36206| 13|#line 4001 "gram.y" 36207| 13| { 36208| 13| Constraint *n = makeNode(Constraint); ------------------ | | 161| 13|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36209| | 36210| 13| n->contype = CONSTR_NOTNULL; 36211| 13| n->location = (yylsp[(1) - (3)]); 36212| 13| n->is_no_inherit = (yyvsp[(3) - (3)].boolean); 36213| 13| n->is_enforced = true; 36214| 13| n->skip_validation = false; 36215| 13| n->initially_valid = true; 36216| 13| (yyval.node) = (Node *) n; 36217| 13| ;} 36218| 13| break; 36219| | 36220| 8| case 508: ------------------ | Branch (36220:3): [True: 8, False: 76.7M] ------------------ 36221| 8|#line 4013 "gram.y" 36222| 8| { 36223| 8| Constraint *n = makeNode(Constraint); ------------------ | | 161| 8|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36224| | 36225| 8| n->contype = CONSTR_NULL; 36226| 8| n->location = (yylsp[(1) - (1)]); 36227| 8| (yyval.node) = (Node *) n; 36228| 8| ;} 36229| 8| break; 36230| | 36231| 0| case 509: ------------------ | Branch (36231:3): [True: 0, False: 76.7M] ------------------ 36232| 0|#line 4021 "gram.y" 36233| 0| { 36234| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36235| | 36236| 0| n->contype = CONSTR_UNIQUE; 36237| 0| n->location = (yylsp[(1) - (4)]); 36238| 0| n->nulls_not_distinct = !(yyvsp[(2) - (4)].boolean); 36239| 0| n->keys = NULL; 36240| 0| n->options = (yyvsp[(3) - (4)].list); 36241| 0| n->indexname = NULL; 36242| 0| n->indexspace = (yyvsp[(4) - (4)].str); 36243| 0| (yyval.node) = (Node *) n; 36244| 0| ;} 36245| 0| break; 36246| | 36247| 0| case 510: ------------------ | Branch (36247:3): [True: 0, False: 76.7M] ------------------ 36248| 0|#line 4034 "gram.y" 36249| 0| { 36250| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36251| | 36252| 0| n->contype = CONSTR_PRIMARY; 36253| 0| n->location = (yylsp[(1) - (4)]); 36254| 0| n->keys = NULL; 36255| 0| n->options = (yyvsp[(3) - (4)].list); 36256| 0| n->indexname = NULL; 36257| 0| n->indexspace = (yyvsp[(4) - (4)].str); 36258| 0| (yyval.node) = (Node *) n; 36259| 0| ;} 36260| 0| break; 36261| | 36262| 19| case 511: ------------------ | Branch (36262:3): [True: 19, False: 76.7M] ------------------ 36263| 19|#line 4046 "gram.y" 36264| 19| { 36265| 19| Constraint *n = makeNode(Constraint); ------------------ | | 161| 19|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36266| | 36267| 19| n->contype = CONSTR_CHECK; 36268| 19| n->location = (yylsp[(1) - (5)]); 36269| 19| n->is_no_inherit = (yyvsp[(5) - (5)].boolean); 36270| 19| n->raw_expr = (yyvsp[(3) - (5)].node); 36271| 19| n->cooked_expr = NULL; 36272| 19| n->is_enforced = true; 36273| 19| n->skip_validation = false; 36274| 19| n->initially_valid = true; 36275| 19| (yyval.node) = (Node *) n; 36276| 19| ;} 36277| 19| break; 36278| | 36279| 21.6k| case 512: ------------------ | Branch (36279:3): [True: 21.6k, False: 76.7M] ------------------ 36280| 21.6k|#line 4060 "gram.y" 36281| 21.6k| { 36282| 21.6k| Constraint *n = makeNode(Constraint); ------------------ | | 161| 21.6k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36283| | 36284| 21.6k| n->contype = CONSTR_DEFAULT; 36285| 21.6k| n->location = (yylsp[(1) - (2)]); 36286| 21.6k| n->raw_expr = (yyvsp[(2) - (2)].node); 36287| 21.6k| n->cooked_expr = NULL; 36288| 21.6k| (yyval.node) = (Node *) n; 36289| 21.6k| ;} 36290| 21.6k| break; 36291| | 36292| 0| case 513: ------------------ | Branch (36292:3): [True: 0, False: 76.7M] ------------------ 36293| 0|#line 4070 "gram.y" 36294| 0| { 36295| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36296| | 36297| 0| n->contype = CONSTR_IDENTITY; 36298| 0| n->generated_when = (yyvsp[(2) - (5)].ival); 36299| 0| n->options = (yyvsp[(5) - (5)].list); 36300| 0| n->location = (yylsp[(1) - (5)]); 36301| 0| (yyval.node) = (Node *) n; 36302| 0| ;} 36303| 0| break; 36304| | 36305| 129| case 514: ------------------ | Branch (36305:3): [True: 129, False: 76.7M] ------------------ 36306| 129|#line 4080 "gram.y" 36307| 129| { 36308| 129| Constraint *n = makeNode(Constraint); ------------------ | | 161| 129|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36309| | 36310| 129| n->contype = CONSTR_GENERATED; 36311| 129| n->generated_when = (yyvsp[(2) - (7)].ival); 36312| 129| n->raw_expr = (yyvsp[(5) - (7)].node); 36313| 129| n->cooked_expr = NULL; 36314| 129| n->generated_kind = (yyvsp[(7) - (7)].ival); 36315| 129| n->location = (yylsp[(1) - (7)]); 36316| | 36317| | /* 36318| | * Can't do this in the grammar because of shift/reduce 36319| | * conflicts. (IDENTITY allows both ALWAYS and BY 36320| | * DEFAULT, but generated columns only allow ALWAYS.) We 36321| | * can also give a more useful error message and location. 36322| | */ 36323| 129| if ((yyvsp[(2) - (7)].ival) != ATTRIBUTE_IDENTITY_ALWAYS) ------------------ | | 59| 129|#define ATTRIBUTE_IDENTITY_ALWAYS 'a' ------------------ | Branch (36323:10): [True: 0, False: 129] ------------------ 36324| 129| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 36325| 129| (errcode(ERRCODE_SYNTAX_ERROR), 36326| 129| errmsg("for a generated column, GENERATED ALWAYS must be specified"), 36327| 129| parser_errposition((yylsp[(2) - (7)])))); 36328| | 36329| 129| (yyval.node) = (Node *) n; 36330| 129| ;} 36331| 0| break; 36332| | 36333| 844| case 515: ------------------ | Branch (36333:3): [True: 844, False: 76.7M] ------------------ 36334| 844|#line 4105 "gram.y" 36335| 844| { 36336| 844| Constraint *n = makeNode(Constraint); ------------------ | | 161| 844|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36337| | 36338| 844| n->contype = CONSTR_FOREIGN; 36339| 844| n->location = (yylsp[(1) - (5)]); 36340| 844| n->pktable = (yyvsp[(2) - (5)].range); 36341| 844| n->fk_attrs = NIL; ------------------ | | 68| 844|#define NIL ((List *) NULL) ------------------ 36342| 844| n->pk_attrs = (yyvsp[(3) - (5)].list); 36343| 844| n->fk_matchtype = (yyvsp[(4) - (5)].ival); 36344| 844| n->fk_upd_action = ((yyvsp[(5) - (5)].keyactions))->updateAction->action; 36345| 844| n->fk_del_action = ((yyvsp[(5) - (5)].keyactions))->deleteAction->action; 36346| 844| n->fk_del_set_cols = ((yyvsp[(5) - (5)].keyactions))->deleteAction->cols; 36347| 844| n->is_enforced = true; 36348| 844| n->skip_validation = false; 36349| 844| n->initially_valid = true; 36350| 844| (yyval.node) = (Node *) n; 36351| 844| ;} 36352| 844| break; 36353| | 36354| 142| case 516: ------------------ | Branch (36354:3): [True: 142, False: 76.7M] ------------------ 36355| 142|#line 4125 "gram.y" 36356| 142| { (yyval.boolean) = true; ;} 36357| 142| break; 36358| | 36359| 0| case 517: ------------------ | Branch (36359:3): [True: 0, False: 76.7M] ------------------ 36360| 0|#line 4126 "gram.y" 36361| 0| { (yyval.boolean) = false; ;} 36362| 0| break; 36363| | 36364| 624| case 518: ------------------ | Branch (36364:3): [True: 624, False: 76.7M] ------------------ 36365| 624|#line 4127 "gram.y" 36366| 624| { (yyval.boolean) = true; ;} 36367| 624| break; 36368| | 36369| 129| case 519: ------------------ | Branch (36369:3): [True: 129, False: 76.7M] ------------------ 36370| 129|#line 4131 "gram.y" 36371| 129| { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; ;} ------------------ | | 59| 129|#define ATTRIBUTE_IDENTITY_ALWAYS 'a' ------------------ 36372| 129| break; 36373| | 36374| 190| case 520: ------------------ | Branch (36374:3): [True: 190, False: 76.7M] ------------------ 36375| 190|#line 4132 "gram.y" 36376| 190| { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;} ------------------ | | 60| 190|#define ATTRIBUTE_IDENTITY_BY_DEFAULT 'd' ------------------ 36377| 190| break; 36378| | 36379| 0| case 521: ------------------ | Branch (36379:3): [True: 0, False: 76.7M] ------------------ 36380| 0|#line 4136 "gram.y" 36381| 0| { (yyval.ival) = ATTRIBUTE_GENERATED_STORED; ;} ------------------ | | 62| 0|#define ATTRIBUTE_GENERATED_STORED 's' ------------------ 36382| 0| break; 36383| | 36384| 0| case 522: ------------------ | Branch (36384:3): [True: 0, False: 76.7M] ------------------ 36385| 0|#line 4137 "gram.y" 36386| 0| { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; ;} ------------------ | | 63| 0|#define ATTRIBUTE_GENERATED_VIRTUAL 'v' ------------------ 36387| 0| break; 36388| | 36389| 129| case 523: ------------------ | Branch (36389:3): [True: 129, False: 76.7M] ------------------ 36390| 129|#line 4138 "gram.y" 36391| 129| { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; ;} ------------------ | | 63| 129|#define ATTRIBUTE_GENERATED_VIRTUAL 'v' ------------------ 36392| 129| break; 36393| | 36394| 96| case 524: ------------------ | Branch (36394:3): [True: 96, False: 76.7M] ------------------ 36395| 96|#line 4158 "gram.y" 36396| 96| { 36397| 96| Constraint *n = makeNode(Constraint); ------------------ | | 161| 96|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36398| | 36399| 96| n->contype = CONSTR_ATTR_DEFERRABLE; 36400| 96| n->location = (yylsp[(1) - (1)]); 36401| 96| (yyval.node) = (Node *) n; 36402| 96| ;} 36403| 96| break; 36404| | 36405| 112| case 525: ------------------ | Branch (36405:3): [True: 112, False: 76.7M] ------------------ 36406| 112|#line 4166 "gram.y" 36407| 112| { 36408| 112| Constraint *n = makeNode(Constraint); ------------------ | | 161| 112|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36409| | 36410| 112| n->contype = CONSTR_ATTR_NOT_DEFERRABLE; 36411| 112| n->location = (yylsp[(1) - (2)]); 36412| 112| (yyval.node) = (Node *) n; 36413| 112| ;} 36414| 112| break; 36415| | 36416| 0| case 526: ------------------ | Branch (36416:3): [True: 0, False: 76.7M] ------------------ 36417| 0|#line 4174 "gram.y" 36418| 0| { 36419| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36420| | 36421| 0| n->contype = CONSTR_ATTR_DEFERRED; 36422| 0| n->location = (yylsp[(1) - (2)]); 36423| 0| (yyval.node) = (Node *) n; 36424| 0| ;} 36425| 0| break; 36426| | 36427| 0| case 527: ------------------ | Branch (36427:3): [True: 0, False: 76.7M] ------------------ 36428| 0|#line 4182 "gram.y" 36429| 0| { 36430| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36431| | 36432| 0| n->contype = CONSTR_ATTR_IMMEDIATE; 36433| 0| n->location = (yylsp[(1) - (2)]); 36434| 0| (yyval.node) = (Node *) n; 36435| 0| ;} 36436| 0| break; 36437| | 36438| 0| case 528: ------------------ | Branch (36438:3): [True: 0, False: 76.7M] ------------------ 36439| 0|#line 4190 "gram.y" 36440| 0| { 36441| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36442| | 36443| 0| n->contype = CONSTR_ATTR_ENFORCED; 36444| 0| n->location = (yylsp[(1) - (1)]); 36445| 0| (yyval.node) = (Node *) n; 36446| 0| ;} 36447| 0| break; 36448| | 36449| 0| case 529: ------------------ | Branch (36449:3): [True: 0, False: 76.7M] ------------------ 36450| 0|#line 4198 "gram.y" 36451| 0| { 36452| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36453| | 36454| 0| n->contype = CONSTR_ATTR_NOT_ENFORCED; 36455| 0| n->location = (yylsp[(1) - (2)]); 36456| 0| (yyval.node) = (Node *) n; 36457| 0| ;} 36458| 0| break; 36459| | 36460| 0| case 530: ------------------ | Branch (36460:3): [True: 0, False: 76.7M] ------------------ 36461| 0|#line 4210 "gram.y" 36462| 0| { 36463| 0| TableLikeClause *n = makeNode(TableLikeClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36464| | 36465| 0| n->relation = (yyvsp[(2) - (3)].range); 36466| 0| n->options = (yyvsp[(3) - (3)].ival); 36467| 0| n->relationOid = InvalidOid; ------------------ | | 37| 0|#define InvalidOid ((Oid) 0) ------------------ 36468| 0| (yyval.node) = (Node *) n; 36469| 0| ;} 36470| 0| break; 36471| | 36472| 0| case 531: ------------------ | Branch (36472:3): [True: 0, False: 76.7M] ------------------ 36473| 0|#line 4221 "gram.y" 36474| 0| { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} 36475| 0| break; 36476| | 36477| 0| case 532: ------------------ | Branch (36477:3): [True: 0, False: 76.7M] ------------------ 36478| 0|#line 4222 "gram.y" 36479| 0| { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;} 36480| 0| break; 36481| | 36482| 0| case 533: ------------------ | Branch (36482:3): [True: 0, False: 76.7M] ------------------ 36483| 0|#line 4223 "gram.y" 36484| 0| { (yyval.ival) = 0; ;} 36485| 0| break; 36486| | 36487| 0| case 534: ------------------ | Branch (36487:3): [True: 0, False: 76.7M] ------------------ 36488| 0|#line 4227 "gram.y" 36489| 0| { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; ;} 36490| 0| break; 36491| | 36492| 0| case 535: ------------------ | Branch (36492:3): [True: 0, False: 76.7M] ------------------ 36493| 0|#line 4228 "gram.y" 36494| 0| { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; ;} 36495| 0| break; 36496| | 36497| 0| case 536: ------------------ | Branch (36497:3): [True: 0, False: 76.7M] ------------------ 36498| 0|#line 4229 "gram.y" 36499| 0| { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; ;} 36500| 0| break; 36501| | 36502| 0| case 537: ------------------ | Branch (36502:3): [True: 0, False: 76.7M] ------------------ 36503| 0|#line 4230 "gram.y" 36504| 0| { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; ;} 36505| 0| break; 36506| | 36507| 0| case 538: ------------------ | Branch (36507:3): [True: 0, False: 76.7M] ------------------ 36508| 0|#line 4231 "gram.y" 36509| 0| { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; ;} 36510| 0| break; 36511| | 36512| 0| case 539: ------------------ | Branch (36512:3): [True: 0, False: 76.7M] ------------------ 36513| 0|#line 4232 "gram.y" 36514| 0| { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; ;} 36515| 0| break; 36516| | 36517| 0| case 540: ------------------ | Branch (36517:3): [True: 0, False: 76.7M] ------------------ 36518| 0|#line 4233 "gram.y" 36519| 0| { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; ;} 36520| 0| break; 36521| | 36522| 0| case 541: ------------------ | Branch (36522:3): [True: 0, False: 76.7M] ------------------ 36523| 0|#line 4234 "gram.y" 36524| 0| { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; ;} 36525| 0| break; 36526| | 36527| 0| case 542: ------------------ | Branch (36527:3): [True: 0, False: 76.7M] ------------------ 36528| 0|#line 4235 "gram.y" 36529| 0| { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; ;} 36530| 0| break; 36531| | 36532| 0| case 543: ------------------ | Branch (36532:3): [True: 0, False: 76.7M] ------------------ 36533| 0|#line 4236 "gram.y" 36534| 0| { (yyval.ival) = CREATE_TABLE_LIKE_ALL; ;} 36535| 0| break; 36536| | 36537| 130| case 544: ------------------ | Branch (36537:3): [True: 130, False: 76.7M] ------------------ 36538| 130|#line 4246 "gram.y" 36539| 130| { 36540| 130| Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); ------------------ | | 182| 130|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 36541| | 36542| 130| n->conname = (yyvsp[(2) - (3)].str); 36543| 130| n->location = (yylsp[(1) - (3)]); 36544| 130| (yyval.node) = (Node *) n; 36545| 130| ;} 36546| 130| break; 36547| | 36548| 1.01k| case 545: ------------------ | Branch (36548:3): [True: 1.01k, False: 76.7M] ------------------ 36549| 1.01k|#line 4253 "gram.y" 36550| 1.01k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36551| 1.01k| break; 36552| | 36553| 276| case 546: ------------------ | Branch (36553:3): [True: 276, False: 76.7M] ------------------ 36554| 276|#line 4258 "gram.y" 36555| 276| { 36556| 276| Constraint *n = makeNode(Constraint); ------------------ | | 161| 276|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36557| | 36558| 276| n->contype = CONSTR_CHECK; 36559| 276| n->location = (yylsp[(1) - (5)]); 36560| 276| n->raw_expr = (yyvsp[(3) - (5)].node); 36561| 276| n->cooked_expr = NULL; 36562| 276| processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", 36563| 276| NULL, NULL, &n->is_enforced, &n->skip_validation, 36564| 276| &n->is_no_inherit, yyscanner); 36565| 276| n->initially_valid = !n->skip_validation; 36566| 276| (yyval.node) = (Node *) n; 36567| 276| ;} 36568| 276| break; 36569| | 36570| 0| case 547: ------------------ | Branch (36570:3): [True: 0, False: 76.7M] ------------------ 36571| 0|#line 4272 "gram.y" 36572| 0| { 36573| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36574| | 36575| 0| n->contype = CONSTR_NOTNULL; 36576| 0| n->location = (yylsp[(1) - (4)]); 36577| 0| n->keys = list_make1(makeString((yyvsp[(3) - (4)].str))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36578| 0| processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "NOT NULL", 36579| 0| NULL, NULL, NULL, &n->skip_validation, 36580| 0| &n->is_no_inherit, yyscanner); 36581| 0| n->initially_valid = !n->skip_validation; 36582| 0| (yyval.node) = (Node *) n; 36583| 0| ;} 36584| 0| break; 36585| | 36586| 611| case 548: ------------------ | Branch (36586:3): [True: 611, False: 76.7M] ------------------ 36587| 611|#line 4286 "gram.y" 36588| 611| { 36589| 611| Constraint *n = makeNode(Constraint); ------------------ | | 161| 611|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36590| | 36591| 611| n->contype = CONSTR_UNIQUE; 36592| 611| n->location = (yylsp[(1) - (10)]); 36593| 611| n->nulls_not_distinct = !(yyvsp[(2) - (10)].boolean); 36594| 611| n->keys = (yyvsp[(4) - (10)].list); 36595| 611| n->without_overlaps = (yyvsp[(5) - (10)].boolean); 36596| 611| n->including = (yyvsp[(7) - (10)].list); 36597| 611| n->options = (yyvsp[(8) - (10)].list); 36598| 611| n->indexname = NULL; 36599| 611| n->indexspace = (yyvsp[(9) - (10)].str); 36600| 611| processCASbits((yyvsp[(10) - (10)].ival), (yylsp[(10) - (10)]), "UNIQUE", 36601| 611| &n->deferrable, &n->initdeferred, NULL, 36602| 611| NULL, NULL, yyscanner); 36603| 611| (yyval.node) = (Node *) n; 36604| 611| ;} 36605| 611| break; 36606| | 36607| 0| case 549: ------------------ | Branch (36607:3): [True: 0, False: 76.7M] ------------------ 36608| 0|#line 4304 "gram.y" 36609| 0| { 36610| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36611| | 36612| 0| n->contype = CONSTR_UNIQUE; 36613| 0| n->location = (yylsp[(1) - (3)]); 36614| 0| n->keys = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36615| 0| n->including = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36616| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36617| 0| n->indexname = (yyvsp[(2) - (3)].str); 36618| 0| n->indexspace = NULL; 36619| 0| processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "UNIQUE", 36620| 0| &n->deferrable, &n->initdeferred, NULL, 36621| 0| NULL, NULL, yyscanner); 36622| 0| (yyval.node) = (Node *) n; 36623| 0| ;} 36624| 0| break; 36625| | 36626| 260| case 550: ------------------ | Branch (36626:3): [True: 260, False: 76.7M] ------------------ 36627| 260|#line 4321 "gram.y" 36628| 260| { 36629| 260| Constraint *n = makeNode(Constraint); ------------------ | | 161| 260|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36630| | 36631| 260| n->contype = CONSTR_PRIMARY; 36632| 260| n->location = (yylsp[(1) - (10)]); 36633| 260| n->keys = (yyvsp[(4) - (10)].list); 36634| 260| n->without_overlaps = (yyvsp[(5) - (10)].boolean); 36635| 260| n->including = (yyvsp[(7) - (10)].list); 36636| 260| n->options = (yyvsp[(8) - (10)].list); 36637| 260| n->indexname = NULL; 36638| 260| n->indexspace = (yyvsp[(9) - (10)].str); 36639| 260| processCASbits((yyvsp[(10) - (10)].ival), (yylsp[(10) - (10)]), "PRIMARY KEY", 36640| 260| &n->deferrable, &n->initdeferred, NULL, 36641| 260| NULL, NULL, yyscanner); 36642| 260| (yyval.node) = (Node *) n; 36643| 260| ;} 36644| 260| break; 36645| | 36646| 0| case 551: ------------------ | Branch (36646:3): [True: 0, False: 76.7M] ------------------ 36647| 0|#line 4338 "gram.y" 36648| 0| { 36649| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36650| | 36651| 0| n->contype = CONSTR_PRIMARY; 36652| 0| n->location = (yylsp[(1) - (4)]); 36653| 0| n->keys = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36654| 0| n->including = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36655| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 36656| 0| n->indexname = (yyvsp[(3) - (4)].str); 36657| 0| n->indexspace = NULL; 36658| 0| processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "PRIMARY KEY", 36659| 0| &n->deferrable, &n->initdeferred, NULL, 36660| 0| NULL, NULL, yyscanner); 36661| 0| (yyval.node) = (Node *) n; 36662| 0| ;} 36663| 0| break; 36664| | 36665| 0| case 552: ------------------ | Branch (36665:3): [True: 0, False: 76.7M] ------------------ 36666| 0|#line 4356 "gram.y" 36667| 0| { 36668| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36669| | 36670| 0| n->contype = CONSTR_EXCLUSION; 36671| 0| n->location = (yylsp[(1) - (10)]); 36672| 0| n->access_method = (yyvsp[(2) - (10)].str); 36673| 0| n->exclusions = (yyvsp[(4) - (10)].list); 36674| 0| n->including = (yyvsp[(6) - (10)].list); 36675| 0| n->options = (yyvsp[(7) - (10)].list); 36676| 0| n->indexname = NULL; 36677| 0| n->indexspace = (yyvsp[(8) - (10)].str); 36678| 0| n->where_clause = (yyvsp[(9) - (10)].node); 36679| 0| processCASbits((yyvsp[(10) - (10)].ival), (yylsp[(10) - (10)]), "EXCLUDE", 36680| 0| &n->deferrable, &n->initdeferred, NULL, 36681| 0| NULL, NULL, yyscanner); 36682| 0| (yyval.node) = (Node *) n; 36683| 0| ;} 36684| 0| break; 36685| | 36686| 0| case 553: ------------------ | Branch (36686:3): [True: 0, False: 76.7M] ------------------ 36687| 0|#line 4375 "gram.y" 36688| 0| { 36689| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36690| | 36691| 0| n->contype = CONSTR_FOREIGN; 36692| 0| n->location = (yylsp[(1) - (12)]); 36693| 0| n->pktable = (yyvsp[(8) - (12)].range); 36694| 0| n->fk_attrs = (yyvsp[(4) - (12)].list); 36695| 0| if ((yyvsp[(5) - (12)].node)) ------------------ | Branch (36695:10): [True: 0, False: 0] ------------------ 36696| 0| { 36697| 0| n->fk_attrs = lappend(n->fk_attrs, (yyvsp[(5) - (12)].node)); 36698| 0| n->fk_with_period = true; 36699| 0| } 36700| 0| n->pk_attrs = linitial((yyvsp[(9) - (12)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 36701| 0| if (lsecond((yyvsp[(9) - (12)].list))) ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | | | ------------------ | | | | | Branch (172:23): [True: 0, False: 0] | | | | ------------------ | | ------------------ ------------------ 36702| 0| { 36703| 0| n->pk_attrs = lappend(n->pk_attrs, lsecond((yyvsp[(9) - (12)].list))); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 36704| 0| n->pk_with_period = true; 36705| 0| } 36706| 0| n->fk_matchtype = (yyvsp[(10) - (12)].ival); 36707| 0| n->fk_upd_action = ((yyvsp[(11) - (12)].keyactions))->updateAction->action; 36708| 0| n->fk_del_action = ((yyvsp[(11) - (12)].keyactions))->deleteAction->action; 36709| 0| n->fk_del_set_cols = ((yyvsp[(11) - (12)].keyactions))->deleteAction->cols; 36710| 0| processCASbits((yyvsp[(12) - (12)].ival), (yylsp[(12) - (12)]), "FOREIGN KEY", 36711| 0| &n->deferrable, &n->initdeferred, 36712| 0| &n->is_enforced, &n->skip_validation, NULL, 36713| 0| yyscanner); 36714| 0| n->initially_valid = !n->skip_validation; 36715| 0| (yyval.node) = (Node *) n; 36716| 0| ;} 36717| 0| break; 36718| | 36719| 0| case 554: ------------------ | Branch (36719:3): [True: 0, False: 76.7M] ------------------ 36720| 0|#line 4419 "gram.y" 36721| 0| { 36722| 0| Constraint *n = castNode(Constraint, (yyvsp[(3) - (3)].node)); ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 36723| | 36724| 0| n->conname = (yyvsp[(2) - (3)].str); 36725| 0| n->location = (yylsp[(1) - (3)]); 36726| 0| (yyval.node) = (Node *) n; 36727| 0| ;} 36728| 0| break; 36729| | 36730| 0| case 555: ------------------ | Branch (36730:3): [True: 0, False: 76.7M] ------------------ 36731| 0|#line 4426 "gram.y" 36732| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 36733| 0| break; 36734| | 36735| 0| case 556: ------------------ | Branch (36735:3): [True: 0, False: 76.7M] ------------------ 36736| 0|#line 4431 "gram.y" 36737| 0| { 36738| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36739| | 36740| 0| n->contype = CONSTR_CHECK; 36741| 0| n->location = (yylsp[(1) - (5)]); 36742| 0| n->raw_expr = (yyvsp[(3) - (5)].node); 36743| 0| n->cooked_expr = NULL; 36744| 0| processCASbits((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), "CHECK", 36745| 0| NULL, NULL, NULL, &n->skip_validation, 36746| 0| &n->is_no_inherit, yyscanner); 36747| 0| n->is_enforced = true; 36748| 0| n->initially_valid = !n->skip_validation; 36749| 0| (yyval.node) = (Node *) n; 36750| 0| ;} 36751| 0| break; 36752| | 36753| 0| case 557: ------------------ | Branch (36753:3): [True: 0, False: 76.7M] ------------------ 36754| 0|#line 4446 "gram.y" 36755| 0| { 36756| 0| Constraint *n = makeNode(Constraint); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 36757| | 36758| 0| n->contype = CONSTR_NOTNULL; 36759| 0| n->location = (yylsp[(1) - (3)]); 36760| 0| n->keys = list_make1(makeString("value")); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36761| | /* no NOT VALID, NO INHERIT support */ 36762| 0| processCASbits((yyvsp[(3) - (3)].ival), (yylsp[(3) - (3)]), "NOT NULL", 36763| 0| NULL, NULL, NULL, 36764| 0| NULL, NULL, yyscanner); 36765| 0| n->initially_valid = true; 36766| 0| (yyval.node) = (Node *) n; 36767| 0| ;} 36768| 0| break; 36769| | 36770| 0| case 558: ------------------ | Branch (36770:3): [True: 0, False: 76.7M] ------------------ 36771| 0|#line 4461 "gram.y" 36772| 0| { (yyval.boolean) = true; ;} 36773| 0| break; 36774| | 36775| 32| case 559: ------------------ | Branch (36775:3): [True: 32, False: 76.7M] ------------------ 36776| 32|#line 4462 "gram.y" 36777| 32| { (yyval.boolean) = false; ;} 36778| 32| break; 36779| | 36780| 0| case 560: ------------------ | Branch (36780:3): [True: 0, False: 76.7M] ------------------ 36781| 0|#line 4466 "gram.y" 36782| 0| { (yyval.boolean) = true; ;} 36783| 0| break; 36784| | 36785| 871| case 561: ------------------ | Branch (36785:3): [True: 871, False: 76.7M] ------------------ 36786| 871|#line 4467 "gram.y" 36787| 871| { (yyval.boolean) = false; ;} 36788| 871| break; 36789| | 36790| 1.42k| case 562: ------------------ | Branch (36790:3): [True: 1.42k, False: 76.7M] ------------------ 36791| 1.42k|#line 4471 "gram.y" 36792| 1.42k| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 36793| 1.42k| break; 36794| | 36795| 2.24M| case 563: ------------------ | Branch (36795:3): [True: 2.24M, False: 74.5M] ------------------ 36796| 2.24M|#line 4472 "gram.y" 36797| 2.24M| { (yyval.list) = NIL; ;} ------------------ | | 68| 2.24M|#define NIL ((List *) NULL) ------------------ 36798| 2.24M| break; 36799| | 36800| 2.72k| case 564: ------------------ | Branch (36800:3): [True: 2.72k, False: 76.7M] ------------------ 36801| 2.72k|#line 4476 "gram.y" 36802| 2.72k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 2.72k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2.72k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36803| 2.72k| break; 36804| | 36805| 193k| case 565: ------------------ | Branch (36805:3): [True: 193k, False: 76.5M] ------------------ 36806| 193k|#line 4477 "gram.y" 36807| 193k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 36808| 193k| break; 36809| | 36810| 0| case 566: ------------------ | Branch (36810:3): [True: 0, False: 76.7M] ------------------ 36811| 0|#line 4481 "gram.y" 36812| 0| { (yyval.node) = (yyvsp[(3) - (3)].node); ;} 36813| 0| break; 36814| | 36815| 0| case 567: ------------------ | Branch (36815:3): [True: 0, False: 76.7M] ------------------ 36816| 0|#line 4482 "gram.y" 36817| 0| { (yyval.node) = NULL; ;} 36818| 0| break; 36819| | 36820| 0| case 568: ------------------ | Branch (36820:3): [True: 0, False: 76.7M] ------------------ 36821| 0|#line 4486 "gram.y" 36822| 0| { (yyval.list) = list_make2((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].node)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36823| 0| break; 36824| | 36825| 0| case 569: ------------------ | Branch (36825:3): [True: 0, False: 76.7M] ------------------ 36826| 0|#line 4487 "gram.y" 36827| 0| { (yyval.list) = list_make2(NIL, NULL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36828| 0| break; 36829| | 36830| 196k| case 570: ------------------ | Branch (36830:3): [True: 196k, False: 76.5M] ------------------ 36831| 196k|#line 4491 "gram.y" 36832| 196k| { 36833| 196k| (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); 36834| 196k| ;} 36835| 196k| break; 36836| | 36837| 0| case 571: ------------------ | Branch (36837:3): [True: 0, False: 76.7M] ------------------ 36838| 0|#line 4496 "gram.y" 36839| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 36840| 0| break; 36841| | 36842| 871| case 572: ------------------ | Branch (36842:3): [True: 871, False: 76.7M] ------------------ 36843| 871|#line 4497 "gram.y" 36844| 871| { (yyval.list) = NIL; ;} ------------------ | | 68| 871|#define NIL ((List *) NULL) ------------------ 36845| 871| break; 36846| | 36847| 0| case 573: ------------------ | Branch (36847:3): [True: 0, False: 76.7M] ------------------ 36848| 0|#line 4501 "gram.y" 36849| 0| { 36850| 0| (yyval.ival) = FKCONSTR_MATCH_FULL; ------------------ | | 2822| 0|#define FKCONSTR_MATCH_FULL 'f' ------------------ 36851| 0| ;} 36852| 0| break; 36853| | 36854| 0| case 574: ------------------ | Branch (36854:3): [True: 0, False: 76.7M] ------------------ 36855| 0|#line 4505 "gram.y" 36856| 0| { 36857| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 36858| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 36859| 0| errmsg("MATCH PARTIAL not yet implemented"), 36860| 0| parser_errposition((yylsp[(1) - (2)])))); 36861| 0| (yyval.ival) = FKCONSTR_MATCH_PARTIAL; ------------------ | | 2823| 0|#define FKCONSTR_MATCH_PARTIAL 'p' ------------------ 36862| 0| ;} 36863| 0| break; 36864| | 36865| 0| case 575: ------------------ | Branch (36865:3): [True: 0, False: 76.7M] ------------------ 36866| 0|#line 4513 "gram.y" 36867| 0| { 36868| 0| (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ------------------ | | 2824| 0|#define FKCONSTR_MATCH_SIMPLE 's' ------------------ 36869| 0| ;} 36870| 0| break; 36871| | 36872| 845| case 576: ------------------ | Branch (36872:3): [True: 845, False: 76.7M] ------------------ 36873| 845|#line 4517 "gram.y" 36874| 845| { 36875| 845| (yyval.ival) = FKCONSTR_MATCH_SIMPLE; ------------------ | | 2824| 845|#define FKCONSTR_MATCH_SIMPLE 's' ------------------ 36876| 845| ;} 36877| 845| break; 36878| | 36879| 0| case 577: ------------------ | Branch (36879:3): [True: 0, False: 76.7M] ------------------ 36880| 0|#line 4523 "gram.y" 36881| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36882| 0| break; 36883| | 36884| 0| case 578: ------------------ | Branch (36884:3): [True: 0, False: 76.7M] ------------------ 36885| 0|#line 4525 "gram.y" 36886| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} 36887| 0| break; 36888| | 36889| 0| case 579: ------------------ | Branch (36889:3): [True: 0, False: 76.7M] ------------------ 36890| 0|#line 4529 "gram.y" 36891| 0| { 36892| 0| (yyval.list) = list_make2((yyvsp[(1) - (3)].ielem), (yyvsp[(3) - (3)].list)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36893| 0| ;} 36894| 0| break; 36895| | 36896| 0| case 580: ------------------ | Branch (36896:3): [True: 0, False: 76.7M] ------------------ 36897| 0|#line 4534 "gram.y" 36898| 0| { 36899| 0| (yyval.list) = list_make2((yyvsp[(1) - (6)].ielem), (yyvsp[(5) - (6)].list)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 36900| 0| ;} 36901| 0| break; 36902| | 36903| 256| case 581: ------------------ | Branch (36903:3): [True: 256, False: 76.7M] ------------------ 36904| 256|#line 4540 "gram.y" 36905| 256| { (yyval.node) = (yyvsp[(3) - (4)].node); ;} 36906| 256| break; 36907| | 36908| 2.18M| case 582: ------------------ | Branch (36908:3): [True: 2.18M, False: 74.5M] ------------------ 36909| 2.18M|#line 4541 "gram.y" 36910| 2.18M| { (yyval.node) = NULL; ;} 36911| 2.18M| break; 36912| | 36913| 82| case 583: ------------------ | Branch (36913:3): [True: 82, False: 76.7M] ------------------ 36914| 82|#line 4546 "gram.y" 36915| 82| { 36916| 82| KeyActions *n = palloc(sizeof(KeyActions)); 36917| | 36918| 82| n->updateAction = (yyvsp[(1) - (1)].keyaction); 36919| 82| n->deleteAction = palloc(sizeof(KeyAction)); 36920| 82| n->deleteAction->action = FKCONSTR_ACTION_NOACTION; ------------------ | | 2815| 82|#define FKCONSTR_ACTION_NOACTION 'a' ------------------ 36921| 82| n->deleteAction->cols = NIL; ------------------ | | 68| 82|#define NIL ((List *) NULL) ------------------ 36922| 82| (yyval.keyactions) = n; 36923| 82| ;} 36924| 82| break; 36925| | 36926| 260| case 584: ------------------ | Branch (36926:3): [True: 260, False: 76.7M] ------------------ 36927| 260|#line 4556 "gram.y" 36928| 260| { 36929| 260| KeyActions *n = palloc(sizeof(KeyActions)); 36930| | 36931| 260| n->updateAction = palloc(sizeof(KeyAction)); 36932| 260| n->updateAction->action = FKCONSTR_ACTION_NOACTION; ------------------ | | 2815| 260|#define FKCONSTR_ACTION_NOACTION 'a' ------------------ 36933| 260| n->updateAction->cols = NIL; ------------------ | | 68| 260|#define NIL ((List *) NULL) ------------------ 36934| 260| n->deleteAction = (yyvsp[(1) - (1)].keyaction); 36935| 260| (yyval.keyactions) = n; 36936| 260| ;} 36937| 260| break; 36938| | 36939| 414| case 585: ------------------ | Branch (36939:3): [True: 414, False: 76.7M] ------------------ 36940| 414|#line 4566 "gram.y" 36941| 414| { 36942| 414| KeyActions *n = palloc(sizeof(KeyActions)); 36943| | 36944| 414| n->updateAction = (yyvsp[(1) - (2)].keyaction); 36945| 414| n->deleteAction = (yyvsp[(2) - (2)].keyaction); 36946| 414| (yyval.keyactions) = n; 36947| 414| ;} 36948| 414| break; 36949| | 36950| 0| case 586: ------------------ | Branch (36950:3): [True: 0, False: 76.7M] ------------------ 36951| 0|#line 4574 "gram.y" 36952| 0| { 36953| 0| KeyActions *n = palloc(sizeof(KeyActions)); 36954| | 36955| 0| n->updateAction = (yyvsp[(2) - (2)].keyaction); 36956| 0| n->deleteAction = (yyvsp[(1) - (2)].keyaction); 36957| 0| (yyval.keyactions) = n; 36958| 0| ;} 36959| 0| break; 36960| | 36961| 88| case 587: ------------------ | Branch (36961:3): [True: 88, False: 76.7M] ------------------ 36962| 88|#line 4582 "gram.y" 36963| 88| { 36964| 88| KeyActions *n = palloc(sizeof(KeyActions)); 36965| | 36966| 88| n->updateAction = palloc(sizeof(KeyAction)); 36967| 88| n->updateAction->action = FKCONSTR_ACTION_NOACTION; ------------------ | | 2815| 88|#define FKCONSTR_ACTION_NOACTION 'a' ------------------ 36968| 88| n->updateAction->cols = NIL; ------------------ | | 68| 88|#define NIL ((List *) NULL) ------------------ 36969| 88| n->deleteAction = palloc(sizeof(KeyAction)); 36970| 88| n->deleteAction->action = FKCONSTR_ACTION_NOACTION; ------------------ | | 2815| 88|#define FKCONSTR_ACTION_NOACTION 'a' ------------------ 36971| 88| n->deleteAction->cols = NIL; ------------------ | | 68| 88|#define NIL ((List *) NULL) ------------------ 36972| 88| (yyval.keyactions) = n; 36973| 88| ;} 36974| 88| break; 36975| | 36976| 497| case 588: ------------------ | Branch (36976:3): [True: 497, False: 76.7M] ------------------ 36977| 497|#line 4596 "gram.y" 36978| 497| { 36979| 497| if (((yyvsp[(3) - (3)].keyaction))->cols) ------------------ | Branch (36979:10): [True: 0, False: 497] ------------------ 36980| 497| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | ------------------ | | | | | Branch (147:4): [True: 0, False: 0] | | | | ------------------ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 36981| 497| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 36982| 497| errmsg("a column list with %s is only supported for ON DELETE actions", 36983| 497| ((yyvsp[(3) - (3)].keyaction))->action == FKCONSTR_ACTION_SETNULL ? "SET NULL" : "SET DEFAULT"), 36984| 497| parser_errposition((yylsp[(1) - (3)])))); 36985| 497| (yyval.keyaction) = (yyvsp[(3) - (3)].keyaction); 36986| 497| ;} 36987| 0| break; 36988| | 36989| 674| case 589: ------------------ | Branch (36989:3): [True: 674, False: 76.7M] ------------------ 36990| 674|#line 4608 "gram.y" 36991| 674| { 36992| 674| (yyval.keyaction) = (yyvsp[(3) - (3)].keyaction); 36993| 674| ;} 36994| 674| break; 36995| | 36996| 0| case 590: ------------------ | Branch (36996:3): [True: 0, False: 76.7M] ------------------ 36997| 0|#line 4615 "gram.y" 36998| 0| { 36999| 0| KeyAction *n = palloc(sizeof(KeyAction)); 37000| | 37001| 0| n->action = FKCONSTR_ACTION_NOACTION; ------------------ | | 2815| 0|#define FKCONSTR_ACTION_NOACTION 'a' ------------------ 37002| 0| n->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37003| 0| (yyval.keyaction) = n; 37004| 0| ;} 37005| 0| break; 37006| | 37007| 0| case 591: ------------------ | Branch (37007:3): [True: 0, False: 76.7M] ------------------ 37008| 0|#line 4623 "gram.y" 37009| 0| { 37010| 0| KeyAction *n = palloc(sizeof(KeyAction)); 37011| | 37012| 0| n->action = FKCONSTR_ACTION_RESTRICT; ------------------ | | 2816| 0|#define FKCONSTR_ACTION_RESTRICT 'r' ------------------ 37013| 0| n->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37014| 0| (yyval.keyaction) = n; 37015| 0| ;} 37016| 0| break; 37017| | 37018| 911| case 592: ------------------ | Branch (37018:3): [True: 911, False: 76.7M] ------------------ 37019| 911|#line 4631 "gram.y" 37020| 911| { 37021| 911| KeyAction *n = palloc(sizeof(KeyAction)); 37022| | 37023| 911| n->action = FKCONSTR_ACTION_CASCADE; ------------------ | | 2817| 911|#define FKCONSTR_ACTION_CASCADE 'c' ------------------ 37024| 911| n->cols = NIL; ------------------ | | 68| 911|#define NIL ((List *) NULL) ------------------ 37025| 911| (yyval.keyaction) = n; 37026| 911| ;} 37027| 911| break; 37028| | 37029| 0| case 593: ------------------ | Branch (37029:3): [True: 0, False: 76.7M] ------------------ 37030| 0|#line 4639 "gram.y" 37031| 0| { 37032| 0| KeyAction *n = palloc(sizeof(KeyAction)); 37033| | 37034| 0| n->action = FKCONSTR_ACTION_SETNULL; ------------------ | | 2818| 0|#define FKCONSTR_ACTION_SETNULL 'n' ------------------ 37035| 0| n->cols = (yyvsp[(3) - (3)].list); 37036| 0| (yyval.keyaction) = n; 37037| 0| ;} 37038| 0| break; 37039| | 37040| 260| case 594: ------------------ | Branch (37040:3): [True: 260, False: 76.7M] ------------------ 37041| 260|#line 4647 "gram.y" 37042| 260| { 37043| 260| KeyAction *n = palloc(sizeof(KeyAction)); 37044| | 37045| 260| n->action = FKCONSTR_ACTION_SETDEFAULT; ------------------ | | 2819| 260|#define FKCONSTR_ACTION_SETDEFAULT 'd' ------------------ 37046| 260| n->cols = (yyvsp[(3) - (3)].list); 37047| 260| (yyval.keyaction) = n; 37048| 260| ;} 37049| 260| break; 37050| | 37051| 0| case 595: ------------------ | Branch (37051:3): [True: 0, False: 76.7M] ------------------ 37052| 0|#line 4656 "gram.y" 37053| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 37054| 0| break; 37055| | 37056| 961| case 596: ------------------ | Branch (37056:3): [True: 961, False: 76.7M] ------------------ 37057| 961|#line 4657 "gram.y" 37058| 961| { (yyval.list) = NIL; ;} ------------------ | | 68| 961|#define NIL ((List *) NULL) ------------------ 37059| 961| break; 37060| | 37061| 0| case 597: ------------------ | Branch (37061:3): [True: 0, False: 76.7M] ------------------ 37062| 0|#line 4661 "gram.y" 37063| 0| { (yyval.partspec) = (yyvsp[(1) - (1)].partspec); ;} 37064| 0| break; 37065| | 37066| 984| case 598: ------------------ | Branch (37066:3): [True: 984, False: 76.7M] ------------------ 37067| 984|#line 4662 "gram.y" 37068| 984| { (yyval.partspec) = NULL; ;} 37069| 984| break; 37070| | 37071| 0| case 599: ------------------ | Branch (37071:3): [True: 0, False: 76.7M] ------------------ 37072| 0|#line 4666 "gram.y" 37073| 0| { 37074| 0| PartitionSpec *n = makeNode(PartitionSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37075| | 37076| 0| n->strategy = parsePartitionStrategy((yyvsp[(3) - (6)].str), (yylsp[(3) - (6)]), yyscanner); 37077| 0| n->partParams = (yyvsp[(5) - (6)].list); 37078| 0| n->location = (yylsp[(1) - (6)]); 37079| | 37080| 0| (yyval.partspec) = n; 37081| 0| ;} 37082| 0| break; 37083| | 37084| 0| case 600: ------------------ | Branch (37084:3): [True: 0, False: 76.7M] ------------------ 37085| 0|#line 4677 "gram.y" 37086| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].partelem)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37087| 0| break; 37088| | 37089| 0| case 601: ------------------ | Branch (37089:3): [True: 0, False: 76.7M] ------------------ 37090| 0|#line 4678 "gram.y" 37091| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].partelem)); ;} 37092| 0| break; 37093| | 37094| 0| case 602: ------------------ | Branch (37094:3): [True: 0, False: 76.7M] ------------------ 37095| 0|#line 4682 "gram.y" 37096| 0| { 37097| 0| PartitionElem *n = makeNode(PartitionElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37098| | 37099| 0| n->name = (yyvsp[(1) - (3)].str); 37100| 0| n->expr = NULL; 37101| 0| n->collation = (yyvsp[(2) - (3)].list); 37102| 0| n->opclass = (yyvsp[(3) - (3)].list); 37103| 0| n->location = (yylsp[(1) - (3)]); 37104| 0| (yyval.partelem) = n; 37105| 0| ;} 37106| 0| break; 37107| | 37108| 0| case 603: ------------------ | Branch (37108:3): [True: 0, False: 76.7M] ------------------ 37109| 0|#line 4693 "gram.y" 37110| 0| { 37111| 0| PartitionElem *n = makeNode(PartitionElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37112| | 37113| 0| n->name = NULL; 37114| 0| n->expr = (yyvsp[(1) - (3)].node); 37115| 0| n->collation = (yyvsp[(2) - (3)].list); 37116| 0| n->opclass = (yyvsp[(3) - (3)].list); 37117| 0| n->location = (yylsp[(1) - (3)]); 37118| 0| (yyval.partelem) = n; 37119| 0| ;} 37120| 0| break; 37121| | 37122| 0| case 604: ------------------ | Branch (37122:3): [True: 0, False: 76.7M] ------------------ 37123| 0|#line 4704 "gram.y" 37124| 0| { 37125| 0| PartitionElem *n = makeNode(PartitionElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37126| | 37127| 0| n->name = NULL; 37128| 0| n->expr = (yyvsp[(2) - (5)].node); 37129| 0| n->collation = (yyvsp[(4) - (5)].list); 37130| 0| n->opclass = (yyvsp[(5) - (5)].list); 37131| 0| n->location = (yylsp[(1) - (5)]); 37132| 0| (yyval.partelem) = n; 37133| 0| ;} 37134| 0| break; 37135| | 37136| 12| case 605: ------------------ | Branch (37136:3): [True: 12, False: 76.7M] ------------------ 37137| 12|#line 4717 "gram.y" 37138| 12| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 37139| 12| break; 37140| | 37141| 1.41k| case 606: ------------------ | Branch (37141:3): [True: 1.41k, False: 76.7M] ------------------ 37142| 1.41k|#line 4718 "gram.y" 37143| 1.41k| { (yyval.str) = NULL; ;} 37144| 1.41k| break; 37145| | 37146| 0| case 607: ------------------ | Branch (37146:3): [True: 0, False: 76.7M] ------------------ 37147| 0|#line 4723 "gram.y" 37148| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 37149| 0| break; 37150| | 37151| 0| case 608: ------------------ | Branch (37151:3): [True: 0, False: 76.7M] ------------------ 37152| 0|#line 4724 "gram.y" 37153| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37154| 0| break; 37155| | 37156| 1.43k| case 609: ------------------ | Branch (37156:3): [True: 1.43k, False: 76.7M] ------------------ 37157| 1.43k|#line 4725 "gram.y" 37158| 1.43k| { (yyval.list) = NIL; ;} ------------------ | | 68| 1.43k|#define NIL ((List *) NULL) ------------------ 37159| 1.43k| break; 37160| | 37161| 0| case 610: ------------------ | Branch (37161:3): [True: 0, False: 76.7M] ------------------ 37162| 0|#line 4728 "gram.y" 37163| 0| { (yyval.oncommit) = ONCOMMIT_DROP; ;} 37164| 0| break; 37165| | 37166| 0| case 611: ------------------ | Branch (37166:3): [True: 0, False: 76.7M] ------------------ 37167| 0|#line 4729 "gram.y" 37168| 0| { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; ;} 37169| 0| break; 37170| | 37171| 0| case 612: ------------------ | Branch (37171:3): [True: 0, False: 76.7M] ------------------ 37172| 0|#line 4730 "gram.y" 37173| 0| { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; ;} 37174| 0| break; 37175| | 37176| 1.43k| case 613: ------------------ | Branch (37176:3): [True: 1.43k, False: 76.7M] ------------------ 37177| 1.43k|#line 4731 "gram.y" 37178| 1.43k| { (yyval.oncommit) = ONCOMMIT_NOOP; ;} 37179| 1.43k| break; 37180| | 37181| 0| case 614: ------------------ | Branch (37181:3): [True: 0, False: 76.7M] ------------------ 37182| 0|#line 4734 "gram.y" 37183| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 37184| 0| break; 37185| | 37186| 1.58k| case 615: ------------------ | Branch (37186:3): [True: 1.58k, False: 76.7M] ------------------ 37187| 1.58k|#line 4735 "gram.y" 37188| 1.58k| { (yyval.str) = NULL; ;} 37189| 1.58k| break; 37190| | 37191| 0| case 616: ------------------ | Branch (37191:3): [True: 0, False: 76.7M] ------------------ 37192| 0|#line 4738 "gram.y" 37193| 0| { (yyval.str) = (yyvsp[(4) - (4)].str); ;} 37194| 0| break; 37195| | 37196| 871| case 617: ------------------ | Branch (37196:3): [True: 871, False: 76.7M] ------------------ 37197| 871|#line 4739 "gram.y" 37198| 871| { (yyval.str) = NULL; ;} 37199| 871| break; 37200| | 37201| 0| case 618: ------------------ | Branch (37201:3): [True: 0, False: 76.7M] ------------------ 37202| 0|#line 4742 "gram.y" 37203| 0| { (yyval.str) = (yyvsp[(3) - (3)].str); ;} 37204| 0| break; 37205| | 37206| 0| case 619: ------------------ | Branch (37206:3): [True: 0, False: 76.7M] ------------------ 37207| 0|#line 4764 "gram.y" 37208| 0| { 37209| 0| CreateStatsStmt *n = makeNode(CreateStatsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37210| | 37211| 0| n->defnames = (yyvsp[(3) - (8)].list); 37212| 0| n->stat_types = (yyvsp[(4) - (8)].list); 37213| 0| n->exprs = (yyvsp[(6) - (8)].list); 37214| 0| n->relations = (yyvsp[(8) - (8)].list); 37215| 0| n->stxcomment = NULL; 37216| 0| n->if_not_exists = false; 37217| 0| (yyval.node) = (Node *) n; 37218| 0| ;} 37219| 0| break; 37220| | 37221| 0| case 620: ------------------ | Branch (37221:3): [True: 0, False: 76.7M] ------------------ 37222| 0|#line 4777 "gram.y" 37223| 0| { 37224| 0| CreateStatsStmt *n = makeNode(CreateStatsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37225| | 37226| 0| n->defnames = (yyvsp[(6) - (11)].list); 37227| 0| n->stat_types = (yyvsp[(7) - (11)].list); 37228| 0| n->exprs = (yyvsp[(9) - (11)].list); 37229| 0| n->relations = (yyvsp[(11) - (11)].list); 37230| 0| n->stxcomment = NULL; 37231| 0| n->if_not_exists = true; 37232| 0| (yyval.node) = (Node *) n; 37233| 0| ;} 37234| 0| break; 37235| | 37236| 0| case 621: ------------------ | Branch (37236:3): [True: 0, False: 76.7M] ------------------ 37237| 0|#line 4797 "gram.y" 37238| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].selem)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37239| 0| break; 37240| | 37241| 0| case 622: ------------------ | Branch (37241:3): [True: 0, False: 76.7M] ------------------ 37242| 0|#line 4798 "gram.y" 37243| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].selem)); ;} 37244| 0| break; 37245| | 37246| 0| case 623: ------------------ | Branch (37246:3): [True: 0, False: 76.7M] ------------------ 37247| 0|#line 4802 "gram.y" 37248| 0| { 37249| 0| (yyval.selem) = makeNode(StatsElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37250| 0| (yyval.selem)->name = (yyvsp[(1) - (1)].str); 37251| 0| (yyval.selem)->expr = NULL; 37252| 0| ;} 37253| 0| break; 37254| | 37255| 0| case 624: ------------------ | Branch (37255:3): [True: 0, False: 76.7M] ------------------ 37256| 0|#line 4808 "gram.y" 37257| 0| { 37258| 0| (yyval.selem) = makeNode(StatsElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37259| 0| (yyval.selem)->name = NULL; 37260| 0| (yyval.selem)->expr = (yyvsp[(1) - (1)].node); 37261| 0| ;} 37262| 0| break; 37263| | 37264| 0| case 625: ------------------ | Branch (37264:3): [True: 0, False: 76.7M] ------------------ 37265| 0|#line 4814 "gram.y" 37266| 0| { 37267| 0| (yyval.selem) = makeNode(StatsElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37268| 0| (yyval.selem)->name = NULL; 37269| 0| (yyval.selem)->expr = (yyvsp[(2) - (3)].node); 37270| 0| ;} 37271| 0| break; 37272| | 37273| 0| case 626: ------------------ | Branch (37273:3): [True: 0, False: 76.7M] ------------------ 37274| 0|#line 4831 "gram.y" 37275| 0| { 37276| 0| AlterStatsStmt *n = makeNode(AlterStatsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37277| | 37278| 0| n->defnames = (yyvsp[(3) - (6)].list); 37279| 0| n->missing_ok = false; 37280| 0| n->stxstattarget = (yyvsp[(6) - (6)].node); 37281| 0| (yyval.node) = (Node *) n; 37282| 0| ;} 37283| 0| break; 37284| | 37285| 0| case 627: ------------------ | Branch (37285:3): [True: 0, False: 76.7M] ------------------ 37286| 0|#line 4840 "gram.y" 37287| 0| { 37288| 0| AlterStatsStmt *n = makeNode(AlterStatsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37289| | 37290| 0| n->defnames = (yyvsp[(5) - (8)].list); 37291| 0| n->missing_ok = true; 37292| 0| n->stxstattarget = (yyvsp[(8) - (8)].node); 37293| 0| (yyval.node) = (Node *) n; 37294| 0| ;} 37295| 0| break; 37296| | 37297| 445| case 628: ------------------ | Branch (37297:3): [True: 445, False: 76.7M] ------------------ 37298| 445|#line 4862 "gram.y" 37299| 445| { 37300| 445| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 445|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37301| | 37302| 445| ctas->query = (yyvsp[(6) - (7)].node); 37303| 445| ctas->into = (yyvsp[(4) - (7)].into); 37304| 445| ctas->objtype = OBJECT_TABLE; 37305| 445| ctas->is_select_into = false; 37306| 445| ctas->if_not_exists = false; 37307| | /* cram additional flags into the IntoClause */ 37308| 445| (yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival); 37309| 445| (yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean)); 37310| 445| (yyval.node) = (Node *) ctas; 37311| 445| ;} 37312| 445| break; 37313| | 37314| 0| case 629: ------------------ | Branch (37314:3): [True: 0, False: 76.7M] ------------------ 37315| 0|#line 4876 "gram.y" 37316| 0| { 37317| 0| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37318| | 37319| 0| ctas->query = (yyvsp[(9) - (10)].node); 37320| 0| ctas->into = (yyvsp[(7) - (10)].into); 37321| 0| ctas->objtype = OBJECT_TABLE; 37322| 0| ctas->is_select_into = false; 37323| 0| ctas->if_not_exists = true; 37324| | /* cram additional flags into the IntoClause */ 37325| 0| (yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival); 37326| 0| (yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean)); 37327| 0| (yyval.node) = (Node *) ctas; 37328| 0| ;} 37329| 0| break; 37330| | 37331| 446| case 630: ------------------ | Branch (37331:3): [True: 446, False: 76.7M] ------------------ 37332| 446|#line 4894 "gram.y" 37333| 446| { 37334| 446| (yyval.into) = makeNode(IntoClause); ------------------ | | 161| 446|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37335| 446| (yyval.into)->rel = (yyvsp[(1) - (6)].range); 37336| 446| (yyval.into)->colNames = (yyvsp[(2) - (6)].list); 37337| 446| (yyval.into)->accessMethod = (yyvsp[(3) - (6)].str); 37338| 446| (yyval.into)->options = (yyvsp[(4) - (6)].list); 37339| 446| (yyval.into)->onCommit = (yyvsp[(5) - (6)].oncommit); 37340| 446| (yyval.into)->tableSpaceName = (yyvsp[(6) - (6)].str); 37341| 446| (yyval.into)->viewQuery = NULL; 37342| 446| (yyval.into)->skipData = false; /* might get changed later */ 37343| 446| ;} 37344| 446| break; 37345| | 37346| 0| case 631: ------------------ | Branch (37346:3): [True: 0, False: 76.7M] ------------------ 37347| 0|#line 4908 "gram.y" 37348| 0| { (yyval.boolean) = true; ;} 37349| 0| break; 37350| | 37351| 0| case 632: ------------------ | Branch (37351:3): [True: 0, False: 76.7M] ------------------ 37352| 0|#line 4909 "gram.y" 37353| 0| { (yyval.boolean) = false; ;} 37354| 0| break; 37355| | 37356| 445| case 633: ------------------ | Branch (37356:3): [True: 445, False: 76.7M] ------------------ 37357| 445|#line 4910 "gram.y" 37358| 445| { (yyval.boolean) = true; ;} 37359| 445| break; 37360| | 37361| 0| case 634: ------------------ | Branch (37361:3): [True: 0, False: 76.7M] ------------------ 37362| 0|#line 4923 "gram.y" 37363| 0| { 37364| 0| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37365| | 37366| 0| ctas->query = (yyvsp[(7) - (8)].node); 37367| 0| ctas->into = (yyvsp[(5) - (8)].into); 37368| 0| ctas->objtype = OBJECT_MATVIEW; 37369| 0| ctas->is_select_into = false; 37370| 0| ctas->if_not_exists = false; 37371| | /* cram additional flags into the IntoClause */ 37372| 0| (yyvsp[(5) - (8)].into)->rel->relpersistence = (yyvsp[(2) - (8)].ival); 37373| 0| (yyvsp[(5) - (8)].into)->skipData = !((yyvsp[(8) - (8)].boolean)); 37374| 0| (yyval.node) = (Node *) ctas; 37375| 0| ;} 37376| 0| break; 37377| | 37378| 0| case 635: ------------------ | Branch (37378:3): [True: 0, False: 76.7M] ------------------ 37379| 0|#line 4937 "gram.y" 37380| 0| { 37381| 0| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37382| | 37383| 0| ctas->query = (yyvsp[(10) - (11)].node); 37384| 0| ctas->into = (yyvsp[(8) - (11)].into); 37385| 0| ctas->objtype = OBJECT_MATVIEW; 37386| 0| ctas->is_select_into = false; 37387| 0| ctas->if_not_exists = true; 37388| | /* cram additional flags into the IntoClause */ 37389| 0| (yyvsp[(8) - (11)].into)->rel->relpersistence = (yyvsp[(2) - (11)].ival); 37390| 0| (yyvsp[(8) - (11)].into)->skipData = !((yyvsp[(11) - (11)].boolean)); 37391| 0| (yyval.node) = (Node *) ctas; 37392| 0| ;} 37393| 0| break; 37394| | 37395| 0| case 636: ------------------ | Branch (37395:3): [True: 0, False: 76.7M] ------------------ 37396| 0|#line 4954 "gram.y" 37397| 0| { 37398| 0| (yyval.into) = makeNode(IntoClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37399| 0| (yyval.into)->rel = (yyvsp[(1) - (5)].range); 37400| 0| (yyval.into)->colNames = (yyvsp[(2) - (5)].list); 37401| 0| (yyval.into)->accessMethod = (yyvsp[(3) - (5)].str); 37402| 0| (yyval.into)->options = (yyvsp[(4) - (5)].list); 37403| 0| (yyval.into)->onCommit = ONCOMMIT_NOOP; 37404| 0| (yyval.into)->tableSpaceName = (yyvsp[(5) - (5)].str); 37405| 0| (yyval.into)->viewQuery = NULL; /* filled at analysis time */ 37406| 0| (yyval.into)->skipData = false; /* might get changed later */ 37407| 0| ;} 37408| 0| break; 37409| | 37410| 0| case 637: ------------------ | Branch (37410:3): [True: 0, False: 76.7M] ------------------ 37411| 0|#line 4967 "gram.y" 37412| 0| { (yyval.ival) = RELPERSISTENCE_UNLOGGED; ;} ------------------ | | 81| 0|#define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */ ------------------ 37413| 0| break; 37414| | 37415| 0| case 638: ------------------ | Branch (37415:3): [True: 0, False: 76.7M] ------------------ 37416| 0|#line 4968 "gram.y" 37417| 0| { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;} ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 37418| 0| break; 37419| | 37420| 0| case 639: ------------------ | Branch (37420:3): [True: 0, False: 76.7M] ------------------ 37421| 0|#line 4981 "gram.y" 37422| 0| { 37423| 0| RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37424| | 37425| 0| n->concurrent = (yyvsp[(4) - (6)].boolean); 37426| 0| n->relation = (yyvsp[(5) - (6)].range); 37427| 0| n->skipData = !((yyvsp[(6) - (6)].boolean)); 37428| 0| (yyval.node) = (Node *) n; 37429| 0| ;} 37430| 0| break; 37431| | 37432| 0| case 640: ------------------ | Branch (37432:3): [True: 0, False: 76.7M] ------------------ 37433| 0|#line 5002 "gram.y" 37434| 0| { 37435| 0| CreateSeqStmt *n = makeNode(CreateSeqStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37436| | 37437| 0| (yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival); 37438| 0| n->sequence = (yyvsp[(4) - (5)].range); 37439| 0| n->options = (yyvsp[(5) - (5)].list); 37440| 0| n->ownerId = InvalidOid; ------------------ | | 37| 0|#define InvalidOid ((Oid) 0) ------------------ 37441| 0| n->if_not_exists = false; 37442| 0| (yyval.node) = (Node *) n; 37443| 0| ;} 37444| 0| break; 37445| | 37446| 0| case 641: ------------------ | Branch (37446:3): [True: 0, False: 76.7M] ------------------ 37447| 0|#line 5013 "gram.y" 37448| 0| { 37449| 0| CreateSeqStmt *n = makeNode(CreateSeqStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37450| | 37451| 0| (yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival); 37452| 0| n->sequence = (yyvsp[(7) - (8)].range); 37453| 0| n->options = (yyvsp[(8) - (8)].list); 37454| 0| n->ownerId = InvalidOid; ------------------ | | 37| 0|#define InvalidOid ((Oid) 0) ------------------ 37455| 0| n->if_not_exists = true; 37456| 0| (yyval.node) = (Node *) n; 37457| 0| ;} 37458| 0| break; 37459| | 37460| 0| case 642: ------------------ | Branch (37460:3): [True: 0, False: 76.7M] ------------------ 37461| 0|#line 5027 "gram.y" 37462| 0| { 37463| 0| AlterSeqStmt *n = makeNode(AlterSeqStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37464| | 37465| 0| n->sequence = (yyvsp[(3) - (4)].range); 37466| 0| n->options = (yyvsp[(4) - (4)].list); 37467| 0| n->missing_ok = false; 37468| 0| (yyval.node) = (Node *) n; 37469| 0| ;} 37470| 0| break; 37471| | 37472| 0| case 643: ------------------ | Branch (37472:3): [True: 0, False: 76.7M] ------------------ 37473| 0|#line 5036 "gram.y" 37474| 0| { 37475| 0| AlterSeqStmt *n = makeNode(AlterSeqStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37476| | 37477| 0| n->sequence = (yyvsp[(5) - (6)].range); 37478| 0| n->options = (yyvsp[(6) - (6)].list); 37479| 0| n->missing_ok = true; 37480| 0| (yyval.node) = (Node *) n; 37481| 0| ;} 37482| 0| break; 37483| | 37484| 0| case 644: ------------------ | Branch (37484:3): [True: 0, False: 76.7M] ------------------ 37485| 0|#line 5047 "gram.y" 37486| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 37487| 0| break; 37488| | 37489| 0| case 645: ------------------ | Branch (37489:3): [True: 0, False: 76.7M] ------------------ 37490| 0|#line 5048 "gram.y" 37491| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37492| 0| break; 37493| | 37494| 0| case 646: ------------------ | Branch (37494:3): [True: 0, False: 76.7M] ------------------ 37495| 0|#line 5051 "gram.y" 37496| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 37497| 0| break; 37498| | 37499| 0| case 647: ------------------ | Branch (37499:3): [True: 0, False: 76.7M] ------------------ 37500| 0|#line 5052 "gram.y" 37501| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37502| 0| break; 37503| | 37504| 0| case 648: ------------------ | Branch (37504:3): [True: 0, False: 76.7M] ------------------ 37505| 0|#line 5055 "gram.y" 37506| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37507| 0| break; 37508| | 37509| 0| case 649: ------------------ | Branch (37509:3): [True: 0, False: 76.7M] ------------------ 37510| 0|#line 5056 "gram.y" 37511| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 37512| 0| break; 37513| | 37514| 0| case 650: ------------------ | Branch (37514:3): [True: 0, False: 76.7M] ------------------ 37515| 0|#line 5060 "gram.y" 37516| 0| { 37517| 0| (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)])); 37518| 0| ;} 37519| 0| break; 37520| | 37521| 0| case 651: ------------------ | Branch (37521:3): [True: 0, False: 76.7M] ------------------ 37522| 0|#line 5064 "gram.y" 37523| 0| { 37524| 0| (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 37525| 0| ;} 37526| 0| break; 37527| | 37528| 0| case 652: ------------------ | Branch (37528:3): [True: 0, False: 76.7M] ------------------ 37529| 0|#line 5068 "gram.y" 37530| 0| { 37531| 0| (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 37532| 0| ;} 37533| 0| break; 37534| | 37535| 0| case 653: ------------------ | Branch (37535:3): [True: 0, False: 76.7M] ------------------ 37536| 0|#line 5072 "gram.y" 37537| 0| { 37538| 0| (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); 37539| 0| ;} 37540| 0| break; 37541| | 37542| 0| case 654: ------------------ | Branch (37542:3): [True: 0, False: 76.7M] ------------------ 37543| 0|#line 5076 "gram.y" 37544| 0| { 37545| 0| (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 37546| 0| ;} 37547| 0| break; 37548| | 37549| 0| case 655: ------------------ | Branch (37549:3): [True: 0, False: 76.7M] ------------------ 37550| 0|#line 5080 "gram.y" 37551| 0| { 37552| 0| (yyval.defelt) = makeDefElem("logged", NULL, (yylsp[(1) - (1)])); 37553| 0| ;} 37554| 0| break; 37555| | 37556| 0| case 656: ------------------ | Branch (37556:3): [True: 0, False: 76.7M] ------------------ 37557| 0|#line 5084 "gram.y" 37558| 0| { 37559| 0| (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 37560| 0| ;} 37561| 0| break; 37562| | 37563| 0| case 657: ------------------ | Branch (37563:3): [True: 0, False: 76.7M] ------------------ 37564| 0|#line 5088 "gram.y" 37565| 0| { 37566| 0| (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 37567| 0| ;} 37568| 0| break; 37569| | 37570| 0| case 658: ------------------ | Branch (37570:3): [True: 0, False: 76.7M] ------------------ 37571| 0|#line 5092 "gram.y" 37572| 0| { 37573| 0| (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)])); 37574| 0| ;} 37575| 0| break; 37576| | 37577| 0| case 659: ------------------ | Branch (37577:3): [True: 0, False: 76.7M] ------------------ 37578| 0|#line 5096 "gram.y" 37579| 0| { 37580| 0| (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)])); 37581| 0| ;} 37582| 0| break; 37583| | 37584| 0| case 660: ------------------ | Branch (37584:3): [True: 0, False: 76.7M] ------------------ 37585| 0|#line 5100 "gram.y" 37586| 0| { 37587| 0| (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 37588| 0| ;} 37589| 0| break; 37590| | 37591| 0| case 661: ------------------ | Branch (37591:3): [True: 0, False: 76.7M] ------------------ 37592| 0|#line 5104 "gram.y" 37593| 0| { 37594| 0| (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 37595| 0| ;} 37596| 0| break; 37597| | 37598| 0| case 662: ------------------ | Branch (37598:3): [True: 0, False: 76.7M] ------------------ 37599| 0|#line 5108 "gram.y" 37600| 0| { 37601| 0| (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 37602| 0| ;} 37603| 0| break; 37604| | 37605| 0| case 663: ------------------ | Branch (37605:3): [True: 0, False: 76.7M] ------------------ 37606| 0|#line 5112 "gram.y" 37607| 0| { 37608| 0| (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)])); 37609| 0| ;} 37610| 0| break; 37611| | 37612| 0| case 664: ------------------ | Branch (37612:3): [True: 0, False: 76.7M] ------------------ 37613| 0|#line 5116 "gram.y" 37614| 0| { 37615| 0| (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 37616| 0| ;} 37617| 0| break; 37618| | 37619| 0| case 665: ------------------ | Branch (37619:3): [True: 0, False: 76.7M] ------------------ 37620| 0|#line 5120 "gram.y" 37621| 0| { 37622| 0| (yyval.defelt) = makeDefElem("unlogged", NULL, (yylsp[(1) - (1)])); 37623| 0| ;} 37624| 0| break; 37625| | 37626| 5.13k| case 668: ------------------ | Branch (37626:3): [True: 5.13k, False: 76.7M] ------------------ 37627| 5.13k|#line 5130 "gram.y" 37628| 5.13k| { (yyval.node) = (Node *) makeFloat((yyvsp[(1) - (1)].str)); ;} 37629| 5.13k| break; 37630| | 37631| 0| case 669: ------------------ | Branch (37631:3): [True: 0, False: 76.7M] ------------------ 37632| 0|#line 5131 "gram.y" 37633| 0| { (yyval.node) = (Node *) makeFloat((yyvsp[(2) - (2)].str)); ;} 37634| 0| break; 37635| | 37636| 29| case 670: ------------------ | Branch (37636:3): [True: 29, False: 76.7M] ------------------ 37637| 29|#line 5133 "gram.y" 37638| 29| { 37639| 29| Float *f = makeFloat((yyvsp[(2) - (2)].str)); 37640| | 37641| 29| doNegateFloat(f); 37642| 29| (yyval.node) = (Node *) f; 37643| 29| ;} 37644| 29| break; 37645| | 37646| 188| case 671: ------------------ | Branch (37646:3): [True: 188, False: 76.7M] ------------------ 37647| 188|#line 5139 "gram.y" 37648| 188| { (yyval.node) = (Node *) makeInteger((yyvsp[(1) - (1)].ival)); ;} 37649| 188| break; 37650| | 37651| 0| case 672: ------------------ | Branch (37651:3): [True: 0, False: 76.7M] ------------------ 37652| 0|#line 5142 "gram.y" 37653| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37654| 0| break; 37655| | 37656| 0| case 673: ------------------ | Branch (37656:3): [True: 0, False: 76.7M] ------------------ 37657| 0|#line 5143 "gram.y" 37658| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 37659| 0| break; 37660| | 37661| 0| case 674: ------------------ | Branch (37661:3): [True: 0, False: 76.7M] ------------------ 37662| 0|#line 5156 "gram.y" 37663| 0| { 37664| | /* 37665| | * We now interpret parameterless CREATE LANGUAGE as 37666| | * CREATE EXTENSION. "OR REPLACE" is silently translated 37667| | * to "IF NOT EXISTS", which isn't quite the same, but 37668| | * seems more useful than throwing an error. We just 37669| | * ignore TRUSTED, as the previous code would have too. 37670| | */ 37671| 0| CreateExtensionStmt *n = makeNode(CreateExtensionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37672| | 37673| 0| n->if_not_exists = (yyvsp[(2) - (6)].boolean); 37674| 0| n->extname = (yyvsp[(6) - (6)].str); 37675| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37676| 0| (yyval.node) = (Node *) n; 37677| 0| ;} 37678| 0| break; 37679| | 37680| 0| case 675: ------------------ | Branch (37680:3): [True: 0, False: 76.7M] ------------------ 37681| 0|#line 5173 "gram.y" 37682| 0| { 37683| 0| CreatePLangStmt *n = makeNode(CreatePLangStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37684| | 37685| 0| n->replace = (yyvsp[(2) - (10)].boolean); 37686| 0| n->plname = (yyvsp[(6) - (10)].str); 37687| 0| n->plhandler = (yyvsp[(8) - (10)].list); 37688| 0| n->plinline = (yyvsp[(9) - (10)].list); 37689| 0| n->plvalidator = (yyvsp[(10) - (10)].list); 37690| 0| n->pltrusted = (yyvsp[(3) - (10)].boolean); 37691| 0| (yyval.node) = (Node *) n; 37692| 0| ;} 37693| 0| break; 37694| | 37695| 0| case 676: ------------------ | Branch (37695:3): [True: 0, False: 76.7M] ------------------ 37696| 0|#line 5187 "gram.y" 37697| 0| { (yyval.boolean) = true; ;} 37698| 0| break; 37699| | 37700| 3| case 677: ------------------ | Branch (37700:3): [True: 3, False: 76.7M] ------------------ 37701| 3|#line 5188 "gram.y" 37702| 3| { (yyval.boolean) = false; ;} 37703| 3| break; 37704| | 37705| 0| case 678: ------------------ | Branch (37705:3): [True: 0, False: 76.7M] ------------------ 37706| 0|#line 5196 "gram.y" 37707| 0| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37708| 0| break; 37709| | 37710| 0| case 679: ------------------ | Branch (37710:3): [True: 0, False: 76.7M] ------------------ 37711| 0|#line 5197 "gram.y" 37712| 0| { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} 37713| 0| break; 37714| | 37715| 0| case 680: ------------------ | Branch (37715:3): [True: 0, False: 76.7M] ------------------ 37716| 0|#line 5201 "gram.y" 37717| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 37718| 0| break; 37719| | 37720| 0| case 681: ------------------ | Branch (37720:3): [True: 0, False: 76.7M] ------------------ 37721| 0|#line 5202 "gram.y" 37722| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37723| 0| break; 37724| | 37725| 0| case 682: ------------------ | Branch (37725:3): [True: 0, False: 76.7M] ------------------ 37726| 0|#line 5206 "gram.y" 37727| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 37728| 0| break; 37729| | 37730| 0| case 683: ------------------ | Branch (37730:3): [True: 0, False: 76.7M] ------------------ 37731| 0|#line 5207 "gram.y" 37732| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37733| 0| break; 37734| | 37735| 0| case 684: ------------------ | Branch (37735:3): [True: 0, False: 76.7M] ------------------ 37736| 0|#line 5211 "gram.y" 37737| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 37738| 0| break; 37739| | 37740| 0| case 685: ------------------ | Branch (37740:3): [True: 0, False: 76.7M] ------------------ 37741| 0|#line 5212 "gram.y" 37742| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37743| 0| break; 37744| | 37745| 0| case 688: ------------------ | Branch (37745:3): [True: 0, False: 76.7M] ------------------ 37746| 0|#line 5228 "gram.y" 37747| 0| { 37748| 0| CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37749| | 37750| 0| n->tablespacename = (yyvsp[(3) - (7)].str); 37751| 0| n->owner = (yyvsp[(4) - (7)].rolespec); 37752| 0| n->location = (yyvsp[(6) - (7)].str); 37753| 0| n->options = (yyvsp[(7) - (7)].list); 37754| 0| (yyval.node) = (Node *) n; 37755| 0| ;} 37756| 0| break; 37757| | 37758| 0| case 689: ------------------ | Branch (37758:3): [True: 0, False: 76.7M] ------------------ 37759| 0|#line 5239 "gram.y" 37760| 0| { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} 37761| 0| break; 37762| | 37763| 0| case 690: ------------------ | Branch (37763:3): [True: 0, False: 76.7M] ------------------ 37764| 0|#line 5240 "gram.y" 37765| 0| { (yyval.rolespec) = NULL; ;} 37766| 0| break; 37767| | 37768| 0| case 691: ------------------ | Branch (37768:3): [True: 0, False: 76.7M] ------------------ 37769| 0|#line 5254 "gram.y" 37770| 0| { 37771| 0| DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37772| | 37773| 0| n->tablespacename = (yyvsp[(3) - (3)].str); 37774| 0| n->missing_ok = false; 37775| 0| (yyval.node) = (Node *) n; 37776| 0| ;} 37777| 0| break; 37778| | 37779| 0| case 692: ------------------ | Branch (37779:3): [True: 0, False: 76.7M] ------------------ 37780| 0|#line 5262 "gram.y" 37781| 0| { 37782| 0| DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37783| | 37784| 0| n->tablespacename = (yyvsp[(5) - (5)].str); 37785| 0| n->missing_ok = true; 37786| 0| (yyval.node) = (Node *) n; 37787| 0| ;} 37788| 0| break; 37789| | 37790| 0| case 693: ------------------ | Branch (37790:3): [True: 0, False: 76.7M] ------------------ 37791| 0|#line 5280 "gram.y" 37792| 0| { 37793| 0| CreateExtensionStmt *n = makeNode(CreateExtensionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37794| | 37795| 0| n->extname = (yyvsp[(3) - (5)].str); 37796| 0| n->if_not_exists = false; 37797| 0| n->options = (yyvsp[(5) - (5)].list); 37798| 0| (yyval.node) = (Node *) n; 37799| 0| ;} 37800| 0| break; 37801| | 37802| 0| case 694: ------------------ | Branch (37802:3): [True: 0, False: 76.7M] ------------------ 37803| 0|#line 5289 "gram.y" 37804| 0| { 37805| 0| CreateExtensionStmt *n = makeNode(CreateExtensionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37806| | 37807| 0| n->extname = (yyvsp[(6) - (8)].str); 37808| 0| n->if_not_exists = true; 37809| 0| n->options = (yyvsp[(8) - (8)].list); 37810| 0| (yyval.node) = (Node *) n; 37811| 0| ;} 37812| 0| break; 37813| | 37814| 0| case 695: ------------------ | Branch (37814:3): [True: 0, False: 76.7M] ------------------ 37815| 0|#line 5301 "gram.y" 37816| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 37817| 0| break; 37818| | 37819| 0| case 696: ------------------ | Branch (37819:3): [True: 0, False: 76.7M] ------------------ 37820| 0|#line 5303 "gram.y" 37821| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37822| 0| break; 37823| | 37824| 0| case 697: ------------------ | Branch (37824:3): [True: 0, False: 76.7M] ------------------ 37825| 0|#line 5308 "gram.y" 37826| 0| { 37827| 0| (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 37828| 0| ;} 37829| 0| break; 37830| | 37831| 0| case 698: ------------------ | Branch (37831:3): [True: 0, False: 76.7M] ------------------ 37832| 0|#line 5312 "gram.y" 37833| 0| { 37834| 0| (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 37835| 0| ;} 37836| 0| break; 37837| | 37838| 0| case 699: ------------------ | Branch (37838:3): [True: 0, False: 76.7M] ------------------ 37839| 0|#line 5316 "gram.y" 37840| 0| { 37841| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 37842| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 37843| 0| errmsg("CREATE EXTENSION ... FROM is no longer supported"), 37844| 0| parser_errposition((yylsp[(1) - (2)])))); 37845| 0| ;} 37846| 0| break; 37847| | 37848| 0| case 700: ------------------ | Branch (37848:3): [True: 0, False: 76.7M] ------------------ 37849| 0|#line 5323 "gram.y" 37850| 0| { 37851| 0| (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 37852| 0| ;} 37853| 0| break; 37854| | 37855| 0| case 701: ------------------ | Branch (37855:3): [True: 0, False: 76.7M] ------------------ 37856| 0|#line 5335 "gram.y" 37857| 0| { 37858| 0| AlterExtensionStmt *n = makeNode(AlterExtensionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37859| | 37860| 0| n->extname = (yyvsp[(3) - (5)].str); 37861| 0| n->options = (yyvsp[(5) - (5)].list); 37862| 0| (yyval.node) = (Node *) n; 37863| 0| ;} 37864| 0| break; 37865| | 37866| 0| case 702: ------------------ | Branch (37866:3): [True: 0, False: 76.7M] ------------------ 37867| 0|#line 5346 "gram.y" 37868| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 37869| 0| break; 37870| | 37871| 0| case 703: ------------------ | Branch (37871:3): [True: 0, False: 76.7M] ------------------ 37872| 0|#line 5348 "gram.y" 37873| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 37874| 0| break; 37875| | 37876| 0| case 704: ------------------ | Branch (37876:3): [True: 0, False: 76.7M] ------------------ 37877| 0|#line 5353 "gram.y" 37878| 0| { 37879| 0| (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 37880| 0| ;} 37881| 0| break; 37882| | 37883| 0| case 705: ------------------ | Branch (37883:3): [True: 0, False: 76.7M] ------------------ 37884| 0|#line 5366 "gram.y" 37885| 0| { 37886| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37887| | 37888| 0| n->extname = (yyvsp[(3) - (6)].str); 37889| 0| n->action = (yyvsp[(4) - (6)].ival); 37890| 0| n->objtype = (yyvsp[(5) - (6)].objtype); 37891| 0| n->object = (Node *) makeString((yyvsp[(6) - (6)].str)); 37892| 0| (yyval.node) = (Node *) n; 37893| 0| ;} 37894| 0| break; 37895| | 37896| 0| case 706: ------------------ | Branch (37896:3): [True: 0, False: 76.7M] ------------------ 37897| 0|#line 5376 "gram.y" 37898| 0| { 37899| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37900| | 37901| 0| n->extname = (yyvsp[(3) - (6)].str); 37902| 0| n->action = (yyvsp[(4) - (6)].ival); 37903| 0| n->objtype = (yyvsp[(5) - (6)].objtype); 37904| 0| n->object = (Node *) (yyvsp[(6) - (6)].list); 37905| 0| (yyval.node) = (Node *) n; 37906| 0| ;} 37907| 0| break; 37908| | 37909| 0| case 707: ------------------ | Branch (37909:3): [True: 0, False: 76.7M] ------------------ 37910| 0|#line 5386 "gram.y" 37911| 0| { 37912| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37913| | 37914| 0| n->extname = (yyvsp[(3) - (6)].str); 37915| 0| n->action = (yyvsp[(4) - (6)].ival); 37916| 0| n->objtype = OBJECT_AGGREGATE; 37917| 0| n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); 37918| 0| (yyval.node) = (Node *) n; 37919| 0| ;} 37920| 0| break; 37921| | 37922| 0| case 708: ------------------ | Branch (37922:3): [True: 0, False: 76.7M] ------------------ 37923| 0|#line 5396 "gram.y" 37924| 0| { 37925| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37926| | 37927| 0| n->extname = (yyvsp[(3) - (10)].str); 37928| 0| n->action = (yyvsp[(4) - (10)].ival); 37929| 0| n->objtype = OBJECT_CAST; 37930| 0| n->object = (Node *) list_make2((yyvsp[(7) - (10)].typnam), (yyvsp[(9) - (10)].typnam)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 37931| 0| (yyval.node) = (Node *) n; 37932| 0| ;} 37933| 0| break; 37934| | 37935| 0| case 709: ------------------ | Branch (37935:3): [True: 0, False: 76.7M] ------------------ 37936| 0|#line 5406 "gram.y" 37937| 0| { 37938| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37939| | 37940| 0| n->extname = (yyvsp[(3) - (6)].str); 37941| 0| n->action = (yyvsp[(4) - (6)].ival); 37942| 0| n->objtype = OBJECT_DOMAIN; 37943| 0| n->object = (Node *) (yyvsp[(6) - (6)].typnam); 37944| 0| (yyval.node) = (Node *) n; 37945| 0| ;} 37946| 0| break; 37947| | 37948| 0| case 710: ------------------ | Branch (37948:3): [True: 0, False: 76.7M] ------------------ 37949| 0|#line 5416 "gram.y" 37950| 0| { 37951| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37952| | 37953| 0| n->extname = (yyvsp[(3) - (6)].str); 37954| 0| n->action = (yyvsp[(4) - (6)].ival); 37955| 0| n->objtype = OBJECT_FUNCTION; 37956| 0| n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); 37957| 0| (yyval.node) = (Node *) n; 37958| 0| ;} 37959| 0| break; 37960| | 37961| 0| case 711: ------------------ | Branch (37961:3): [True: 0, False: 76.7M] ------------------ 37962| 0|#line 5426 "gram.y" 37963| 0| { 37964| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37965| | 37966| 0| n->extname = (yyvsp[(3) - (6)].str); 37967| 0| n->action = (yyvsp[(4) - (6)].ival); 37968| 0| n->objtype = OBJECT_OPERATOR; 37969| 0| n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); 37970| 0| (yyval.node) = (Node *) n; 37971| 0| ;} 37972| 0| break; 37973| | 37974| 0| case 712: ------------------ | Branch (37974:3): [True: 0, False: 76.7M] ------------------ 37975| 0|#line 5436 "gram.y" 37976| 0| { 37977| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37978| | 37979| 0| n->extname = (yyvsp[(3) - (9)].str); 37980| 0| n->action = (yyvsp[(4) - (9)].ival); 37981| 0| n->objtype = OBJECT_OPCLASS; 37982| 0| n->object = (Node *) lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); 37983| 0| (yyval.node) = (Node *) n; 37984| 0| ;} 37985| 0| break; 37986| | 37987| 0| case 713: ------------------ | Branch (37987:3): [True: 0, False: 76.7M] ------------------ 37988| 0|#line 5446 "gram.y" 37989| 0| { 37990| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 37991| | 37992| 0| n->extname = (yyvsp[(3) - (9)].str); 37993| 0| n->action = (yyvsp[(4) - (9)].ival); 37994| 0| n->objtype = OBJECT_OPFAMILY; 37995| 0| n->object = (Node *) lcons(makeString((yyvsp[(9) - (9)].str)), (yyvsp[(7) - (9)].list)); 37996| 0| (yyval.node) = (Node *) n; 37997| 0| ;} 37998| 0| break; 37999| | 38000| 0| case 714: ------------------ | Branch (38000:3): [True: 0, False: 76.7M] ------------------ 38001| 0|#line 5456 "gram.y" 38002| 0| { 38003| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38004| | 38005| 0| n->extname = (yyvsp[(3) - (6)].str); 38006| 0| n->action = (yyvsp[(4) - (6)].ival); 38007| 0| n->objtype = OBJECT_PROCEDURE; 38008| 0| n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); 38009| 0| (yyval.node) = (Node *) n; 38010| 0| ;} 38011| 0| break; 38012| | 38013| 0| case 715: ------------------ | Branch (38013:3): [True: 0, False: 76.7M] ------------------ 38014| 0|#line 5466 "gram.y" 38015| 0| { 38016| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38017| | 38018| 0| n->extname = (yyvsp[(3) - (6)].str); 38019| 0| n->action = (yyvsp[(4) - (6)].ival); 38020| 0| n->objtype = OBJECT_ROUTINE; 38021| 0| n->object = (Node *) (yyvsp[(6) - (6)].objwithargs); 38022| 0| (yyval.node) = (Node *) n; 38023| 0| ;} 38024| 0| break; 38025| | 38026| 0| case 716: ------------------ | Branch (38026:3): [True: 0, False: 76.7M] ------------------ 38027| 0|#line 5476 "gram.y" 38028| 0| { 38029| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38030| | 38031| 0| n->extname = (yyvsp[(3) - (9)].str); 38032| 0| n->action = (yyvsp[(4) - (9)].ival); 38033| 0| n->objtype = OBJECT_TRANSFORM; 38034| 0| n->object = (Node *) list_make2((yyvsp[(7) - (9)].typnam), makeString((yyvsp[(9) - (9)].str))); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38035| 0| (yyval.node) = (Node *) n; 38036| 0| ;} 38037| 0| break; 38038| | 38039| 0| case 717: ------------------ | Branch (38039:3): [True: 0, False: 76.7M] ------------------ 38040| 0|#line 5486 "gram.y" 38041| 0| { 38042| 0| AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38043| | 38044| 0| n->extname = (yyvsp[(3) - (6)].str); 38045| 0| n->action = (yyvsp[(4) - (6)].ival); 38046| 0| n->objtype = OBJECT_TYPE; 38047| 0| n->object = (Node *) (yyvsp[(6) - (6)].typnam); 38048| 0| (yyval.node) = (Node *) n; 38049| 0| ;} 38050| 0| break; 38051| | 38052| 0| case 718: ------------------ | Branch (38052:3): [True: 0, False: 76.7M] ------------------ 38053| 0|#line 5505 "gram.y" 38054| 0| { 38055| 0| CreateFdwStmt *n = makeNode(CreateFdwStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38056| | 38057| 0| n->fdwname = (yyvsp[(5) - (7)].str); 38058| 0| n->func_options = (yyvsp[(6) - (7)].list); 38059| 0| n->options = (yyvsp[(7) - (7)].list); 38060| 0| (yyval.node) = (Node *) n; 38061| 0| ;} 38062| 0| break; 38063| | 38064| 0| case 719: ------------------ | Branch (38064:3): [True: 0, False: 76.7M] ------------------ 38065| 0|#line 5516 "gram.y" 38066| 0| { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} 38067| 0| break; 38068| | 38069| 0| case 720: ------------------ | Branch (38069:3): [True: 0, False: 76.7M] ------------------ 38070| 0|#line 5517 "gram.y" 38071| 0| { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[(1) - (2)])); ;} 38072| 0| break; 38073| | 38074| 0| case 721: ------------------ | Branch (38074:3): [True: 0, False: 76.7M] ------------------ 38075| 0|#line 5518 "gram.y" 38076| 0| { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); ;} 38077| 0| break; 38078| | 38079| 0| case 722: ------------------ | Branch (38079:3): [True: 0, False: 76.7M] ------------------ 38080| 0|#line 5519 "gram.y" 38081| 0| { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[(1) - (2)])); ;} 38082| 0| break; 38083| | 38084| 0| case 723: ------------------ | Branch (38084:3): [True: 0, False: 76.7M] ------------------ 38085| 0|#line 5523 "gram.y" 38086| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38087| 0| break; 38088| | 38089| 0| case 724: ------------------ | Branch (38089:3): [True: 0, False: 76.7M] ------------------ 38090| 0|#line 5524 "gram.y" 38091| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 38092| 0| break; 38093| | 38094| 0| case 725: ------------------ | Branch (38094:3): [True: 0, False: 76.7M] ------------------ 38095| 0|#line 5528 "gram.y" 38096| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 38097| 0| break; 38098| | 38099| 0| case 726: ------------------ | Branch (38099:3): [True: 0, False: 76.7M] ------------------ 38100| 0|#line 5529 "gram.y" 38101| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38102| 0| break; 38103| | 38104| 0| case 727: ------------------ | Branch (38104:3): [True: 0, False: 76.7M] ------------------ 38105| 0|#line 5540 "gram.y" 38106| 0| { 38107| 0| AlterFdwStmt *n = makeNode(AlterFdwStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38108| | 38109| 0| n->fdwname = (yyvsp[(5) - (7)].str); 38110| 0| n->func_options = (yyvsp[(6) - (7)].list); 38111| 0| n->options = (yyvsp[(7) - (7)].list); 38112| 0| (yyval.node) = (Node *) n; 38113| 0| ;} 38114| 0| break; 38115| | 38116| 0| case 728: ------------------ | Branch (38116:3): [True: 0, False: 76.7M] ------------------ 38117| 0|#line 5549 "gram.y" 38118| 0| { 38119| 0| AlterFdwStmt *n = makeNode(AlterFdwStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38120| | 38121| 0| n->fdwname = (yyvsp[(5) - (6)].str); 38122| 0| n->func_options = (yyvsp[(6) - (6)].list); 38123| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38124| 0| (yyval.node) = (Node *) n; 38125| 0| ;} 38126| 0| break; 38127| | 38128| 0| case 729: ------------------ | Branch (38128:3): [True: 0, False: 76.7M] ------------------ 38129| 0|#line 5561 "gram.y" 38130| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 38131| 0| break; 38132| | 38133| 383| case 730: ------------------ | Branch (38133:3): [True: 383, False: 76.7M] ------------------ 38134| 383|#line 5562 "gram.y" 38135| 383| { (yyval.list) = NIL; ;} ------------------ | | 68| 383|#define NIL ((List *) NULL) ------------------ 38136| 383| break; 38137| | 38138| 0| case 731: ------------------ | Branch (38138:3): [True: 0, False: 76.7M] ------------------ 38139| 0|#line 5567 "gram.y" 38140| 0| { 38141| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38142| 0| ;} 38143| 0| break; 38144| | 38145| 0| case 732: ------------------ | Branch (38145:3): [True: 0, False: 76.7M] ------------------ 38146| 0|#line 5571 "gram.y" 38147| 0| { 38148| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); 38149| 0| ;} 38150| 0| break; 38151| | 38152| 0| case 733: ------------------ | Branch (38152:3): [True: 0, False: 76.7M] ------------------ 38153| 0|#line 5578 "gram.y" 38154| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 38155| 0| break; 38156| | 38157| 0| case 734: ------------------ | Branch (38157:3): [True: 0, False: 76.7M] ------------------ 38158| 0|#line 5583 "gram.y" 38159| 0| { 38160| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38161| 0| ;} 38162| 0| break; 38163| | 38164| 0| case 735: ------------------ | Branch (38164:3): [True: 0, False: 76.7M] ------------------ 38165| 0|#line 5587 "gram.y" 38166| 0| { 38167| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); 38168| 0| ;} 38169| 0| break; 38170| | 38171| 0| case 736: ------------------ | Branch (38171:3): [True: 0, False: 76.7M] ------------------ 38172| 0|#line 5594 "gram.y" 38173| 0| { 38174| 0| (yyval.defelt) = (yyvsp[(1) - (1)].defelt); 38175| 0| ;} 38176| 0| break; 38177| | 38178| 0| case 737: ------------------ | Branch (38178:3): [True: 0, False: 76.7M] ------------------ 38179| 0|#line 5598 "gram.y" 38180| 0| { 38181| 0| (yyval.defelt) = (yyvsp[(2) - (2)].defelt); 38182| 0| (yyval.defelt)->defaction = DEFELEM_SET; 38183| 0| ;} 38184| 0| break; 38185| | 38186| 0| case 738: ------------------ | Branch (38186:3): [True: 0, False: 76.7M] ------------------ 38187| 0|#line 5603 "gram.y" 38188| 0| { 38189| 0| (yyval.defelt) = (yyvsp[(2) - (2)].defelt); 38190| 0| (yyval.defelt)->defaction = DEFELEM_ADD; 38191| 0| ;} 38192| 0| break; 38193| | 38194| 0| case 739: ------------------ | Branch (38194:3): [True: 0, False: 76.7M] ------------------ 38195| 0|#line 5608 "gram.y" 38196| 0| { 38197| 0| (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)])); 38198| 0| ;} 38199| 0| break; 38200| | 38201| 0| case 740: ------------------ | Branch (38201:3): [True: 0, False: 76.7M] ------------------ 38202| 0|#line 5615 "gram.y" 38203| 0| { 38204| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 38205| 0| (yyval.defelt)->arg_location = (yylsp[(2) - (2)]); 38206| 0| ;} 38207| 0| break; 38208| | 38209| 0| case 741: ------------------ | Branch (38209:3): [True: 0, False: 76.7M] ------------------ 38210| 0|#line 5622 "gram.y" 38211| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 38212| 0| break; 38213| | 38214| 0| case 742: ------------------ | Branch (38214:3): [True: 0, False: 76.7M] ------------------ 38215| 0|#line 5627 "gram.y" 38216| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 38217| 0| break; 38218| | 38219| 0| case 743: ------------------ | Branch (38219:3): [True: 0, False: 76.7M] ------------------ 38220| 0|#line 5639 "gram.y" 38221| 0| { 38222| 0| CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38223| | 38224| 0| n->servername = (yyvsp[(3) - (10)].str); 38225| 0| n->servertype = (yyvsp[(4) - (10)].str); 38226| 0| n->version = (yyvsp[(5) - (10)].str); 38227| 0| n->fdwname = (yyvsp[(9) - (10)].str); 38228| 0| n->options = (yyvsp[(10) - (10)].list); 38229| 0| n->if_not_exists = false; 38230| 0| (yyval.node) = (Node *) n; 38231| 0| ;} 38232| 0| break; 38233| | 38234| 0| case 744: ------------------ | Branch (38234:3): [True: 0, False: 76.7M] ------------------ 38235| 0|#line 5652 "gram.y" 38236| 0| { 38237| 0| CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38238| | 38239| 0| n->servername = (yyvsp[(6) - (13)].str); 38240| 0| n->servertype = (yyvsp[(7) - (13)].str); 38241| 0| n->version = (yyvsp[(8) - (13)].str); 38242| 0| n->fdwname = (yyvsp[(12) - (13)].str); 38243| 0| n->options = (yyvsp[(13) - (13)].list); 38244| 0| n->if_not_exists = true; 38245| 0| (yyval.node) = (Node *) n; 38246| 0| ;} 38247| 0| break; 38248| | 38249| 0| case 745: ------------------ | Branch (38249:3): [True: 0, False: 76.7M] ------------------ 38250| 0|#line 5666 "gram.y" 38251| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 38252| 0| break; 38253| | 38254| 0| case 746: ------------------ | Branch (38254:3): [True: 0, False: 76.7M] ------------------ 38255| 0|#line 5667 "gram.y" 38256| 0| { (yyval.str) = NULL; ;} 38257| 0| break; 38258| | 38259| 0| case 747: ------------------ | Branch (38259:3): [True: 0, False: 76.7M] ------------------ 38260| 0|#line 5672 "gram.y" 38261| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 38262| 0| break; 38263| | 38264| 0| case 748: ------------------ | Branch (38264:3): [True: 0, False: 76.7M] ------------------ 38265| 0|#line 5673 "gram.y" 38266| 0| { (yyval.str) = NULL; ;} 38267| 0| break; 38268| | 38269| 0| case 749: ------------------ | Branch (38269:3): [True: 0, False: 76.7M] ------------------ 38270| 0|#line 5677 "gram.y" 38271| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 38272| 0| break; 38273| | 38274| 0| case 750: ------------------ | Branch (38274:3): [True: 0, False: 76.7M] ------------------ 38275| 0|#line 5678 "gram.y" 38276| 0| { (yyval.str) = NULL; ;} 38277| 0| break; 38278| | 38279| 0| case 751: ------------------ | Branch (38279:3): [True: 0, False: 76.7M] ------------------ 38280| 0|#line 5689 "gram.y" 38281| 0| { 38282| 0| AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38283| | 38284| 0| n->servername = (yyvsp[(3) - (5)].str); 38285| 0| n->version = (yyvsp[(4) - (5)].str); 38286| 0| n->options = (yyvsp[(5) - (5)].list); 38287| 0| n->has_version = true; 38288| 0| (yyval.node) = (Node *) n; 38289| 0| ;} 38290| 0| break; 38291| | 38292| 0| case 752: ------------------ | Branch (38292:3): [True: 0, False: 76.7M] ------------------ 38293| 0|#line 5699 "gram.y" 38294| 0| { 38295| 0| AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38296| | 38297| 0| n->servername = (yyvsp[(3) - (4)].str); 38298| 0| n->version = (yyvsp[(4) - (4)].str); 38299| 0| n->has_version = true; 38300| 0| (yyval.node) = (Node *) n; 38301| 0| ;} 38302| 0| break; 38303| | 38304| 0| case 753: ------------------ | Branch (38304:3): [True: 0, False: 76.7M] ------------------ 38305| 0|#line 5708 "gram.y" 38306| 0| { 38307| 0| AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38308| | 38309| 0| n->servername = (yyvsp[(3) - (4)].str); 38310| 0| n->options = (yyvsp[(4) - (4)].list); 38311| 0| (yyval.node) = (Node *) n; 38312| 0| ;} 38313| 0| break; 38314| | 38315| 0| case 754: ------------------ | Branch (38315:3): [True: 0, False: 76.7M] ------------------ 38316| 0|#line 5728 "gram.y" 38317| 0| { 38318| 0| CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38319| | 38320| 0| (yyvsp[(4) - (11)].range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 38321| 0| n->base.relation = (yyvsp[(4) - (11)].range); 38322| 0| n->base.tableElts = (yyvsp[(6) - (11)].list); 38323| 0| n->base.inhRelations = (yyvsp[(8) - (11)].list); 38324| 0| n->base.ofTypename = NULL; 38325| 0| n->base.constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38326| 0| n->base.options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38327| 0| n->base.oncommit = ONCOMMIT_NOOP; 38328| 0| n->base.tablespacename = NULL; 38329| 0| n->base.if_not_exists = false; 38330| | /* FDW-specific data */ 38331| 0| n->servername = (yyvsp[(10) - (11)].str); 38332| 0| n->options = (yyvsp[(11) - (11)].list); 38333| 0| (yyval.node) = (Node *) n; 38334| 0| ;} 38335| 0| break; 38336| | 38337| 0| case 755: ------------------ | Branch (38337:3): [True: 0, False: 76.7M] ------------------ 38338| 0|#line 5749 "gram.y" 38339| 0| { 38340| 0| CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38341| | 38342| 0| (yyvsp[(7) - (14)].range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 38343| 0| n->base.relation = (yyvsp[(7) - (14)].range); 38344| 0| n->base.tableElts = (yyvsp[(9) - (14)].list); 38345| 0| n->base.inhRelations = (yyvsp[(11) - (14)].list); 38346| 0| n->base.ofTypename = NULL; 38347| 0| n->base.constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38348| 0| n->base.options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38349| 0| n->base.oncommit = ONCOMMIT_NOOP; 38350| 0| n->base.tablespacename = NULL; 38351| 0| n->base.if_not_exists = true; 38352| | /* FDW-specific data */ 38353| 0| n->servername = (yyvsp[(13) - (14)].str); 38354| 0| n->options = (yyvsp[(14) - (14)].list); 38355| 0| (yyval.node) = (Node *) n; 38356| 0| ;} 38357| 0| break; 38358| | 38359| 0| case 756: ------------------ | Branch (38359:3): [True: 0, False: 76.7M] ------------------ 38360| 0|#line 5770 "gram.y" 38361| 0| { 38362| 0| CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38363| | 38364| 0| (yyvsp[(4) - (12)].range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 38365| 0| n->base.relation = (yyvsp[(4) - (12)].range); 38366| 0| n->base.inhRelations = list_make1((yyvsp[(7) - (12)].range)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38367| 0| n->base.tableElts = (yyvsp[(8) - (12)].list); 38368| 0| n->base.partbound = (yyvsp[(9) - (12)].partboundspec); 38369| 0| n->base.ofTypename = NULL; 38370| 0| n->base.constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38371| 0| n->base.options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38372| 0| n->base.oncommit = ONCOMMIT_NOOP; 38373| 0| n->base.tablespacename = NULL; 38374| 0| n->base.if_not_exists = false; 38375| | /* FDW-specific data */ 38376| 0| n->servername = (yyvsp[(11) - (12)].str); 38377| 0| n->options = (yyvsp[(12) - (12)].list); 38378| 0| (yyval.node) = (Node *) n; 38379| 0| ;} 38380| 0| break; 38381| | 38382| 0| case 757: ------------------ | Branch (38382:3): [True: 0, False: 76.7M] ------------------ 38383| 0|#line 5792 "gram.y" 38384| 0| { 38385| 0| CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38386| | 38387| 0| (yyvsp[(7) - (15)].range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 38388| 0| n->base.relation = (yyvsp[(7) - (15)].range); 38389| 0| n->base.inhRelations = list_make1((yyvsp[(10) - (15)].range)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38390| 0| n->base.tableElts = (yyvsp[(11) - (15)].list); 38391| 0| n->base.partbound = (yyvsp[(12) - (15)].partboundspec); 38392| 0| n->base.ofTypename = NULL; 38393| 0| n->base.constraints = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38394| 0| n->base.options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38395| 0| n->base.oncommit = ONCOMMIT_NOOP; 38396| 0| n->base.tablespacename = NULL; 38397| 0| n->base.if_not_exists = true; 38398| | /* FDW-specific data */ 38399| 0| n->servername = (yyvsp[(14) - (15)].str); 38400| 0| n->options = (yyvsp[(15) - (15)].list); 38401| 0| (yyval.node) = (Node *) n; 38402| 0| ;} 38403| 0| break; 38404| | 38405| 0| case 758: ------------------ | Branch (38405:3): [True: 0, False: 76.7M] ------------------ 38406| 0|#line 5825 "gram.y" 38407| 0| { 38408| 0| ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38409| | 38410| 0| n->server_name = (yyvsp[(8) - (11)].str); 38411| 0| n->remote_schema = (yyvsp[(4) - (11)].str); 38412| 0| n->local_schema = (yyvsp[(10) - (11)].str); 38413| 0| n->list_type = (yyvsp[(5) - (11)].importqual)->type; 38414| 0| n->table_list = (yyvsp[(5) - (11)].importqual)->table_names; 38415| 0| n->options = (yyvsp[(11) - (11)].list); 38416| 0| (yyval.node) = (Node *) n; 38417| 0| ;} 38418| 0| break; 38419| | 38420| 0| case 759: ------------------ | Branch (38420:3): [True: 0, False: 76.7M] ------------------ 38421| 0|#line 5839 "gram.y" 38422| 0| { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; ;} 38423| 0| break; 38424| | 38425| 0| case 760: ------------------ | Branch (38425:3): [True: 0, False: 76.7M] ------------------ 38426| 0|#line 5840 "gram.y" 38427| 0| { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; ;} 38428| 0| break; 38429| | 38430| 0| case 761: ------------------ | Branch (38430:3): [True: 0, False: 76.7M] ------------------ 38431| 0|#line 5845 "gram.y" 38432| 0| { 38433| 0| ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); 38434| | 38435| 0| n->type = (yyvsp[(1) - (4)].ival); 38436| 0| n->table_names = (yyvsp[(3) - (4)].list); 38437| 0| (yyval.importqual) = n; 38438| 0| ;} 38439| 0| break; 38440| | 38441| 0| case 762: ------------------ | Branch (38441:3): [True: 0, False: 76.7M] ------------------ 38442| 0|#line 5853 "gram.y" 38443| 0| { 38444| 0| ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual)); 38445| 0| n->type = FDW_IMPORT_SCHEMA_ALL; 38446| 0| n->table_names = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38447| 0| (yyval.importqual) = n; 38448| 0| ;} 38449| 0| break; 38450| | 38451| 0| case 763: ------------------ | Branch (38451:3): [True: 0, False: 76.7M] ------------------ 38452| 0|#line 5869 "gram.y" 38453| 0| { 38454| 0| CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38455| | 38456| 0| n->user = (yyvsp[(5) - (8)].rolespec); 38457| 0| n->servername = (yyvsp[(7) - (8)].str); 38458| 0| n->options = (yyvsp[(8) - (8)].list); 38459| 0| n->if_not_exists = false; 38460| 0| (yyval.node) = (Node *) n; 38461| 0| ;} 38462| 0| break; 38463| | 38464| 0| case 764: ------------------ | Branch (38464:3): [True: 0, False: 76.7M] ------------------ 38465| 0|#line 5879 "gram.y" 38466| 0| { 38467| 0| CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38468| | 38469| 0| n->user = (yyvsp[(8) - (11)].rolespec); 38470| 0| n->servername = (yyvsp[(10) - (11)].str); 38471| 0| n->options = (yyvsp[(11) - (11)].list); 38472| 0| n->if_not_exists = true; 38473| 0| (yyval.node) = (Node *) n; 38474| 0| ;} 38475| 0| break; 38476| | 38477| 0| case 765: ------------------ | Branch (38477:3): [True: 0, False: 76.7M] ------------------ 38478| 0|#line 5891 "gram.y" 38479| 0| { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} 38480| 0| break; 38481| | 38482| 0| case 766: ------------------ | Branch (38482:3): [True: 0, False: 76.7M] ------------------ 38483| 0|#line 5892 "gram.y" 38484| 0| { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); ;} 38485| 0| break; 38486| | 38487| 0| case 767: ------------------ | Branch (38487:3): [True: 0, False: 76.7M] ------------------ 38488| 0|#line 5905 "gram.y" 38489| 0| { 38490| 0| DropUserMappingStmt *n = makeNode(DropUserMappingStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38491| | 38492| 0| n->user = (yyvsp[(5) - (7)].rolespec); 38493| 0| n->servername = (yyvsp[(7) - (7)].str); 38494| 0| n->missing_ok = false; 38495| 0| (yyval.node) = (Node *) n; 38496| 0| ;} 38497| 0| break; 38498| | 38499| 0| case 768: ------------------ | Branch (38499:3): [True: 0, False: 76.7M] ------------------ 38500| 0|#line 5914 "gram.y" 38501| 0| { 38502| 0| DropUserMappingStmt *n = makeNode(DropUserMappingStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38503| | 38504| 0| n->user = (yyvsp[(7) - (9)].rolespec); 38505| 0| n->servername = (yyvsp[(9) - (9)].str); 38506| 0| n->missing_ok = true; 38507| 0| (yyval.node) = (Node *) n; 38508| 0| ;} 38509| 0| break; 38510| | 38511| 0| case 769: ------------------ | Branch (38511:3): [True: 0, False: 76.7M] ------------------ 38512| 0|#line 5932 "gram.y" 38513| 0| { 38514| 0| AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38515| | 38516| 0| n->user = (yyvsp[(5) - (8)].rolespec); 38517| 0| n->servername = (yyvsp[(7) - (8)].str); 38518| 0| n->options = (yyvsp[(8) - (8)].list); 38519| 0| (yyval.node) = (Node *) n; 38520| 0| ;} 38521| 0| break; 38522| | 38523| 0| case 770: ------------------ | Branch (38523:3): [True: 0, False: 76.7M] ------------------ 38524| 0|#line 5959 "gram.y" 38525| 0| { 38526| 0| CreatePolicyStmt *n = makeNode(CreatePolicyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38527| | 38528| 0| n->policy_name = (yyvsp[(3) - (10)].str); 38529| 0| n->table = (yyvsp[(5) - (10)].range); 38530| 0| n->permissive = (yyvsp[(6) - (10)].boolean); 38531| 0| n->cmd_name = (yyvsp[(7) - (10)].str); 38532| 0| n->roles = (yyvsp[(8) - (10)].list); 38533| 0| n->qual = (yyvsp[(9) - (10)].node); 38534| 0| n->with_check = (yyvsp[(10) - (10)].node); 38535| 0| (yyval.node) = (Node *) n; 38536| 0| ;} 38537| 0| break; 38538| | 38539| 0| case 771: ------------------ | Branch (38539:3): [True: 0, False: 76.7M] ------------------ 38540| 0|#line 5976 "gram.y" 38541| 0| { 38542| 0| AlterPolicyStmt *n = makeNode(AlterPolicyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38543| | 38544| 0| n->policy_name = (yyvsp[(3) - (8)].str); 38545| 0| n->table = (yyvsp[(5) - (8)].range); 38546| 0| n->roles = (yyvsp[(6) - (8)].list); 38547| 0| n->qual = (yyvsp[(7) - (8)].node); 38548| 0| n->with_check = (yyvsp[(8) - (8)].node); 38549| 0| (yyval.node) = (Node *) n; 38550| 0| ;} 38551| 0| break; 38552| | 38553| 0| case 772: ------------------ | Branch (38553:3): [True: 0, False: 76.7M] ------------------ 38554| 0|#line 5989 "gram.y" 38555| 0| { (yyval.node) = (yyvsp[(3) - (4)].node); ;} 38556| 0| break; 38557| | 38558| 0| case 773: ------------------ | Branch (38558:3): [True: 0, False: 76.7M] ------------------ 38559| 0|#line 5990 "gram.y" 38560| 0| { (yyval.node) = NULL; ;} 38561| 0| break; 38562| | 38563| 0| case 774: ------------------ | Branch (38563:3): [True: 0, False: 76.7M] ------------------ 38564| 0|#line 5994 "gram.y" 38565| 0| { (yyval.node) = (yyvsp[(4) - (5)].node); ;} 38566| 0| break; 38567| | 38568| 0| case 775: ------------------ | Branch (38568:3): [True: 0, False: 76.7M] ------------------ 38569| 0|#line 5995 "gram.y" 38570| 0| { (yyval.node) = NULL; ;} 38571| 0| break; 38572| | 38573| 0| case 776: ------------------ | Branch (38573:3): [True: 0, False: 76.7M] ------------------ 38574| 0|#line 5999 "gram.y" 38575| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 38576| 0| break; 38577| | 38578| 0| case 777: ------------------ | Branch (38578:3): [True: 0, False: 76.7M] ------------------ 38579| 0|#line 6000 "gram.y" 38580| 0| { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38581| 0| break; 38582| | 38583| 0| case 778: ------------------ | Branch (38583:3): [True: 0, False: 76.7M] ------------------ 38584| 0|#line 6004 "gram.y" 38585| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 38586| 0| break; 38587| | 38588| 0| case 779: ------------------ | Branch (38588:3): [True: 0, False: 76.7M] ------------------ 38589| 0|#line 6005 "gram.y" 38590| 0| { (yyval.list) = NULL; ;} 38591| 0| break; 38592| | 38593| 0| case 780: ------------------ | Branch (38593:3): [True: 0, False: 76.7M] ------------------ 38594| 0|#line 6010 "gram.y" 38595| 0| { 38596| 0| if (strcmp((yyvsp[(2) - (2)].str), "permissive") == 0) ------------------ | Branch (38596:10): [True: 0, False: 0] ------------------ 38597| 0| (yyval.boolean) = true; 38598| 0| else if (strcmp((yyvsp[(2) - (2)].str), "restrictive") == 0) ------------------ | Branch (38598:15): [True: 0, False: 0] ------------------ 38599| 0| (yyval.boolean) = false; 38600| 0| else 38601| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 38602| 0| (errcode(ERRCODE_SYNTAX_ERROR), 38603| 0| errmsg("unrecognized row security option \"%s\"", (yyvsp[(2) - (2)].str)), 38604| 0| errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), 38605| 0| parser_errposition((yylsp[(2) - (2)])))); 38606| | 38607| 0| ;} 38608| 0| break; 38609| | 38610| 0| case 781: ------------------ | Branch (38610:3): [True: 0, False: 76.7M] ------------------ 38611| 0|#line 6023 "gram.y" 38612| 0| { (yyval.boolean) = true; ;} 38613| 0| break; 38614| | 38615| 0| case 782: ------------------ | Branch (38615:3): [True: 0, False: 76.7M] ------------------ 38616| 0|#line 6027 "gram.y" 38617| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 38618| 0| break; 38619| | 38620| 0| case 783: ------------------ | Branch (38620:3): [True: 0, False: 76.7M] ------------------ 38621| 0|#line 6028 "gram.y" 38622| 0| { (yyval.str) = "all"; ;} 38623| 0| break; 38624| | 38625| 0| case 784: ------------------ | Branch (38625:3): [True: 0, False: 76.7M] ------------------ 38626| 0|#line 6032 "gram.y" 38627| 0| { (yyval.str) = "all"; ;} 38628| 0| break; 38629| | 38630| 0| case 785: ------------------ | Branch (38630:3): [True: 0, False: 76.7M] ------------------ 38631| 0|#line 6033 "gram.y" 38632| 0| { (yyval.str) = "select"; ;} 38633| 0| break; 38634| | 38635| 0| case 786: ------------------ | Branch (38635:3): [True: 0, False: 76.7M] ------------------ 38636| 0|#line 6034 "gram.y" 38637| 0| { (yyval.str) = "insert"; ;} 38638| 0| break; 38639| | 38640| 0| case 787: ------------------ | Branch (38640:3): [True: 0, False: 76.7M] ------------------ 38641| 0|#line 6035 "gram.y" 38642| 0| { (yyval.str) = "update"; ;} 38643| 0| break; 38644| | 38645| 0| case 788: ------------------ | Branch (38645:3): [True: 0, False: 76.7M] ------------------ 38646| 0|#line 6036 "gram.y" 38647| 0| { (yyval.str) = "delete"; ;} 38648| 0| break; 38649| | 38650| 0| case 789: ------------------ | Branch (38650:3): [True: 0, False: 76.7M] ------------------ 38651| 0|#line 6047 "gram.y" 38652| 0| { 38653| 0| CreateAmStmt *n = makeNode(CreateAmStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38654| | 38655| 0| n->amname = (yyvsp[(4) - (8)].str); 38656| 0| n->handler_name = (yyvsp[(8) - (8)].list); 38657| 0| n->amtype = (yyvsp[(6) - (8)].chr); 38658| 0| (yyval.node) = (Node *) n; 38659| 0| ;} 38660| 0| break; 38661| | 38662| 0| case 790: ------------------ | Branch (38662:3): [True: 0, False: 76.7M] ------------------ 38663| 0|#line 6058 "gram.y" 38664| 0| { (yyval.chr) = AMTYPE_INDEX; ;} ------------------ | | 40| 0|#define AMTYPE_INDEX 'i' /* index access method */ ------------------ 38665| 0| break; 38666| | 38667| 0| case 791: ------------------ | Branch (38667:3): [True: 0, False: 76.7M] ------------------ 38668| 0|#line 6059 "gram.y" 38669| 0| { (yyval.chr) = AMTYPE_TABLE; ;} ------------------ | | 41| 0|#define AMTYPE_TABLE 't' /* table access method */ ------------------ 38670| 0| break; 38671| | 38672| 0| case 792: ------------------ | Branch (38672:3): [True: 0, False: 76.7M] ------------------ 38673| 0|#line 6073 "gram.y" 38674| 0| { 38675| 0| CreateTrigStmt *n = makeNode(CreateTrigStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38676| | 38677| 0| n->replace = (yyvsp[(2) - (17)].boolean); 38678| 0| n->isconstraint = false; 38679| 0| n->trigname = (yyvsp[(4) - (17)].str); 38680| 0| n->relation = (yyvsp[(8) - (17)].range); 38681| 0| n->funcname = (yyvsp[(14) - (17)].list); 38682| 0| n->args = (yyvsp[(16) - (17)].list); 38683| 0| n->row = (yyvsp[(10) - (17)].boolean); 38684| 0| n->timing = (yyvsp[(5) - (17)].ival); 38685| 0| n->events = intVal(linitial((yyvsp[(6) - (17)].list))); ------------------ | | 79| 0|#define intVal(v) (castNode(Integer, v)->ival) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 38686| 0| n->columns = (List *) lsecond((yyvsp[(6) - (17)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 38687| 0| n->whenClause = (yyvsp[(11) - (17)].node); 38688| 0| n->transitionRels = (yyvsp[(9) - (17)].list); 38689| 0| n->deferrable = false; 38690| 0| n->initdeferred = false; 38691| 0| n->constrrel = NULL; 38692| 0| (yyval.node) = (Node *) n; 38693| 0| ;} 38694| 0| break; 38695| | 38696| 0| case 793: ------------------ | Branch (38696:3): [True: 0, False: 76.7M] ------------------ 38697| 0|#line 6097 "gram.y" 38698| 0| { 38699| 0| CreateTrigStmt *n = makeNode(CreateTrigStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38700| | 38701| 0| n->replace = (yyvsp[(2) - (21)].boolean); 38702| 0| if (n->replace) /* not supported, see CreateTrigger */ ------------------ | Branch (38702:10): [True: 0, False: 0] ------------------ 38703| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 38704| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 38705| 0| errmsg("CREATE OR REPLACE CONSTRAINT TRIGGER is not supported"), 38706| 0| parser_errposition((yylsp[(1) - (21)])))); 38707| 0| n->isconstraint = true; 38708| 0| n->trigname = (yyvsp[(5) - (21)].str); 38709| 0| n->relation = (yyvsp[(9) - (21)].range); 38710| 0| n->funcname = (yyvsp[(18) - (21)].list); 38711| 0| n->args = (yyvsp[(20) - (21)].list); 38712| 0| n->row = true; 38713| 0| n->timing = TRIGGER_TYPE_AFTER; ------------------ | | 68| 0|#define TRIGGER_TYPE_AFTER 0 ------------------ 38714| 0| n->events = intVal(linitial((yyvsp[(7) - (21)].list))); ------------------ | | 79| 0|#define intVal(v) (castNode(Integer, v)->ival) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 38715| 0| n->columns = (List *) lsecond((yyvsp[(7) - (21)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 38716| 0| n->whenClause = (yyvsp[(15) - (21)].node); 38717| 0| n->transitionRels = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38718| 0| processCASbits((yyvsp[(11) - (21)].ival), (yylsp[(11) - (21)]), "TRIGGER", 38719| 0| &n->deferrable, &n->initdeferred, NULL, 38720| 0| NULL, NULL, yyscanner); 38721| 0| n->constrrel = (yyvsp[(10) - (21)].range); 38722| 0| (yyval.node) = (Node *) n; 38723| 0| ;} 38724| 0| break; 38725| | 38726| 0| case 794: ------------------ | Branch (38726:3): [True: 0, False: 76.7M] ------------------ 38727| 0|#line 6126 "gram.y" 38728| 0| { (yyval.ival) = TRIGGER_TYPE_BEFORE; ;} ------------------ | | 55| 0|#define TRIGGER_TYPE_BEFORE (1 << 1) ------------------ 38729| 0| break; 38730| | 38731| 0| case 795: ------------------ | Branch (38731:3): [True: 0, False: 76.7M] ------------------ 38732| 0|#line 6127 "gram.y" 38733| 0| { (yyval.ival) = TRIGGER_TYPE_AFTER; ;} ------------------ | | 68| 0|#define TRIGGER_TYPE_AFTER 0 ------------------ 38734| 0| break; 38735| | 38736| 0| case 796: ------------------ | Branch (38736:3): [True: 0, False: 76.7M] ------------------ 38737| 0|#line 6128 "gram.y" 38738| 0| { (yyval.ival) = TRIGGER_TYPE_INSTEAD; ;} ------------------ | | 60| 0|#define TRIGGER_TYPE_INSTEAD (1 << 6) ------------------ 38739| 0| break; 38740| | 38741| 0| case 797: ------------------ | Branch (38741:3): [True: 0, False: 76.7M] ------------------ 38742| 0|#line 6133 "gram.y" 38743| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 38744| 0| break; 38745| | 38746| 0| case 798: ------------------ | Branch (38746:3): [True: 0, False: 76.7M] ------------------ 38747| 0|#line 6135 "gram.y" 38748| 0| { 38749| 0| int events1 = intVal(linitial((yyvsp[(1) - (3)].list))); ------------------ | | 79| 0|#define intVal(v) (castNode(Integer, v)->ival) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 38750| 0| int events2 = intVal(linitial((yyvsp[(3) - (3)].list))); ------------------ | | 79| 0|#define intVal(v) (castNode(Integer, v)->ival) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 38751| 0| List *columns1 = (List *) lsecond((yyvsp[(1) - (3)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 38752| 0| List *columns2 = (List *) lsecond((yyvsp[(3) - (3)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 38753| | 38754| 0| if (events1 & events2) ------------------ | Branch (38754:10): [True: 0, False: 0] ------------------ 38755| 0| parser_yyerror("duplicate trigger events specified"); ------------------ | | 1343| 0|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 38756| | /* 38757| | * concat'ing the columns lists loses information about 38758| | * which columns went with which event, but so long as 38759| | * only UPDATE carries columns and we disallow multiple 38760| | * UPDATE items, it doesn't matter. Command execution 38761| | * should just ignore the columns for non-UPDATE events. 38762| | */ 38763| 0| (yyval.list) = list_make2(makeInteger(events1 | events2), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38764| 0| list_concat(columns1, columns2)); 38765| 0| ;} 38766| 0| break; 38767| | 38768| 0| case 799: ------------------ | Branch (38768:3): [True: 0, False: 76.7M] ------------------ 38769| 0|#line 6157 "gram.y" 38770| 0| { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38771| 0| break; 38772| | 38773| 0| case 800: ------------------ | Branch (38773:3): [True: 0, False: 76.7M] ------------------ 38774| 0|#line 6159 "gram.y" 38775| 0| { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38776| 0| break; 38777| | 38778| 0| case 801: ------------------ | Branch (38778:3): [True: 0, False: 76.7M] ------------------ 38779| 0|#line 6161 "gram.y" 38780| 0| { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38781| 0| break; 38782| | 38783| 0| case 802: ------------------ | Branch (38783:3): [True: 0, False: 76.7M] ------------------ 38784| 0|#line 6163 "gram.y" 38785| 0| { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[(3) - (3)].list)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38786| 0| break; 38787| | 38788| 0| case 803: ------------------ | Branch (38788:3): [True: 0, False: 76.7M] ------------------ 38789| 0|#line 6165 "gram.y" 38790| 0| { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38791| 0| break; 38792| | 38793| 0| case 804: ------------------ | Branch (38793:3): [True: 0, False: 76.7M] ------------------ 38794| 0|#line 6169 "gram.y" 38795| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 38796| 0| break; 38797| | 38798| 0| case 805: ------------------ | Branch (38798:3): [True: 0, False: 76.7M] ------------------ 38799| 0|#line 6170 "gram.y" 38800| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38801| 0| break; 38802| | 38803| 0| case 806: ------------------ | Branch (38803:3): [True: 0, False: 76.7M] ------------------ 38804| 0|#line 6174 "gram.y" 38805| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38806| 0| break; 38807| | 38808| 0| case 807: ------------------ | Branch (38808:3): [True: 0, False: 76.7M] ------------------ 38809| 0|#line 6175 "gram.y" 38810| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 38811| 0| break; 38812| | 38813| 0| case 808: ------------------ | Branch (38813:3): [True: 0, False: 76.7M] ------------------ 38814| 0|#line 6180 "gram.y" 38815| 0| { 38816| 0| TriggerTransition *n = makeNode(TriggerTransition); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 38817| | 38818| 0| n->name = (yyvsp[(4) - (4)].str); 38819| 0| n->isNew = (yyvsp[(1) - (4)].boolean); 38820| 0| n->isTable = (yyvsp[(2) - (4)].boolean); 38821| 0| (yyval.node) = (Node *) n; 38822| 0| ;} 38823| 0| break; 38824| | 38825| 0| case 809: ------------------ | Branch (38825:3): [True: 0, False: 76.7M] ------------------ 38826| 0|#line 6191 "gram.y" 38827| 0| { (yyval.boolean) = true; ;} 38828| 0| break; 38829| | 38830| 0| case 810: ------------------ | Branch (38830:3): [True: 0, False: 76.7M] ------------------ 38831| 0|#line 6192 "gram.y" 38832| 0| { (yyval.boolean) = false; ;} 38833| 0| break; 38834| | 38835| 0| case 811: ------------------ | Branch (38835:3): [True: 0, False: 76.7M] ------------------ 38836| 0|#line 6196 "gram.y" 38837| 0| { (yyval.boolean) = true; ;} 38838| 0| break; 38839| | 38840| 0| case 812: ------------------ | Branch (38840:3): [True: 0, False: 76.7M] ------------------ 38841| 0|#line 6205 "gram.y" 38842| 0| { (yyval.boolean) = false; ;} 38843| 0| break; 38844| | 38845| 0| case 813: ------------------ | Branch (38845:3): [True: 0, False: 76.7M] ------------------ 38846| 0|#line 6209 "gram.y" 38847| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 38848| 0| break; 38849| | 38850| 0| case 814: ------------------ | Branch (38850:3): [True: 0, False: 76.7M] ------------------ 38851| 0|#line 6214 "gram.y" 38852| 0| { 38853| 0| (yyval.boolean) = (yyvsp[(3) - (3)].boolean); 38854| 0| ;} 38855| 0| break; 38856| | 38857| 0| case 815: ------------------ | Branch (38857:3): [True: 0, False: 76.7M] ------------------ 38858| 0|#line 6218 "gram.y" 38859| 0| { 38860| | /* 38861| | * If ROW/STATEMENT not specified, default to 38862| | * STATEMENT, per SQL 38863| | */ 38864| 0| (yyval.boolean) = false; 38865| 0| ;} 38866| 0| break; 38867| | 38868| 0| case 818: ------------------ | Branch (38868:3): [True: 0, False: 76.7M] ------------------ 38869| 0|#line 6233 "gram.y" 38870| 0| { (yyval.boolean) = true; ;} 38871| 0| break; 38872| | 38873| 0| case 819: ------------------ | Branch (38873:3): [True: 0, False: 76.7M] ------------------ 38874| 0|#line 6234 "gram.y" 38875| 0| { (yyval.boolean) = false; ;} 38876| 0| break; 38877| | 38878| 0| case 820: ------------------ | Branch (38878:3): [True: 0, False: 76.7M] ------------------ 38879| 0|#line 6238 "gram.y" 38880| 0| { (yyval.node) = (yyvsp[(3) - (4)].node); ;} 38881| 0| break; 38882| | 38883| 0| case 821: ------------------ | Branch (38883:3): [True: 0, False: 76.7M] ------------------ 38884| 0|#line 6239 "gram.y" 38885| 0| { (yyval.node) = NULL; ;} 38886| 0| break; 38887| | 38888| 0| case 824: ------------------ | Branch (38888:3): [True: 0, False: 76.7M] ------------------ 38889| 0|#line 6248 "gram.y" 38890| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 38891| 0| break; 38892| | 38893| 0| case 825: ------------------ | Branch (38893:3): [True: 0, False: 76.7M] ------------------ 38894| 0|#line 6249 "gram.y" 38895| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 38896| 0| break; 38897| | 38898| 0| case 826: ------------------ | Branch (38898:3): [True: 0, False: 76.7M] ------------------ 38899| 0|#line 6250 "gram.y" 38900| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 38901| 0| break; 38902| | 38903| 0| case 827: ------------------ | Branch (38903:3): [True: 0, False: 76.7M] ------------------ 38904| 0|#line 6255 "gram.y" 38905| 0| { 38906| 0| (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[(1) - (1)].ival))); 38907| 0| ;} 38908| 0| break; 38909| | 38910| 0| case 828: ------------------ | Branch (38910:3): [True: 0, False: 76.7M] ------------------ 38911| 0|#line 6258 "gram.y" 38912| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 38913| 0| break; 38914| | 38915| 0| case 829: ------------------ | Branch (38915:3): [True: 0, False: 76.7M] ------------------ 38916| 0|#line 6259 "gram.y" 38917| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 38918| 0| break; 38919| | 38920| 0| case 830: ------------------ | Branch (38920:3): [True: 0, False: 76.7M] ------------------ 38921| 0|#line 6260 "gram.y" 38922| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 38923| 0| break; 38924| | 38925| 0| case 831: ------------------ | Branch (38925:3): [True: 0, False: 76.7M] ------------------ 38926| 0|#line 6264 "gram.y" 38927| 0| { (yyval.range) = (yyvsp[(2) - (2)].range); ;} 38928| 0| break; 38929| | 38930| 0| case 832: ------------------ | Branch (38930:3): [True: 0, False: 76.7M] ------------------ 38931| 0|#line 6265 "gram.y" 38932| 0| { (yyval.range) = NULL; ;} 38933| 0| break; 38934| | 38935| 1.14k| case 833: ------------------ | Branch (38935:3): [True: 1.14k, False: 76.7M] ------------------ 38936| 1.14k|#line 6270 "gram.y" 38937| 1.14k| { (yyval.ival) = 0; ;} 38938| 1.14k| break; 38939| | 38940| 406| case 834: ------------------ | Branch (38940:3): [True: 406, False: 76.7M] ------------------ 38941| 406|#line 6272 "gram.y" 38942| 406| { 38943| | /* 38944| | * We must complain about conflicting options. 38945| | * We could, but choose not to, complain about redundant 38946| | * options (ie, where $2's bit is already set in $1). 38947| | */ 38948| 406| int newspec = (yyvsp[(1) - (2)].ival) | (yyvsp[(2) - (2)].ival); 38949| | 38950| | /* special message for this case */ 38951| 406| if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1333| 406|#define CAS_NOT_DEFERRABLE 0x01 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1336| 406|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1333| 406|#define CAS_NOT_DEFERRABLE 0x01 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1336| 406|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ | Branch (38951:10): [True: 0, False: 406] ------------------ 38952| 406| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 38953| 406| (errcode(ERRCODE_SYNTAX_ERROR), 38954| 406| errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), 38955| 406| parser_errposition((yylsp[(2) - (2)])))); 38956| | /* generic message for other conflicts */ 38957| 406| if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || ------------------ | | 1333| 406|#define CAS_NOT_DEFERRABLE 0x01 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || ------------------ | | 1334| 406|#define CAS_DEFERRABLE 0x02 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || ------------------ | | 1333| 406|#define CAS_NOT_DEFERRABLE 0x01 ------------------ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || ------------------ | | 1334| 406|#define CAS_DEFERRABLE 0x02 ------------------ | Branch (38957:10): [True: 0, False: 406] ------------------ 38958| 406| (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) || ------------------ | | 1335| 406|#define CAS_INITIALLY_IMMEDIATE 0x04 ------------------ (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) || ------------------ | | 1336| 406|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) || ------------------ | | 1335| 406|#define CAS_INITIALLY_IMMEDIATE 0x04 ------------------ (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) || ------------------ | | 1336| 406|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ | Branch (38958:7): [True: 0, False: 406] ------------------ 38959| 406| (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1339| 406|#define CAS_NOT_ENFORCED 0x40 ------------------ (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1340| 406|#define CAS_ENFORCED 0x80 ------------------ (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1339| 406|#define CAS_NOT_ENFORCED 0x40 ------------------ (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED)) ------------------ | | 1340| 406|#define CAS_ENFORCED 0x80 ------------------ | Branch (38959:7): [True: 0, False: 406] ------------------ 38960| 406| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 38961| 406| (errcode(ERRCODE_SYNTAX_ERROR), 38962| 406| errmsg("conflicting constraint properties"), 38963| 406| parser_errposition((yylsp[(2) - (2)])))); 38964| 406| (yyval.ival) = newspec; 38965| 406| ;} 38966| 0| break; 38967| | 38968| 0| case 835: ------------------ | Branch (38968:3): [True: 0, False: 76.7M] ------------------ 38969| 0|#line 6299 "gram.y" 38970| 0| { (yyval.ival) = CAS_NOT_DEFERRABLE; ;} ------------------ | | 1333| 0|#define CAS_NOT_DEFERRABLE 0x01 ------------------ 38971| 0| break; 38972| | 38973| 260| case 836: ------------------ | Branch (38973:3): [True: 260, False: 76.7M] ------------------ 38974| 260|#line 6300 "gram.y" 38975| 260| { (yyval.ival) = CAS_DEFERRABLE; ;} ------------------ | | 1334| 260|#define CAS_DEFERRABLE 0x02 ------------------ 38976| 260| break; 38977| | 38978| 0| case 837: ------------------ | Branch (38978:3): [True: 0, False: 76.7M] ------------------ 38979| 0|#line 6301 "gram.y" 38980| 0| { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;} ------------------ | | 1335| 0|#define CAS_INITIALLY_IMMEDIATE 0x04 ------------------ 38981| 0| break; 38982| | 38983| 0| case 838: ------------------ | Branch (38983:3): [True: 0, False: 76.7M] ------------------ 38984| 0|#line 6302 "gram.y" 38985| 0| { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;} ------------------ | | 1336| 0|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ 38986| 0| break; 38987| | 38988| 0| case 839: ------------------ | Branch (38988:3): [True: 0, False: 76.7M] ------------------ 38989| 0|#line 6303 "gram.y" 38990| 0| { (yyval.ival) = CAS_NOT_VALID; ;} ------------------ | | 1337| 0|#define CAS_NOT_VALID 0x10 ------------------ 38991| 0| break; 38992| | 38993| 146| case 840: ------------------ | Branch (38993:3): [True: 146, False: 76.7M] ------------------ 38994| 146|#line 6304 "gram.y" 38995| 146| { (yyval.ival) = CAS_NO_INHERIT; ;} ------------------ | | 1338| 146|#define CAS_NO_INHERIT 0x20 ------------------ 38996| 146| break; 38997| | 38998| 0| case 841: ------------------ | Branch (38998:3): [True: 0, False: 76.7M] ------------------ 38999| 0|#line 6305 "gram.y" 39000| 0| { (yyval.ival) = CAS_NOT_ENFORCED; ;} ------------------ | | 1339| 0|#define CAS_NOT_ENFORCED 0x40 ------------------ 39001| 0| break; 39002| | 39003| 0| case 842: ------------------ | Branch (39003:3): [True: 0, False: 76.7M] ------------------ 39004| 0|#line 6306 "gram.y" 39005| 0| { (yyval.ival) = CAS_ENFORCED; ;} ------------------ | | 1340| 0|#define CAS_ENFORCED 0x80 ------------------ 39006| 0| break; 39007| | 39008| 0| case 843: ------------------ | Branch (39008:3): [True: 0, False: 76.7M] ------------------ 39009| 0|#line 6321 "gram.y" 39010| 0| { 39011| 0| CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39012| | 39013| 0| n->trigname = (yyvsp[(4) - (11)].str); 39014| 0| n->eventname = (yyvsp[(6) - (11)].str); 39015| 0| n->whenclause = NULL; 39016| 0| n->funcname = (yyvsp[(9) - (11)].list); 39017| 0| (yyval.node) = (Node *) n; 39018| 0| ;} 39019| 0| break; 39020| | 39021| 0| case 844: ------------------ | Branch (39021:3): [True: 0, False: 76.7M] ------------------ 39022| 0|#line 6333 "gram.y" 39023| 0| { 39024| 0| CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39025| | 39026| 0| n->trigname = (yyvsp[(4) - (13)].str); 39027| 0| n->eventname = (yyvsp[(6) - (13)].str); 39028| 0| n->whenclause = (yyvsp[(8) - (13)].list); 39029| 0| n->funcname = (yyvsp[(11) - (13)].list); 39030| 0| (yyval.node) = (Node *) n; 39031| 0| ;} 39032| 0| break; 39033| | 39034| 0| case 845: ------------------ | Branch (39034:3): [True: 0, False: 76.7M] ------------------ 39035| 0|#line 6346 "gram.y" 39036| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39037| 0| break; 39038| | 39039| 0| case 846: ------------------ | Branch (39039:3): [True: 0, False: 76.7M] ------------------ 39040| 0|#line 6348 "gram.y" 39041| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 39042| 0| break; 39043| | 39044| 0| case 847: ------------------ | Branch (39044:3): [True: 0, False: 76.7M] ------------------ 39045| 0|#line 6353 "gram.y" 39046| 0| { (yyval.defelt) = makeDefElem((yyvsp[(1) - (5)].str), (Node *) (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} 39047| 0| break; 39048| | 39049| 0| case 848: ------------------ | Branch (39049:3): [True: 0, False: 76.7M] ------------------ 39050| 0|#line 6358 "gram.y" 39051| 0| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39052| 0| break; 39053| | 39054| 0| case 849: ------------------ | Branch (39054:3): [True: 0, False: 76.7M] ------------------ 39055| 0|#line 6360 "gram.y" 39056| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} 39057| 0| break; 39058| | 39059| 0| case 850: ------------------ | Branch (39059:3): [True: 0, False: 76.7M] ------------------ 39060| 0|#line 6365 "gram.y" 39061| 0| { 39062| 0| AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39063| | 39064| 0| n->trigname = (yyvsp[(4) - (5)].str); 39065| 0| n->tgenabled = (yyvsp[(5) - (5)].chr); 39066| 0| (yyval.node) = (Node *) n; 39067| 0| ;} 39068| 0| break; 39069| | 39070| 0| case 851: ------------------ | Branch (39070:3): [True: 0, False: 76.7M] ------------------ 39071| 0|#line 6375 "gram.y" 39072| 0| { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; ;} ------------------ | | 151| 0|#define TRIGGER_FIRES_ON_ORIGIN 'O' ------------------ 39073| 0| break; 39074| | 39075| 0| case 852: ------------------ | Branch (39075:3): [True: 0, False: 76.7M] ------------------ 39076| 0|#line 6376 "gram.y" 39077| 0| { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; ;} ------------------ | | 153| 0|#define TRIGGER_FIRES_ON_REPLICA 'R' ------------------ 39078| 0| break; 39079| | 39080| 0| case 853: ------------------ | Branch (39080:3): [True: 0, False: 76.7M] ------------------ 39081| 0|#line 6377 "gram.y" 39082| 0| { (yyval.chr) = TRIGGER_FIRES_ALWAYS; ;} ------------------ | | 152| 0|#define TRIGGER_FIRES_ALWAYS 'A' ------------------ 39083| 0| break; 39084| | 39085| 0| case 854: ------------------ | Branch (39085:3): [True: 0, False: 76.7M] ------------------ 39086| 0|#line 6378 "gram.y" 39087| 0| { (yyval.chr) = TRIGGER_DISABLED; ;} ------------------ | | 154| 0|#define TRIGGER_DISABLED 'D' ------------------ 39088| 0| break; 39089| | 39090| 0| case 855: ------------------ | Branch (39090:3): [True: 0, False: 76.7M] ------------------ 39091| 0|#line 6390 "gram.y" 39092| 0| { 39093| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 39094| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 39095| 0| errmsg("CREATE ASSERTION is not yet implemented"), 39096| 0| parser_errposition((yylsp[(1) - (8)])))); 39097| | 39098| 0| (yyval.node) = NULL; 39099| 0| ;} 39100| 0| break; 39101| | 39102| 0| case 856: ------------------ | Branch (39102:3): [True: 0, False: 76.7M] ------------------ 39103| 0|#line 6410 "gram.y" 39104| 0| { 39105| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39106| | 39107| 0| n->kind = OBJECT_AGGREGATE; 39108| 0| n->oldstyle = false; 39109| 0| n->replace = (yyvsp[(2) - (6)].boolean); 39110| 0| n->defnames = (yyvsp[(4) - (6)].list); 39111| 0| n->args = (yyvsp[(5) - (6)].list); 39112| 0| n->definition = (yyvsp[(6) - (6)].list); 39113| 0| (yyval.node) = (Node *) n; 39114| 0| ;} 39115| 0| break; 39116| | 39117| 0| case 857: ------------------ | Branch (39117:3): [True: 0, False: 76.7M] ------------------ 39118| 0|#line 6422 "gram.y" 39119| 0| { 39120| | /* old-style (pre-8.2) syntax for CREATE AGGREGATE */ 39121| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39122| | 39123| 0| n->kind = OBJECT_AGGREGATE; 39124| 0| n->oldstyle = true; 39125| 0| n->replace = (yyvsp[(2) - (5)].boolean); 39126| 0| n->defnames = (yyvsp[(4) - (5)].list); 39127| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39128| 0| n->definition = (yyvsp[(5) - (5)].list); 39129| 0| (yyval.node) = (Node *) n; 39130| 0| ;} 39131| 0| break; 39132| | 39133| 0| case 858: ------------------ | Branch (39133:3): [True: 0, False: 76.7M] ------------------ 39134| 0|#line 6435 "gram.y" 39135| 0| { 39136| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39137| | 39138| 0| n->kind = OBJECT_OPERATOR; 39139| 0| n->oldstyle = false; 39140| 0| n->defnames = (yyvsp[(3) - (4)].list); 39141| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39142| 0| n->definition = (yyvsp[(4) - (4)].list); 39143| 0| (yyval.node) = (Node *) n; 39144| 0| ;} 39145| 0| break; 39146| | 39147| 128| case 859: ------------------ | Branch (39147:3): [True: 128, False: 76.7M] ------------------ 39148| 128|#line 6446 "gram.y" 39149| 128| { 39150| 128| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 128|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39151| | 39152| 128| n->kind = OBJECT_TYPE; 39153| 128| n->oldstyle = false; 39154| 128| n->defnames = (yyvsp[(3) - (4)].list); 39155| 128| n->args = NIL; ------------------ | | 68| 128|#define NIL ((List *) NULL) ------------------ 39156| 128| n->definition = (yyvsp[(4) - (4)].list); 39157| 128| (yyval.node) = (Node *) n; 39158| 128| ;} 39159| 128| break; 39160| | 39161| 76| case 860: ------------------ | Branch (39161:3): [True: 76, False: 76.7M] ------------------ 39162| 76|#line 6457 "gram.y" 39163| 76| { 39164| | /* Shell type (identified by lack of definition) */ 39165| 76| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 76|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39166| | 39167| 76| n->kind = OBJECT_TYPE; 39168| 76| n->oldstyle = false; 39169| 76| n->defnames = (yyvsp[(3) - (3)].list); 39170| 76| n->args = NIL; ------------------ | | 68| 76|#define NIL ((List *) NULL) ------------------ 39171| 76| n->definition = NIL; ------------------ | | 68| 76|#define NIL ((List *) NULL) ------------------ 39172| 76| (yyval.node) = (Node *) n; 39173| 76| ;} 39174| 76| break; 39175| | 39176| 1.54k| case 861: ------------------ | Branch (39176:3): [True: 1.54k, False: 76.7M] ------------------ 39177| 1.54k|#line 6469 "gram.y" 39178| 1.54k| { 39179| 1.54k| CompositeTypeStmt *n = makeNode(CompositeTypeStmt); ------------------ | | 161| 1.54k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39180| | 39181| | /* can't use qualified_name, sigh */ 39182| 1.54k| n->typevar = makeRangeVarFromAnyName((yyvsp[(3) - (7)].list), (yylsp[(3) - (7)]), yyscanner); 39183| 1.54k| n->coldeflist = (yyvsp[(6) - (7)].list); 39184| 1.54k| (yyval.node) = (Node *) n; 39185| 1.54k| ;} 39186| 1.54k| break; 39187| | 39188| 0| case 862: ------------------ | Branch (39188:3): [True: 0, False: 76.7M] ------------------ 39189| 0|#line 6478 "gram.y" 39190| 0| { 39191| 0| CreateEnumStmt *n = makeNode(CreateEnumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39192| | 39193| 0| n->typeName = (yyvsp[(3) - (8)].list); 39194| 0| n->vals = (yyvsp[(7) - (8)].list); 39195| 0| (yyval.node) = (Node *) n; 39196| 0| ;} 39197| 0| break; 39198| | 39199| 0| case 863: ------------------ | Branch (39199:3): [True: 0, False: 76.7M] ------------------ 39200| 0|#line 6486 "gram.y" 39201| 0| { 39202| 0| CreateRangeStmt *n = makeNode(CreateRangeStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39203| | 39204| 0| n->typeName = (yyvsp[(3) - (6)].list); 39205| 0| n->params = (yyvsp[(6) - (6)].list); 39206| 0| (yyval.node) = (Node *) n; 39207| 0| ;} 39208| 0| break; 39209| | 39210| 0| case 864: ------------------ | Branch (39210:3): [True: 0, False: 76.7M] ------------------ 39211| 0|#line 6494 "gram.y" 39212| 0| { 39213| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39214| | 39215| 0| n->kind = OBJECT_TSPARSER; 39216| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39217| 0| n->defnames = (yyvsp[(5) - (6)].list); 39218| 0| n->definition = (yyvsp[(6) - (6)].list); 39219| 0| (yyval.node) = (Node *) n; 39220| 0| ;} 39221| 0| break; 39222| | 39223| 0| case 865: ------------------ | Branch (39223:3): [True: 0, False: 76.7M] ------------------ 39224| 0|#line 6504 "gram.y" 39225| 0| { 39226| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39227| | 39228| 0| n->kind = OBJECT_TSDICTIONARY; 39229| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39230| 0| n->defnames = (yyvsp[(5) - (6)].list); 39231| 0| n->definition = (yyvsp[(6) - (6)].list); 39232| 0| (yyval.node) = (Node *) n; 39233| 0| ;} 39234| 0| break; 39235| | 39236| 0| case 866: ------------------ | Branch (39236:3): [True: 0, False: 76.7M] ------------------ 39237| 0|#line 6514 "gram.y" 39238| 0| { 39239| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39240| | 39241| 0| n->kind = OBJECT_TSTEMPLATE; 39242| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39243| 0| n->defnames = (yyvsp[(5) - (6)].list); 39244| 0| n->definition = (yyvsp[(6) - (6)].list); 39245| 0| (yyval.node) = (Node *) n; 39246| 0| ;} 39247| 0| break; 39248| | 39249| 0| case 867: ------------------ | Branch (39249:3): [True: 0, False: 76.7M] ------------------ 39250| 0|#line 6524 "gram.y" 39251| 0| { 39252| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39253| | 39254| 0| n->kind = OBJECT_TSCONFIGURATION; 39255| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39256| 0| n->defnames = (yyvsp[(5) - (6)].list); 39257| 0| n->definition = (yyvsp[(6) - (6)].list); 39258| 0| (yyval.node) = (Node *) n; 39259| 0| ;} 39260| 0| break; 39261| | 39262| 0| case 868: ------------------ | Branch (39262:3): [True: 0, False: 76.7M] ------------------ 39263| 0|#line 6534 "gram.y" 39264| 0| { 39265| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39266| | 39267| 0| n->kind = OBJECT_COLLATION; 39268| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39269| 0| n->defnames = (yyvsp[(3) - (4)].list); 39270| 0| n->definition = (yyvsp[(4) - (4)].list); 39271| 0| (yyval.node) = (Node *) n; 39272| 0| ;} 39273| 0| break; 39274| | 39275| 0| case 869: ------------------ | Branch (39275:3): [True: 0, False: 76.7M] ------------------ 39276| 0|#line 6544 "gram.y" 39277| 0| { 39278| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39279| | 39280| 0| n->kind = OBJECT_COLLATION; 39281| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39282| 0| n->defnames = (yyvsp[(6) - (7)].list); 39283| 0| n->definition = (yyvsp[(7) - (7)].list); 39284| 0| n->if_not_exists = true; 39285| 0| (yyval.node) = (Node *) n; 39286| 0| ;} 39287| 0| break; 39288| | 39289| 0| case 870: ------------------ | Branch (39289:3): [True: 0, False: 76.7M] ------------------ 39290| 0|#line 6555 "gram.y" 39291| 0| { 39292| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39293| | 39294| 0| n->kind = OBJECT_COLLATION; 39295| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39296| 0| n->defnames = (yyvsp[(3) - (5)].list); 39297| 0| n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(5) - (5)].list), (yylsp[(5) - (5)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39298| 0| (yyval.node) = (Node *) n; 39299| 0| ;} 39300| 0| break; 39301| | 39302| 0| case 871: ------------------ | Branch (39302:3): [True: 0, False: 76.7M] ------------------ 39303| 0|#line 6565 "gram.y" 39304| 0| { 39305| 0| DefineStmt *n = makeNode(DefineStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39306| | 39307| 0| n->kind = OBJECT_COLLATION; 39308| 0| n->args = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39309| 0| n->defnames = (yyvsp[(6) - (8)].list); 39310| 0| n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[(8) - (8)].list), (yylsp[(8) - (8)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39311| 0| n->if_not_exists = true; 39312| 0| (yyval.node) = (Node *) n; 39313| 0| ;} 39314| 0| break; 39315| | 39316| 128| case 872: ------------------ | Branch (39316:3): [True: 128, False: 76.7M] ------------------ 39317| 128|#line 6577 "gram.y" 39318| 128| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 39319| 128| break; 39320| | 39321| 128| case 873: ------------------ | Branch (39321:3): [True: 128, False: 76.7M] ------------------ 39322| 128|#line 6580 "gram.y" 39323| 128| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 128| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 128|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39324| 128| break; 39325| | 39326| 0| case 874: ------------------ | Branch (39326:3): [True: 0, False: 76.7M] ------------------ 39327| 0|#line 6581 "gram.y" 39328| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 39329| 0| break; 39330| | 39331| 0| case 875: ------------------ | Branch (39331:3): [True: 0, False: 76.7M] ------------------ 39332| 0|#line 6585 "gram.y" 39333| 0| { 39334| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 39335| 0| ;} 39336| 0| break; 39337| | 39338| 128| case 876: ------------------ | Branch (39338:3): [True: 128, False: 76.7M] ------------------ 39339| 128|#line 6589 "gram.y" 39340| 128| { 39341| 128| (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); 39342| 128| ;} 39343| 128| break; 39344| | 39345| 686| case 877: ------------------ | Branch (39345:3): [True: 686, False: 76.7M] ------------------ 39346| 686|#line 6595 "gram.y" 39347| 686| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} 39348| 686| break; 39349| | 39350| 0| case 878: ------------------ | Branch (39350:3): [True: 0, False: 76.7M] ------------------ 39351| 0|#line 6596 "gram.y" 39352| 0| { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} 39353| 0| break; 39354| | 39355| 0| case 879: ------------------ | Branch (39355:3): [True: 0, False: 76.7M] ------------------ 39356| 0|#line 6597 "gram.y" 39357| 0| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} 39358| 0| break; 39359| | 39360| 0| case 880: ------------------ | Branch (39360:3): [True: 0, False: 76.7M] ------------------ 39361| 0|#line 6598 "gram.y" 39362| 0| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} 39363| 0| break; 39364| | 39365| 0| case 881: ------------------ | Branch (39365:3): [True: 0, False: 76.7M] ------------------ 39366| 0|#line 6599 "gram.y" 39367| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 39368| 0| break; 39369| | 39370| 0| case 882: ------------------ | Branch (39370:3): [True: 0, False: 76.7M] ------------------ 39371| 0|#line 6600 "gram.y" 39372| 0| { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} 39373| 0| break; 39374| | 39375| 0| case 883: ------------------ | Branch (39375:3): [True: 0, False: 76.7M] ------------------ 39376| 0|#line 6603 "gram.y" 39377| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 39378| 0| break; 39379| | 39380| 0| case 884: ------------------ | Branch (39380:3): [True: 0, False: 76.7M] ------------------ 39381| 0|#line 6606 "gram.y" 39382| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39383| 0| break; 39384| | 39385| 0| case 885: ------------------ | Branch (39385:3): [True: 0, False: 76.7M] ------------------ 39386| 0|#line 6607 "gram.y" 39387| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 39388| 0| break; 39389| | 39390| 0| case 886: ------------------ | Branch (39390:3): [True: 0, False: 76.7M] ------------------ 39391| 0|#line 6616 "gram.y" 39392| 0| { 39393| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 39394| 0| ;} 39395| 0| break; 39396| | 39397| 0| case 887: ------------------ | Branch (39397:3): [True: 0, False: 76.7M] ------------------ 39398| 0|#line 6622 "gram.y" 39399| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 39400| 0| break; 39401| | 39402| 0| case 888: ------------------ | Branch (39402:3): [True: 0, False: 76.7M] ------------------ 39403| 0|#line 6623 "gram.y" 39404| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39405| 0| break; 39406| | 39407| 0| case 889: ------------------ | Branch (39407:3): [True: 0, False: 76.7M] ------------------ 39408| 0|#line 6627 "gram.y" 39409| 0| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39410| 0| break; 39411| | 39412| 0| case 890: ------------------ | Branch (39412:3): [True: 0, False: 76.7M] ------------------ 39413| 0|#line 6629 "gram.y" 39414| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} 39415| 0| break; 39416| | 39417| 0| case 891: ------------------ | Branch (39417:3): [True: 0, False: 76.7M] ------------------ 39418| 0|#line 6640 "gram.y" 39419| 0| { 39420| 0| AlterEnumStmt *n = makeNode(AlterEnumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39421| | 39422| 0| n->typeName = (yyvsp[(3) - (7)].list); 39423| 0| n->oldVal = NULL; 39424| 0| n->newVal = (yyvsp[(7) - (7)].str); 39425| 0| n->newValNeighbor = NULL; 39426| 0| n->newValIsAfter = true; 39427| 0| n->skipIfNewValExists = (yyvsp[(6) - (7)].boolean); 39428| 0| (yyval.node) = (Node *) n; 39429| 0| ;} 39430| 0| break; 39431| | 39432| 0| case 892: ------------------ | Branch (39432:3): [True: 0, False: 76.7M] ------------------ 39433| 0|#line 6652 "gram.y" 39434| 0| { 39435| 0| AlterEnumStmt *n = makeNode(AlterEnumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39436| | 39437| 0| n->typeName = (yyvsp[(3) - (9)].list); 39438| 0| n->oldVal = NULL; 39439| 0| n->newVal = (yyvsp[(7) - (9)].str); 39440| 0| n->newValNeighbor = (yyvsp[(9) - (9)].str); 39441| 0| n->newValIsAfter = false; 39442| 0| n->skipIfNewValExists = (yyvsp[(6) - (9)].boolean); 39443| 0| (yyval.node) = (Node *) n; 39444| 0| ;} 39445| 0| break; 39446| | 39447| 0| case 893: ------------------ | Branch (39447:3): [True: 0, False: 76.7M] ------------------ 39448| 0|#line 6664 "gram.y" 39449| 0| { 39450| 0| AlterEnumStmt *n = makeNode(AlterEnumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39451| | 39452| 0| n->typeName = (yyvsp[(3) - (9)].list); 39453| 0| n->oldVal = NULL; 39454| 0| n->newVal = (yyvsp[(7) - (9)].str); 39455| 0| n->newValNeighbor = (yyvsp[(9) - (9)].str); 39456| 0| n->newValIsAfter = true; 39457| 0| n->skipIfNewValExists = (yyvsp[(6) - (9)].boolean); 39458| 0| (yyval.node) = (Node *) n; 39459| 0| ;} 39460| 0| break; 39461| | 39462| 0| case 894: ------------------ | Branch (39462:3): [True: 0, False: 76.7M] ------------------ 39463| 0|#line 6676 "gram.y" 39464| 0| { 39465| 0| AlterEnumStmt *n = makeNode(AlterEnumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39466| | 39467| 0| n->typeName = (yyvsp[(3) - (8)].list); 39468| 0| n->oldVal = (yyvsp[(6) - (8)].str); 39469| 0| n->newVal = (yyvsp[(8) - (8)].str); 39470| 0| n->newValNeighbor = NULL; 39471| 0| n->newValIsAfter = false; 39472| 0| n->skipIfNewValExists = false; 39473| 0| (yyval.node) = (Node *) n; 39474| 0| ;} 39475| 0| break; 39476| | 39477| 0| case 895: ------------------ | Branch (39477:3): [True: 0, False: 76.7M] ------------------ 39478| 0|#line 6688 "gram.y" 39479| 0| { 39480| | /* 39481| | * The following problems must be solved before this can be 39482| | * implemented: 39483| | * 39484| | * - There must be no instance of the target value in 39485| | * any table. 39486| | * 39487| | * - The value must not appear in any catalog metadata, 39488| | * such as stored view expressions or column defaults. 39489| | * 39490| | * - The value must not appear in any non-leaf page of a 39491| | * btree (and similar issues with other index types). 39492| | * This is problematic because a value could persist 39493| | * there long after it's gone from user-visible data. 39494| | * 39495| | * - Concurrent sessions must not be able to insert the 39496| | * value while the preceding conditions are being checked. 39497| | * 39498| | * - Possibly more... 39499| | */ 39500| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 39501| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 39502| 0| errmsg("dropping an enum value is not implemented"), 39503| 0| parser_errposition((yylsp[(4) - (6)])))); 39504| 0| ;} 39505| 0| break; 39506| | 39507| 0| case 896: ------------------ | Branch (39507:3): [True: 0, False: 76.7M] ------------------ 39508| 0|#line 6716 "gram.y" 39509| 0| { (yyval.boolean) = true; ;} 39510| 0| break; 39511| | 39512| 0| case 897: ------------------ | Branch (39512:3): [True: 0, False: 76.7M] ------------------ 39513| 0|#line 6717 "gram.y" 39514| 0| { (yyval.boolean) = false; ;} 39515| 0| break; 39516| | 39517| 0| case 898: ------------------ | Branch (39517:3): [True: 0, False: 76.7M] ------------------ 39518| 0|#line 6735 "gram.y" 39519| 0| { 39520| 0| CreateOpClassStmt *n = makeNode(CreateOpClassStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39521| | 39522| 0| n->opclassname = (yyvsp[(4) - (13)].list); 39523| 0| n->isDefault = (yyvsp[(5) - (13)].boolean); 39524| 0| n->datatype = (yyvsp[(8) - (13)].typnam); 39525| 0| n->amname = (yyvsp[(10) - (13)].str); 39526| 0| n->opfamilyname = (yyvsp[(11) - (13)].list); 39527| 0| n->items = (yyvsp[(13) - (13)].list); 39528| 0| (yyval.node) = (Node *) n; 39529| 0| ;} 39530| 0| break; 39531| | 39532| 0| case 899: ------------------ | Branch (39532:3): [True: 0, False: 76.7M] ------------------ 39533| 0|#line 6749 "gram.y" 39534| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39535| 0| break; 39536| | 39537| 0| case 900: ------------------ | Branch (39537:3): [True: 0, False: 76.7M] ------------------ 39538| 0|#line 6750 "gram.y" 39539| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 39540| 0| break; 39541| | 39542| 0| case 901: ------------------ | Branch (39542:3): [True: 0, False: 76.7M] ------------------ 39543| 0|#line 6755 "gram.y" 39544| 0| { 39545| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39546| 0| ObjectWithArgs *owa = makeNode(ObjectWithArgs); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39547| | 39548| 0| owa->objname = (yyvsp[(3) - (4)].list); 39549| 0| owa->objargs = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39550| 0| n->itemtype = OPCLASS_ITEM_OPERATOR; ------------------ | | 3281| 0|#define OPCLASS_ITEM_OPERATOR 1 ------------------ 39551| 0| n->name = owa; 39552| 0| n->number = (yyvsp[(2) - (4)].ival); 39553| 0| n->order_family = (yyvsp[(4) - (4)].list); 39554| 0| (yyval.node) = (Node *) n; 39555| 0| ;} 39556| 0| break; 39557| | 39558| 0| case 902: ------------------ | Branch (39558:3): [True: 0, False: 76.7M] ------------------ 39559| 0|#line 6768 "gram.y" 39560| 0| { 39561| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39562| | 39563| 0| n->itemtype = OPCLASS_ITEM_OPERATOR; ------------------ | | 3281| 0|#define OPCLASS_ITEM_OPERATOR 1 ------------------ 39564| 0| n->name = (yyvsp[(3) - (4)].objwithargs); 39565| 0| n->number = (yyvsp[(2) - (4)].ival); 39566| 0| n->order_family = (yyvsp[(4) - (4)].list); 39567| 0| (yyval.node) = (Node *) n; 39568| 0| ;} 39569| 0| break; 39570| | 39571| 0| case 903: ------------------ | Branch (39571:3): [True: 0, False: 76.7M] ------------------ 39572| 0|#line 6778 "gram.y" 39573| 0| { 39574| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39575| | 39576| 0| n->itemtype = OPCLASS_ITEM_FUNCTION; ------------------ | | 3282| 0|#define OPCLASS_ITEM_FUNCTION 2 ------------------ 39577| 0| n->name = (yyvsp[(3) - (3)].objwithargs); 39578| 0| n->number = (yyvsp[(2) - (3)].ival); 39579| 0| (yyval.node) = (Node *) n; 39580| 0| ;} 39581| 0| break; 39582| | 39583| 0| case 904: ------------------ | Branch (39583:3): [True: 0, False: 76.7M] ------------------ 39584| 0|#line 6787 "gram.y" 39585| 0| { 39586| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39587| | 39588| 0| n->itemtype = OPCLASS_ITEM_FUNCTION; ------------------ | | 3282| 0|#define OPCLASS_ITEM_FUNCTION 2 ------------------ 39589| 0| n->name = (yyvsp[(6) - (6)].objwithargs); 39590| 0| n->number = (yyvsp[(2) - (6)].ival); 39591| 0| n->class_args = (yyvsp[(4) - (6)].list); 39592| 0| (yyval.node) = (Node *) n; 39593| 0| ;} 39594| 0| break; 39595| | 39596| 0| case 905: ------------------ | Branch (39596:3): [True: 0, False: 76.7M] ------------------ 39597| 0|#line 6797 "gram.y" 39598| 0| { 39599| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39600| | 39601| 0| n->itemtype = OPCLASS_ITEM_STORAGETYPE; ------------------ | | 3283| 0|#define OPCLASS_ITEM_STORAGETYPE 3 ------------------ 39602| 0| n->storedtype = (yyvsp[(2) - (2)].typnam); 39603| 0| (yyval.node) = (Node *) n; 39604| 0| ;} 39605| 0| break; 39606| | 39607| 0| case 906: ------------------ | Branch (39607:3): [True: 0, False: 76.7M] ------------------ 39608| 0|#line 6806 "gram.y" 39609| 0| { (yyval.boolean) = true; ;} 39610| 0| break; 39611| | 39612| 0| case 907: ------------------ | Branch (39612:3): [True: 0, False: 76.7M] ------------------ 39613| 0|#line 6807 "gram.y" 39614| 0| { (yyval.boolean) = false; ;} 39615| 0| break; 39616| | 39617| 0| case 908: ------------------ | Branch (39617:3): [True: 0, False: 76.7M] ------------------ 39618| 0|#line 6810 "gram.y" 39619| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 39620| 0| break; 39621| | 39622| 0| case 909: ------------------ | Branch (39622:3): [True: 0, False: 76.7M] ------------------ 39623| 0|#line 6811 "gram.y" 39624| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39625| 0| break; 39626| | 39627| 0| case 910: ------------------ | Branch (39627:3): [True: 0, False: 76.7M] ------------------ 39628| 0|#line 6814 "gram.y" 39629| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39630| 0| break; 39631| | 39632| 0| case 911: ------------------ | Branch (39632:3): [True: 0, False: 76.7M] ------------------ 39633| 0|#line 6815 "gram.y" 39634| 0| { (yyval.list) = (yyvsp[(4) - (4)].list); ;} 39635| 0| break; 39636| | 39637| 0| case 912: ------------------ | Branch (39637:3): [True: 0, False: 76.7M] ------------------ 39638| 0|#line 6816 "gram.y" 39639| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 39640| 0| break; 39641| | 39642| 0| case 913: ------------------ | Branch (39642:3): [True: 0, False: 76.7M] ------------------ 39643| 0|#line 6822 "gram.y" 39644| 0| { 39645| 0| CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39646| | 39647| 0| n->opfamilyname = (yyvsp[(4) - (6)].list); 39648| 0| n->amname = (yyvsp[(6) - (6)].str); 39649| 0| (yyval.node) = (Node *) n; 39650| 0| ;} 39651| 0| break; 39652| | 39653| 0| case 914: ------------------ | Branch (39653:3): [True: 0, False: 76.7M] ------------------ 39654| 0|#line 6833 "gram.y" 39655| 0| { 39656| 0| AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39657| | 39658| 0| n->opfamilyname = (yyvsp[(4) - (8)].list); 39659| 0| n->amname = (yyvsp[(6) - (8)].str); 39660| 0| n->isDrop = false; 39661| 0| n->items = (yyvsp[(8) - (8)].list); 39662| 0| (yyval.node) = (Node *) n; 39663| 0| ;} 39664| 0| break; 39665| | 39666| 0| case 915: ------------------ | Branch (39666:3): [True: 0, False: 76.7M] ------------------ 39667| 0|#line 6843 "gram.y" 39668| 0| { 39669| 0| AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39670| | 39671| 0| n->opfamilyname = (yyvsp[(4) - (8)].list); 39672| 0| n->amname = (yyvsp[(6) - (8)].str); 39673| 0| n->isDrop = true; 39674| 0| n->items = (yyvsp[(8) - (8)].list); 39675| 0| (yyval.node) = (Node *) n; 39676| 0| ;} 39677| 0| break; 39678| | 39679| 0| case 916: ------------------ | Branch (39679:3): [True: 0, False: 76.7M] ------------------ 39680| 0|#line 6855 "gram.y" 39681| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39682| 0| break; 39683| | 39684| 0| case 917: ------------------ | Branch (39684:3): [True: 0, False: 76.7M] ------------------ 39685| 0|#line 6856 "gram.y" 39686| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 39687| 0| break; 39688| | 39689| 0| case 918: ------------------ | Branch (39689:3): [True: 0, False: 76.7M] ------------------ 39690| 0|#line 6861 "gram.y" 39691| 0| { 39692| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39693| | 39694| 0| n->itemtype = OPCLASS_ITEM_OPERATOR; ------------------ | | 3281| 0|#define OPCLASS_ITEM_OPERATOR 1 ------------------ 39695| 0| n->number = (yyvsp[(2) - (5)].ival); 39696| 0| n->class_args = (yyvsp[(4) - (5)].list); 39697| 0| (yyval.node) = (Node *) n; 39698| 0| ;} 39699| 0| break; 39700| | 39701| 0| case 919: ------------------ | Branch (39701:3): [True: 0, False: 76.7M] ------------------ 39702| 0|#line 6870 "gram.y" 39703| 0| { 39704| 0| CreateOpClassItem *n = makeNode(CreateOpClassItem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39705| | 39706| 0| n->itemtype = OPCLASS_ITEM_FUNCTION; ------------------ | | 3282| 0|#define OPCLASS_ITEM_FUNCTION 2 ------------------ 39707| 0| n->number = (yyvsp[(2) - (5)].ival); 39708| 0| n->class_args = (yyvsp[(4) - (5)].list); 39709| 0| (yyval.node) = (Node *) n; 39710| 0| ;} 39711| 0| break; 39712| | 39713| 0| case 920: ------------------ | Branch (39713:3): [True: 0, False: 76.7M] ------------------ 39714| 0|#line 6883 "gram.y" 39715| 0| { 39716| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39717| | 39718| 0| n->objects = list_make1(lcons(makeString((yyvsp[(6) - (7)].str)), (yyvsp[(4) - (7)].list))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39719| 0| n->removeType = OBJECT_OPCLASS; 39720| 0| n->behavior = (yyvsp[(7) - (7)].dbehavior); 39721| 0| n->missing_ok = false; 39722| 0| n->concurrent = false; 39723| 0| (yyval.node) = (Node *) n; 39724| 0| ;} 39725| 0| break; 39726| | 39727| 0| case 921: ------------------ | Branch (39727:3): [True: 0, False: 76.7M] ------------------ 39728| 0|#line 6894 "gram.y" 39729| 0| { 39730| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39731| | 39732| 0| n->objects = list_make1(lcons(makeString((yyvsp[(8) - (9)].str)), (yyvsp[(6) - (9)].list))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39733| 0| n->removeType = OBJECT_OPCLASS; 39734| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 39735| 0| n->missing_ok = true; 39736| 0| n->concurrent = false; 39737| 0| (yyval.node) = (Node *) n; 39738| 0| ;} 39739| 0| break; 39740| | 39741| 0| case 922: ------------------ | Branch (39741:3): [True: 0, False: 76.7M] ------------------ 39742| 0|#line 6908 "gram.y" 39743| 0| { 39744| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39745| | 39746| 0| n->objects = list_make1(lcons(makeString((yyvsp[(6) - (7)].str)), (yyvsp[(4) - (7)].list))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39747| 0| n->removeType = OBJECT_OPFAMILY; 39748| 0| n->behavior = (yyvsp[(7) - (7)].dbehavior); 39749| 0| n->missing_ok = false; 39750| 0| n->concurrent = false; 39751| 0| (yyval.node) = (Node *) n; 39752| 0| ;} 39753| 0| break; 39754| | 39755| 0| case 923: ------------------ | Branch (39755:3): [True: 0, False: 76.7M] ------------------ 39756| 0|#line 6919 "gram.y" 39757| 0| { 39758| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39759| | 39760| 0| n->objects = list_make1(lcons(makeString((yyvsp[(8) - (9)].str)), (yyvsp[(6) - (9)].list))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39761| 0| n->removeType = OBJECT_OPFAMILY; 39762| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 39763| 0| n->missing_ok = true; 39764| 0| n->concurrent = false; 39765| 0| (yyval.node) = (Node *) n; 39766| 0| ;} 39767| 0| break; 39768| | 39769| 0| case 924: ------------------ | Branch (39769:3): [True: 0, False: 76.7M] ------------------ 39770| 0|#line 6942 "gram.y" 39771| 0| { 39772| 0| DropOwnedStmt *n = makeNode(DropOwnedStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39773| | 39774| 0| n->roles = (yyvsp[(4) - (5)].list); 39775| 0| n->behavior = (yyvsp[(5) - (5)].dbehavior); 39776| 0| (yyval.node) = (Node *) n; 39777| 0| ;} 39778| 0| break; 39779| | 39780| 0| case 925: ------------------ | Branch (39780:3): [True: 0, False: 76.7M] ------------------ 39781| 0|#line 6953 "gram.y" 39782| 0| { 39783| 0| ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39784| | 39785| 0| n->roles = (yyvsp[(4) - (6)].list); 39786| 0| n->newrole = (yyvsp[(6) - (6)].rolespec); 39787| 0| (yyval.node) = (Node *) n; 39788| 0| ;} 39789| 0| break; 39790| | 39791| 0| case 926: ------------------ | Branch (39791:3): [True: 0, False: 76.7M] ------------------ 39792| 0|#line 6972 "gram.y" 39793| 0| { 39794| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39795| | 39796| 0| n->removeType = (yyvsp[(2) - (6)].objtype); 39797| 0| n->missing_ok = true; 39798| 0| n->objects = (yyvsp[(5) - (6)].list); 39799| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 39800| 0| n->concurrent = false; 39801| 0| (yyval.node) = (Node *) n; 39802| 0| ;} 39803| 0| break; 39804| | 39805| 0| case 927: ------------------ | Branch (39805:3): [True: 0, False: 76.7M] ------------------ 39806| 0|#line 6983 "gram.y" 39807| 0| { 39808| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39809| | 39810| 0| n->removeType = (yyvsp[(2) - (4)].objtype); 39811| 0| n->missing_ok = false; 39812| 0| n->objects = (yyvsp[(3) - (4)].list); 39813| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 39814| 0| n->concurrent = false; 39815| 0| (yyval.node) = (Node *) n; 39816| 0| ;} 39817| 0| break; 39818| | 39819| 0| case 928: ------------------ | Branch (39819:3): [True: 0, False: 76.7M] ------------------ 39820| 0|#line 6994 "gram.y" 39821| 0| { 39822| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39823| | 39824| 0| n->removeType = (yyvsp[(2) - (6)].objtype); 39825| 0| n->missing_ok = true; 39826| 0| n->objects = (yyvsp[(5) - (6)].list); 39827| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 39828| 0| n->concurrent = false; 39829| 0| (yyval.node) = (Node *) n; 39830| 0| ;} 39831| 0| break; 39832| | 39833| 0| case 929: ------------------ | Branch (39833:3): [True: 0, False: 76.7M] ------------------ 39834| 0|#line 7005 "gram.y" 39835| 0| { 39836| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39837| | 39838| 0| n->removeType = (yyvsp[(2) - (4)].objtype); 39839| 0| n->missing_ok = false; 39840| 0| n->objects = (yyvsp[(3) - (4)].list); 39841| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 39842| 0| n->concurrent = false; 39843| 0| (yyval.node) = (Node *) n; 39844| 0| ;} 39845| 0| break; 39846| | 39847| 0| case 930: ------------------ | Branch (39847:3): [True: 0, False: 76.7M] ------------------ 39848| 0|#line 7016 "gram.y" 39849| 0| { 39850| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39851| | 39852| 0| n->removeType = (yyvsp[(2) - (6)].objtype); 39853| 0| n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str)))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39854| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 39855| 0| n->missing_ok = false; 39856| 0| n->concurrent = false; 39857| 0| (yyval.node) = (Node *) n; 39858| 0| ;} 39859| 0| break; 39860| | 39861| 0| case 931: ------------------ | Branch (39861:3): [True: 0, False: 76.7M] ------------------ 39862| 0|#line 7027 "gram.y" 39863| 0| { 39864| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39865| | 39866| 0| n->removeType = (yyvsp[(2) - (8)].objtype); 39867| 0| n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str)))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 39868| 0| n->behavior = (yyvsp[(8) - (8)].dbehavior); 39869| 0| n->missing_ok = true; 39870| 0| n->concurrent = false; 39871| 0| (yyval.node) = (Node *) n; 39872| 0| ;} 39873| 0| break; 39874| | 39875| 2| case 932: ------------------ | Branch (39875:3): [True: 2, False: 76.7M] ------------------ 39876| 2|#line 7038 "gram.y" 39877| 2| { 39878| 2| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39879| | 39880| 2| n->removeType = OBJECT_TYPE; 39881| 2| n->missing_ok = false; 39882| 2| n->objects = (yyvsp[(3) - (4)].list); 39883| 2| n->behavior = (yyvsp[(4) - (4)].dbehavior); 39884| 2| n->concurrent = false; 39885| 2| (yyval.node) = (Node *) n; 39886| 2| ;} 39887| 2| break; 39888| | 39889| 0| case 933: ------------------ | Branch (39889:3): [True: 0, False: 76.7M] ------------------ 39890| 0|#line 7049 "gram.y" 39891| 0| { 39892| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39893| | 39894| 0| n->removeType = OBJECT_TYPE; 39895| 0| n->missing_ok = true; 39896| 0| n->objects = (yyvsp[(5) - (6)].list); 39897| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 39898| 0| n->concurrent = false; 39899| 0| (yyval.node) = (Node *) n; 39900| 0| ;} 39901| 0| break; 39902| | 39903| 0| case 934: ------------------ | Branch (39903:3): [True: 0, False: 76.7M] ------------------ 39904| 0|#line 7060 "gram.y" 39905| 0| { 39906| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39907| | 39908| 0| n->removeType = OBJECT_DOMAIN; 39909| 0| n->missing_ok = false; 39910| 0| n->objects = (yyvsp[(3) - (4)].list); 39911| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 39912| 0| n->concurrent = false; 39913| 0| (yyval.node) = (Node *) n; 39914| 0| ;} 39915| 0| break; 39916| | 39917| 0| case 935: ------------------ | Branch (39917:3): [True: 0, False: 76.7M] ------------------ 39918| 0|#line 7071 "gram.y" 39919| 0| { 39920| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39921| | 39922| 0| n->removeType = OBJECT_DOMAIN; 39923| 0| n->missing_ok = true; 39924| 0| n->objects = (yyvsp[(5) - (6)].list); 39925| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 39926| 0| n->concurrent = false; 39927| 0| (yyval.node) = (Node *) n; 39928| 0| ;} 39929| 0| break; 39930| | 39931| 0| case 936: ------------------ | Branch (39931:3): [True: 0, False: 76.7M] ------------------ 39932| 0|#line 7082 "gram.y" 39933| 0| { 39934| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39935| | 39936| 0| n->removeType = OBJECT_INDEX; 39937| 0| n->missing_ok = false; 39938| 0| n->objects = (yyvsp[(4) - (5)].list); 39939| 0| n->behavior = (yyvsp[(5) - (5)].dbehavior); 39940| 0| n->concurrent = true; 39941| 0| (yyval.node) = (Node *) n; 39942| 0| ;} 39943| 0| break; 39944| | 39945| 0| case 937: ------------------ | Branch (39945:3): [True: 0, False: 76.7M] ------------------ 39946| 0|#line 7093 "gram.y" 39947| 0| { 39948| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 39949| | 39950| 0| n->removeType = OBJECT_INDEX; 39951| 0| n->missing_ok = true; 39952| 0| n->objects = (yyvsp[(6) - (7)].list); 39953| 0| n->behavior = (yyvsp[(7) - (7)].dbehavior); 39954| 0| n->concurrent = true; 39955| 0| (yyval.node) = (Node *) n; 39956| 0| ;} 39957| 0| break; 39958| | 39959| 0| case 938: ------------------ | Branch (39959:3): [True: 0, False: 76.7M] ------------------ 39960| 0|#line 7107 "gram.y" 39961| 0| { (yyval.objtype) = OBJECT_TABLE; ;} 39962| 0| break; 39963| | 39964| 0| case 939: ------------------ | Branch (39964:3): [True: 0, False: 76.7M] ------------------ 39965| 0|#line 7108 "gram.y" 39966| 0| { (yyval.objtype) = OBJECT_SEQUENCE; ;} 39967| 0| break; 39968| | 39969| 0| case 940: ------------------ | Branch (39969:3): [True: 0, False: 76.7M] ------------------ 39970| 0|#line 7109 "gram.y" 39971| 0| { (yyval.objtype) = OBJECT_VIEW; ;} 39972| 0| break; 39973| | 39974| 0| case 941: ------------------ | Branch (39974:3): [True: 0, False: 76.7M] ------------------ 39975| 0|#line 7110 "gram.y" 39976| 0| { (yyval.objtype) = OBJECT_MATVIEW; ;} 39977| 0| break; 39978| | 39979| 0| case 942: ------------------ | Branch (39979:3): [True: 0, False: 76.7M] ------------------ 39980| 0|#line 7111 "gram.y" 39981| 0| { (yyval.objtype) = OBJECT_INDEX; ;} 39982| 0| break; 39983| | 39984| 0| case 943: ------------------ | Branch (39984:3): [True: 0, False: 76.7M] ------------------ 39985| 0|#line 7112 "gram.y" 39986| 0| { (yyval.objtype) = OBJECT_FOREIGN_TABLE; ;} 39987| 0| break; 39988| | 39989| 0| case 944: ------------------ | Branch (39989:3): [True: 0, False: 76.7M] ------------------ 39990| 0|#line 7113 "gram.y" 39991| 0| { (yyval.objtype) = OBJECT_COLLATION; ;} 39992| 0| break; 39993| | 39994| 0| case 945: ------------------ | Branch (39994:3): [True: 0, False: 76.7M] ------------------ 39995| 0|#line 7114 "gram.y" 39996| 0| { (yyval.objtype) = OBJECT_CONVERSION; ;} 39997| 0| break; 39998| | 39999| 0| case 946: ------------------ | Branch (39999:3): [True: 0, False: 76.7M] ------------------ 40000| 0|#line 7115 "gram.y" 40001| 0| { (yyval.objtype) = OBJECT_STATISTIC_EXT; ;} 40002| 0| break; 40003| | 40004| 0| case 947: ------------------ | Branch (40004:3): [True: 0, False: 76.7M] ------------------ 40005| 0|#line 7116 "gram.y" 40006| 0| { (yyval.objtype) = OBJECT_TSPARSER; ;} 40007| 0| break; 40008| | 40009| 0| case 948: ------------------ | Branch (40009:3): [True: 0, False: 76.7M] ------------------ 40010| 0|#line 7117 "gram.y" 40011| 0| { (yyval.objtype) = OBJECT_TSDICTIONARY; ;} 40012| 0| break; 40013| | 40014| 0| case 949: ------------------ | Branch (40014:3): [True: 0, False: 76.7M] ------------------ 40015| 0|#line 7118 "gram.y" 40016| 0| { (yyval.objtype) = OBJECT_TSTEMPLATE; ;} 40017| 0| break; 40018| | 40019| 0| case 950: ------------------ | Branch (40019:3): [True: 0, False: 76.7M] ------------------ 40020| 0|#line 7119 "gram.y" 40021| 0| { (yyval.objtype) = OBJECT_TSCONFIGURATION; ;} 40022| 0| break; 40023| | 40024| 0| case 951: ------------------ | Branch (40024:3): [True: 0, False: 76.7M] ------------------ 40025| 0|#line 7129 "gram.y" 40026| 0| { (yyval.objtype) = (yyvsp[(1) - (1)].objtype); ;} 40027| 0| break; 40028| | 40029| 0| case 952: ------------------ | Branch (40029:3): [True: 0, False: 76.7M] ------------------ 40030| 0|#line 7130 "gram.y" 40031| 0| { (yyval.objtype) = OBJECT_DATABASE; ;} 40032| 0| break; 40033| | 40034| 0| case 953: ------------------ | Branch (40034:3): [True: 0, False: 76.7M] ------------------ 40035| 0|#line 7131 "gram.y" 40036| 0| { (yyval.objtype) = OBJECT_ROLE; ;} 40037| 0| break; 40038| | 40039| 0| case 954: ------------------ | Branch (40039:3): [True: 0, False: 76.7M] ------------------ 40040| 0|#line 7132 "gram.y" 40041| 0| { (yyval.objtype) = OBJECT_SUBSCRIPTION; ;} 40042| 0| break; 40043| | 40044| 0| case 955: ------------------ | Branch (40044:3): [True: 0, False: 76.7M] ------------------ 40045| 0|#line 7133 "gram.y" 40046| 0| { (yyval.objtype) = OBJECT_TABLESPACE; ;} 40047| 0| break; 40048| | 40049| 0| case 956: ------------------ | Branch (40049:3): [True: 0, False: 76.7M] ------------------ 40050| 0|#line 7137 "gram.y" 40051| 0| { (yyval.objtype) = OBJECT_ACCESS_METHOD; ;} 40052| 0| break; 40053| | 40054| 0| case 957: ------------------ | Branch (40054:3): [True: 0, False: 76.7M] ------------------ 40055| 0|#line 7138 "gram.y" 40056| 0| { (yyval.objtype) = OBJECT_EVENT_TRIGGER; ;} 40057| 0| break; 40058| | 40059| 0| case 958: ------------------ | Branch (40059:3): [True: 0, False: 76.7M] ------------------ 40060| 0|#line 7139 "gram.y" 40061| 0| { (yyval.objtype) = OBJECT_EXTENSION; ;} 40062| 0| break; 40063| | 40064| 0| case 959: ------------------ | Branch (40064:3): [True: 0, False: 76.7M] ------------------ 40065| 0|#line 7140 "gram.y" 40066| 0| { (yyval.objtype) = OBJECT_FDW; ;} 40067| 0| break; 40068| | 40069| 0| case 960: ------------------ | Branch (40069:3): [True: 0, False: 76.7M] ------------------ 40070| 0|#line 7141 "gram.y" 40071| 0| { (yyval.objtype) = OBJECT_LANGUAGE; ;} 40072| 0| break; 40073| | 40074| 0| case 961: ------------------ | Branch (40074:3): [True: 0, False: 76.7M] ------------------ 40075| 0|#line 7142 "gram.y" 40076| 0| { (yyval.objtype) = OBJECT_PUBLICATION; ;} 40077| 0| break; 40078| | 40079| 0| case 962: ------------------ | Branch (40079:3): [True: 0, False: 76.7M] ------------------ 40080| 0|#line 7143 "gram.y" 40081| 0| { (yyval.objtype) = OBJECT_SCHEMA; ;} 40082| 0| break; 40083| | 40084| 0| case 963: ------------------ | Branch (40084:3): [True: 0, False: 76.7M] ------------------ 40085| 0|#line 7144 "gram.y" 40086| 0| { (yyval.objtype) = OBJECT_FOREIGN_SERVER; ;} 40087| 0| break; 40088| | 40089| 0| case 964: ------------------ | Branch (40089:3): [True: 0, False: 76.7M] ------------------ 40090| 0|#line 7149 "gram.y" 40091| 0| { (yyval.objtype) = OBJECT_POLICY; ;} 40092| 0| break; 40093| | 40094| 0| case 965: ------------------ | Branch (40094:3): [True: 0, False: 76.7M] ------------------ 40095| 0|#line 7150 "gram.y" 40096| 0| { (yyval.objtype) = OBJECT_RULE; ;} 40097| 0| break; 40098| | 40099| 0| case 966: ------------------ | Branch (40099:3): [True: 0, False: 76.7M] ------------------ 40100| 0|#line 7151 "gram.y" 40101| 0| { (yyval.objtype) = OBJECT_TRIGGER; ;} 40102| 0| break; 40103| | 40104| 0| case 967: ------------------ | Branch (40104:3): [True: 0, False: 76.7M] ------------------ 40105| 0|#line 7155 "gram.y" 40106| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40107| 0| break; 40108| | 40109| 0| case 968: ------------------ | Branch (40109:3): [True: 0, False: 76.7M] ------------------ 40110| 0|#line 7156 "gram.y" 40111| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} 40112| 0| break; 40113| | 40114| 1.62k| case 969: ------------------ | Branch (40114:3): [True: 1.62k, False: 76.7M] ------------------ 40115| 1.62k|#line 7159 "gram.y" 40116| 1.62k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 1.62k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.62k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40117| 1.62k| break; 40118| | 40119| 854| case 970: ------------------ | Branch (40119:3): [True: 854, False: 76.7M] ------------------ 40120| 854|#line 7160 "gram.y" 40121| 854| { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} 40122| 854| break; 40123| | 40124| 5.80k| case 971: ------------------ | Branch (40124:3): [True: 5.80k, False: 76.7M] ------------------ 40125| 5.80k|#line 7164 "gram.y" 40126| 5.80k| { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} ------------------ | | 213| 5.80k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 5.80k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40127| 5.80k| break; 40128| | 40129| 162k| case 972: ------------------ | Branch (40129:3): [True: 162k, False: 76.6M] ------------------ 40130| 162k|#line 7166 "gram.y" 40131| 162k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} 40132| 162k| break; 40133| | 40134| 2| case 973: ------------------ | Branch (40134:3): [True: 2, False: 76.7M] ------------------ 40135| 2|#line 7170 "gram.y" 40136| 2| { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} ------------------ | | 213| 2| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40137| 2| break; 40138| | 40139| 4.08k| case 974: ------------------ | Branch (40139:3): [True: 4.08k, False: 76.7M] ------------------ 40140| 4.08k|#line 7171 "gram.y" 40141| 4.08k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} 40142| 4.08k| break; 40143| | 40144| 391| case 975: ------------------ | Branch (40144:3): [True: 391, False: 76.7M] ------------------ 40145| 391|#line 7183 "gram.y" 40146| 391| { 40147| 391| TruncateStmt *n = makeNode(TruncateStmt); ------------------ | | 161| 391|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40148| | 40149| 391| n->relations = (yyvsp[(3) - (5)].list); 40150| 391| n->restart_seqs = (yyvsp[(4) - (5)].boolean); 40151| 391| n->behavior = (yyvsp[(5) - (5)].dbehavior); 40152| 391| (yyval.node) = (Node *) n; 40153| 391| ;} 40154| 391| break; 40155| | 40156| 0| case 976: ------------------ | Branch (40156:3): [True: 0, False: 76.7M] ------------------ 40157| 0|#line 7194 "gram.y" 40158| 0| { (yyval.boolean) = false; ;} 40159| 0| break; 40160| | 40161| 0| case 977: ------------------ | Branch (40161:3): [True: 0, False: 76.7M] ------------------ 40162| 0|#line 7195 "gram.y" 40163| 0| { (yyval.boolean) = true; ;} 40164| 0| break; 40165| | 40166| 391| case 978: ------------------ | Branch (40166:3): [True: 391, False: 76.7M] ------------------ 40167| 391|#line 7196 "gram.y" 40168| 391| { (yyval.boolean) = false; ;} 40169| 391| break; 40170| | 40171| 0| case 979: ------------------ | Branch (40171:3): [True: 0, False: 76.7M] ------------------ 40172| 0|#line 7207 "gram.y" 40173| 0| { 40174| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40175| | 40176| 0| n->objtype = (yyvsp[(3) - (6)].objtype); 40177| 0| n->object = (Node *) (yyvsp[(4) - (6)].list); 40178| 0| n->comment = (yyvsp[(6) - (6)].str); 40179| 0| (yyval.node) = (Node *) n; 40180| 0| ;} 40181| 0| break; 40182| | 40183| 0| case 980: ------------------ | Branch (40183:3): [True: 0, False: 76.7M] ------------------ 40184| 0|#line 7216 "gram.y" 40185| 0| { 40186| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40187| | 40188| 0| n->objtype = OBJECT_COLUMN; 40189| 0| n->object = (Node *) (yyvsp[(4) - (6)].list); 40190| 0| n->comment = (yyvsp[(6) - (6)].str); 40191| 0| (yyval.node) = (Node *) n; 40192| 0| ;} 40193| 0| break; 40194| | 40195| 0| case 981: ------------------ | Branch (40195:3): [True: 0, False: 76.7M] ------------------ 40196| 0|#line 7225 "gram.y" 40197| 0| { 40198| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40199| | 40200| 0| n->objtype = (yyvsp[(3) - (6)].objtype); 40201| 0| n->object = (Node *) makeString((yyvsp[(4) - (6)].str)); 40202| 0| n->comment = (yyvsp[(6) - (6)].str); 40203| 0| (yyval.node) = (Node *) n; 40204| 0| ;} 40205| 0| break; 40206| | 40207| 0| case 982: ------------------ | Branch (40207:3): [True: 0, False: 76.7M] ------------------ 40208| 0|#line 7234 "gram.y" 40209| 0| { 40210| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40211| | 40212| 0| n->objtype = OBJECT_TYPE; 40213| 0| n->object = (Node *) (yyvsp[(4) - (6)].typnam); 40214| 0| n->comment = (yyvsp[(6) - (6)].str); 40215| 0| (yyval.node) = (Node *) n; 40216| 0| ;} 40217| 0| break; 40218| | 40219| 0| case 983: ------------------ | Branch (40219:3): [True: 0, False: 76.7M] ------------------ 40220| 0|#line 7243 "gram.y" 40221| 0| { 40222| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40223| | 40224| 0| n->objtype = OBJECT_DOMAIN; 40225| 0| n->object = (Node *) (yyvsp[(4) - (6)].typnam); 40226| 0| n->comment = (yyvsp[(6) - (6)].str); 40227| 0| (yyval.node) = (Node *) n; 40228| 0| ;} 40229| 0| break; 40230| | 40231| 0| case 984: ------------------ | Branch (40231:3): [True: 0, False: 76.7M] ------------------ 40232| 0|#line 7252 "gram.y" 40233| 0| { 40234| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40235| | 40236| 0| n->objtype = OBJECT_AGGREGATE; 40237| 0| n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); 40238| 0| n->comment = (yyvsp[(6) - (6)].str); 40239| 0| (yyval.node) = (Node *) n; 40240| 0| ;} 40241| 0| break; 40242| | 40243| 0| case 985: ------------------ | Branch (40243:3): [True: 0, False: 76.7M] ------------------ 40244| 0|#line 7261 "gram.y" 40245| 0| { 40246| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40247| | 40248| 0| n->objtype = OBJECT_FUNCTION; 40249| 0| n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); 40250| 0| n->comment = (yyvsp[(6) - (6)].str); 40251| 0| (yyval.node) = (Node *) n; 40252| 0| ;} 40253| 0| break; 40254| | 40255| 0| case 986: ------------------ | Branch (40255:3): [True: 0, False: 76.7M] ------------------ 40256| 0|#line 7270 "gram.y" 40257| 0| { 40258| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40259| | 40260| 0| n->objtype = OBJECT_OPERATOR; 40261| 0| n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); 40262| 0| n->comment = (yyvsp[(6) - (6)].str); 40263| 0| (yyval.node) = (Node *) n; 40264| 0| ;} 40265| 0| break; 40266| | 40267| 0| case 987: ------------------ | Branch (40267:3): [True: 0, False: 76.7M] ------------------ 40268| 0|#line 7279 "gram.y" 40269| 0| { 40270| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40271| | 40272| 0| n->objtype = OBJECT_TABCONSTRAINT; 40273| 0| n->object = (Node *) lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); 40274| 0| n->comment = (yyvsp[(8) - (8)].str); 40275| 0| (yyval.node) = (Node *) n; 40276| 0| ;} 40277| 0| break; 40278| | 40279| 0| case 988: ------------------ | Branch (40279:3): [True: 0, False: 76.7M] ------------------ 40280| 0|#line 7288 "gram.y" 40281| 0| { 40282| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40283| | 40284| 0| n->objtype = OBJECT_DOMCONSTRAINT; 40285| | /* 40286| | * should use Typename not any_name in the production, but 40287| | * there's a shift/reduce conflict if we do that, so fix it 40288| | * up here. 40289| | */ 40290| 0| n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[(7) - (9)].list)), makeString((yyvsp[(4) - (9)].str))); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40291| 0| n->comment = (yyvsp[(9) - (9)].str); 40292| 0| (yyval.node) = (Node *) n; 40293| 0| ;} 40294| 0| break; 40295| | 40296| 0| case 989: ------------------ | Branch (40296:3): [True: 0, False: 76.7M] ------------------ 40297| 0|#line 7302 "gram.y" 40298| 0| { 40299| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40300| | 40301| 0| n->objtype = (yyvsp[(3) - (8)].objtype); 40302| 0| n->object = (Node *) lappend((yyvsp[(6) - (8)].list), makeString((yyvsp[(4) - (8)].str))); 40303| 0| n->comment = (yyvsp[(8) - (8)].str); 40304| 0| (yyval.node) = (Node *) n; 40305| 0| ;} 40306| 0| break; 40307| | 40308| 0| case 990: ------------------ | Branch (40308:3): [True: 0, False: 76.7M] ------------------ 40309| 0|#line 7311 "gram.y" 40310| 0| { 40311| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40312| | 40313| 0| n->objtype = OBJECT_PROCEDURE; 40314| 0| n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); 40315| 0| n->comment = (yyvsp[(6) - (6)].str); 40316| 0| (yyval.node) = (Node *) n; 40317| 0| ;} 40318| 0| break; 40319| | 40320| 0| case 991: ------------------ | Branch (40320:3): [True: 0, False: 76.7M] ------------------ 40321| 0|#line 7320 "gram.y" 40322| 0| { 40323| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40324| | 40325| 0| n->objtype = OBJECT_ROUTINE; 40326| 0| n->object = (Node *) (yyvsp[(4) - (6)].objwithargs); 40327| 0| n->comment = (yyvsp[(6) - (6)].str); 40328| 0| (yyval.node) = (Node *) n; 40329| 0| ;} 40330| 0| break; 40331| | 40332| 0| case 992: ------------------ | Branch (40332:3): [True: 0, False: 76.7M] ------------------ 40333| 0|#line 7329 "gram.y" 40334| 0| { 40335| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40336| | 40337| 0| n->objtype = OBJECT_TRANSFORM; 40338| 0| n->object = (Node *) list_make2((yyvsp[(5) - (9)].typnam), makeString((yyvsp[(7) - (9)].str))); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40339| 0| n->comment = (yyvsp[(9) - (9)].str); 40340| 0| (yyval.node) = (Node *) n; 40341| 0| ;} 40342| 0| break; 40343| | 40344| 0| case 993: ------------------ | Branch (40344:3): [True: 0, False: 76.7M] ------------------ 40345| 0|#line 7338 "gram.y" 40346| 0| { 40347| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40348| | 40349| 0| n->objtype = OBJECT_OPCLASS; 40350| 0| n->object = (Node *) lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); 40351| 0| n->comment = (yyvsp[(9) - (9)].str); 40352| 0| (yyval.node) = (Node *) n; 40353| 0| ;} 40354| 0| break; 40355| | 40356| 0| case 994: ------------------ | Branch (40356:3): [True: 0, False: 76.7M] ------------------ 40357| 0|#line 7347 "gram.y" 40358| 0| { 40359| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40360| | 40361| 0| n->objtype = OBJECT_OPFAMILY; 40362| 0| n->object = (Node *) lcons(makeString((yyvsp[(7) - (9)].str)), (yyvsp[(5) - (9)].list)); 40363| 0| n->comment = (yyvsp[(9) - (9)].str); 40364| 0| (yyval.node) = (Node *) n; 40365| 0| ;} 40366| 0| break; 40367| | 40368| 0| case 995: ------------------ | Branch (40368:3): [True: 0, False: 76.7M] ------------------ 40369| 0|#line 7356 "gram.y" 40370| 0| { 40371| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40372| | 40373| 0| n->objtype = OBJECT_LARGEOBJECT; 40374| 0| n->object = (Node *) (yyvsp[(5) - (7)].node); 40375| 0| n->comment = (yyvsp[(7) - (7)].str); 40376| 0| (yyval.node) = (Node *) n; 40377| 0| ;} 40378| 0| break; 40379| | 40380| 0| case 996: ------------------ | Branch (40380:3): [True: 0, False: 76.7M] ------------------ 40381| 0|#line 7365 "gram.y" 40382| 0| { 40383| 0| CommentStmt *n = makeNode(CommentStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40384| | 40385| 0| n->objtype = OBJECT_CAST; 40386| 0| n->object = (Node *) list_make2((yyvsp[(5) - (10)].typnam), (yyvsp[(7) - (10)].typnam)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40387| 0| n->comment = (yyvsp[(10) - (10)].str); 40388| 0| (yyval.node) = (Node *) n; 40389| 0| ;} 40390| 0| break; 40391| | 40392| 0| case 997: ------------------ | Branch (40392:3): [True: 0, False: 76.7M] ------------------ 40393| 0|#line 7376 "gram.y" 40394| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 40395| 0| break; 40396| | 40397| 0| case 998: ------------------ | Branch (40397:3): [True: 0, False: 76.7M] ------------------ 40398| 0|#line 7377 "gram.y" 40399| 0| { (yyval.str) = NULL; ;} 40400| 0| break; 40401| | 40402| 0| case 999: ------------------ | Branch (40402:3): [True: 0, False: 76.7M] ------------------ 40403| 0|#line 7393 "gram.y" 40404| 0| { 40405| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40406| | 40407| 0| n->provider = (yyvsp[(3) - (8)].str); 40408| 0| n->objtype = (yyvsp[(5) - (8)].objtype); 40409| 0| n->object = (Node *) (yyvsp[(6) - (8)].list); 40410| 0| n->label = (yyvsp[(8) - (8)].str); 40411| 0| (yyval.node) = (Node *) n; 40412| 0| ;} 40413| 0| break; 40414| | 40415| 0| case 1000: ------------------ | Branch (40415:3): [True: 0, False: 76.7M] ------------------ 40416| 0|#line 7404 "gram.y" 40417| 0| { 40418| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40419| | 40420| 0| n->provider = (yyvsp[(3) - (8)].str); 40421| 0| n->objtype = OBJECT_COLUMN; 40422| 0| n->object = (Node *) (yyvsp[(6) - (8)].list); 40423| 0| n->label = (yyvsp[(8) - (8)].str); 40424| 0| (yyval.node) = (Node *) n; 40425| 0| ;} 40426| 0| break; 40427| | 40428| 0| case 1001: ------------------ | Branch (40428:3): [True: 0, False: 76.7M] ------------------ 40429| 0|#line 7415 "gram.y" 40430| 0| { 40431| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40432| | 40433| 0| n->provider = (yyvsp[(3) - (8)].str); 40434| 0| n->objtype = (yyvsp[(5) - (8)].objtype); 40435| 0| n->object = (Node *) makeString((yyvsp[(6) - (8)].str)); 40436| 0| n->label = (yyvsp[(8) - (8)].str); 40437| 0| (yyval.node) = (Node *) n; 40438| 0| ;} 40439| 0| break; 40440| | 40441| 0| case 1002: ------------------ | Branch (40441:3): [True: 0, False: 76.7M] ------------------ 40442| 0|#line 7426 "gram.y" 40443| 0| { 40444| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40445| | 40446| 0| n->provider = (yyvsp[(3) - (8)].str); 40447| 0| n->objtype = OBJECT_TYPE; 40448| 0| n->object = (Node *) (yyvsp[(6) - (8)].typnam); 40449| 0| n->label = (yyvsp[(8) - (8)].str); 40450| 0| (yyval.node) = (Node *) n; 40451| 0| ;} 40452| 0| break; 40453| | 40454| 0| case 1003: ------------------ | Branch (40454:3): [True: 0, False: 76.7M] ------------------ 40455| 0|#line 7437 "gram.y" 40456| 0| { 40457| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40458| | 40459| 0| n->provider = (yyvsp[(3) - (8)].str); 40460| 0| n->objtype = OBJECT_DOMAIN; 40461| 0| n->object = (Node *) (yyvsp[(6) - (8)].typnam); 40462| 0| n->label = (yyvsp[(8) - (8)].str); 40463| 0| (yyval.node) = (Node *) n; 40464| 0| ;} 40465| 0| break; 40466| | 40467| 0| case 1004: ------------------ | Branch (40467:3): [True: 0, False: 76.7M] ------------------ 40468| 0|#line 7448 "gram.y" 40469| 0| { 40470| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40471| | 40472| 0| n->provider = (yyvsp[(3) - (8)].str); 40473| 0| n->objtype = OBJECT_AGGREGATE; 40474| 0| n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); 40475| 0| n->label = (yyvsp[(8) - (8)].str); 40476| 0| (yyval.node) = (Node *) n; 40477| 0| ;} 40478| 0| break; 40479| | 40480| 0| case 1005: ------------------ | Branch (40480:3): [True: 0, False: 76.7M] ------------------ 40481| 0|#line 7459 "gram.y" 40482| 0| { 40483| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40484| | 40485| 0| n->provider = (yyvsp[(3) - (8)].str); 40486| 0| n->objtype = OBJECT_FUNCTION; 40487| 0| n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); 40488| 0| n->label = (yyvsp[(8) - (8)].str); 40489| 0| (yyval.node) = (Node *) n; 40490| 0| ;} 40491| 0| break; 40492| | 40493| 0| case 1006: ------------------ | Branch (40493:3): [True: 0, False: 76.7M] ------------------ 40494| 0|#line 7470 "gram.y" 40495| 0| { 40496| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40497| | 40498| 0| n->provider = (yyvsp[(3) - (9)].str); 40499| 0| n->objtype = OBJECT_LARGEOBJECT; 40500| 0| n->object = (Node *) (yyvsp[(7) - (9)].node); 40501| 0| n->label = (yyvsp[(9) - (9)].str); 40502| 0| (yyval.node) = (Node *) n; 40503| 0| ;} 40504| 0| break; 40505| | 40506| 0| case 1007: ------------------ | Branch (40506:3): [True: 0, False: 76.7M] ------------------ 40507| 0|#line 7481 "gram.y" 40508| 0| { 40509| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40510| | 40511| 0| n->provider = (yyvsp[(3) - (8)].str); 40512| 0| n->objtype = OBJECT_PROCEDURE; 40513| 0| n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); 40514| 0| n->label = (yyvsp[(8) - (8)].str); 40515| 0| (yyval.node) = (Node *) n; 40516| 0| ;} 40517| 0| break; 40518| | 40519| 0| case 1008: ------------------ | Branch (40519:3): [True: 0, False: 76.7M] ------------------ 40520| 0|#line 7492 "gram.y" 40521| 0| { 40522| 0| SecLabelStmt *n = makeNode(SecLabelStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40523| | 40524| 0| n->provider = (yyvsp[(3) - (8)].str); 40525| 0| n->objtype = OBJECT_ROUTINE; 40526| 0| n->object = (Node *) (yyvsp[(6) - (8)].objwithargs); 40527| 0| n->label = (yyvsp[(8) - (8)].str); 40528| 0| (yyval.node) = (Node *) n; 40529| 0| ;} 40530| 0| break; 40531| | 40532| 0| case 1009: ------------------ | Branch (40532:3): [True: 0, False: 76.7M] ------------------ 40533| 0|#line 7503 "gram.y" 40534| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 40535| 0| break; 40536| | 40537| 0| case 1010: ------------------ | Branch (40537:3): [True: 0, False: 76.7M] ------------------ 40538| 0|#line 7504 "gram.y" 40539| 0| { (yyval.str) = NULL; ;} 40540| 0| break; 40541| | 40542| 0| case 1011: ------------------ | Branch (40542:3): [True: 0, False: 76.7M] ------------------ 40543| 0|#line 7507 "gram.y" 40544| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 40545| 0| break; 40546| | 40547| 0| case 1012: ------------------ | Branch (40547:3): [True: 0, False: 76.7M] ------------------ 40548| 0|#line 7508 "gram.y" 40549| 0| { (yyval.str) = NULL; ;} 40550| 0| break; 40551| | 40552| 0| case 1013: ------------------ | Branch (40552:3): [True: 0, False: 76.7M] ------------------ 40553| 0|#line 7519 "gram.y" 40554| 0| { 40555| 0| FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); 40556| | 40557| 0| n->ismove = false; 40558| 0| (yyval.node) = (Node *) n; 40559| 0| ;} 40560| 0| break; 40561| | 40562| 162| case 1014: ------------------ | Branch (40562:3): [True: 162, False: 76.7M] ------------------ 40563| 162|#line 7526 "gram.y" 40564| 162| { 40565| 162| FetchStmt *n = (FetchStmt *) (yyvsp[(2) - (2)].node); 40566| | 40567| 162| n->ismove = true; 40568| 162| (yyval.node) = (Node *) n; 40569| 162| ;} 40570| 162| break; 40571| | 40572| 33| case 1015: ------------------ | Branch (40572:3): [True: 33, False: 76.7M] ------------------ 40573| 33|#line 7535 "gram.y" 40574| 33| { 40575| 33| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 33|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40576| | 40577| 33| n->portalname = (yyvsp[(1) - (1)].str); 40578| 33| n->direction = FETCH_FORWARD; 40579| 33| n->howMany = 1; 40580| 33| (yyval.node) = (Node *) n; 40581| 33| ;} 40582| 33| break; 40583| | 40584| 0| case 1016: ------------------ | Branch (40584:3): [True: 0, False: 76.7M] ------------------ 40585| 0|#line 7544 "gram.y" 40586| 0| { 40587| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40588| | 40589| 0| n->portalname = (yyvsp[(2) - (2)].str); 40590| 0| n->direction = FETCH_FORWARD; 40591| 0| n->howMany = 1; 40592| 0| (yyval.node) = (Node *) n; 40593| 0| ;} 40594| 0| break; 40595| | 40596| 0| case 1017: ------------------ | Branch (40596:3): [True: 0, False: 76.7M] ------------------ 40597| 0|#line 7553 "gram.y" 40598| 0| { 40599| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40600| | 40601| 0| n->portalname = (yyvsp[(3) - (3)].str); 40602| 0| n->direction = FETCH_FORWARD; 40603| 0| n->howMany = 1; 40604| 0| (yyval.node) = (Node *) n; 40605| 0| ;} 40606| 0| break; 40607| | 40608| 0| case 1018: ------------------ | Branch (40608:3): [True: 0, False: 76.7M] ------------------ 40609| 0|#line 7562 "gram.y" 40610| 0| { 40611| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40612| | 40613| 0| n->portalname = (yyvsp[(3) - (3)].str); 40614| 0| n->direction = FETCH_BACKWARD; 40615| 0| n->howMany = 1; 40616| 0| (yyval.node) = (Node *) n; 40617| 0| ;} 40618| 0| break; 40619| | 40620| 0| case 1019: ------------------ | Branch (40620:3): [True: 0, False: 76.7M] ------------------ 40621| 0|#line 7571 "gram.y" 40622| 0| { 40623| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40624| | 40625| 0| n->portalname = (yyvsp[(3) - (3)].str); 40626| 0| n->direction = FETCH_ABSOLUTE; 40627| 0| n->howMany = 1; 40628| 0| (yyval.node) = (Node *) n; 40629| 0| ;} 40630| 0| break; 40631| | 40632| 0| case 1020: ------------------ | Branch (40632:3): [True: 0, False: 76.7M] ------------------ 40633| 0|#line 7580 "gram.y" 40634| 0| { 40635| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40636| | 40637| 0| n->portalname = (yyvsp[(3) - (3)].str); 40638| 0| n->direction = FETCH_ABSOLUTE; 40639| 0| n->howMany = -1; 40640| 0| (yyval.node) = (Node *) n; 40641| 0| ;} 40642| 0| break; 40643| | 40644| 0| case 1021: ------------------ | Branch (40644:3): [True: 0, False: 76.7M] ------------------ 40645| 0|#line 7589 "gram.y" 40646| 0| { 40647| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40648| | 40649| 0| n->portalname = (yyvsp[(4) - (4)].str); 40650| 0| n->direction = FETCH_ABSOLUTE; 40651| 0| n->howMany = (yyvsp[(2) - (4)].ival); 40652| 0| (yyval.node) = (Node *) n; 40653| 0| ;} 40654| 0| break; 40655| | 40656| 0| case 1022: ------------------ | Branch (40656:3): [True: 0, False: 76.7M] ------------------ 40657| 0|#line 7598 "gram.y" 40658| 0| { 40659| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40660| | 40661| 0| n->portalname = (yyvsp[(4) - (4)].str); 40662| 0| n->direction = FETCH_RELATIVE; 40663| 0| n->howMany = (yyvsp[(2) - (4)].ival); 40664| 0| (yyval.node) = (Node *) n; 40665| 0| ;} 40666| 0| break; 40667| | 40668| 0| case 1023: ------------------ | Branch (40668:3): [True: 0, False: 76.7M] ------------------ 40669| 0|#line 7607 "gram.y" 40670| 0| { 40671| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40672| | 40673| 0| n->portalname = (yyvsp[(3) - (3)].str); 40674| 0| n->direction = FETCH_FORWARD; 40675| 0| n->howMany = (yyvsp[(1) - (3)].ival); 40676| 0| (yyval.node) = (Node *) n; 40677| 0| ;} 40678| 0| break; 40679| | 40680| 0| case 1024: ------------------ | Branch (40680:3): [True: 0, False: 76.7M] ------------------ 40681| 0|#line 7616 "gram.y" 40682| 0| { 40683| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40684| | 40685| 0| n->portalname = (yyvsp[(3) - (3)].str); 40686| 0| n->direction = FETCH_FORWARD; 40687| 0| n->howMany = FETCH_ALL; ------------------ | | 3427| 0|#define FETCH_ALL LONG_MAX ------------------ 40688| 0| (yyval.node) = (Node *) n; 40689| 0| ;} 40690| 0| break; 40691| | 40692| 0| case 1025: ------------------ | Branch (40692:3): [True: 0, False: 76.7M] ------------------ 40693| 0|#line 7625 "gram.y" 40694| 0| { 40695| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40696| | 40697| 0| n->portalname = (yyvsp[(3) - (3)].str); 40698| 0| n->direction = FETCH_FORWARD; 40699| 0| n->howMany = 1; 40700| 0| (yyval.node) = (Node *) n; 40701| 0| ;} 40702| 0| break; 40703| | 40704| 0| case 1026: ------------------ | Branch (40704:3): [True: 0, False: 76.7M] ------------------ 40705| 0|#line 7634 "gram.y" 40706| 0| { 40707| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40708| | 40709| 0| n->portalname = (yyvsp[(4) - (4)].str); 40710| 0| n->direction = FETCH_FORWARD; 40711| 0| n->howMany = (yyvsp[(2) - (4)].ival); 40712| 0| (yyval.node) = (Node *) n; 40713| 0| ;} 40714| 0| break; 40715| | 40716| 0| case 1027: ------------------ | Branch (40716:3): [True: 0, False: 76.7M] ------------------ 40717| 0|#line 7643 "gram.y" 40718| 0| { 40719| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40720| | 40721| 0| n->portalname = (yyvsp[(4) - (4)].str); 40722| 0| n->direction = FETCH_FORWARD; 40723| 0| n->howMany = FETCH_ALL; ------------------ | | 3427| 0|#define FETCH_ALL LONG_MAX ------------------ 40724| 0| (yyval.node) = (Node *) n; 40725| 0| ;} 40726| 0| break; 40727| | 40728| 0| case 1028: ------------------ | Branch (40728:3): [True: 0, False: 76.7M] ------------------ 40729| 0|#line 7652 "gram.y" 40730| 0| { 40731| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40732| | 40733| 0| n->portalname = (yyvsp[(3) - (3)].str); 40734| 0| n->direction = FETCH_BACKWARD; 40735| 0| n->howMany = 1; 40736| 0| (yyval.node) = (Node *) n; 40737| 0| ;} 40738| 0| break; 40739| | 40740| 129| case 1029: ------------------ | Branch (40740:3): [True: 129, False: 76.7M] ------------------ 40741| 129|#line 7661 "gram.y" 40742| 129| { 40743| 129| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 129|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40744| | 40745| 129| n->portalname = (yyvsp[(4) - (4)].str); 40746| 129| n->direction = FETCH_BACKWARD; 40747| 129| n->howMany = (yyvsp[(2) - (4)].ival); 40748| 129| (yyval.node) = (Node *) n; 40749| 129| ;} 40750| 129| break; 40751| | 40752| 0| case 1030: ------------------ | Branch (40752:3): [True: 0, False: 76.7M] ------------------ 40753| 0|#line 7670 "gram.y" 40754| 0| { 40755| 0| FetchStmt *n = makeNode(FetchStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40756| | 40757| 0| n->portalname = (yyvsp[(4) - (4)].str); 40758| 0| n->direction = FETCH_BACKWARD; 40759| 0| n->howMany = FETCH_ALL; ------------------ | | 3427| 0|#define FETCH_ALL LONG_MAX ------------------ 40760| 0| (yyval.node) = (Node *) n; 40761| 0| ;} 40762| 0| break; 40763| | 40764| 522| case 1035: ------------------ | Branch (40764:3): [True: 522, False: 76.7M] ------------------ 40765| 522|#line 7697 "gram.y" 40766| 522| { 40767| 522| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 522|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40768| | 40769| 522| n->is_grant = true; 40770| 522| n->privileges = (yyvsp[(2) - (8)].list); 40771| 522| n->targtype = ((yyvsp[(4) - (8)].privtarget))->targtype; 40772| 522| n->objtype = ((yyvsp[(4) - (8)].privtarget))->objtype; 40773| 522| n->objects = ((yyvsp[(4) - (8)].privtarget))->objs; 40774| 522| n->grantees = (yyvsp[(6) - (8)].list); 40775| 522| n->grant_option = (yyvsp[(7) - (8)].boolean); 40776| 522| n->grantor = (yyvsp[(8) - (8)].rolespec); 40777| 522| (yyval.node) = (Node *) n; 40778| 522| ;} 40779| 522| break; 40780| | 40781| 0| case 1036: ------------------ | Branch (40781:3): [True: 0, False: 76.7M] ------------------ 40782| 0|#line 7715 "gram.y" 40783| 0| { 40784| 0| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40785| | 40786| 0| n->is_grant = false; 40787| 0| n->grant_option = false; 40788| 0| n->privileges = (yyvsp[(2) - (8)].list); 40789| 0| n->targtype = ((yyvsp[(4) - (8)].privtarget))->targtype; 40790| 0| n->objtype = ((yyvsp[(4) - (8)].privtarget))->objtype; 40791| 0| n->objects = ((yyvsp[(4) - (8)].privtarget))->objs; 40792| 0| n->grantees = (yyvsp[(6) - (8)].list); 40793| 0| n->grantor = (yyvsp[(7) - (8)].rolespec); 40794| 0| n->behavior = (yyvsp[(8) - (8)].dbehavior); 40795| 0| (yyval.node) = (Node *) n; 40796| 0| ;} 40797| 0| break; 40798| | 40799| 0| case 1037: ------------------ | Branch (40799:3): [True: 0, False: 76.7M] ------------------ 40800| 0|#line 7731 "gram.y" 40801| 0| { 40802| 0| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40803| | 40804| 0| n->is_grant = false; 40805| 0| n->grant_option = true; 40806| 0| n->privileges = (yyvsp[(5) - (11)].list); 40807| 0| n->targtype = ((yyvsp[(7) - (11)].privtarget))->targtype; 40808| 0| n->objtype = ((yyvsp[(7) - (11)].privtarget))->objtype; 40809| 0| n->objects = ((yyvsp[(7) - (11)].privtarget))->objs; 40810| 0| n->grantees = (yyvsp[(9) - (11)].list); 40811| 0| n->grantor = (yyvsp[(10) - (11)].rolespec); 40812| 0| n->behavior = (yyvsp[(11) - (11)].dbehavior); 40813| 0| (yyval.node) = (Node *) n; 40814| 0| ;} 40815| 0| break; 40816| | 40817| 136| case 1038: ------------------ | Branch (40817:3): [True: 136, False: 76.7M] ------------------ 40818| 136|#line 7758 "gram.y" 40819| 136| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 40820| 136| break; 40821| | 40822| 385| case 1039: ------------------ | Branch (40822:3): [True: 385, False: 76.7M] ------------------ 40823| 385|#line 7760 "gram.y" 40824| 385| { (yyval.list) = NIL; ;} ------------------ | | 68| 385|#define NIL ((List *) NULL) ------------------ 40825| 385| break; 40826| | 40827| 0| case 1040: ------------------ | Branch (40827:3): [True: 0, False: 76.7M] ------------------ 40828| 0|#line 7762 "gram.y" 40829| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 40830| 0| break; 40831| | 40832| 2| case 1041: ------------------ | Branch (40832:3): [True: 2, False: 76.7M] ------------------ 40833| 2|#line 7764 "gram.y" 40834| 2| { 40835| 2| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40836| | 40837| 2| n->priv_name = NULL; 40838| 2| n->cols = (yyvsp[(3) - (4)].list); 40839| 2| (yyval.list) = list_make1(n); ------------------ | | 213| 2| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40840| 2| ;} 40841| 2| break; 40842| | 40843| 0| case 1042: ------------------ | Branch (40843:3): [True: 0, False: 76.7M] ------------------ 40844| 0|#line 7772 "gram.y" 40845| 0| { 40846| 0| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40847| | 40848| 0| n->priv_name = NULL; 40849| 0| n->cols = (yyvsp[(4) - (5)].list); 40850| 0| (yyval.list) = list_make1(n); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40851| 0| ;} 40852| 0| break; 40853| | 40854| 140| case 1043: ------------------ | Branch (40854:3): [True: 140, False: 76.7M] ------------------ 40855| 140|#line 7781 "gram.y" 40856| 140| { (yyval.list) = list_make1((yyvsp[(1) - (1)].accesspriv)); ;} ------------------ | | 213| 140| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 140|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40857| 140| break; 40858| | 40859| 59.0k| case 1044: ------------------ | Branch (40859:3): [True: 59.0k, False: 76.7M] ------------------ 40860| 59.0k|#line 7782 "gram.y" 40861| 59.0k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].accesspriv)); ;} 40862| 59.0k| break; 40863| | 40864| 0| case 1045: ------------------ | Branch (40864:3): [True: 0, False: 76.7M] ------------------ 40865| 0|#line 7786 "gram.y" 40866| 0| { 40867| 0| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40868| | 40869| 0| n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); 40870| 0| n->cols = (yyvsp[(2) - (2)].list); 40871| 0| (yyval.accesspriv) = n; 40872| 0| ;} 40873| 0| break; 40874| | 40875| 0| case 1046: ------------------ | Branch (40875:3): [True: 0, False: 76.7M] ------------------ 40876| 0|#line 7794 "gram.y" 40877| 0| { 40878| 0| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40879| | 40880| 0| n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); 40881| 0| n->cols = (yyvsp[(2) - (2)].list); 40882| 0| (yyval.accesspriv) = n; 40883| 0| ;} 40884| 0| break; 40885| | 40886| 0| case 1047: ------------------ | Branch (40886:3): [True: 0, False: 76.7M] ------------------ 40887| 0|#line 7802 "gram.y" 40888| 0| { 40889| 0| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40890| | 40891| 0| n->priv_name = pstrdup((yyvsp[(1) - (2)].keyword)); 40892| 0| n->cols = (yyvsp[(2) - (2)].list); 40893| 0| (yyval.accesspriv) = n; 40894| 0| ;} 40895| 0| break; 40896| | 40897| 0| case 1048: ------------------ | Branch (40897:3): [True: 0, False: 76.7M] ------------------ 40898| 0|#line 7810 "gram.y" 40899| 0| { 40900| 0| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40901| 0| n->priv_name = pstrdup("alter system"); 40902| 0| n->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 40903| 0| (yyval.accesspriv) = n; 40904| 0| ;} 40905| 0| break; 40906| | 40907| 59.2k| case 1049: ------------------ | Branch (40907:3): [True: 59.2k, False: 76.7M] ------------------ 40908| 59.2k|#line 7817 "gram.y" 40909| 59.2k| { 40910| 59.2k| AccessPriv *n = makeNode(AccessPriv); ------------------ | | 161| 59.2k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 40911| | 40912| 59.2k| n->priv_name = (yyvsp[(1) - (2)].str); 40913| 59.2k| n->cols = (yyvsp[(2) - (2)].list); 40914| 59.2k| (yyval.accesspriv) = n; 40915| 59.2k| ;} 40916| 59.2k| break; 40917| | 40918| 0| case 1050: ------------------ | Branch (40918:3): [True: 0, False: 76.7M] ------------------ 40919| 0|#line 7828 "gram.y" 40920| 0| { 40921| 0| (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 40922| 0| ;} 40923| 0| break; 40924| | 40925| 0| case 1051: ------------------ | Branch (40925:3): [True: 0, False: 76.7M] ------------------ 40926| 0|#line 7832 "gram.y" 40927| 0| { 40928| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); 40929| 0| ;} 40930| 0| break; 40931| | 40932| 0| case 1052: ------------------ | Branch (40932:3): [True: 0, False: 76.7M] ------------------ 40933| 0|#line 7839 "gram.y" 40934| 0| { 40935| 0| (yyval.str) = NameListToString((yyvsp[(1) - (1)].list)); 40936| 0| ;} 40937| 0| break; 40938| | 40939| 388| case 1053: ------------------ | Branch (40939:3): [True: 388, False: 76.7M] ------------------ 40940| 388|#line 7850 "gram.y" 40941| 388| { 40942| 388| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 40943| | 40944| 388| n->targtype = ACL_TARGET_OBJECT; 40945| 388| n->objtype = OBJECT_TABLE; 40946| 388| n->objs = (yyvsp[(1) - (1)].list); 40947| 388| (yyval.privtarget) = n; 40948| 388| ;} 40949| 388| break; 40950| | 40951| 0| case 1054: ------------------ | Branch (40951:3): [True: 0, False: 76.7M] ------------------ 40952| 0|#line 7859 "gram.y" 40953| 0| { 40954| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 40955| | 40956| 0| n->targtype = ACL_TARGET_OBJECT; 40957| 0| n->objtype = OBJECT_TABLE; 40958| 0| n->objs = (yyvsp[(2) - (2)].list); 40959| 0| (yyval.privtarget) = n; 40960| 0| ;} 40961| 0| break; 40962| | 40963| 0| case 1055: ------------------ | Branch (40963:3): [True: 0, False: 76.7M] ------------------ 40964| 0|#line 7868 "gram.y" 40965| 0| { 40966| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 40967| | 40968| 0| n->targtype = ACL_TARGET_OBJECT; 40969| 0| n->objtype = OBJECT_SEQUENCE; 40970| 0| n->objs = (yyvsp[(2) - (2)].list); 40971| 0| (yyval.privtarget) = n; 40972| 0| ;} 40973| 0| break; 40974| | 40975| 0| case 1056: ------------------ | Branch (40975:3): [True: 0, False: 76.7M] ------------------ 40976| 0|#line 7877 "gram.y" 40977| 0| { 40978| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 40979| | 40980| 0| n->targtype = ACL_TARGET_OBJECT; 40981| 0| n->objtype = OBJECT_FDW; 40982| 0| n->objs = (yyvsp[(4) - (4)].list); 40983| 0| (yyval.privtarget) = n; 40984| 0| ;} 40985| 0| break; 40986| | 40987| 0| case 1057: ------------------ | Branch (40987:3): [True: 0, False: 76.7M] ------------------ 40988| 0|#line 7886 "gram.y" 40989| 0| { 40990| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 40991| | 40992| 0| n->targtype = ACL_TARGET_OBJECT; 40993| 0| n->objtype = OBJECT_FOREIGN_SERVER; 40994| 0| n->objs = (yyvsp[(3) - (3)].list); 40995| 0| (yyval.privtarget) = n; 40996| 0| ;} 40997| 0| break; 40998| | 40999| 0| case 1058: ------------------ | Branch (40999:3): [True: 0, False: 76.7M] ------------------ 41000| 0|#line 7895 "gram.y" 41001| 0| { 41002| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41003| | 41004| 0| n->targtype = ACL_TARGET_OBJECT; 41005| 0| n->objtype = OBJECT_FUNCTION; 41006| 0| n->objs = (yyvsp[(2) - (2)].list); 41007| 0| (yyval.privtarget) = n; 41008| 0| ;} 41009| 0| break; 41010| | 41011| 0| case 1059: ------------------ | Branch (41011:3): [True: 0, False: 76.7M] ------------------ 41012| 0|#line 7904 "gram.y" 41013| 0| { 41014| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41015| | 41016| 0| n->targtype = ACL_TARGET_OBJECT; 41017| 0| n->objtype = OBJECT_PROCEDURE; 41018| 0| n->objs = (yyvsp[(2) - (2)].list); 41019| 0| (yyval.privtarget) = n; 41020| 0| ;} 41021| 0| break; 41022| | 41023| 130| case 1060: ------------------ | Branch (41023:3): [True: 130, False: 76.7M] ------------------ 41024| 130|#line 7913 "gram.y" 41025| 130| { 41026| 130| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41027| | 41028| 130| n->targtype = ACL_TARGET_OBJECT; 41029| 130| n->objtype = OBJECT_ROUTINE; 41030| 130| n->objs = (yyvsp[(2) - (2)].list); 41031| 130| (yyval.privtarget) = n; 41032| 130| ;} 41033| 130| break; 41034| | 41035| 0| case 1061: ------------------ | Branch (41035:3): [True: 0, False: 76.7M] ------------------ 41036| 0|#line 7922 "gram.y" 41037| 0| { 41038| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41039| | 41040| 0| n->targtype = ACL_TARGET_OBJECT; 41041| 0| n->objtype = OBJECT_DATABASE; 41042| 0| n->objs = (yyvsp[(2) - (2)].list); 41043| 0| (yyval.privtarget) = n; 41044| 0| ;} 41045| 0| break; 41046| | 41047| 0| case 1062: ------------------ | Branch (41047:3): [True: 0, False: 76.7M] ------------------ 41048| 0|#line 7931 "gram.y" 41049| 0| { 41050| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41051| | 41052| 0| n->targtype = ACL_TARGET_OBJECT; 41053| 0| n->objtype = OBJECT_DOMAIN; 41054| 0| n->objs = (yyvsp[(2) - (2)].list); 41055| 0| (yyval.privtarget) = n; 41056| 0| ;} 41057| 0| break; 41058| | 41059| 0| case 1063: ------------------ | Branch (41059:3): [True: 0, False: 76.7M] ------------------ 41060| 0|#line 7940 "gram.y" 41061| 0| { 41062| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41063| | 41064| 0| n->targtype = ACL_TARGET_OBJECT; 41065| 0| n->objtype = OBJECT_LANGUAGE; 41066| 0| n->objs = (yyvsp[(2) - (2)].list); 41067| 0| (yyval.privtarget) = n; 41068| 0| ;} 41069| 0| break; 41070| | 41071| 0| case 1064: ------------------ | Branch (41071:3): [True: 0, False: 76.7M] ------------------ 41072| 0|#line 7949 "gram.y" 41073| 0| { 41074| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41075| | 41076| 0| n->targtype = ACL_TARGET_OBJECT; 41077| 0| n->objtype = OBJECT_LARGEOBJECT; 41078| 0| n->objs = (yyvsp[(3) - (3)].list); 41079| 0| (yyval.privtarget) = n; 41080| 0| ;} 41081| 0| break; 41082| | 41083| 0| case 1065: ------------------ | Branch (41083:3): [True: 0, False: 76.7M] ------------------ 41084| 0|#line 7958 "gram.y" 41085| 0| { 41086| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41087| 0| n->targtype = ACL_TARGET_OBJECT; 41088| 0| n->objtype = OBJECT_PARAMETER_ACL; 41089| 0| n->objs = (yyvsp[(2) - (2)].list); 41090| 0| (yyval.privtarget) = n; 41091| 0| ;} 41092| 0| break; 41093| | 41094| 4| case 1066: ------------------ | Branch (41094:3): [True: 4, False: 76.7M] ------------------ 41095| 4|#line 7966 "gram.y" 41096| 4| { 41097| 4| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41098| | 41099| 4| n->targtype = ACL_TARGET_OBJECT; 41100| 4| n->objtype = OBJECT_SCHEMA; 41101| 4| n->objs = (yyvsp[(2) - (2)].list); 41102| 4| (yyval.privtarget) = n; 41103| 4| ;} 41104| 4| break; 41105| | 41106| 0| case 1067: ------------------ | Branch (41106:3): [True: 0, False: 76.7M] ------------------ 41107| 0|#line 7975 "gram.y" 41108| 0| { 41109| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41110| | 41111| 0| n->targtype = ACL_TARGET_OBJECT; 41112| 0| n->objtype = OBJECT_TABLESPACE; 41113| 0| n->objs = (yyvsp[(2) - (2)].list); 41114| 0| (yyval.privtarget) = n; 41115| 0| ;} 41116| 0| break; 41117| | 41118| 0| case 1068: ------------------ | Branch (41118:3): [True: 0, False: 76.7M] ------------------ 41119| 0|#line 7984 "gram.y" 41120| 0| { 41121| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41122| | 41123| 0| n->targtype = ACL_TARGET_OBJECT; 41124| 0| n->objtype = OBJECT_TYPE; 41125| 0| n->objs = (yyvsp[(2) - (2)].list); 41126| 0| (yyval.privtarget) = n; 41127| 0| ;} 41128| 0| break; 41129| | 41130| 0| case 1069: ------------------ | Branch (41130:3): [True: 0, False: 76.7M] ------------------ 41131| 0|#line 7993 "gram.y" 41132| 0| { 41133| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41134| | 41135| 0| n->targtype = ACL_TARGET_ALL_IN_SCHEMA; 41136| 0| n->objtype = OBJECT_TABLE; 41137| 0| n->objs = (yyvsp[(5) - (5)].list); 41138| 0| (yyval.privtarget) = n; 41139| 0| ;} 41140| 0| break; 41141| | 41142| 0| case 1070: ------------------ | Branch (41142:3): [True: 0, False: 76.7M] ------------------ 41143| 0|#line 8002 "gram.y" 41144| 0| { 41145| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41146| | 41147| 0| n->targtype = ACL_TARGET_ALL_IN_SCHEMA; 41148| 0| n->objtype = OBJECT_SEQUENCE; 41149| 0| n->objs = (yyvsp[(5) - (5)].list); 41150| 0| (yyval.privtarget) = n; 41151| 0| ;} 41152| 0| break; 41153| | 41154| 0| case 1071: ------------------ | Branch (41154:3): [True: 0, False: 76.7M] ------------------ 41155| 0|#line 8011 "gram.y" 41156| 0| { 41157| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41158| | 41159| 0| n->targtype = ACL_TARGET_ALL_IN_SCHEMA; 41160| 0| n->objtype = OBJECT_FUNCTION; 41161| 0| n->objs = (yyvsp[(5) - (5)].list); 41162| 0| (yyval.privtarget) = n; 41163| 0| ;} 41164| 0| break; 41165| | 41166| 0| case 1072: ------------------ | Branch (41166:3): [True: 0, False: 76.7M] ------------------ 41167| 0|#line 8020 "gram.y" 41168| 0| { 41169| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41170| | 41171| 0| n->targtype = ACL_TARGET_ALL_IN_SCHEMA; 41172| 0| n->objtype = OBJECT_PROCEDURE; 41173| 0| n->objs = (yyvsp[(5) - (5)].list); 41174| 0| (yyval.privtarget) = n; 41175| 0| ;} 41176| 0| break; 41177| | 41178| 0| case 1073: ------------------ | Branch (41178:3): [True: 0, False: 76.7M] ------------------ 41179| 0|#line 8029 "gram.y" 41180| 0| { 41181| 0| PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); 41182| | 41183| 0| n->targtype = ACL_TARGET_ALL_IN_SCHEMA; 41184| 0| n->objtype = OBJECT_ROUTINE; 41185| 0| n->objs = (yyvsp[(5) - (5)].list); 41186| 0| (yyval.privtarget) = n; 41187| 0| ;} 41188| 0| break; 41189| | 41190| 522| case 1074: ------------------ | Branch (41190:3): [True: 522, False: 76.7M] ------------------ 41191| 522|#line 8041 "gram.y" 41192| 522| { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} ------------------ | | 213| 522| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 522|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41193| 522| break; 41194| | 41195| 34.9k| case 1075: ------------------ | Branch (41195:3): [True: 34.9k, False: 76.7M] ------------------ 41196| 34.9k|#line 8042 "gram.y" 41197| 34.9k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} 41198| 34.9k| break; 41199| | 41200| 35.4k| case 1076: ------------------ | Branch (41200:3): [True: 35.4k, False: 76.7M] ------------------ 41201| 35.4k|#line 8046 "gram.y" 41202| 35.4k| { (yyval.rolespec) = (yyvsp[(1) - (1)].rolespec); ;} 41203| 35.4k| break; 41204| | 41205| 0| case 1077: ------------------ | Branch (41205:3): [True: 0, False: 76.7M] ------------------ 41206| 0|#line 8047 "gram.y" 41207| 0| { (yyval.rolespec) = (yyvsp[(2) - (2)].rolespec); ;} 41208| 0| break; 41209| | 41210| 0| case 1078: ------------------ | Branch (41210:3): [True: 0, False: 76.7M] ------------------ 41211| 0|#line 8052 "gram.y" 41212| 0| { (yyval.boolean) = true; ;} 41213| 0| break; 41214| | 41215| 522| case 1079: ------------------ | Branch (41215:3): [True: 522, False: 76.7M] ------------------ 41216| 522|#line 8053 "gram.y" 41217| 522| { (yyval.boolean) = false; ;} 41218| 522| break; 41219| | 41220| 4| case 1080: ------------------ | Branch (41220:3): [True: 4, False: 76.7M] ------------------ 41221| 4|#line 8064 "gram.y" 41222| 4| { 41223| 4| GrantRoleStmt *n = makeNode(GrantRoleStmt); ------------------ | | 161| 4|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41224| | 41225| 4| n->is_grant = true; 41226| 4| n->granted_roles = (yyvsp[(2) - (5)].list); 41227| 4| n->grantee_roles = (yyvsp[(4) - (5)].list); 41228| 4| n->opt = NIL; ------------------ | | 68| 4|#define NIL ((List *) NULL) ------------------ 41229| 4| n->grantor = (yyvsp[(5) - (5)].rolespec); 41230| 4| (yyval.node) = (Node *) n; 41231| 4| ;} 41232| 4| break; 41233| | 41234| 0| case 1081: ------------------ | Branch (41234:3): [True: 0, False: 76.7M] ------------------ 41235| 0|#line 8075 "gram.y" 41236| 0| { 41237| 0| GrantRoleStmt *n = makeNode(GrantRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41238| | 41239| 0| n->is_grant = true; 41240| 0| n->granted_roles = (yyvsp[(2) - (7)].list); 41241| 0| n->grantee_roles = (yyvsp[(4) - (7)].list); 41242| 0| n->opt = (yyvsp[(6) - (7)].list); 41243| 0| n->grantor = (yyvsp[(7) - (7)].rolespec); 41244| 0| (yyval.node) = (Node *) n; 41245| 0| ;} 41246| 0| break; 41247| | 41248| 0| case 1082: ------------------ | Branch (41248:3): [True: 0, False: 76.7M] ------------------ 41249| 0|#line 8089 "gram.y" 41250| 0| { 41251| 0| GrantRoleStmt *n = makeNode(GrantRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41252| | 41253| 0| n->is_grant = false; 41254| 0| n->opt = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41255| 0| n->granted_roles = (yyvsp[(2) - (6)].list); 41256| 0| n->grantee_roles = (yyvsp[(4) - (6)].list); 41257| 0| n->grantor = (yyvsp[(5) - (6)].rolespec); 41258| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 41259| 0| (yyval.node) = (Node *) n; 41260| 0| ;} 41261| 0| break; 41262| | 41263| 0| case 1083: ------------------ | Branch (41263:3): [True: 0, False: 76.7M] ------------------ 41264| 0|#line 8101 "gram.y" 41265| 0| { 41266| 0| GrantRoleStmt *n = makeNode(GrantRoleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41267| 0| DefElem *opt; 41268| | 41269| 0| opt = makeDefElem(pstrdup((yyvsp[(2) - (9)].str)), 41270| 0| (Node *) makeBoolean(false), (yylsp[(2) - (9)])); 41271| 0| n->is_grant = false; 41272| 0| n->opt = list_make1(opt); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41273| 0| n->granted_roles = (yyvsp[(5) - (9)].list); 41274| 0| n->grantee_roles = (yyvsp[(7) - (9)].list); 41275| 0| n->grantor = (yyvsp[(8) - (9)].rolespec); 41276| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 41277| 0| (yyval.node) = (Node *) n; 41278| 0| ;} 41279| 0| break; 41280| | 41281| 0| case 1084: ------------------ | Branch (41281:3): [True: 0, False: 76.7M] ------------------ 41282| 0|#line 8118 "gram.y" 41283| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 41284| 0| break; 41285| | 41286| 0| case 1085: ------------------ | Branch (41286:3): [True: 0, False: 76.7M] ------------------ 41287| 0|#line 8119 "gram.y" 41288| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41289| 0| break; 41290| | 41291| 0| case 1086: ------------------ | Branch (41291:3): [True: 0, False: 76.7M] ------------------ 41292| 0|#line 8124 "gram.y" 41293| 0| { 41294| 0| (yyval.defelt) = makeDefElem(pstrdup((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 41295| 0| ;} 41296| 0| break; 41297| | 41298| 0| case 1087: ------------------ | Branch (41298:3): [True: 0, False: 76.7M] ------------------ 41299| 0|#line 8130 "gram.y" 41300| 0| { (yyval.node) = (Node *) makeBoolean(true); ;} 41301| 0| break; 41302| | 41303| 0| case 1088: ------------------ | Branch (41303:3): [True: 0, False: 76.7M] ------------------ 41304| 0|#line 8131 "gram.y" 41305| 0| { (yyval.node) = (Node *) makeBoolean(true); ;} 41306| 0| break; 41307| | 41308| 0| case 1089: ------------------ | Branch (41308:3): [True: 0, False: 76.7M] ------------------ 41309| 0|#line 8132 "gram.y" 41310| 0| { (yyval.node) = (Node *) makeBoolean(false); ;} 41311| 0| break; 41312| | 41313| 0| case 1090: ------------------ | Branch (41313:3): [True: 0, False: 76.7M] ------------------ 41314| 0|#line 8135 "gram.y" 41315| 0| { (yyval.rolespec) = (yyvsp[(3) - (3)].rolespec); ;} 41316| 0| break; 41317| | 41318| 526| case 1091: ------------------ | Branch (41318:3): [True: 526, False: 76.7M] ------------------ 41319| 526|#line 8136 "gram.y" 41320| 526| { (yyval.rolespec) = NULL; ;} 41321| 526| break; 41322| | 41323| 0| case 1092: ------------------ | Branch (41323:3): [True: 0, False: 76.7M] ------------------ 41324| 0|#line 8147 "gram.y" 41325| 0| { 41326| 0| AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41327| | 41328| 0| n->options = (yyvsp[(4) - (5)].list); 41329| 0| n->action = (GrantStmt *) (yyvsp[(5) - (5)].node); 41330| 0| (yyval.node) = (Node *) n; 41331| 0| ;} 41332| 0| break; 41333| | 41334| 0| case 1093: ------------------ | Branch (41334:3): [True: 0, False: 76.7M] ------------------ 41335| 0|#line 8157 "gram.y" 41336| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 41337| 0| break; 41338| | 41339| 0| case 1094: ------------------ | Branch (41339:3): [True: 0, False: 76.7M] ------------------ 41340| 0|#line 8158 "gram.y" 41341| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41342| 0| break; 41343| | 41344| 0| case 1095: ------------------ | Branch (41344:3): [True: 0, False: 76.7M] ------------------ 41345| 0|#line 8163 "gram.y" 41346| 0| { 41347| 0| (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 41348| 0| ;} 41349| 0| break; 41350| | 41351| 0| case 1096: ------------------ | Branch (41351:3): [True: 0, False: 76.7M] ------------------ 41352| 0|#line 8167 "gram.y" 41353| 0| { 41354| 0| (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 41355| 0| ;} 41356| 0| break; 41357| | 41358| 0| case 1097: ------------------ | Branch (41358:3): [True: 0, False: 76.7M] ------------------ 41359| 0|#line 8171 "gram.y" 41360| 0| { 41361| 0| (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[(3) - (3)].list), (yylsp[(1) - (3)])); 41362| 0| ;} 41363| 0| break; 41364| | 41365| 0| case 1098: ------------------ | Branch (41365:3): [True: 0, False: 76.7M] ------------------ 41366| 0|#line 8183 "gram.y" 41367| 0| { 41368| 0| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41369| | 41370| 0| n->is_grant = true; 41371| 0| n->privileges = (yyvsp[(2) - (7)].list); 41372| 0| n->targtype = ACL_TARGET_DEFAULTS; 41373| 0| n->objtype = (yyvsp[(4) - (7)].ival); 41374| 0| n->objects = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41375| 0| n->grantees = (yyvsp[(6) - (7)].list); 41376| 0| n->grant_option = (yyvsp[(7) - (7)].boolean); 41377| 0| (yyval.node) = (Node *) n; 41378| 0| ;} 41379| 0| break; 41380| | 41381| 0| case 1099: ------------------ | Branch (41381:3): [True: 0, False: 76.7M] ------------------ 41382| 0|#line 8197 "gram.y" 41383| 0| { 41384| 0| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41385| | 41386| 0| n->is_grant = false; 41387| 0| n->grant_option = false; 41388| 0| n->privileges = (yyvsp[(2) - (7)].list); 41389| 0| n->targtype = ACL_TARGET_DEFAULTS; 41390| 0| n->objtype = (yyvsp[(4) - (7)].ival); 41391| 0| n->objects = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41392| 0| n->grantees = (yyvsp[(6) - (7)].list); 41393| 0| n->behavior = (yyvsp[(7) - (7)].dbehavior); 41394| 0| (yyval.node) = (Node *) n; 41395| 0| ;} 41396| 0| break; 41397| | 41398| 0| case 1100: ------------------ | Branch (41398:3): [True: 0, False: 76.7M] ------------------ 41399| 0|#line 8212 "gram.y" 41400| 0| { 41401| 0| GrantStmt *n = makeNode(GrantStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41402| | 41403| 0| n->is_grant = false; 41404| 0| n->grant_option = true; 41405| 0| n->privileges = (yyvsp[(5) - (10)].list); 41406| 0| n->targtype = ACL_TARGET_DEFAULTS; 41407| 0| n->objtype = (yyvsp[(7) - (10)].ival); 41408| 0| n->objects = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41409| 0| n->grantees = (yyvsp[(9) - (10)].list); 41410| 0| n->behavior = (yyvsp[(10) - (10)].dbehavior); 41411| 0| (yyval.node) = (Node *) n; 41412| 0| ;} 41413| 0| break; 41414| | 41415| 0| case 1101: ------------------ | Branch (41415:3): [True: 0, False: 76.7M] ------------------ 41416| 0|#line 8228 "gram.y" 41417| 0| { (yyval.ival) = OBJECT_TABLE; ;} 41418| 0| break; 41419| | 41420| 0| case 1102: ------------------ | Branch (41420:3): [True: 0, False: 76.7M] ------------------ 41421| 0|#line 8229 "gram.y" 41422| 0| { (yyval.ival) = OBJECT_FUNCTION; ;} 41423| 0| break; 41424| | 41425| 0| case 1103: ------------------ | Branch (41425:3): [True: 0, False: 76.7M] ------------------ 41426| 0|#line 8230 "gram.y" 41427| 0| { (yyval.ival) = OBJECT_FUNCTION; ;} 41428| 0| break; 41429| | 41430| 0| case 1104: ------------------ | Branch (41430:3): [True: 0, False: 76.7M] ------------------ 41431| 0|#line 8231 "gram.y" 41432| 0| { (yyval.ival) = OBJECT_SEQUENCE; ;} 41433| 0| break; 41434| | 41435| 0| case 1105: ------------------ | Branch (41435:3): [True: 0, False: 76.7M] ------------------ 41436| 0|#line 8232 "gram.y" 41437| 0| { (yyval.ival) = OBJECT_TYPE; ;} 41438| 0| break; 41439| | 41440| 0| case 1106: ------------------ | Branch (41440:3): [True: 0, False: 76.7M] ------------------ 41441| 0|#line 8233 "gram.y" 41442| 0| { (yyval.ival) = OBJECT_SCHEMA; ;} 41443| 0| break; 41444| | 41445| 0| case 1107: ------------------ | Branch (41445:3): [True: 0, False: 76.7M] ------------------ 41446| 0|#line 8234 "gram.y" 41447| 0| { (yyval.ival) = OBJECT_LARGEOBJECT; ;} 41448| 0| break; 41449| | 41450| 153| case 1108: ------------------ | Branch (41450:3): [True: 153, False: 76.7M] ------------------ 41451| 153|#line 8249 "gram.y" 41452| 153| { 41453| 153| IndexStmt *n = makeNode(IndexStmt); ------------------ | | 161| 153|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41454| | 41455| 153| n->unique = (yyvsp[(2) - (16)].boolean); 41456| 153| n->concurrent = (yyvsp[(4) - (16)].boolean); 41457| 153| n->idxname = (yyvsp[(5) - (16)].str); 41458| 153| n->relation = (yyvsp[(7) - (16)].range); 41459| 153| n->accessMethod = (yyvsp[(8) - (16)].str); 41460| 153| n->indexParams = (yyvsp[(10) - (16)].list); 41461| 153| n->indexIncludingParams = (yyvsp[(12) - (16)].list); 41462| 153| n->nulls_not_distinct = !(yyvsp[(13) - (16)].boolean); 41463| 153| n->options = (yyvsp[(14) - (16)].list); 41464| 153| n->tableSpace = (yyvsp[(15) - (16)].str); 41465| 153| n->whereClause = (yyvsp[(16) - (16)].node); 41466| 153| n->excludeOpNames = NIL; ------------------ | | 68| 153|#define NIL ((List *) NULL) ------------------ 41467| 153| n->idxcomment = NULL; 41468| 153| n->indexOid = InvalidOid; ------------------ | | 37| 153|#define InvalidOid ((Oid) 0) ------------------ 41469| 153| n->oldNumber = InvalidRelFileNumber; ------------------ | | 26| 153|#define InvalidRelFileNumber ((RelFileNumber) InvalidOid) | | ------------------ | | | | 37| 153|#define InvalidOid ((Oid) 0) | | ------------------ ------------------ 41470| 153| n->oldCreateSubid = InvalidSubTransactionId; ------------------ | | 644| 153|#define InvalidSubTransactionId ((SubTransactionId) 0) ------------------ 41471| 153| n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId; ------------------ | | 644| 153|#define InvalidSubTransactionId ((SubTransactionId) 0) ------------------ 41472| 153| n->primary = false; 41473| 153| n->isconstraint = false; 41474| 153| n->deferrable = false; 41475| 153| n->initdeferred = false; 41476| 153| n->transformed = false; 41477| 153| n->if_not_exists = false; 41478| 153| n->reset_default_tblspc = false; 41479| 153| (yyval.node) = (Node *) n; 41480| 153| ;} 41481| 153| break; 41482| | 41483| 0| case 1109: ------------------ | Branch (41483:3): [True: 0, False: 76.7M] ------------------ 41484| 0|#line 8281 "gram.y" 41485| 0| { 41486| 0| IndexStmt *n = makeNode(IndexStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41487| | 41488| 0| n->unique = (yyvsp[(2) - (19)].boolean); 41489| 0| n->concurrent = (yyvsp[(4) - (19)].boolean); 41490| 0| n->idxname = (yyvsp[(8) - (19)].str); 41491| 0| n->relation = (yyvsp[(10) - (19)].range); 41492| 0| n->accessMethod = (yyvsp[(11) - (19)].str); 41493| 0| n->indexParams = (yyvsp[(13) - (19)].list); 41494| 0| n->indexIncludingParams = (yyvsp[(15) - (19)].list); 41495| 0| n->nulls_not_distinct = !(yyvsp[(16) - (19)].boolean); 41496| 0| n->options = (yyvsp[(17) - (19)].list); 41497| 0| n->tableSpace = (yyvsp[(18) - (19)].str); 41498| 0| n->whereClause = (yyvsp[(19) - (19)].node); 41499| 0| n->excludeOpNames = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41500| 0| n->idxcomment = NULL; 41501| 0| n->indexOid = InvalidOid; ------------------ | | 37| 0|#define InvalidOid ((Oid) 0) ------------------ 41502| 0| n->oldNumber = InvalidRelFileNumber; ------------------ | | 26| 0|#define InvalidRelFileNumber ((RelFileNumber) InvalidOid) | | ------------------ | | | | 37| 0|#define InvalidOid ((Oid) 0) | | ------------------ ------------------ 41503| 0| n->oldCreateSubid = InvalidSubTransactionId; ------------------ | | 644| 0|#define InvalidSubTransactionId ((SubTransactionId) 0) ------------------ 41504| 0| n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId; ------------------ | | 644| 0|#define InvalidSubTransactionId ((SubTransactionId) 0) ------------------ 41505| 0| n->primary = false; 41506| 0| n->isconstraint = false; 41507| 0| n->deferrable = false; 41508| 0| n->initdeferred = false; 41509| 0| n->transformed = false; 41510| 0| n->if_not_exists = true; 41511| 0| n->reset_default_tblspc = false; 41512| 0| (yyval.node) = (Node *) n; 41513| 0| ;} 41514| 0| break; 41515| | 41516| 0| case 1110: ------------------ | Branch (41516:3): [True: 0, False: 76.7M] ------------------ 41517| 0|#line 8313 "gram.y" 41518| 0| { (yyval.boolean) = true; ;} 41519| 0| break; 41520| | 41521| 155| case 1111: ------------------ | Branch (41521:3): [True: 155, False: 76.7M] ------------------ 41522| 155|#line 8314 "gram.y" 41523| 155| { (yyval.boolean) = false; ;} 41524| 155| break; 41525| | 41526| 0| case 1112: ------------------ | Branch (41526:3): [True: 0, False: 76.7M] ------------------ 41527| 0|#line 8318 "gram.y" 41528| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 41529| 0| break; 41530| | 41531| 155| case 1113: ------------------ | Branch (41531:3): [True: 155, False: 76.7M] ------------------ 41532| 155|#line 8319 "gram.y" 41533| 155| { (yyval.str) = DEFAULT_INDEX_TYPE; ;} ------------------ | | 21| 155|#define DEFAULT_INDEX_TYPE "btree" ------------------ 41534| 155| break; 41535| | 41536| 155| case 1114: ------------------ | Branch (41536:3): [True: 155, False: 76.7M] ------------------ 41537| 155|#line 8322 "gram.y" 41538| 155| { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} ------------------ | | 213| 155| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 155|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41539| 155| break; 41540| | 41541| 1.23k| case 1115: ------------------ | Branch (41541:3): [True: 1.23k, False: 76.7M] ------------------ 41542| 1.23k|#line 8323 "gram.y" 41543| 1.23k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} 41544| 1.23k| break; 41545| | 41546| 1.39k| case 1116: ------------------ | Branch (41546:3): [True: 1.39k, False: 76.7M] ------------------ 41547| 1.39k|#line 8329 "gram.y" 41548| 1.39k| { 41549| 1.39k| (yyval.ielem) = makeNode(IndexElem); ------------------ | | 161| 1.39k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41550| 1.39k| (yyval.ielem)->name = NULL; 41551| 1.39k| (yyval.ielem)->expr = NULL; 41552| 1.39k| (yyval.ielem)->indexcolname = NULL; 41553| 1.39k| (yyval.ielem)->collation = (yyvsp[(1) - (4)].list); 41554| 1.39k| (yyval.ielem)->opclass = (yyvsp[(2) - (4)].list); 41555| 1.39k| (yyval.ielem)->opclassopts = NIL; ------------------ | | 68| 1.39k|#define NIL ((List *) NULL) ------------------ 41556| 1.39k| (yyval.ielem)->ordering = (yyvsp[(3) - (4)].ival); 41557| 1.39k| (yyval.ielem)->nulls_ordering = (yyvsp[(4) - (4)].ival); 41558| 1.39k| ;} 41559| 1.39k| break; 41560| | 41561| 0| case 1117: ------------------ | Branch (41561:3): [True: 0, False: 76.7M] ------------------ 41562| 0|#line 8341 "gram.y" 41563| 0| { 41564| 0| (yyval.ielem) = makeNode(IndexElem); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41565| 0| (yyval.ielem)->name = NULL; 41566| 0| (yyval.ielem)->expr = NULL; 41567| 0| (yyval.ielem)->indexcolname = NULL; 41568| 0| (yyval.ielem)->collation = (yyvsp[(1) - (5)].list); 41569| 0| (yyval.ielem)->opclass = (yyvsp[(2) - (5)].list); 41570| 0| (yyval.ielem)->opclassopts = (yyvsp[(3) - (5)].list); 41571| 0| (yyval.ielem)->ordering = (yyvsp[(4) - (5)].ival); 41572| 0| (yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].ival); 41573| 0| ;} 41574| 0| break; 41575| | 41576| 769| case 1118: ------------------ | Branch (41576:3): [True: 769, False: 76.7M] ------------------ 41577| 769|#line 8360 "gram.y" 41578| 769| { 41579| 769| (yyval.ielem) = (yyvsp[(2) - (2)].ielem); 41580| 769| (yyval.ielem)->name = (yyvsp[(1) - (2)].str); 41581| 769| ;} 41582| 769| break; 41583| | 41584| 623| case 1119: ------------------ | Branch (41584:3): [True: 623, False: 76.7M] ------------------ 41585| 623|#line 8365 "gram.y" 41586| 623| { 41587| 623| (yyval.ielem) = (yyvsp[(2) - (2)].ielem); 41588| 623| (yyval.ielem)->expr = (yyvsp[(1) - (2)].node); 41589| 623| ;} 41590| 623| break; 41591| | 41592| 0| case 1120: ------------------ | Branch (41592:3): [True: 0, False: 76.7M] ------------------ 41593| 0|#line 8370 "gram.y" 41594| 0| { 41595| 0| (yyval.ielem) = (yyvsp[(4) - (4)].ielem); 41596| 0| (yyval.ielem)->expr = (yyvsp[(2) - (4)].node); 41597| 0| ;} 41598| 0| break; 41599| | 41600| 0| case 1121: ------------------ | Branch (41600:3): [True: 0, False: 76.7M] ------------------ 41601| 0|#line 8376 "gram.y" 41602| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 41603| 0| break; 41604| | 41605| 154| case 1122: ------------------ | Branch (41605:3): [True: 154, False: 76.7M] ------------------ 41606| 154|#line 8377 "gram.y" 41607| 154| { (yyval.list) = NIL; ;} ------------------ | | 68| 154|#define NIL ((List *) NULL) ------------------ 41608| 154| break; 41609| | 41610| 0| case 1123: ------------------ | Branch (41610:3): [True: 0, False: 76.7M] ------------------ 41611| 0|#line 8380 "gram.y" 41612| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41613| 0| break; 41614| | 41615| 0| case 1124: ------------------ | Branch (41615:3): [True: 0, False: 76.7M] ------------------ 41616| 0|#line 8381 "gram.y" 41617| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;} 41618| 0| break; 41619| | 41620| 7| case 1125: ------------------ | Branch (41620:3): [True: 7, False: 76.7M] ------------------ 41621| 7|#line 8384 "gram.y" 41622| 7| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 41623| 7| break; 41624| | 41625| 1.38k| case 1126: ------------------ | Branch (41625:3): [True: 1.38k, False: 76.7M] ------------------ 41626| 1.38k|#line 8385 "gram.y" 41627| 1.38k| { (yyval.list) = NIL; ;} ------------------ | | 68| 1.38k|#define NIL ((List *) NULL) ------------------ 41628| 1.38k| break; 41629| | 41630| 0| case 1127: ------------------ | Branch (41630:3): [True: 0, False: 76.7M] ------------------ 41631| 0|#line 8389 "gram.y" 41632| 0| { (yyval.ival) = SORTBY_ASC; ;} 41633| 0| break; 41634| | 41635| 0| case 1128: ------------------ | Branch (41635:3): [True: 0, False: 76.7M] ------------------ 41636| 0|#line 8390 "gram.y" 41637| 0| { (yyval.ival) = SORTBY_DESC; ;} 41638| 0| break; 41639| | 41640| 106k| case 1129: ------------------ | Branch (41640:3): [True: 106k, False: 76.6M] ------------------ 41641| 106k|#line 8391 "gram.y" 41642| 106k| { (yyval.ival) = SORTBY_DEFAULT; ;} 41643| 106k| break; 41644| | 41645| 0| case 1130: ------------------ | Branch (41645:3): [True: 0, False: 76.7M] ------------------ 41646| 0|#line 8394 "gram.y" 41647| 0| { (yyval.ival) = SORTBY_NULLS_FIRST; ;} 41648| 0| break; 41649| | 41650| 2| case 1131: ------------------ | Branch (41650:3): [True: 2, False: 76.7M] ------------------ 41651| 2|#line 8395 "gram.y" 41652| 2| { (yyval.ival) = SORTBY_NULLS_LAST; ;} 41653| 2| break; 41654| | 41655| 112k| case 1132: ------------------ | Branch (41655:3): [True: 112k, False: 76.6M] ------------------ 41656| 112k|#line 8396 "gram.y" 41657| 112k| { (yyval.ival) = SORTBY_NULLS_DEFAULT; ;} 41658| 112k| break; 41659| | 41660| 0| case 1133: ------------------ | Branch (41660:3): [True: 0, False: 76.7M] ------------------ 41661| 0|#line 8414 "gram.y" 41662| 0| { 41663| 0| CreateFunctionStmt *n = makeNode(CreateFunctionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41664| | 41665| 0| n->is_procedure = false; 41666| 0| n->replace = (yyvsp[(2) - (9)].boolean); 41667| 0| n->funcname = (yyvsp[(4) - (9)].list); 41668| 0| n->parameters = (yyvsp[(5) - (9)].list); 41669| 0| n->returnType = (yyvsp[(7) - (9)].typnam); 41670| 0| n->options = (yyvsp[(8) - (9)].list); 41671| 0| n->sql_body = (yyvsp[(9) - (9)].node); 41672| 0| (yyval.node) = (Node *) n; 41673| 0| ;} 41674| 0| break; 41675| | 41676| 0| case 1134: ------------------ | Branch (41676:3): [True: 0, False: 76.7M] ------------------ 41677| 0|#line 8428 "gram.y" 41678| 0| { 41679| 0| CreateFunctionStmt *n = makeNode(CreateFunctionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41680| | 41681| 0| n->is_procedure = false; 41682| 0| n->replace = (yyvsp[(2) - (12)].boolean); 41683| 0| n->funcname = (yyvsp[(4) - (12)].list); 41684| 0| n->parameters = mergeTableFuncParameters((yyvsp[(5) - (12)].list), (yyvsp[(9) - (12)].list), yyscanner); 41685| 0| n->returnType = TableFuncTypeName((yyvsp[(9) - (12)].list)); 41686| 0| n->returnType->location = (yylsp[(7) - (12)]); 41687| 0| n->options = (yyvsp[(11) - (12)].list); 41688| 0| n->sql_body = (yyvsp[(12) - (12)].node); 41689| 0| (yyval.node) = (Node *) n; 41690| 0| ;} 41691| 0| break; 41692| | 41693| 4| case 1135: ------------------ | Branch (41693:3): [True: 4, False: 76.7M] ------------------ 41694| 4|#line 8443 "gram.y" 41695| 4| { 41696| 4| CreateFunctionStmt *n = makeNode(CreateFunctionStmt); ------------------ | | 161| 4|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41697| | 41698| 4| n->is_procedure = false; 41699| 4| n->replace = (yyvsp[(2) - (7)].boolean); 41700| 4| n->funcname = (yyvsp[(4) - (7)].list); 41701| 4| n->parameters = (yyvsp[(5) - (7)].list); 41702| 4| n->returnType = NULL; 41703| 4| n->options = (yyvsp[(6) - (7)].list); 41704| 4| n->sql_body = (yyvsp[(7) - (7)].node); 41705| 4| (yyval.node) = (Node *) n; 41706| 4| ;} 41707| 4| break; 41708| | 41709| 0| case 1136: ------------------ | Branch (41709:3): [True: 0, False: 76.7M] ------------------ 41710| 0|#line 8457 "gram.y" 41711| 0| { 41712| 0| CreateFunctionStmt *n = makeNode(CreateFunctionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41713| | 41714| 0| n->is_procedure = true; 41715| 0| n->replace = (yyvsp[(2) - (7)].boolean); 41716| 0| n->funcname = (yyvsp[(4) - (7)].list); 41717| 0| n->parameters = (yyvsp[(5) - (7)].list); 41718| 0| n->returnType = NULL; 41719| 0| n->options = (yyvsp[(6) - (7)].list); 41720| 0| n->sql_body = (yyvsp[(7) - (7)].node); 41721| 0| (yyval.node) = (Node *) n; 41722| 0| ;} 41723| 0| break; 41724| | 41725| 0| case 1137: ------------------ | Branch (41725:3): [True: 0, False: 76.7M] ------------------ 41726| 0|#line 8472 "gram.y" 41727| 0| { (yyval.boolean) = true; ;} 41728| 0| break; 41729| | 41730| 7| case 1138: ------------------ | Branch (41730:3): [True: 7, False: 76.7M] ------------------ 41731| 7|#line 8473 "gram.y" 41732| 7| { (yyval.boolean) = false; ;} 41733| 7| break; 41734| | 41735| 2.06k| case 1139: ------------------ | Branch (41735:3): [True: 2.06k, False: 76.7M] ------------------ 41736| 2.06k|#line 8476 "gram.y" 41737| 2.06k| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 41738| 2.06k| break; 41739| | 41740| 199| case 1140: ------------------ | Branch (41740:3): [True: 199, False: 76.7M] ------------------ 41741| 199|#line 8477 "gram.y" 41742| 199| { (yyval.list) = NIL; ;} ------------------ | | 68| 199|#define NIL ((List *) NULL) ------------------ 41743| 199| break; 41744| | 41745| 2.06k| case 1141: ------------------ | Branch (41745:3): [True: 2.06k, False: 76.7M] ------------------ 41746| 2.06k|#line 8481 "gram.y" 41747| 2.06k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} ------------------ | | 213| 2.06k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2.06k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41748| 2.06k| break; 41749| | 41750| 894k| case 1142: ------------------ | Branch (41750:3): [True: 894k, False: 75.8M] ------------------ 41751| 894k|#line 8482 "gram.y" 41752| 894k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} 41753| 894k| break; 41754| | 41755| 336| case 1143: ------------------ | Branch (41755:3): [True: 336, False: 76.7M] ------------------ 41756| 336|#line 8486 "gram.y" 41757| 336| { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} ------------------ | | 213| 336| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 336|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41758| 336| break; 41759| | 41760| 13.5k| case 1144: ------------------ | Branch (41760:3): [True: 13.5k, False: 76.7M] ------------------ 41761| 13.5k|#line 8488 "gram.y" 41762| 13.5k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} 41763| 13.5k| break; 41764| | 41765| 2.26k| case 1145: ------------------ | Branch (41765:3): [True: 2.26k, False: 76.7M] ------------------ 41766| 2.26k|#line 8493 "gram.y" 41767| 2.26k| { 41768| 2.26k| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 2.26k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41769| | 41770| 2.26k| n->objname = (yyvsp[(1) - (2)].list); 41771| 2.26k| n->objargs = extractArgTypes((yyvsp[(2) - (2)].list)); 41772| 2.26k| n->objfuncargs = (yyvsp[(2) - (2)].list); 41773| 2.26k| (yyval.objwithargs) = n; 41774| 2.26k| ;} 41775| 2.26k| break; 41776| | 41777| 0| case 1146: ------------------ | Branch (41777:3): [True: 0, False: 76.7M] ------------------ 41778| 0|#line 8507 "gram.y" 41779| 0| { 41780| 0| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41781| | 41782| 0| n->objname = list_make1(makeString(pstrdup((yyvsp[(1) - (1)].keyword)))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41783| 0| n->args_unspecified = true; 41784| 0| (yyval.objwithargs) = n; 41785| 0| ;} 41786| 0| break; 41787| | 41788| 11.9k| case 1147: ------------------ | Branch (41788:3): [True: 11.9k, False: 76.7M] ------------------ 41789| 11.9k|#line 8515 "gram.y" 41790| 11.9k| { 41791| 11.9k| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 11.9k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41792| | 41793| 11.9k| n->objname = list_make1(makeString((yyvsp[(1) - (1)].str))); ------------------ | | 213| 11.9k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 11.9k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41794| 11.9k| n->args_unspecified = true; 41795| 11.9k| (yyval.objwithargs) = n; 41796| 11.9k| ;} 41797| 11.9k| break; 41798| | 41799| 54| case 1148: ------------------ | Branch (41799:3): [True: 54, False: 76.7M] ------------------ 41800| 54|#line 8523 "gram.y" 41801| 54| { 41802| 54| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 54|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41803| | 41804| 54| n->objname = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), 41805| 54| yyscanner); 41806| 54| n->args_unspecified = true; 41807| 54| (yyval.objwithargs) = n; 41808| 54| ;} 41809| 54| break; 41810| | 41811| 4| case 1149: ------------------ | Branch (41811:3): [True: 4, False: 76.7M] ------------------ 41812| 4|#line 8538 "gram.y" 41813| 4| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 41814| 4| break; 41815| | 41816| 0| case 1150: ------------------ | Branch (41816:3): [True: 0, False: 76.7M] ------------------ 41817| 0|#line 8539 "gram.y" 41818| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 41819| 0| break; 41820| | 41821| 4| case 1151: ------------------ | Branch (41821:3): [True: 4, False: 76.7M] ------------------ 41822| 4|#line 8543 "gram.y" 41823| 4| { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} ------------------ | | 213| 4| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 4|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 41824| 4| break; 41825| | 41826| 34.5k| case 1152: ------------------ | Branch (41826:3): [True: 34.5k, False: 76.7M] ------------------ 41827| 34.5k|#line 8545 "gram.y" 41828| 34.5k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} 41829| 34.5k| break; 41830| | 41831| 0| case 1153: ------------------ | Branch (41831:3): [True: 0, False: 76.7M] ------------------ 41832| 0|#line 8560 "gram.y" 41833| 0| { 41834| 0| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41835| | 41836| 0| n->name = (yyvsp[(2) - (3)].str); 41837| 0| n->argType = (yyvsp[(3) - (3)].typnam); 41838| 0| n->mode = (yyvsp[(1) - (3)].fun_param_mode); 41839| 0| n->defexpr = NULL; 41840| 0| n->location = (yylsp[(1) - (3)]); 41841| 0| (yyval.fun_param) = n; 41842| 0| ;} 41843| 0| break; 41844| | 41845| 0| case 1154: ------------------ | Branch (41845:3): [True: 0, False: 76.7M] ------------------ 41846| 0|#line 8571 "gram.y" 41847| 0| { 41848| 0| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41849| | 41850| 0| n->name = (yyvsp[(1) - (3)].str); 41851| 0| n->argType = (yyvsp[(3) - (3)].typnam); 41852| 0| n->mode = (yyvsp[(2) - (3)].fun_param_mode); 41853| 0| n->defexpr = NULL; 41854| 0| n->location = (yylsp[(1) - (3)]); 41855| 0| (yyval.fun_param) = n; 41856| 0| ;} 41857| 0| break; 41858| | 41859| 302| case 1155: ------------------ | Branch (41859:3): [True: 302, False: 76.7M] ------------------ 41860| 302|#line 8582 "gram.y" 41861| 302| { 41862| 302| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 302|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41863| | 41864| 302| n->name = (yyvsp[(1) - (2)].str); 41865| 302| n->argType = (yyvsp[(2) - (2)].typnam); 41866| 302| n->mode = FUNC_PARAM_DEFAULT; 41867| 302| n->defexpr = NULL; 41868| 302| n->location = (yylsp[(1) - (2)]); 41869| 302| (yyval.fun_param) = n; 41870| 302| ;} 41871| 302| break; 41872| | 41873| 76| case 1156: ------------------ | Branch (41873:3): [True: 76, False: 76.7M] ------------------ 41874| 76|#line 8593 "gram.y" 41875| 76| { 41876| 76| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 76|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41877| | 41878| 76| n->name = NULL; 41879| 76| n->argType = (yyvsp[(2) - (2)].typnam); 41880| 76| n->mode = (yyvsp[(1) - (2)].fun_param_mode); 41881| 76| n->defexpr = NULL; 41882| 76| n->location = (yylsp[(1) - (2)]); 41883| 76| (yyval.fun_param) = n; 41884| 76| ;} 41885| 76| break; 41886| | 41887| 931k| case 1157: ------------------ | Branch (41887:3): [True: 931k, False: 75.8M] ------------------ 41888| 931k|#line 8604 "gram.y" 41889| 931k| { 41890| 931k| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 931k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 41891| | 41892| 931k| n->name = NULL; 41893| 931k| n->argType = (yyvsp[(1) - (1)].typnam); 41894| 931k| n->mode = FUNC_PARAM_DEFAULT; 41895| 931k| n->defexpr = NULL; 41896| 931k| n->location = (yylsp[(1) - (1)]); 41897| 931k| (yyval.fun_param) = n; 41898| 931k| ;} 41899| 931k| break; 41900| | 41901| 76| case 1158: ------------------ | Branch (41901:3): [True: 76, False: 76.7M] ------------------ 41902| 76|#line 8617 "gram.y" 41903| 76| { (yyval.fun_param_mode) = FUNC_PARAM_IN; ;} 41904| 76| break; 41905| | 41906| 0| case 1159: ------------------ | Branch (41906:3): [True: 0, False: 76.7M] ------------------ 41907| 0|#line 8618 "gram.y" 41908| 0| { (yyval.fun_param_mode) = FUNC_PARAM_OUT; ;} 41909| 0| break; 41910| | 41911| 0| case 1160: ------------------ | Branch (41911:3): [True: 0, False: 76.7M] ------------------ 41912| 0|#line 8619 "gram.y" 41913| 0| { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} 41914| 0| break; 41915| | 41916| 0| case 1161: ------------------ | Branch (41916:3): [True: 0, False: 76.7M] ------------------ 41917| 0|#line 8620 "gram.y" 41918| 0| { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; ;} 41919| 0| break; 41920| | 41921| 0| case 1162: ------------------ | Branch (41921:3): [True: 0, False: 76.7M] ------------------ 41922| 0|#line 8621 "gram.y" 41923| 0| { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; ;} 41924| 0| break; 41925| | 41926| 0| case 1164: ------------------ | Branch (41926:3): [True: 0, False: 76.7M] ------------------ 41927| 0|#line 8632 "gram.y" 41928| 0| { 41929| | /* We can catch over-specified results here if we want to, 41930| | * but for now better to silently swallow typmod, etc. 41931| | * - thomas 2000-03-22 41932| | */ 41933| 0| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 41934| 0| ;} 41935| 0| break; 41936| | 41937| 932k| case 1165: ------------------ | Branch (41937:3): [True: 932k, False: 75.8M] ------------------ 41938| 932k|#line 8646 "gram.y" 41939| 932k| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 41940| 932k| break; 41941| | 41942| 0| case 1166: ------------------ | Branch (41942:3): [True: 0, False: 76.7M] ------------------ 41943| 0|#line 8648 "gram.y" 41944| 0| { 41945| 0| (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (4)].str)), (yyvsp[(2) - (4)].list))); 41946| 0| (yyval.typnam)->pct_type = true; 41947| 0| (yyval.typnam)->location = (yylsp[(1) - (4)]); 41948| 0| ;} 41949| 0| break; 41950| | 41951| 0| case 1167: ------------------ | Branch (41951:3): [True: 0, False: 76.7M] ------------------ 41952| 0|#line 8654 "gram.y" 41953| 0| { 41954| 0| (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(2) - (5)].str)), (yyvsp[(3) - (5)].list))); 41955| 0| (yyval.typnam)->pct_type = true; 41956| 0| (yyval.typnam)->setof = true; 41957| 0| (yyval.typnam)->location = (yylsp[(2) - (5)]); 41958| 0| ;} 41959| 0| break; 41960| | 41961| 34.1k| case 1168: ------------------ | Branch (41961:3): [True: 34.1k, False: 76.7M] ------------------ 41962| 34.1k|#line 8664 "gram.y" 41963| 34.1k| { 41964| 34.1k| (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); 41965| 34.1k| ;} 41966| 34.1k| break; 41967| | 41968| 0| case 1169: ------------------ | Branch (41968:3): [True: 0, False: 76.7M] ------------------ 41969| 0|#line 8668 "gram.y" 41970| 0| { 41971| 0| (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); 41972| 0| (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); 41973| 0| ;} 41974| 0| break; 41975| | 41976| 380| case 1170: ------------------ | Branch (41976:3): [True: 380, False: 76.7M] ------------------ 41977| 380|#line 8673 "gram.y" 41978| 380| { 41979| 380| (yyval.fun_param) = (yyvsp[(1) - (3)].fun_param); 41980| 380| (yyval.fun_param)->defexpr = (yyvsp[(3) - (3)].node); 41981| 380| ;} 41982| 380| break; 41983| | 41984| 0| case 1171: ------------------ | Branch (41984:3): [True: 0, False: 76.7M] ------------------ 41985| 0|#line 8681 "gram.y" 41986| 0| { 41987| 0| if (!((yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_DEFAULT || ------------------ | Branch (41987:12): [True: 0, False: 0] ------------------ 41988| 0| (yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_IN || ------------------ | Branch (41988:9): [True: 0, False: 0] ------------------ 41989| 0| (yyvsp[(1) - (1)].fun_param)->mode == FUNC_PARAM_VARIADIC)) ------------------ | Branch (41989:9): [True: 0, False: 0] ------------------ 41990| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 41991| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 41992| 0| errmsg("aggregates cannot have output arguments"), 41993| 0| parser_errposition((yylsp[(1) - (1)])))); 41994| 0| (yyval.fun_param) = (yyvsp[(1) - (1)].fun_param); 41995| 0| ;} 41996| 0| break; 41997| | 41998| 0| case 1172: ------------------ | Branch (41998:3): [True: 0, False: 76.7M] ------------------ 41999| 0|#line 8723 "gram.y" 42000| 0| { 42001| 0| (yyval.list) = list_make2(NIL, makeInteger(-1)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42002| 0| ;} 42003| 0| break; 42004| | 42005| 0| case 1173: ------------------ | Branch (42005:3): [True: 0, False: 76.7M] ------------------ 42006| 0|#line 8727 "gram.y" 42007| 0| { 42008| 0| (yyval.list) = list_make2((yyvsp[(2) - (3)].list), makeInteger(-1)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42009| 0| ;} 42010| 0| break; 42011| | 42012| 0| case 1174: ------------------ | Branch (42012:3): [True: 0, False: 76.7M] ------------------ 42013| 0|#line 8731 "gram.y" 42014| 0| { 42015| 0| (yyval.list) = list_make2((yyvsp[(4) - (5)].list), makeInteger(0)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42016| 0| ;} 42017| 0| break; 42018| | 42019| 0| case 1175: ------------------ | Branch (42019:3): [True: 0, False: 76.7M] ------------------ 42020| 0|#line 8735 "gram.y" 42021| 0| { 42022| | /* this is the only case requiring consistency checking */ 42023| 0| (yyval.list) = makeOrderedSetArgs((yyvsp[(2) - (6)].list), (yyvsp[(5) - (6)].list), yyscanner); 42024| 0| ;} 42025| 0| break; 42026| | 42027| 0| case 1176: ------------------ | Branch (42027:3): [True: 0, False: 76.7M] ------------------ 42028| 0|#line 8742 "gram.y" 42029| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42030| 0| break; 42031| | 42032| 0| case 1177: ------------------ | Branch (42032:3): [True: 0, False: 76.7M] ------------------ 42033| 0|#line 8743 "gram.y" 42034| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); ;} 42035| 0| break; 42036| | 42037| 0| case 1178: ------------------ | Branch (42037:3): [True: 0, False: 76.7M] ------------------ 42038| 0|#line 8748 "gram.y" 42039| 0| { 42040| 0| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42041| | 42042| 0| n->objname = (yyvsp[(1) - (2)].list); 42043| 0| n->objargs = extractAggrArgTypes((yyvsp[(2) - (2)].list)); 42044| 0| n->objfuncargs = (List *) linitial((yyvsp[(2) - (2)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 42045| 0| (yyval.objwithargs) = n; 42046| 0| ;} 42047| 0| break; 42048| | 42049| 0| case 1179: ------------------ | Branch (42049:3): [True: 0, False: 76.7M] ------------------ 42050| 0|#line 8759 "gram.y" 42051| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42052| 0| break; 42053| | 42054| 0| case 1180: ------------------ | Branch (42054:3): [True: 0, False: 76.7M] ------------------ 42055| 0|#line 8761 "gram.y" 42056| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} 42057| 0| break; 42058| | 42059| 4| case 1182: ------------------ | Branch (42059:3): [True: 4, False: 76.7M] ------------------ 42060| 4|#line 8766 "gram.y" 42061| 4| { (yyval.list) = NIL; ;} ------------------ | | 68| 4|#define NIL ((List *) NULL) ------------------ 42062| 4| break; 42063| | 42064| 0| case 1183: ------------------ | Branch (42064:3): [True: 0, False: 76.7M] ------------------ 42065| 0|#line 8771 "gram.y" 42066| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42067| 0| break; 42068| | 42069| 0| case 1184: ------------------ | Branch (42069:3): [True: 0, False: 76.7M] ------------------ 42070| 0|#line 8772 "gram.y" 42071| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 42072| 0| break; 42073| | 42074| 0| case 1185: ------------------ | Branch (42074:3): [True: 0, False: 76.7M] ------------------ 42075| 0|#line 8780 "gram.y" 42076| 0| { 42077| 0| (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[(1) - (4)])); 42078| 0| ;} 42079| 0| break; 42080| | 42081| 0| case 1186: ------------------ | Branch (42081:3): [True: 0, False: 76.7M] ------------------ 42082| 0|#line 8784 "gram.y" 42083| 0| { 42084| 0| (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (5)])); 42085| 0| ;} 42086| 0| break; 42087| | 42088| 0| case 1187: ------------------ | Branch (42088:3): [True: 0, False: 76.7M] ------------------ 42089| 0|#line 8788 "gram.y" 42090| 0| { 42091| 0| (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 42092| 0| ;} 42093| 0| break; 42094| | 42095| 0| case 1188: ------------------ | Branch (42095:3): [True: 0, False: 76.7M] ------------------ 42096| 0|#line 8792 "gram.y" 42097| 0| { 42098| 0| (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[(1) - (1)])); 42099| 0| ;} 42100| 0| break; 42101| | 42102| 0| case 1189: ------------------ | Branch (42102:3): [True: 0, False: 76.7M] ------------------ 42103| 0|#line 8796 "gram.y" 42104| 0| { 42105| 0| (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[(1) - (1)])); 42106| 0| ;} 42107| 0| break; 42108| | 42109| 0| case 1190: ------------------ | Branch (42109:3): [True: 0, False: 76.7M] ------------------ 42110| 0|#line 8800 "gram.y" 42111| 0| { 42112| 0| (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[(1) - (1)])); 42113| 0| ;} 42114| 0| break; 42115| | 42116| 0| case 1191: ------------------ | Branch (42116:3): [True: 0, False: 76.7M] ------------------ 42117| 0|#line 8804 "gram.y" 42118| 0| { 42119| 0| (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (3)])); 42120| 0| ;} 42121| 0| break; 42122| | 42123| 0| case 1192: ------------------ | Branch (42123:3): [True: 0, False: 76.7M] ------------------ 42124| 0|#line 8808 "gram.y" 42125| 0| { 42126| 0| (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (3)])); 42127| 0| ;} 42128| 0| break; 42129| | 42130| 0| case 1193: ------------------ | Branch (42130:3): [True: 0, False: 76.7M] ------------------ 42131| 0|#line 8812 "gram.y" 42132| 0| { 42133| 0| (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); 42134| 0| ;} 42135| 0| break; 42136| | 42137| 0| case 1194: ------------------ | Branch (42137:3): [True: 0, False: 76.7M] ------------------ 42138| 0|#line 8816 "gram.y" 42139| 0| { 42140| 0| (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); 42141| 0| ;} 42142| 0| break; 42143| | 42144| 0| case 1195: ------------------ | Branch (42144:3): [True: 0, False: 76.7M] ------------------ 42145| 0|#line 8820 "gram.y" 42146| 0| { 42147| 0| (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 42148| 0| ;} 42149| 0| break; 42150| | 42151| 0| case 1196: ------------------ | Branch (42151:3): [True: 0, False: 76.7M] ------------------ 42152| 0|#line 8824 "gram.y" 42153| 0| { 42154| 0| (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[(1) - (2)])); 42155| 0| ;} 42156| 0| break; 42157| | 42158| 0| case 1197: ------------------ | Branch (42158:3): [True: 0, False: 76.7M] ------------------ 42159| 0|#line 8828 "gram.y" 42160| 0| { 42161| 0| (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 42162| 0| ;} 42163| 0| break; 42164| | 42165| 0| case 1198: ------------------ | Branch (42165:3): [True: 0, False: 76.7M] ------------------ 42166| 0|#line 8832 "gram.y" 42167| 0| { 42168| 0| (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 42169| 0| ;} 42170| 0| break; 42171| | 42172| 0| case 1199: ------------------ | Branch (42172:3): [True: 0, False: 76.7M] ------------------ 42173| 0|#line 8836 "gram.y" 42174| 0| { 42175| 0| (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 42176| 0| ;} 42177| 0| break; 42178| | 42179| 388| case 1200: ------------------ | Branch (42179:3): [True: 388, False: 76.7M] ------------------ 42180| 388|#line 8840 "gram.y" 42181| 388| { 42182| | /* we abuse the normal content of a DefElem here */ 42183| 388| (yyval.defelt) = makeDefElem("set", (Node *) (yyvsp[(1) - (1)].vsetstmt), (yylsp[(1) - (1)])); 42184| 388| ;} 42185| 388| break; 42186| | 42187| 0| case 1201: ------------------ | Branch (42187:3): [True: 0, False: 76.7M] ------------------ 42188| 0|#line 8845 "gram.y" 42189| 0| { 42190| 0| (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 42191| 0| ;} 42192| 0| break; 42193| | 42194| 0| case 1202: ------------------ | Branch (42194:3): [True: 0, False: 76.7M] ------------------ 42195| 0|#line 8852 "gram.y" 42196| 0| { 42197| 0| (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 42198| 0| (yyval.defelt)->arg_location = (yylsp[(2) - (2)]); 42199| 0| ;} 42200| 0| break; 42201| | 42202| 0| case 1203: ------------------ | Branch (42202:3): [True: 0, False: 76.7M] ------------------ 42203| 0|#line 8857 "gram.y" 42204| 0| { 42205| 0| (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 42206| 0| ;} 42207| 0| break; 42208| | 42209| 0| case 1204: ------------------ | Branch (42209:3): [True: 0, False: 76.7M] ------------------ 42210| 0|#line 8861 "gram.y" 42211| 0| { 42212| 0| (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 42213| 0| (yyval.defelt)->arg_location = (yylsp[(2) - (2)]); 42214| 0| ;} 42215| 0| break; 42216| | 42217| 0| case 1205: ------------------ | Branch (42217:3): [True: 0, False: 76.7M] ------------------ 42218| 0|#line 8866 "gram.y" 42219| 0| { 42220| 0| (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)])); 42221| 0| ;} 42222| 0| break; 42223| | 42224| 0| case 1206: ------------------ | Branch (42224:3): [True: 0, False: 76.7M] ------------------ 42225| 0|#line 8870 "gram.y" 42226| 0| { 42227| 0| (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[(1) - (1)])); 42228| 0| ;} 42229| 0| break; 42230| | 42231| 0| case 1207: ------------------ | Branch (42231:3): [True: 0, False: 76.7M] ------------------ 42232| 0|#line 8874 "gram.y" 42233| 0| { 42234| 0| (yyval.defelt) = (yyvsp[(1) - (1)].defelt); 42235| 0| ;} 42236| 0| break; 42237| | 42238| 0| case 1208: ------------------ | Branch (42238:3): [True: 0, False: 76.7M] ------------------ 42239| 0|#line 8879 "gram.y" 42240| 0| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42241| 0| break; 42242| | 42243| 0| case 1209: ------------------ | Branch (42243:3): [True: 0, False: 76.7M] ------------------ 42244| 0|#line 8881 "gram.y" 42245| 0| { 42246| 0| (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42247| 0| ;} 42248| 0| break; 42249| | 42250| 0| case 1210: ------------------ | Branch (42250:3): [True: 0, False: 76.7M] ------------------ 42251| 0|#line 8887 "gram.y" 42252| 0| { 42253| 0| ReturnStmt *r = makeNode(ReturnStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42254| | 42255| 0| r->returnval = (Node *) (yyvsp[(2) - (2)].node); 42256| 0| (yyval.node) = (Node *) r; 42257| 0| ;} 42258| 0| break; 42259| | 42260| 0| case 1211: ------------------ | Branch (42260:3): [True: 0, False: 76.7M] ------------------ 42261| 0|#line 8897 "gram.y" 42262| 0| { 42263| 0| (yyval.node) = (yyvsp[(1) - (1)].node); 42264| 0| ;} 42265| 0| break; 42266| | 42267| 0| case 1212: ------------------ | Branch (42267:3): [True: 0, False: 76.7M] ------------------ 42268| 0|#line 8901 "gram.y" 42269| 0| { 42270| | /* 42271| | * A compound statement is stored as a single-item list 42272| | * containing the list of statements as its member. That 42273| | * way, the parse analysis code can tell apart an empty 42274| | * body from no body at all. 42275| | */ 42276| 0| (yyval.node) = (Node *) list_make1((yyvsp[(3) - (4)].list)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42277| 0| ;} 42278| 0| break; 42279| | 42280| 4| case 1213: ------------------ | Branch (42280:3): [True: 4, False: 76.7M] ------------------ 42281| 4|#line 8911 "gram.y" 42282| 4| { 42283| 4| (yyval.node) = NULL; 42284| 4| ;} 42285| 4| break; 42286| | 42287| 0| case 1214: ------------------ | Branch (42287:3): [True: 0, False: 76.7M] ------------------ 42288| 0|#line 8918 "gram.y" 42289| 0| { 42290| | /* As in stmtmulti, discard empty statements */ 42291| 0| if ((yyvsp[(2) - (3)].node) != NULL) ------------------ | Branch (42291:10): [True: 0, False: 0] ------------------ 42292| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].node)); 42293| 0| else 42294| 0| (yyval.list) = (yyvsp[(1) - (3)].list); 42295| 0| ;} 42296| 0| break; 42297| | 42298| 0| case 1215: ------------------ | Branch (42298:3): [True: 0, False: 76.7M] ------------------ 42299| 0|#line 8926 "gram.y" 42300| 0| { 42301| 0| (yyval.list) = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 42302| 0| ;} 42303| 0| break; 42304| | 42305| 0| case 1218: ------------------ | Branch (42305:3): [True: 0, False: 76.7M] ------------------ 42306| 0|#line 8937 "gram.y" 42307| 0| { (yyval.list) = list_make1((yyvsp[(3) - (3)].typnam)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42308| 0| break; 42309| | 42310| 0| case 1219: ------------------ | Branch (42310:3): [True: 0, False: 76.7M] ------------------ 42311| 0|#line 8938 "gram.y" 42312| 0| { (yyval.list) = lappend((yyvsp[(1) - (5)].list), (yyvsp[(5) - (5)].typnam)); ;} 42313| 0| break; 42314| | 42315| 0| case 1220: ------------------ | Branch (42315:3): [True: 0, False: 76.7M] ------------------ 42316| 0|#line 8942 "gram.y" 42317| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 42318| 0| break; 42319| | 42320| 1.02k| case 1221: ------------------ | Branch (42320:3): [True: 1.02k, False: 76.7M] ------------------ 42321| 1.02k|#line 8943 "gram.y" 42322| 1.02k| { (yyval.list) = NIL; ;} ------------------ | | 68| 1.02k|#define NIL ((List *) NULL) ------------------ 42323| 1.02k| break; 42324| | 42325| 0| case 1222: ------------------ | Branch (42325:3): [True: 0, False: 76.7M] ------------------ 42326| 0|#line 8947 "gram.y" 42327| 0| { 42328| 0| FunctionParameter *n = makeNode(FunctionParameter); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42329| | 42330| 0| n->name = (yyvsp[(1) - (2)].str); 42331| 0| n->argType = (yyvsp[(2) - (2)].typnam); 42332| 0| n->mode = FUNC_PARAM_TABLE; 42333| 0| n->defexpr = NULL; 42334| 0| n->location = (yylsp[(1) - (2)]); 42335| 0| (yyval.fun_param) = n; 42336| 0| ;} 42337| 0| break; 42338| | 42339| 0| case 1223: ------------------ | Branch (42339:3): [True: 0, False: 76.7M] ------------------ 42340| 0|#line 8961 "gram.y" 42341| 0| { 42342| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].fun_param)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42343| 0| ;} 42344| 0| break; 42345| | 42346| 0| case 1224: ------------------ | Branch (42346:3): [True: 0, False: 76.7M] ------------------ 42347| 0|#line 8965 "gram.y" 42348| 0| { 42349| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].fun_param)); 42350| 0| ;} 42351| 0| break; 42352| | 42353| 388| case 1225: ------------------ | Branch (42353:3): [True: 388, False: 76.7M] ------------------ 42354| 388|#line 8980 "gram.y" 42355| 388| { 42356| 388| AlterFunctionStmt *n = makeNode(AlterFunctionStmt); ------------------ | | 161| 388|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42357| | 42358| 388| n->objtype = OBJECT_FUNCTION; 42359| 388| n->func = (yyvsp[(3) - (5)].objwithargs); 42360| 388| n->actions = (yyvsp[(4) - (5)].list); 42361| 388| (yyval.node) = (Node *) n; 42362| 388| ;} 42363| 388| break; 42364| | 42365| 0| case 1226: ------------------ | Branch (42365:3): [True: 0, False: 76.7M] ------------------ 42366| 0|#line 8989 "gram.y" 42367| 0| { 42368| 0| AlterFunctionStmt *n = makeNode(AlterFunctionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42369| | 42370| 0| n->objtype = OBJECT_PROCEDURE; 42371| 0| n->func = (yyvsp[(3) - (5)].objwithargs); 42372| 0| n->actions = (yyvsp[(4) - (5)].list); 42373| 0| (yyval.node) = (Node *) n; 42374| 0| ;} 42375| 0| break; 42376| | 42377| 0| case 1227: ------------------ | Branch (42377:3): [True: 0, False: 76.7M] ------------------ 42378| 0|#line 8998 "gram.y" 42379| 0| { 42380| 0| AlterFunctionStmt *n = makeNode(AlterFunctionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42381| | 42382| 0| n->objtype = OBJECT_ROUTINE; 42383| 0| n->func = (yyvsp[(3) - (5)].objwithargs); 42384| 0| n->actions = (yyvsp[(4) - (5)].list); 42385| 0| (yyval.node) = (Node *) n; 42386| 0| ;} 42387| 0| break; 42388| | 42389| 388| case 1228: ------------------ | Branch (42389:3): [True: 388, False: 76.7M] ------------------ 42390| 388|#line 9010 "gram.y" 42391| 388| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 388| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 388|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42392| 388| break; 42393| | 42394| 0| case 1229: ------------------ | Branch (42394:3): [True: 0, False: 76.7M] ------------------ 42395| 0|#line 9011 "gram.y" 42396| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 42397| 0| break; 42398| | 42399| 0| case 1232: ------------------ | Branch (42399:3): [True: 0, False: 76.7M] ------------------ 42400| 0|#line 9035 "gram.y" 42401| 0| { 42402| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42403| | 42404| 0| n->removeType = OBJECT_FUNCTION; 42405| 0| n->objects = (yyvsp[(3) - (4)].list); 42406| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 42407| 0| n->missing_ok = false; 42408| 0| n->concurrent = false; 42409| 0| (yyval.node) = (Node *) n; 42410| 0| ;} 42411| 0| break; 42412| | 42413| 0| case 1233: ------------------ | Branch (42413:3): [True: 0, False: 76.7M] ------------------ 42414| 0|#line 9046 "gram.y" 42415| 0| { 42416| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42417| | 42418| 0| n->removeType = OBJECT_FUNCTION; 42419| 0| n->objects = (yyvsp[(5) - (6)].list); 42420| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 42421| 0| n->missing_ok = true; 42422| 0| n->concurrent = false; 42423| 0| (yyval.node) = (Node *) n; 42424| 0| ;} 42425| 0| break; 42426| | 42427| 0| case 1234: ------------------ | Branch (42427:3): [True: 0, False: 76.7M] ------------------ 42428| 0|#line 9057 "gram.y" 42429| 0| { 42430| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42431| | 42432| 0| n->removeType = OBJECT_PROCEDURE; 42433| 0| n->objects = (yyvsp[(3) - (4)].list); 42434| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 42435| 0| n->missing_ok = false; 42436| 0| n->concurrent = false; 42437| 0| (yyval.node) = (Node *) n; 42438| 0| ;} 42439| 0| break; 42440| | 42441| 0| case 1235: ------------------ | Branch (42441:3): [True: 0, False: 76.7M] ------------------ 42442| 0|#line 9068 "gram.y" 42443| 0| { 42444| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42445| | 42446| 0| n->removeType = OBJECT_PROCEDURE; 42447| 0| n->objects = (yyvsp[(5) - (6)].list); 42448| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 42449| 0| n->missing_ok = true; 42450| 0| n->concurrent = false; 42451| 0| (yyval.node) = (Node *) n; 42452| 0| ;} 42453| 0| break; 42454| | 42455| 24| case 1236: ------------------ | Branch (42455:3): [True: 24, False: 76.7M] ------------------ 42456| 24|#line 9079 "gram.y" 42457| 24| { 42458| 24| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 24|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42459| | 42460| 24| n->removeType = OBJECT_ROUTINE; 42461| 24| n->objects = (yyvsp[(3) - (4)].list); 42462| 24| n->behavior = (yyvsp[(4) - (4)].dbehavior); 42463| 24| n->missing_ok = false; 42464| 24| n->concurrent = false; 42465| 24| (yyval.node) = (Node *) n; 42466| 24| ;} 42467| 24| break; 42468| | 42469| 180| case 1237: ------------------ | Branch (42469:3): [True: 180, False: 76.7M] ------------------ 42470| 180|#line 9090 "gram.y" 42471| 180| { 42472| 180| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 180|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42473| | 42474| 180| n->removeType = OBJECT_ROUTINE; 42475| 180| n->objects = (yyvsp[(5) - (6)].list); 42476| 180| n->behavior = (yyvsp[(6) - (6)].dbehavior); 42477| 180| n->missing_ok = true; 42478| 180| n->concurrent = false; 42479| 180| (yyval.node) = (Node *) n; 42480| 180| ;} 42481| 180| break; 42482| | 42483| 0| case 1238: ------------------ | Branch (42483:3): [True: 0, False: 76.7M] ------------------ 42484| 0|#line 9104 "gram.y" 42485| 0| { 42486| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42487| | 42488| 0| n->removeType = OBJECT_AGGREGATE; 42489| 0| n->objects = (yyvsp[(3) - (4)].list); 42490| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 42491| 0| n->missing_ok = false; 42492| 0| n->concurrent = false; 42493| 0| (yyval.node) = (Node *) n; 42494| 0| ;} 42495| 0| break; 42496| | 42497| 0| case 1239: ------------------ | Branch (42497:3): [True: 0, False: 76.7M] ------------------ 42498| 0|#line 9115 "gram.y" 42499| 0| { 42500| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42501| | 42502| 0| n->removeType = OBJECT_AGGREGATE; 42503| 0| n->objects = (yyvsp[(5) - (6)].list); 42504| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 42505| 0| n->missing_ok = true; 42506| 0| n->concurrent = false; 42507| 0| (yyval.node) = (Node *) n; 42508| 0| ;} 42509| 0| break; 42510| | 42511| 0| case 1240: ------------------ | Branch (42511:3): [True: 0, False: 76.7M] ------------------ 42512| 0|#line 9129 "gram.y" 42513| 0| { 42514| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42515| | 42516| 0| n->removeType = OBJECT_OPERATOR; 42517| 0| n->objects = (yyvsp[(3) - (4)].list); 42518| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 42519| 0| n->missing_ok = false; 42520| 0| n->concurrent = false; 42521| 0| (yyval.node) = (Node *) n; 42522| 0| ;} 42523| 0| break; 42524| | 42525| 0| case 1241: ------------------ | Branch (42525:3): [True: 0, False: 76.7M] ------------------ 42526| 0|#line 9140 "gram.y" 42527| 0| { 42528| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42529| | 42530| 0| n->removeType = OBJECT_OPERATOR; 42531| 0| n->objects = (yyvsp[(5) - (6)].list); 42532| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 42533| 0| n->missing_ok = true; 42534| 0| n->concurrent = false; 42535| 0| (yyval.node) = (Node *) n; 42536| 0| ;} 42537| 0| break; 42538| | 42539| 0| case 1242: ------------------ | Branch (42539:3): [True: 0, False: 76.7M] ------------------ 42540| 0|#line 9154 "gram.y" 42541| 0| { 42542| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 42543| 0| (errcode(ERRCODE_SYNTAX_ERROR), 42544| 0| errmsg("missing argument"), 42545| 0| errhint("Use NONE to denote the missing argument of a unary operator."), 42546| 0| parser_errposition((yylsp[(3) - (3)])))); 42547| 0| ;} 42548| 0| break; 42549| | 42550| 0| case 1243: ------------------ | Branch (42550:3): [True: 0, False: 76.7M] ------------------ 42551| 0|#line 9162 "gram.y" 42552| 0| { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), (yyvsp[(4) - (5)].typnam)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42553| 0| break; 42554| | 42555| 0| case 1244: ------------------ | Branch (42555:3): [True: 0, False: 76.7M] ------------------ 42556| 0|#line 9164 "gram.y" 42557| 0| { (yyval.list) = list_make2(NULL, (yyvsp[(4) - (5)].typnam)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42558| 0| break; 42559| | 42560| 0| case 1245: ------------------ | Branch (42560:3): [True: 0, False: 76.7M] ------------------ 42561| 0|#line 9166 "gram.y" 42562| 0| { (yyval.list) = list_make2((yyvsp[(2) - (5)].typnam), NULL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42563| 0| break; 42564| | 42565| 0| case 1246: ------------------ | Branch (42565:3): [True: 0, False: 76.7M] ------------------ 42566| 0|#line 9171 "gram.y" 42567| 0| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42568| 0| break; 42569| | 42570| 0| case 1247: ------------------ | Branch (42570:3): [True: 0, False: 76.7M] ------------------ 42571| 0|#line 9173 "gram.y" 42572| 0| { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} 42573| 0| break; 42574| | 42575| 0| case 1248: ------------------ | Branch (42575:3): [True: 0, False: 76.7M] ------------------ 42576| 0|#line 9177 "gram.y" 42577| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].objwithargs)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42578| 0| break; 42579| | 42580| 0| case 1249: ------------------ | Branch (42580:3): [True: 0, False: 76.7M] ------------------ 42581| 0|#line 9179 "gram.y" 42582| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].objwithargs)); ;} 42583| 0| break; 42584| | 42585| 0| case 1250: ------------------ | Branch (42585:3): [True: 0, False: 76.7M] ------------------ 42586| 0|#line 9184 "gram.y" 42587| 0| { 42588| 0| ObjectWithArgs *n = makeNode(ObjectWithArgs); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42589| | 42590| 0| n->objname = (yyvsp[(1) - (2)].list); 42591| 0| n->objargs = (yyvsp[(2) - (2)].list); 42592| 0| (yyval.objwithargs) = n; 42593| 0| ;} 42594| 0| break; 42595| | 42596| 414| case 1251: ------------------ | Branch (42596:3): [True: 414, False: 76.7M] ------------------ 42597| 414|#line 9203 "gram.y" 42598| 414| { 42599| 414| DoStmt *n = makeNode(DoStmt); ------------------ | | 161| 414|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42600| | 42601| 414| n->args = (yyvsp[(2) - (2)].list); 42602| 414| (yyval.node) = (Node *) n; 42603| 414| ;} 42604| 414| break; 42605| | 42606| 422| case 1252: ------------------ | Branch (42606:3): [True: 422, False: 76.7M] ------------------ 42607| 422|#line 9212 "gram.y" 42608| 422| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 422| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 422|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42609| 422| break; 42610| | 42611| 3.89k| case 1253: ------------------ | Branch (42611:3): [True: 3.89k, False: 76.7M] ------------------ 42612| 3.89k|#line 9213 "gram.y" 42613| 3.89k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 42614| 3.89k| break; 42615| | 42616| 4.31k| case 1254: ------------------ | Branch (42616:3): [True: 4.31k, False: 76.7M] ------------------ 42617| 4.31k|#line 9218 "gram.y" 42618| 4.31k| { 42619| 4.31k| (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[(1) - (1)].str)), (yylsp[(1) - (1)])); 42620| 4.31k| (yyval.defelt)->arg_location = (yylsp[(1) - (1)]); 42621| 4.31k| ;} 42622| 4.31k| break; 42623| | 42624| 0| case 1255: ------------------ | Branch (42624:3): [True: 0, False: 76.7M] ------------------ 42625| 0|#line 9223 "gram.y" 42626| 0| { 42627| 0| (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 42628| 0| ;} 42629| 0| break; 42630| | 42631| 0| case 1256: ------------------ | Branch (42631:3): [True: 0, False: 76.7M] ------------------ 42632| 0|#line 9227 "gram.y" 42633| 0| { 42634| 0| (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)])); 42635| 0| (yyval.defelt)->arg_location = (yylsp[(2) - (2)]); 42636| 0| ;} 42637| 0| break; 42638| | 42639| 0| case 1257: ------------------ | Branch (42639:3): [True: 0, False: 76.7M] ------------------ 42640| 0|#line 9241 "gram.y" 42641| 0| { 42642| 0| CreateCastStmt *n = makeNode(CreateCastStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42643| | 42644| 0| n->sourcetype = (yyvsp[(4) - (11)].typnam); 42645| 0| n->targettype = (yyvsp[(6) - (11)].typnam); 42646| 0| n->func = (yyvsp[(10) - (11)].objwithargs); 42647| 0| n->context = (CoercionContext) (yyvsp[(11) - (11)].ival); 42648| 0| n->inout = false; 42649| 0| (yyval.node) = (Node *) n; 42650| 0| ;} 42651| 0| break; 42652| | 42653| 0| case 1258: ------------------ | Branch (42653:3): [True: 0, False: 76.7M] ------------------ 42654| 0|#line 9253 "gram.y" 42655| 0| { 42656| 0| CreateCastStmt *n = makeNode(CreateCastStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42657| | 42658| 0| n->sourcetype = (yyvsp[(4) - (10)].typnam); 42659| 0| n->targettype = (yyvsp[(6) - (10)].typnam); 42660| 0| n->func = NULL; 42661| 0| n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); 42662| 0| n->inout = false; 42663| 0| (yyval.node) = (Node *) n; 42664| 0| ;} 42665| 0| break; 42666| | 42667| 0| case 1259: ------------------ | Branch (42667:3): [True: 0, False: 76.7M] ------------------ 42668| 0|#line 9265 "gram.y" 42669| 0| { 42670| 0| CreateCastStmt *n = makeNode(CreateCastStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42671| | 42672| 0| n->sourcetype = (yyvsp[(4) - (10)].typnam); 42673| 0| n->targettype = (yyvsp[(6) - (10)].typnam); 42674| 0| n->func = NULL; 42675| 0| n->context = (CoercionContext) (yyvsp[(10) - (10)].ival); 42676| 0| n->inout = true; 42677| 0| (yyval.node) = (Node *) n; 42678| 0| ;} 42679| 0| break; 42680| | 42681| 0| case 1260: ------------------ | Branch (42681:3): [True: 0, False: 76.7M] ------------------ 42682| 0|#line 9277 "gram.y" 42683| 0| { (yyval.ival) = COERCION_IMPLICIT; ;} 42684| 0| break; 42685| | 42686| 0| case 1261: ------------------ | Branch (42686:3): [True: 0, False: 76.7M] ------------------ 42687| 0|#line 9278 "gram.y" 42688| 0| { (yyval.ival) = COERCION_ASSIGNMENT; ;} 42689| 0| break; 42690| | 42691| 0| case 1262: ------------------ | Branch (42691:3): [True: 0, False: 76.7M] ------------------ 42692| 0|#line 9279 "gram.y" 42693| 0| { (yyval.ival) = COERCION_EXPLICIT; ;} 42694| 0| break; 42695| | 42696| 0| case 1263: ------------------ | Branch (42696:3): [True: 0, False: 76.7M] ------------------ 42697| 0|#line 9284 "gram.y" 42698| 0| { 42699| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42700| | 42701| 0| n->removeType = OBJECT_CAST; 42702| 0| n->objects = list_make1(list_make2((yyvsp[(5) - (9)].typnam), (yyvsp[(7) - (9)].typnam))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42703| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 42704| 0| n->missing_ok = (yyvsp[(3) - (9)].boolean); 42705| 0| n->concurrent = false; 42706| 0| (yyval.node) = (Node *) n; 42707| 0| ;} 42708| 0| break; 42709| | 42710| 0| case 1264: ------------------ | Branch (42710:3): [True: 0, False: 76.7M] ------------------ 42711| 0|#line 9296 "gram.y" 42712| 0| { (yyval.boolean) = true; ;} 42713| 0| break; 42714| | 42715| 0| case 1265: ------------------ | Branch (42715:3): [True: 0, False: 76.7M] ------------------ 42716| 0|#line 9297 "gram.y" 42717| 0| { (yyval.boolean) = false; ;} 42718| 0| break; 42719| | 42720| 0| case 1266: ------------------ | Branch (42720:3): [True: 0, False: 76.7M] ------------------ 42721| 0|#line 9308 "gram.y" 42722| 0| { 42723| 0| CreateTransformStmt *n = makeNode(CreateTransformStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42724| | 42725| 0| n->replace = (yyvsp[(2) - (10)].boolean); 42726| 0| n->type_name = (yyvsp[(5) - (10)].typnam); 42727| 0| n->lang = (yyvsp[(7) - (10)].str); 42728| 0| n->fromsql = linitial((yyvsp[(9) - (10)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 42729| 0| n->tosql = lsecond((yyvsp[(9) - (10)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 42730| 0| (yyval.node) = (Node *) n; 42731| 0| ;} 42732| 0| break; 42733| | 42734| 0| case 1267: ------------------ | Branch (42734:3): [True: 0, False: 76.7M] ------------------ 42735| 0|#line 9321 "gram.y" 42736| 0| { 42737| 0| (yyval.list) = list_make2((yyvsp[(5) - (11)].objwithargs), (yyvsp[(11) - (11)].objwithargs)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42738| 0| ;} 42739| 0| break; 42740| | 42741| 0| case 1268: ------------------ | Branch (42741:3): [True: 0, False: 76.7M] ------------------ 42742| 0|#line 9325 "gram.y" 42743| 0| { 42744| 0| (yyval.list) = list_make2((yyvsp[(11) - (11)].objwithargs), (yyvsp[(5) - (11)].objwithargs)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42745| 0| ;} 42746| 0| break; 42747| | 42748| 0| case 1269: ------------------ | Branch (42748:3): [True: 0, False: 76.7M] ------------------ 42749| 0|#line 9329 "gram.y" 42750| 0| { 42751| 0| (yyval.list) = list_make2((yyvsp[(5) - (5)].objwithargs), NULL); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42752| 0| ;} 42753| 0| break; 42754| | 42755| 0| case 1270: ------------------ | Branch (42755:3): [True: 0, False: 76.7M] ------------------ 42756| 0|#line 9333 "gram.y" 42757| 0| { 42758| 0| (yyval.list) = list_make2(NULL, (yyvsp[(5) - (5)].objwithargs)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42759| 0| ;} 42760| 0| break; 42761| | 42762| 0| case 1271: ------------------ | Branch (42762:3): [True: 0, False: 76.7M] ------------------ 42763| 0|#line 9340 "gram.y" 42764| 0| { 42765| 0| DropStmt *n = makeNode(DropStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42766| | 42767| 0| n->removeType = OBJECT_TRANSFORM; 42768| 0| n->objects = list_make1(list_make2((yyvsp[(5) - (8)].typnam), makeString((yyvsp[(7) - (8)].str)))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 42769| 0| n->behavior = (yyvsp[(8) - (8)].dbehavior); 42770| 0| n->missing_ok = (yyvsp[(3) - (8)].boolean); 42771| 0| (yyval.node) = (Node *) n; 42772| 0| ;} 42773| 0| break; 42774| | 42775| 3| case 1272: ------------------ | Branch (42775:3): [True: 3, False: 76.7M] ------------------ 42776| 3|#line 9362 "gram.y" 42777| 3| { 42778| 3| ReindexStmt *n = makeNode(ReindexStmt); ------------------ | | 161| 3|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42779| | 42780| 3| n->kind = (yyvsp[(3) - (5)].ival); 42781| 3| n->relation = (yyvsp[(5) - (5)].range); 42782| 3| n->name = NULL; 42783| 3| n->params = (yyvsp[(2) - (5)].list); 42784| 3| if ((yyvsp[(4) - (5)].boolean)) ------------------ | Branch (42784:10): [True: 0, False: 3] ------------------ 42785| 0| n->params = lappend(n->params, 42786| 0| makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); 42787| 3| (yyval.node) = (Node *) n; 42788| 3| ;} 42789| 3| break; 42790| | 42791| 0| case 1273: ------------------ | Branch (42791:3): [True: 0, False: 76.7M] ------------------ 42792| 0|#line 9375 "gram.y" 42793| 0| { 42794| 0| ReindexStmt *n = makeNode(ReindexStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42795| | 42796| 0| n->kind = REINDEX_OBJECT_SCHEMA; 42797| 0| n->relation = NULL; 42798| 0| n->name = (yyvsp[(5) - (5)].str); 42799| 0| n->params = (yyvsp[(2) - (5)].list); 42800| 0| if ((yyvsp[(4) - (5)].boolean)) ------------------ | Branch (42800:10): [True: 0, False: 0] ------------------ 42801| 0| n->params = lappend(n->params, 42802| 0| makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); 42803| 0| (yyval.node) = (Node *) n; 42804| 0| ;} 42805| 0| break; 42806| | 42807| 0| case 1274: ------------------ | Branch (42807:3): [True: 0, False: 76.7M] ------------------ 42808| 0|#line 9388 "gram.y" 42809| 0| { 42810| 0| ReindexStmt *n = makeNode(ReindexStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42811| | 42812| 0| n->kind = (yyvsp[(3) - (5)].ival); 42813| 0| n->relation = NULL; 42814| 0| n->name = (yyvsp[(5) - (5)].str); 42815| 0| n->params = (yyvsp[(2) - (5)].list); 42816| 0| if ((yyvsp[(4) - (5)].boolean)) ------------------ | Branch (42816:10): [True: 0, False: 0] ------------------ 42817| 0| n->params = lappend(n->params, 42818| 0| makeDefElem("concurrently", NULL, (yylsp[(4) - (5)]))); 42819| 0| (yyval.node) = (Node *) n; 42820| 0| ;} 42821| 0| break; 42822| | 42823| 0| case 1275: ------------------ | Branch (42823:3): [True: 0, False: 76.7M] ------------------ 42824| 0|#line 9402 "gram.y" 42825| 0| { (yyval.ival) = REINDEX_OBJECT_INDEX; ;} 42826| 0| break; 42827| | 42828| 3| case 1276: ------------------ | Branch (42828:3): [True: 3, False: 76.7M] ------------------ 42829| 3|#line 9403 "gram.y" 42830| 3| { (yyval.ival) = REINDEX_OBJECT_TABLE; ;} 42831| 3| break; 42832| | 42833| 0| case 1277: ------------------ | Branch (42833:3): [True: 0, False: 76.7M] ------------------ 42834| 0|#line 9406 "gram.y" 42835| 0| { (yyval.ival) = REINDEX_OBJECT_SYSTEM; ;} 42836| 0| break; 42837| | 42838| 0| case 1278: ------------------ | Branch (42838:3): [True: 0, False: 76.7M] ------------------ 42839| 0|#line 9407 "gram.y" 42840| 0| { (yyval.ival) = REINDEX_OBJECT_DATABASE; ;} 42841| 0| break; 42842| | 42843| 0| case 1279: ------------------ | Branch (42843:3): [True: 0, False: 76.7M] ------------------ 42844| 0|#line 9410 "gram.y" 42845| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 42846| 0| break; 42847| | 42848| 3| case 1280: ------------------ | Branch (42848:3): [True: 3, False: 76.7M] ------------------ 42849| 3|#line 9411 "gram.y" 42850| 3| { (yyval.list) = NULL; ;} 42851| 3| break; 42852| | 42853| 0| case 1281: ------------------ | Branch (42853:3): [True: 0, False: 76.7M] ------------------ 42854| 0|#line 9422 "gram.y" 42855| 0| { 42856| 0| AlterTableSpaceOptionsStmt *n = 42857| 0| makeNode(AlterTableSpaceOptionsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42858| | 42859| 0| n->tablespacename = (yyvsp[(3) - (5)].str); 42860| 0| n->options = (yyvsp[(5) - (5)].list); 42861| 0| n->isReset = false; 42862| 0| (yyval.node) = (Node *) n; 42863| 0| ;} 42864| 0| break; 42865| | 42866| 0| case 1282: ------------------ | Branch (42866:3): [True: 0, False: 76.7M] ------------------ 42867| 0|#line 9432 "gram.y" 42868| 0| { 42869| 0| AlterTableSpaceOptionsStmt *n = 42870| 0| makeNode(AlterTableSpaceOptionsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42871| | 42872| 0| n->tablespacename = (yyvsp[(3) - (5)].str); 42873| 0| n->options = (yyvsp[(5) - (5)].list); 42874| 0| n->isReset = true; 42875| 0| (yyval.node) = (Node *) n; 42876| 0| ;} 42877| 0| break; 42878| | 42879| 0| case 1283: ------------------ | Branch (42879:3): [True: 0, False: 76.7M] ------------------ 42880| 0|#line 9450 "gram.y" 42881| 0| { 42882| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42883| | 42884| 0| n->renameType = OBJECT_AGGREGATE; 42885| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 42886| 0| n->newname = (yyvsp[(6) - (6)].str); 42887| 0| n->missing_ok = false; 42888| 0| (yyval.node) = (Node *) n; 42889| 0| ;} 42890| 0| break; 42891| | 42892| 0| case 1284: ------------------ | Branch (42892:3): [True: 0, False: 76.7M] ------------------ 42893| 0|#line 9460 "gram.y" 42894| 0| { 42895| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42896| | 42897| 0| n->renameType = OBJECT_COLLATION; 42898| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 42899| 0| n->newname = (yyvsp[(6) - (6)].str); 42900| 0| n->missing_ok = false; 42901| 0| (yyval.node) = (Node *) n; 42902| 0| ;} 42903| 0| break; 42904| | 42905| 0| case 1285: ------------------ | Branch (42905:3): [True: 0, False: 76.7M] ------------------ 42906| 0|#line 9470 "gram.y" 42907| 0| { 42908| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42909| | 42910| 0| n->renameType = OBJECT_CONVERSION; 42911| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 42912| 0| n->newname = (yyvsp[(6) - (6)].str); 42913| 0| n->missing_ok = false; 42914| 0| (yyval.node) = (Node *) n; 42915| 0| ;} 42916| 0| break; 42917| | 42918| 0| case 1286: ------------------ | Branch (42918:3): [True: 0, False: 76.7M] ------------------ 42919| 0|#line 9480 "gram.y" 42920| 0| { 42921| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42922| | 42923| 0| n->renameType = OBJECT_DATABASE; 42924| 0| n->subname = (yyvsp[(3) - (6)].str); 42925| 0| n->newname = (yyvsp[(6) - (6)].str); 42926| 0| n->missing_ok = false; 42927| 0| (yyval.node) = (Node *) n; 42928| 0| ;} 42929| 0| break; 42930| | 42931| 0| case 1287: ------------------ | Branch (42931:3): [True: 0, False: 76.7M] ------------------ 42932| 0|#line 9490 "gram.y" 42933| 0| { 42934| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42935| | 42936| 0| n->renameType = OBJECT_DOMAIN; 42937| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 42938| 0| n->newname = (yyvsp[(6) - (6)].str); 42939| 0| n->missing_ok = false; 42940| 0| (yyval.node) = (Node *) n; 42941| 0| ;} 42942| 0| break; 42943| | 42944| 0| case 1288: ------------------ | Branch (42944:3): [True: 0, False: 76.7M] ------------------ 42945| 0|#line 9500 "gram.y" 42946| 0| { 42947| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42948| | 42949| 0| n->renameType = OBJECT_DOMCONSTRAINT; 42950| 0| n->object = (Node *) (yyvsp[(3) - (8)].list); 42951| 0| n->subname = (yyvsp[(6) - (8)].str); 42952| 0| n->newname = (yyvsp[(8) - (8)].str); 42953| 0| (yyval.node) = (Node *) n; 42954| 0| ;} 42955| 0| break; 42956| | 42957| 0| case 1289: ------------------ | Branch (42957:3): [True: 0, False: 76.7M] ------------------ 42958| 0|#line 9510 "gram.y" 42959| 0| { 42960| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42961| | 42962| 0| n->renameType = OBJECT_FDW; 42963| 0| n->object = (Node *) makeString((yyvsp[(5) - (8)].str)); 42964| 0| n->newname = (yyvsp[(8) - (8)].str); 42965| 0| n->missing_ok = false; 42966| 0| (yyval.node) = (Node *) n; 42967| 0| ;} 42968| 0| break; 42969| | 42970| 0| case 1290: ------------------ | Branch (42970:3): [True: 0, False: 76.7M] ------------------ 42971| 0|#line 9520 "gram.y" 42972| 0| { 42973| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42974| | 42975| 0| n->renameType = OBJECT_FUNCTION; 42976| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 42977| 0| n->newname = (yyvsp[(6) - (6)].str); 42978| 0| n->missing_ok = false; 42979| 0| (yyval.node) = (Node *) n; 42980| 0| ;} 42981| 0| break; 42982| | 42983| 0| case 1291: ------------------ | Branch (42983:3): [True: 0, False: 76.7M] ------------------ 42984| 0|#line 9530 "gram.y" 42985| 0| { 42986| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 42987| | 42988| 0| n->renameType = OBJECT_ROLE; 42989| 0| n->subname = (yyvsp[(3) - (6)].str); 42990| 0| n->newname = (yyvsp[(6) - (6)].str); 42991| 0| n->missing_ok = false; 42992| 0| (yyval.node) = (Node *) n; 42993| 0| ;} 42994| 0| break; 42995| | 42996| 0| case 1292: ------------------ | Branch (42996:3): [True: 0, False: 76.7M] ------------------ 42997| 0|#line 9540 "gram.y" 42998| 0| { 42999| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43000| | 43001| 0| n->renameType = OBJECT_LANGUAGE; 43002| 0| n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); 43003| 0| n->newname = (yyvsp[(7) - (7)].str); 43004| 0| n->missing_ok = false; 43005| 0| (yyval.node) = (Node *) n; 43006| 0| ;} 43007| 0| break; 43008| | 43009| 0| case 1293: ------------------ | Branch (43009:3): [True: 0, False: 76.7M] ------------------ 43010| 0|#line 9550 "gram.y" 43011| 0| { 43012| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43013| | 43014| 0| n->renameType = OBJECT_OPCLASS; 43015| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 43016| 0| n->newname = (yyvsp[(9) - (9)].str); 43017| 0| n->missing_ok = false; 43018| 0| (yyval.node) = (Node *) n; 43019| 0| ;} 43020| 0| break; 43021| | 43022| 0| case 1294: ------------------ | Branch (43022:3): [True: 0, False: 76.7M] ------------------ 43023| 0|#line 9560 "gram.y" 43024| 0| { 43025| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43026| | 43027| 0| n->renameType = OBJECT_OPFAMILY; 43028| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 43029| 0| n->newname = (yyvsp[(9) - (9)].str); 43030| 0| n->missing_ok = false; 43031| 0| (yyval.node) = (Node *) n; 43032| 0| ;} 43033| 0| break; 43034| | 43035| 0| case 1295: ------------------ | Branch (43035:3): [True: 0, False: 76.7M] ------------------ 43036| 0|#line 9570 "gram.y" 43037| 0| { 43038| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43039| | 43040| 0| n->renameType = OBJECT_POLICY; 43041| 0| n->relation = (yyvsp[(5) - (8)].range); 43042| 0| n->subname = (yyvsp[(3) - (8)].str); 43043| 0| n->newname = (yyvsp[(8) - (8)].str); 43044| 0| n->missing_ok = false; 43045| 0| (yyval.node) = (Node *) n; 43046| 0| ;} 43047| 0| break; 43048| | 43049| 0| case 1296: ------------------ | Branch (43049:3): [True: 0, False: 76.7M] ------------------ 43050| 0|#line 9581 "gram.y" 43051| 0| { 43052| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43053| | 43054| 0| n->renameType = OBJECT_POLICY; 43055| 0| n->relation = (yyvsp[(7) - (10)].range); 43056| 0| n->subname = (yyvsp[(5) - (10)].str); 43057| 0| n->newname = (yyvsp[(10) - (10)].str); 43058| 0| n->missing_ok = true; 43059| 0| (yyval.node) = (Node *) n; 43060| 0| ;} 43061| 0| break; 43062| | 43063| 0| case 1297: ------------------ | Branch (43063:3): [True: 0, False: 76.7M] ------------------ 43064| 0|#line 9592 "gram.y" 43065| 0| { 43066| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43067| | 43068| 0| n->renameType = OBJECT_PROCEDURE; 43069| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43070| 0| n->newname = (yyvsp[(6) - (6)].str); 43071| 0| n->missing_ok = false; 43072| 0| (yyval.node) = (Node *) n; 43073| 0| ;} 43074| 0| break; 43075| | 43076| 0| case 1298: ------------------ | Branch (43076:3): [True: 0, False: 76.7M] ------------------ 43077| 0|#line 9602 "gram.y" 43078| 0| { 43079| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43080| | 43081| 0| n->renameType = OBJECT_PUBLICATION; 43082| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 43083| 0| n->newname = (yyvsp[(6) - (6)].str); 43084| 0| n->missing_ok = false; 43085| 0| (yyval.node) = (Node *) n; 43086| 0| ;} 43087| 0| break; 43088| | 43089| 0| case 1299: ------------------ | Branch (43089:3): [True: 0, False: 76.7M] ------------------ 43090| 0|#line 9612 "gram.y" 43091| 0| { 43092| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43093| | 43094| 0| n->renameType = OBJECT_ROUTINE; 43095| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43096| 0| n->newname = (yyvsp[(6) - (6)].str); 43097| 0| n->missing_ok = false; 43098| 0| (yyval.node) = (Node *) n; 43099| 0| ;} 43100| 0| break; 43101| | 43102| 0| case 1300: ------------------ | Branch (43102:3): [True: 0, False: 76.7M] ------------------ 43103| 0|#line 9622 "gram.y" 43104| 0| { 43105| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43106| | 43107| 0| n->renameType = OBJECT_SCHEMA; 43108| 0| n->subname = (yyvsp[(3) - (6)].str); 43109| 0| n->newname = (yyvsp[(6) - (6)].str); 43110| 0| n->missing_ok = false; 43111| 0| (yyval.node) = (Node *) n; 43112| 0| ;} 43113| 0| break; 43114| | 43115| 0| case 1301: ------------------ | Branch (43115:3): [True: 0, False: 76.7M] ------------------ 43116| 0|#line 9632 "gram.y" 43117| 0| { 43118| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43119| | 43120| 0| n->renameType = OBJECT_FOREIGN_SERVER; 43121| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 43122| 0| n->newname = (yyvsp[(6) - (6)].str); 43123| 0| n->missing_ok = false; 43124| 0| (yyval.node) = (Node *) n; 43125| 0| ;} 43126| 0| break; 43127| | 43128| 0| case 1302: ------------------ | Branch (43128:3): [True: 0, False: 76.7M] ------------------ 43129| 0|#line 9642 "gram.y" 43130| 0| { 43131| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43132| | 43133| 0| n->renameType = OBJECT_SUBSCRIPTION; 43134| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 43135| 0| n->newname = (yyvsp[(6) - (6)].str); 43136| 0| n->missing_ok = false; 43137| 0| (yyval.node) = (Node *) n; 43138| 0| ;} 43139| 0| break; 43140| | 43141| 632| case 1303: ------------------ | Branch (43141:3): [True: 632, False: 76.7M] ------------------ 43142| 632|#line 9652 "gram.y" 43143| 632| { 43144| 632| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 632|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43145| | 43146| 632| n->renameType = OBJECT_TABLE; 43147| 632| n->relation = (yyvsp[(3) - (6)].range); 43148| 632| n->subname = NULL; 43149| 632| n->newname = (yyvsp[(6) - (6)].str); 43150| 632| n->missing_ok = false; 43151| 632| (yyval.node) = (Node *) n; 43152| 632| ;} 43153| 632| break; 43154| | 43155| 615| case 1304: ------------------ | Branch (43155:3): [True: 615, False: 76.7M] ------------------ 43156| 615|#line 9663 "gram.y" 43157| 615| { 43158| 615| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 615|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43159| | 43160| 615| n->renameType = OBJECT_TABLE; 43161| 615| n->relation = (yyvsp[(5) - (8)].range); 43162| 615| n->subname = NULL; 43163| 615| n->newname = (yyvsp[(8) - (8)].str); 43164| 615| n->missing_ok = true; 43165| 615| (yyval.node) = (Node *) n; 43166| 615| ;} 43167| 615| break; 43168| | 43169| 0| case 1305: ------------------ | Branch (43169:3): [True: 0, False: 76.7M] ------------------ 43170| 0|#line 9674 "gram.y" 43171| 0| { 43172| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43173| | 43174| 0| n->renameType = OBJECT_SEQUENCE; 43175| 0| n->relation = (yyvsp[(3) - (6)].range); 43176| 0| n->subname = NULL; 43177| 0| n->newname = (yyvsp[(6) - (6)].str); 43178| 0| n->missing_ok = false; 43179| 0| (yyval.node) = (Node *) n; 43180| 0| ;} 43181| 0| break; 43182| | 43183| 0| case 1306: ------------------ | Branch (43183:3): [True: 0, False: 76.7M] ------------------ 43184| 0|#line 9685 "gram.y" 43185| 0| { 43186| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43187| | 43188| 0| n->renameType = OBJECT_SEQUENCE; 43189| 0| n->relation = (yyvsp[(5) - (8)].range); 43190| 0| n->subname = NULL; 43191| 0| n->newname = (yyvsp[(8) - (8)].str); 43192| 0| n->missing_ok = true; 43193| 0| (yyval.node) = (Node *) n; 43194| 0| ;} 43195| 0| break; 43196| | 43197| 0| case 1307: ------------------ | Branch (43197:3): [True: 0, False: 76.7M] ------------------ 43198| 0|#line 9696 "gram.y" 43199| 0| { 43200| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43201| | 43202| 0| n->renameType = OBJECT_VIEW; 43203| 0| n->relation = (yyvsp[(3) - (6)].range); 43204| 0| n->subname = NULL; 43205| 0| n->newname = (yyvsp[(6) - (6)].str); 43206| 0| n->missing_ok = false; 43207| 0| (yyval.node) = (Node *) n; 43208| 0| ;} 43209| 0| break; 43210| | 43211| 0| case 1308: ------------------ | Branch (43211:3): [True: 0, False: 76.7M] ------------------ 43212| 0|#line 9707 "gram.y" 43213| 0| { 43214| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43215| | 43216| 0| n->renameType = OBJECT_VIEW; 43217| 0| n->relation = (yyvsp[(5) - (8)].range); 43218| 0| n->subname = NULL; 43219| 0| n->newname = (yyvsp[(8) - (8)].str); 43220| 0| n->missing_ok = true; 43221| 0| (yyval.node) = (Node *) n; 43222| 0| ;} 43223| 0| break; 43224| | 43225| 0| case 1309: ------------------ | Branch (43225:3): [True: 0, False: 76.7M] ------------------ 43226| 0|#line 9718 "gram.y" 43227| 0| { 43228| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43229| | 43230| 0| n->renameType = OBJECT_MATVIEW; 43231| 0| n->relation = (yyvsp[(4) - (7)].range); 43232| 0| n->subname = NULL; 43233| 0| n->newname = (yyvsp[(7) - (7)].str); 43234| 0| n->missing_ok = false; 43235| 0| (yyval.node) = (Node *) n; 43236| 0| ;} 43237| 0| break; 43238| | 43239| 0| case 1310: ------------------ | Branch (43239:3): [True: 0, False: 76.7M] ------------------ 43240| 0|#line 9729 "gram.y" 43241| 0| { 43242| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43243| | 43244| 0| n->renameType = OBJECT_MATVIEW; 43245| 0| n->relation = (yyvsp[(6) - (9)].range); 43246| 0| n->subname = NULL; 43247| 0| n->newname = (yyvsp[(9) - (9)].str); 43248| 0| n->missing_ok = true; 43249| 0| (yyval.node) = (Node *) n; 43250| 0| ;} 43251| 0| break; 43252| | 43253| 0| case 1311: ------------------ | Branch (43253:3): [True: 0, False: 76.7M] ------------------ 43254| 0|#line 9740 "gram.y" 43255| 0| { 43256| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43257| | 43258| 0| n->renameType = OBJECT_INDEX; 43259| 0| n->relation = (yyvsp[(3) - (6)].range); 43260| 0| n->subname = NULL; 43261| 0| n->newname = (yyvsp[(6) - (6)].str); 43262| 0| n->missing_ok = false; 43263| 0| (yyval.node) = (Node *) n; 43264| 0| ;} 43265| 0| break; 43266| | 43267| 0| case 1312: ------------------ | Branch (43267:3): [True: 0, False: 76.7M] ------------------ 43268| 0|#line 9751 "gram.y" 43269| 0| { 43270| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43271| | 43272| 0| n->renameType = OBJECT_INDEX; 43273| 0| n->relation = (yyvsp[(5) - (8)].range); 43274| 0| n->subname = NULL; 43275| 0| n->newname = (yyvsp[(8) - (8)].str); 43276| 0| n->missing_ok = true; 43277| 0| (yyval.node) = (Node *) n; 43278| 0| ;} 43279| 0| break; 43280| | 43281| 0| case 1313: ------------------ | Branch (43281:3): [True: 0, False: 76.7M] ------------------ 43282| 0|#line 9762 "gram.y" 43283| 0| { 43284| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43285| | 43286| 0| n->renameType = OBJECT_FOREIGN_TABLE; 43287| 0| n->relation = (yyvsp[(4) - (7)].range); 43288| 0| n->subname = NULL; 43289| 0| n->newname = (yyvsp[(7) - (7)].str); 43290| 0| n->missing_ok = false; 43291| 0| (yyval.node) = (Node *) n; 43292| 0| ;} 43293| 0| break; 43294| | 43295| 0| case 1314: ------------------ | Branch (43295:3): [True: 0, False: 76.7M] ------------------ 43296| 0|#line 9773 "gram.y" 43297| 0| { 43298| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43299| | 43300| 0| n->renameType = OBJECT_FOREIGN_TABLE; 43301| 0| n->relation = (yyvsp[(6) - (9)].range); 43302| 0| n->subname = NULL; 43303| 0| n->newname = (yyvsp[(9) - (9)].str); 43304| 0| n->missing_ok = true; 43305| 0| (yyval.node) = (Node *) n; 43306| 0| ;} 43307| 0| break; 43308| | 43309| 642| case 1315: ------------------ | Branch (43309:3): [True: 642, False: 76.7M] ------------------ 43310| 642|#line 9784 "gram.y" 43311| 642| { 43312| 642| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 642|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43313| | 43314| 642| n->renameType = OBJECT_COLUMN; 43315| 642| n->relationType = OBJECT_TABLE; 43316| 642| n->relation = (yyvsp[(3) - (8)].range); 43317| 642| n->subname = (yyvsp[(6) - (8)].str); 43318| 642| n->newname = (yyvsp[(8) - (8)].str); 43319| 642| n->missing_ok = false; 43320| 642| (yyval.node) = (Node *) n; 43321| 642| ;} 43322| 642| break; 43323| | 43324| 629| case 1316: ------------------ | Branch (43324:3): [True: 629, False: 76.7M] ------------------ 43325| 629|#line 9796 "gram.y" 43326| 629| { 43327| 629| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 629|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43328| | 43329| 629| n->renameType = OBJECT_COLUMN; 43330| 629| n->relationType = OBJECT_TABLE; 43331| 629| n->relation = (yyvsp[(5) - (10)].range); 43332| 629| n->subname = (yyvsp[(8) - (10)].str); 43333| 629| n->newname = (yyvsp[(10) - (10)].str); 43334| 629| n->missing_ok = true; 43335| 629| (yyval.node) = (Node *) n; 43336| 629| ;} 43337| 629| break; 43338| | 43339| 0| case 1317: ------------------ | Branch (43339:3): [True: 0, False: 76.7M] ------------------ 43340| 0|#line 9808 "gram.y" 43341| 0| { 43342| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43343| | 43344| 0| n->renameType = OBJECT_COLUMN; 43345| 0| n->relationType = OBJECT_VIEW; 43346| 0| n->relation = (yyvsp[(3) - (8)].range); 43347| 0| n->subname = (yyvsp[(6) - (8)].str); 43348| 0| n->newname = (yyvsp[(8) - (8)].str); 43349| 0| n->missing_ok = false; 43350| 0| (yyval.node) = (Node *) n; 43351| 0| ;} 43352| 0| break; 43353| | 43354| 0| case 1318: ------------------ | Branch (43354:3): [True: 0, False: 76.7M] ------------------ 43355| 0|#line 9820 "gram.y" 43356| 0| { 43357| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43358| | 43359| 0| n->renameType = OBJECT_COLUMN; 43360| 0| n->relationType = OBJECT_VIEW; 43361| 0| n->relation = (yyvsp[(5) - (10)].range); 43362| 0| n->subname = (yyvsp[(8) - (10)].str); 43363| 0| n->newname = (yyvsp[(10) - (10)].str); 43364| 0| n->missing_ok = true; 43365| 0| (yyval.node) = (Node *) n; 43366| 0| ;} 43367| 0| break; 43368| | 43369| 0| case 1319: ------------------ | Branch (43369:3): [True: 0, False: 76.7M] ------------------ 43370| 0|#line 9832 "gram.y" 43371| 0| { 43372| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43373| | 43374| 0| n->renameType = OBJECT_COLUMN; 43375| 0| n->relationType = OBJECT_MATVIEW; 43376| 0| n->relation = (yyvsp[(4) - (9)].range); 43377| 0| n->subname = (yyvsp[(7) - (9)].str); 43378| 0| n->newname = (yyvsp[(9) - (9)].str); 43379| 0| n->missing_ok = false; 43380| 0| (yyval.node) = (Node *) n; 43381| 0| ;} 43382| 0| break; 43383| | 43384| 0| case 1320: ------------------ | Branch (43384:3): [True: 0, False: 76.7M] ------------------ 43385| 0|#line 9844 "gram.y" 43386| 0| { 43387| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43388| | 43389| 0| n->renameType = OBJECT_COLUMN; 43390| 0| n->relationType = OBJECT_MATVIEW; 43391| 0| n->relation = (yyvsp[(6) - (11)].range); 43392| 0| n->subname = (yyvsp[(9) - (11)].str); 43393| 0| n->newname = (yyvsp[(11) - (11)].str); 43394| 0| n->missing_ok = true; 43395| 0| (yyval.node) = (Node *) n; 43396| 0| ;} 43397| 0| break; 43398| | 43399| 1.22k| case 1321: ------------------ | Branch (43399:3): [True: 1.22k, False: 76.7M] ------------------ 43400| 1.22k|#line 9856 "gram.y" 43401| 1.22k| { 43402| 1.22k| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 1.22k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43403| | 43404| 1.22k| n->renameType = OBJECT_TABCONSTRAINT; 43405| 1.22k| n->relation = (yyvsp[(3) - (8)].range); 43406| 1.22k| n->subname = (yyvsp[(6) - (8)].str); 43407| 1.22k| n->newname = (yyvsp[(8) - (8)].str); 43408| 1.22k| n->missing_ok = false; 43409| 1.22k| (yyval.node) = (Node *) n; 43410| 1.22k| ;} 43411| 1.22k| break; 43412| | 43413| 10| case 1322: ------------------ | Branch (43413:3): [True: 10, False: 76.7M] ------------------ 43414| 10|#line 9867 "gram.y" 43415| 10| { 43416| 10| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 10|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43417| | 43418| 10| n->renameType = OBJECT_TABCONSTRAINT; 43419| 10| n->relation = (yyvsp[(5) - (10)].range); 43420| 10| n->subname = (yyvsp[(8) - (10)].str); 43421| 10| n->newname = (yyvsp[(10) - (10)].str); 43422| 10| n->missing_ok = true; 43423| 10| (yyval.node) = (Node *) n; 43424| 10| ;} 43425| 10| break; 43426| | 43427| 0| case 1323: ------------------ | Branch (43427:3): [True: 0, False: 76.7M] ------------------ 43428| 0|#line 9878 "gram.y" 43429| 0| { 43430| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43431| | 43432| 0| n->renameType = OBJECT_COLUMN; 43433| 0| n->relationType = OBJECT_FOREIGN_TABLE; 43434| 0| n->relation = (yyvsp[(4) - (9)].range); 43435| 0| n->subname = (yyvsp[(7) - (9)].str); 43436| 0| n->newname = (yyvsp[(9) - (9)].str); 43437| 0| n->missing_ok = false; 43438| 0| (yyval.node) = (Node *) n; 43439| 0| ;} 43440| 0| break; 43441| | 43442| 0| case 1324: ------------------ | Branch (43442:3): [True: 0, False: 76.7M] ------------------ 43443| 0|#line 9890 "gram.y" 43444| 0| { 43445| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43446| | 43447| 0| n->renameType = OBJECT_COLUMN; 43448| 0| n->relationType = OBJECT_FOREIGN_TABLE; 43449| 0| n->relation = (yyvsp[(6) - (11)].range); 43450| 0| n->subname = (yyvsp[(9) - (11)].str); 43451| 0| n->newname = (yyvsp[(11) - (11)].str); 43452| 0| n->missing_ok = true; 43453| 0| (yyval.node) = (Node *) n; 43454| 0| ;} 43455| 0| break; 43456| | 43457| 0| case 1325: ------------------ | Branch (43457:3): [True: 0, False: 76.7M] ------------------ 43458| 0|#line 9902 "gram.y" 43459| 0| { 43460| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43461| | 43462| 0| n->renameType = OBJECT_RULE; 43463| 0| n->relation = (yyvsp[(5) - (8)].range); 43464| 0| n->subname = (yyvsp[(3) - (8)].str); 43465| 0| n->newname = (yyvsp[(8) - (8)].str); 43466| 0| n->missing_ok = false; 43467| 0| (yyval.node) = (Node *) n; 43468| 0| ;} 43469| 0| break; 43470| | 43471| 0| case 1326: ------------------ | Branch (43471:3): [True: 0, False: 76.7M] ------------------ 43472| 0|#line 9913 "gram.y" 43473| 0| { 43474| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43475| | 43476| 0| n->renameType = OBJECT_TRIGGER; 43477| 0| n->relation = (yyvsp[(5) - (8)].range); 43478| 0| n->subname = (yyvsp[(3) - (8)].str); 43479| 0| n->newname = (yyvsp[(8) - (8)].str); 43480| 0| n->missing_ok = false; 43481| 0| (yyval.node) = (Node *) n; 43482| 0| ;} 43483| 0| break; 43484| | 43485| 0| case 1327: ------------------ | Branch (43485:3): [True: 0, False: 76.7M] ------------------ 43486| 0|#line 9924 "gram.y" 43487| 0| { 43488| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43489| | 43490| 0| n->renameType = OBJECT_EVENT_TRIGGER; 43491| 0| n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); 43492| 0| n->newname = (yyvsp[(7) - (7)].str); 43493| 0| (yyval.node) = (Node *) n; 43494| 0| ;} 43495| 0| break; 43496| | 43497| 58| case 1328: ------------------ | Branch (43497:3): [True: 58, False: 76.7M] ------------------ 43498| 58|#line 9933 "gram.y" 43499| 58| { 43500| 58| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 58|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43501| | 43502| 58| n->renameType = OBJECT_ROLE; 43503| 58| n->subname = (yyvsp[(3) - (6)].str); 43504| 58| n->newname = (yyvsp[(6) - (6)].str); 43505| 58| n->missing_ok = false; 43506| 58| (yyval.node) = (Node *) n; 43507| 58| ;} 43508| 58| break; 43509| | 43510| 129| case 1329: ------------------ | Branch (43510:3): [True: 129, False: 76.7M] ------------------ 43511| 129|#line 9943 "gram.y" 43512| 129| { 43513| 129| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 129|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43514| | 43515| 129| n->renameType = OBJECT_ROLE; 43516| 129| n->subname = (yyvsp[(3) - (6)].str); 43517| 129| n->newname = (yyvsp[(6) - (6)].str); 43518| 129| n->missing_ok = false; 43519| 129| (yyval.node) = (Node *) n; 43520| 129| ;} 43521| 129| break; 43522| | 43523| 0| case 1330: ------------------ | Branch (43523:3): [True: 0, False: 76.7M] ------------------ 43524| 0|#line 9953 "gram.y" 43525| 0| { 43526| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43527| | 43528| 0| n->renameType = OBJECT_TABLESPACE; 43529| 0| n->subname = (yyvsp[(3) - (6)].str); 43530| 0| n->newname = (yyvsp[(6) - (6)].str); 43531| 0| n->missing_ok = false; 43532| 0| (yyval.node) = (Node *) n; 43533| 0| ;} 43534| 0| break; 43535| | 43536| 0| case 1331: ------------------ | Branch (43536:3): [True: 0, False: 76.7M] ------------------ 43537| 0|#line 9963 "gram.y" 43538| 0| { 43539| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43540| | 43541| 0| n->renameType = OBJECT_STATISTIC_EXT; 43542| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43543| 0| n->newname = (yyvsp[(6) - (6)].str); 43544| 0| n->missing_ok = false; 43545| 0| (yyval.node) = (Node *) n; 43546| 0| ;} 43547| 0| break; 43548| | 43549| 0| case 1332: ------------------ | Branch (43549:3): [True: 0, False: 76.7M] ------------------ 43550| 0|#line 9973 "gram.y" 43551| 0| { 43552| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43553| | 43554| 0| n->renameType = OBJECT_TSPARSER; 43555| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43556| 0| n->newname = (yyvsp[(8) - (8)].str); 43557| 0| n->missing_ok = false; 43558| 0| (yyval.node) = (Node *) n; 43559| 0| ;} 43560| 0| break; 43561| | 43562| 0| case 1333: ------------------ | Branch (43562:3): [True: 0, False: 76.7M] ------------------ 43563| 0|#line 9983 "gram.y" 43564| 0| { 43565| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43566| | 43567| 0| n->renameType = OBJECT_TSDICTIONARY; 43568| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43569| 0| n->newname = (yyvsp[(8) - (8)].str); 43570| 0| n->missing_ok = false; 43571| 0| (yyval.node) = (Node *) n; 43572| 0| ;} 43573| 0| break; 43574| | 43575| 0| case 1334: ------------------ | Branch (43575:3): [True: 0, False: 76.7M] ------------------ 43576| 0|#line 9993 "gram.y" 43577| 0| { 43578| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43579| | 43580| 0| n->renameType = OBJECT_TSTEMPLATE; 43581| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43582| 0| n->newname = (yyvsp[(8) - (8)].str); 43583| 0| n->missing_ok = false; 43584| 0| (yyval.node) = (Node *) n; 43585| 0| ;} 43586| 0| break; 43587| | 43588| 0| case 1335: ------------------ | Branch (43588:3): [True: 0, False: 76.7M] ------------------ 43589| 0|#line 10003 "gram.y" 43590| 0| { 43591| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43592| | 43593| 0| n->renameType = OBJECT_TSCONFIGURATION; 43594| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43595| 0| n->newname = (yyvsp[(8) - (8)].str); 43596| 0| n->missing_ok = false; 43597| 0| (yyval.node) = (Node *) n; 43598| 0| ;} 43599| 0| break; 43600| | 43601| 0| case 1336: ------------------ | Branch (43601:3): [True: 0, False: 76.7M] ------------------ 43602| 0|#line 10013 "gram.y" 43603| 0| { 43604| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43605| | 43606| 0| n->renameType = OBJECT_TYPE; 43607| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43608| 0| n->newname = (yyvsp[(6) - (6)].str); 43609| 0| n->missing_ok = false; 43610| 0| (yyval.node) = (Node *) n; 43611| 0| ;} 43612| 0| break; 43613| | 43614| 0| case 1337: ------------------ | Branch (43614:3): [True: 0, False: 76.7M] ------------------ 43615| 0|#line 10023 "gram.y" 43616| 0| { 43617| 0| RenameStmt *n = makeNode(RenameStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43618| | 43619| 0| n->renameType = OBJECT_ATTRIBUTE; 43620| 0| n->relationType = OBJECT_TYPE; 43621| 0| n->relation = makeRangeVarFromAnyName((yyvsp[(3) - (9)].list), (yylsp[(3) - (9)]), yyscanner); 43622| 0| n->subname = (yyvsp[(6) - (9)].str); 43623| 0| n->newname = (yyvsp[(8) - (9)].str); 43624| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 43625| 0| n->missing_ok = false; 43626| 0| (yyval.node) = (Node *) n; 43627| 0| ;} 43628| 0| break; 43629| | 43630| 0| case 1340: ------------------ | Branch (43630:3): [True: 0, False: 76.7M] ------------------ 43631| 0|#line 10041 "gram.y" 43632| 0| { (yyval.ival) = 1; ;} 43633| 0| break; 43634| | 43635| 1| case 1341: ------------------ | Branch (43635:3): [True: 1, False: 76.7M] ------------------ 43636| 1|#line 10042 "gram.y" 43637| 1| { (yyval.ival) = 0; ;} 43638| 1| break; 43639| | 43640| 0| case 1342: ------------------ | Branch (43640:3): [True: 0, False: 76.7M] ------------------ 43641| 0|#line 10053 "gram.y" 43642| 0| { 43643| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43644| | 43645| 0| n->objectType = OBJECT_FUNCTION; 43646| 0| n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); 43647| 0| n->extname = makeString((yyvsp[(8) - (8)].str)); 43648| 0| n->remove = (yyvsp[(4) - (8)].boolean); 43649| 0| (yyval.node) = (Node *) n; 43650| 0| ;} 43651| 0| break; 43652| | 43653| 0| case 1343: ------------------ | Branch (43653:3): [True: 0, False: 76.7M] ------------------ 43654| 0|#line 10063 "gram.y" 43655| 0| { 43656| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43657| | 43658| 0| n->objectType = OBJECT_PROCEDURE; 43659| 0| n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); 43660| 0| n->extname = makeString((yyvsp[(8) - (8)].str)); 43661| 0| n->remove = (yyvsp[(4) - (8)].boolean); 43662| 0| (yyval.node) = (Node *) n; 43663| 0| ;} 43664| 0| break; 43665| | 43666| 0| case 1344: ------------------ | Branch (43666:3): [True: 0, False: 76.7M] ------------------ 43667| 0|#line 10073 "gram.y" 43668| 0| { 43669| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43670| | 43671| 0| n->objectType = OBJECT_ROUTINE; 43672| 0| n->object = (Node *) (yyvsp[(3) - (8)].objwithargs); 43673| 0| n->extname = makeString((yyvsp[(8) - (8)].str)); 43674| 0| n->remove = (yyvsp[(4) - (8)].boolean); 43675| 0| (yyval.node) = (Node *) n; 43676| 0| ;} 43677| 0| break; 43678| | 43679| 0| case 1345: ------------------ | Branch (43679:3): [True: 0, False: 76.7M] ------------------ 43680| 0|#line 10083 "gram.y" 43681| 0| { 43682| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43683| | 43684| 0| n->objectType = OBJECT_TRIGGER; 43685| 0| n->relation = (yyvsp[(5) - (10)].range); 43686| 0| n->object = (Node *) list_make1(makeString((yyvsp[(3) - (10)].str))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 43687| 0| n->extname = makeString((yyvsp[(10) - (10)].str)); 43688| 0| n->remove = (yyvsp[(6) - (10)].boolean); 43689| 0| (yyval.node) = (Node *) n; 43690| 0| ;} 43691| 0| break; 43692| | 43693| 0| case 1346: ------------------ | Branch (43693:3): [True: 0, False: 76.7M] ------------------ 43694| 0|#line 10094 "gram.y" 43695| 0| { 43696| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43697| | 43698| 0| n->objectType = OBJECT_MATVIEW; 43699| 0| n->relation = (yyvsp[(4) - (9)].range); 43700| 0| n->extname = makeString((yyvsp[(9) - (9)].str)); 43701| 0| n->remove = (yyvsp[(5) - (9)].boolean); 43702| 0| (yyval.node) = (Node *) n; 43703| 0| ;} 43704| 0| break; 43705| | 43706| 0| case 1347: ------------------ | Branch (43706:3): [True: 0, False: 76.7M] ------------------ 43707| 0|#line 10104 "gram.y" 43708| 0| { 43709| 0| AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43710| | 43711| 0| n->objectType = OBJECT_INDEX; 43712| 0| n->relation = (yyvsp[(3) - (8)].range); 43713| 0| n->extname = makeString((yyvsp[(8) - (8)].str)); 43714| 0| n->remove = (yyvsp[(4) - (8)].boolean); 43715| 0| (yyval.node) = (Node *) n; 43716| 0| ;} 43717| 0| break; 43718| | 43719| 0| case 1348: ------------------ | Branch (43719:3): [True: 0, False: 76.7M] ------------------ 43720| 0|#line 10115 "gram.y" 43721| 0| { (yyval.boolean) = true; ;} 43722| 0| break; 43723| | 43724| 0| case 1349: ------------------ | Branch (43724:3): [True: 0, False: 76.7M] ------------------ 43725| 0|#line 10116 "gram.y" 43726| 0| { (yyval.boolean) = false; ;} 43727| 0| break; 43728| | 43729| 0| case 1350: ------------------ | Branch (43729:3): [True: 0, False: 76.7M] ------------------ 43730| 0|#line 10127 "gram.y" 43731| 0| { 43732| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43733| | 43734| 0| n->objectType = OBJECT_AGGREGATE; 43735| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43736| 0| n->newschema = (yyvsp[(6) - (6)].str); 43737| 0| n->missing_ok = false; 43738| 0| (yyval.node) = (Node *) n; 43739| 0| ;} 43740| 0| break; 43741| | 43742| 0| case 1351: ------------------ | Branch (43742:3): [True: 0, False: 76.7M] ------------------ 43743| 0|#line 10137 "gram.y" 43744| 0| { 43745| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43746| | 43747| 0| n->objectType = OBJECT_COLLATION; 43748| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43749| 0| n->newschema = (yyvsp[(6) - (6)].str); 43750| 0| n->missing_ok = false; 43751| 0| (yyval.node) = (Node *) n; 43752| 0| ;} 43753| 0| break; 43754| | 43755| 0| case 1352: ------------------ | Branch (43755:3): [True: 0, False: 76.7M] ------------------ 43756| 0|#line 10147 "gram.y" 43757| 0| { 43758| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43759| | 43760| 0| n->objectType = OBJECT_CONVERSION; 43761| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43762| 0| n->newschema = (yyvsp[(6) - (6)].str); 43763| 0| n->missing_ok = false; 43764| 0| (yyval.node) = (Node *) n; 43765| 0| ;} 43766| 0| break; 43767| | 43768| 0| case 1353: ------------------ | Branch (43768:3): [True: 0, False: 76.7M] ------------------ 43769| 0|#line 10157 "gram.y" 43770| 0| { 43771| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43772| | 43773| 0| n->objectType = OBJECT_DOMAIN; 43774| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43775| 0| n->newschema = (yyvsp[(6) - (6)].str); 43776| 0| n->missing_ok = false; 43777| 0| (yyval.node) = (Node *) n; 43778| 0| ;} 43779| 0| break; 43780| | 43781| 0| case 1354: ------------------ | Branch (43781:3): [True: 0, False: 76.7M] ------------------ 43782| 0|#line 10167 "gram.y" 43783| 0| { 43784| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43785| | 43786| 0| n->objectType = OBJECT_EXTENSION; 43787| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 43788| 0| n->newschema = (yyvsp[(6) - (6)].str); 43789| 0| n->missing_ok = false; 43790| 0| (yyval.node) = (Node *) n; 43791| 0| ;} 43792| 0| break; 43793| | 43794| 0| case 1355: ------------------ | Branch (43794:3): [True: 0, False: 76.7M] ------------------ 43795| 0|#line 10177 "gram.y" 43796| 0| { 43797| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43798| | 43799| 0| n->objectType = OBJECT_FUNCTION; 43800| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43801| 0| n->newschema = (yyvsp[(6) - (6)].str); 43802| 0| n->missing_ok = false; 43803| 0| (yyval.node) = (Node *) n; 43804| 0| ;} 43805| 0| break; 43806| | 43807| 0| case 1356: ------------------ | Branch (43807:3): [True: 0, False: 76.7M] ------------------ 43808| 0|#line 10187 "gram.y" 43809| 0| { 43810| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43811| | 43812| 0| n->objectType = OBJECT_OPERATOR; 43813| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43814| 0| n->newschema = (yyvsp[(6) - (6)].str); 43815| 0| n->missing_ok = false; 43816| 0| (yyval.node) = (Node *) n; 43817| 0| ;} 43818| 0| break; 43819| | 43820| 0| case 1357: ------------------ | Branch (43820:3): [True: 0, False: 76.7M] ------------------ 43821| 0|#line 10197 "gram.y" 43822| 0| { 43823| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43824| | 43825| 0| n->objectType = OBJECT_OPCLASS; 43826| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 43827| 0| n->newschema = (yyvsp[(9) - (9)].str); 43828| 0| n->missing_ok = false; 43829| 0| (yyval.node) = (Node *) n; 43830| 0| ;} 43831| 0| break; 43832| | 43833| 0| case 1358: ------------------ | Branch (43833:3): [True: 0, False: 76.7M] ------------------ 43834| 0|#line 10207 "gram.y" 43835| 0| { 43836| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43837| | 43838| 0| n->objectType = OBJECT_OPFAMILY; 43839| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 43840| 0| n->newschema = (yyvsp[(9) - (9)].str); 43841| 0| n->missing_ok = false; 43842| 0| (yyval.node) = (Node *) n; 43843| 0| ;} 43844| 0| break; 43845| | 43846| 0| case 1359: ------------------ | Branch (43846:3): [True: 0, False: 76.7M] ------------------ 43847| 0|#line 10217 "gram.y" 43848| 0| { 43849| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43850| | 43851| 0| n->objectType = OBJECT_PROCEDURE; 43852| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43853| 0| n->newschema = (yyvsp[(6) - (6)].str); 43854| 0| n->missing_ok = false; 43855| 0| (yyval.node) = (Node *) n; 43856| 0| ;} 43857| 0| break; 43858| | 43859| 0| case 1360: ------------------ | Branch (43859:3): [True: 0, False: 76.7M] ------------------ 43860| 0|#line 10227 "gram.y" 43861| 0| { 43862| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43863| | 43864| 0| n->objectType = OBJECT_ROUTINE; 43865| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 43866| 0| n->newschema = (yyvsp[(6) - (6)].str); 43867| 0| n->missing_ok = false; 43868| 0| (yyval.node) = (Node *) n; 43869| 0| ;} 43870| 0| break; 43871| | 43872| 1.36k| case 1361: ------------------ | Branch (43872:3): [True: 1.36k, False: 76.7M] ------------------ 43873| 1.36k|#line 10237 "gram.y" 43874| 1.36k| { 43875| 1.36k| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 1.36k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43876| | 43877| 1.36k| n->objectType = OBJECT_TABLE; 43878| 1.36k| n->relation = (yyvsp[(3) - (6)].range); 43879| 1.36k| n->newschema = (yyvsp[(6) - (6)].str); 43880| 1.36k| n->missing_ok = false; 43881| 1.36k| (yyval.node) = (Node *) n; 43882| 1.36k| ;} 43883| 1.36k| break; 43884| | 43885| 0| case 1362: ------------------ | Branch (43885:3): [True: 0, False: 76.7M] ------------------ 43886| 0|#line 10247 "gram.y" 43887| 0| { 43888| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43889| | 43890| 0| n->objectType = OBJECT_TABLE; 43891| 0| n->relation = (yyvsp[(5) - (8)].range); 43892| 0| n->newschema = (yyvsp[(8) - (8)].str); 43893| 0| n->missing_ok = true; 43894| 0| (yyval.node) = (Node *) n; 43895| 0| ;} 43896| 0| break; 43897| | 43898| 0| case 1363: ------------------ | Branch (43898:3): [True: 0, False: 76.7M] ------------------ 43899| 0|#line 10257 "gram.y" 43900| 0| { 43901| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43902| | 43903| 0| n->objectType = OBJECT_STATISTIC_EXT; 43904| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 43905| 0| n->newschema = (yyvsp[(6) - (6)].str); 43906| 0| n->missing_ok = false; 43907| 0| (yyval.node) = (Node *) n; 43908| 0| ;} 43909| 0| break; 43910| | 43911| 0| case 1364: ------------------ | Branch (43911:3): [True: 0, False: 76.7M] ------------------ 43912| 0|#line 10267 "gram.y" 43913| 0| { 43914| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43915| | 43916| 0| n->objectType = OBJECT_TSPARSER; 43917| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43918| 0| n->newschema = (yyvsp[(8) - (8)].str); 43919| 0| n->missing_ok = false; 43920| 0| (yyval.node) = (Node *) n; 43921| 0| ;} 43922| 0| break; 43923| | 43924| 0| case 1365: ------------------ | Branch (43924:3): [True: 0, False: 76.7M] ------------------ 43925| 0|#line 10277 "gram.y" 43926| 0| { 43927| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43928| | 43929| 0| n->objectType = OBJECT_TSDICTIONARY; 43930| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43931| 0| n->newschema = (yyvsp[(8) - (8)].str); 43932| 0| n->missing_ok = false; 43933| 0| (yyval.node) = (Node *) n; 43934| 0| ;} 43935| 0| break; 43936| | 43937| 0| case 1366: ------------------ | Branch (43937:3): [True: 0, False: 76.7M] ------------------ 43938| 0|#line 10287 "gram.y" 43939| 0| { 43940| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43941| | 43942| 0| n->objectType = OBJECT_TSTEMPLATE; 43943| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43944| 0| n->newschema = (yyvsp[(8) - (8)].str); 43945| 0| n->missing_ok = false; 43946| 0| (yyval.node) = (Node *) n; 43947| 0| ;} 43948| 0| break; 43949| | 43950| 0| case 1367: ------------------ | Branch (43950:3): [True: 0, False: 76.7M] ------------------ 43951| 0|#line 10297 "gram.y" 43952| 0| { 43953| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43954| | 43955| 0| n->objectType = OBJECT_TSCONFIGURATION; 43956| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 43957| 0| n->newschema = (yyvsp[(8) - (8)].str); 43958| 0| n->missing_ok = false; 43959| 0| (yyval.node) = (Node *) n; 43960| 0| ;} 43961| 0| break; 43962| | 43963| 0| case 1368: ------------------ | Branch (43963:3): [True: 0, False: 76.7M] ------------------ 43964| 0|#line 10307 "gram.y" 43965| 0| { 43966| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43967| | 43968| 0| n->objectType = OBJECT_SEQUENCE; 43969| 0| n->relation = (yyvsp[(3) - (6)].range); 43970| 0| n->newschema = (yyvsp[(6) - (6)].str); 43971| 0| n->missing_ok = false; 43972| 0| (yyval.node) = (Node *) n; 43973| 0| ;} 43974| 0| break; 43975| | 43976| 0| case 1369: ------------------ | Branch (43976:3): [True: 0, False: 76.7M] ------------------ 43977| 0|#line 10317 "gram.y" 43978| 0| { 43979| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43980| | 43981| 0| n->objectType = OBJECT_SEQUENCE; 43982| 0| n->relation = (yyvsp[(5) - (8)].range); 43983| 0| n->newschema = (yyvsp[(8) - (8)].str); 43984| 0| n->missing_ok = true; 43985| 0| (yyval.node) = (Node *) n; 43986| 0| ;} 43987| 0| break; 43988| | 43989| 0| case 1370: ------------------ | Branch (43989:3): [True: 0, False: 76.7M] ------------------ 43990| 0|#line 10327 "gram.y" 43991| 0| { 43992| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 43993| | 43994| 0| n->objectType = OBJECT_VIEW; 43995| 0| n->relation = (yyvsp[(3) - (6)].range); 43996| 0| n->newschema = (yyvsp[(6) - (6)].str); 43997| 0| n->missing_ok = false; 43998| 0| (yyval.node) = (Node *) n; 43999| 0| ;} 44000| 0| break; 44001| | 44002| 0| case 1371: ------------------ | Branch (44002:3): [True: 0, False: 76.7M] ------------------ 44003| 0|#line 10337 "gram.y" 44004| 0| { 44005| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44006| | 44007| 0| n->objectType = OBJECT_VIEW; 44008| 0| n->relation = (yyvsp[(5) - (8)].range); 44009| 0| n->newschema = (yyvsp[(8) - (8)].str); 44010| 0| n->missing_ok = true; 44011| 0| (yyval.node) = (Node *) n; 44012| 0| ;} 44013| 0| break; 44014| | 44015| 0| case 1372: ------------------ | Branch (44015:3): [True: 0, False: 76.7M] ------------------ 44016| 0|#line 10347 "gram.y" 44017| 0| { 44018| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44019| | 44020| 0| n->objectType = OBJECT_MATVIEW; 44021| 0| n->relation = (yyvsp[(4) - (7)].range); 44022| 0| n->newschema = (yyvsp[(7) - (7)].str); 44023| 0| n->missing_ok = false; 44024| 0| (yyval.node) = (Node *) n; 44025| 0| ;} 44026| 0| break; 44027| | 44028| 0| case 1373: ------------------ | Branch (44028:3): [True: 0, False: 76.7M] ------------------ 44029| 0|#line 10357 "gram.y" 44030| 0| { 44031| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44032| | 44033| 0| n->objectType = OBJECT_MATVIEW; 44034| 0| n->relation = (yyvsp[(6) - (9)].range); 44035| 0| n->newschema = (yyvsp[(9) - (9)].str); 44036| 0| n->missing_ok = true; 44037| 0| (yyval.node) = (Node *) n; 44038| 0| ;} 44039| 0| break; 44040| | 44041| 0| case 1374: ------------------ | Branch (44041:3): [True: 0, False: 76.7M] ------------------ 44042| 0|#line 10367 "gram.y" 44043| 0| { 44044| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44045| | 44046| 0| n->objectType = OBJECT_FOREIGN_TABLE; 44047| 0| n->relation = (yyvsp[(4) - (7)].range); 44048| 0| n->newschema = (yyvsp[(7) - (7)].str); 44049| 0| n->missing_ok = false; 44050| 0| (yyval.node) = (Node *) n; 44051| 0| ;} 44052| 0| break; 44053| | 44054| 0| case 1375: ------------------ | Branch (44054:3): [True: 0, False: 76.7M] ------------------ 44055| 0|#line 10377 "gram.y" 44056| 0| { 44057| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44058| | 44059| 0| n->objectType = OBJECT_FOREIGN_TABLE; 44060| 0| n->relation = (yyvsp[(6) - (9)].range); 44061| 0| n->newschema = (yyvsp[(9) - (9)].str); 44062| 0| n->missing_ok = true; 44063| 0| (yyval.node) = (Node *) n; 44064| 0| ;} 44065| 0| break; 44066| | 44067| 0| case 1376: ------------------ | Branch (44067:3): [True: 0, False: 76.7M] ------------------ 44068| 0|#line 10387 "gram.y" 44069| 0| { 44070| 0| AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44071| | 44072| 0| n->objectType = OBJECT_TYPE; 44073| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44074| 0| n->newschema = (yyvsp[(6) - (6)].str); 44075| 0| n->missing_ok = false; 44076| 0| (yyval.node) = (Node *) n; 44077| 0| ;} 44078| 0| break; 44079| | 44080| 0| case 1377: ------------------ | Branch (44080:3): [True: 0, False: 76.7M] ------------------ 44081| 0|#line 10406 "gram.y" 44082| 0| { 44083| 0| AlterOperatorStmt *n = makeNode(AlterOperatorStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44084| | 44085| 0| n->opername = (yyvsp[(3) - (7)].objwithargs); 44086| 0| n->options = (yyvsp[(6) - (7)].list); 44087| 0| (yyval.node) = (Node *) n; 44088| 0| ;} 44089| 0| break; 44090| | 44091| 0| case 1378: ------------------ | Branch (44091:3): [True: 0, False: 76.7M] ------------------ 44092| 0|#line 10415 "gram.y" 44093| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44094| 0| break; 44095| | 44096| 0| case 1379: ------------------ | Branch (44096:3): [True: 0, False: 76.7M] ------------------ 44097| 0|#line 10416 "gram.y" 44098| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 44099| 0| break; 44100| | 44101| 0| case 1380: ------------------ | Branch (44101:3): [True: 0, False: 76.7M] ------------------ 44102| 0|#line 10420 "gram.y" 44103| 0| { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); ;} 44104| 0| break; 44105| | 44106| 0| case 1381: ------------------ | Branch (44106:3): [True: 0, False: 76.7M] ------------------ 44107| 0|#line 10422 "gram.y" 44108| 0| { (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); ;} 44109| 0| break; 44110| | 44111| 0| case 1382: ------------------ | Branch (44111:3): [True: 0, False: 76.7M] ------------------ 44112| 0|#line 10424 "gram.y" 44113| 0| { (yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)])); ;} 44114| 0| break; 44115| | 44116| 0| case 1383: ------------------ | Branch (44116:3): [True: 0, False: 76.7M] ------------------ 44117| 0|#line 10429 "gram.y" 44118| 0| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].typnam); ;} 44119| 0| break; 44120| | 44121| 0| case 1384: ------------------ | Branch (44121:3): [True: 0, False: 76.7M] ------------------ 44122| 0|#line 10430 "gram.y" 44123| 0| { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;} 44124| 0| break; 44125| | 44126| 0| case 1385: ------------------ | Branch (44126:3): [True: 0, False: 76.7M] ------------------ 44127| 0|#line 10431 "gram.y" 44128| 0| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].list); ;} 44129| 0| break; 44130| | 44131| 0| case 1386: ------------------ | Branch (44131:3): [True: 0, False: 76.7M] ------------------ 44132| 0|#line 10432 "gram.y" 44133| 0| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} 44134| 0| break; 44135| | 44136| 0| case 1387: ------------------ | Branch (44136:3): [True: 0, False: 76.7M] ------------------ 44137| 0|#line 10433 "gram.y" 44138| 0| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 44139| 0| break; 44140| | 44141| 0| case 1388: ------------------ | Branch (44141:3): [True: 0, False: 76.7M] ------------------ 44142| 0|#line 10446 "gram.y" 44143| 0| { 44144| 0| AlterTypeStmt *n = makeNode(AlterTypeStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44145| | 44146| 0| n->typeName = (yyvsp[(3) - (7)].list); 44147| 0| n->options = (yyvsp[(6) - (7)].list); 44148| 0| (yyval.node) = (Node *) n; 44149| 0| ;} 44150| 0| break; 44151| | 44152| 0| case 1389: ------------------ | Branch (44152:3): [True: 0, False: 76.7M] ------------------ 44153| 0|#line 10462 "gram.y" 44154| 0| { 44155| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44156| | 44157| 0| n->objectType = OBJECT_AGGREGATE; 44158| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 44159| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44160| 0| (yyval.node) = (Node *) n; 44161| 0| ;} 44162| 0| break; 44163| | 44164| 0| case 1390: ------------------ | Branch (44164:3): [True: 0, False: 76.7M] ------------------ 44165| 0|#line 10471 "gram.y" 44166| 0| { 44167| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44168| | 44169| 0| n->objectType = OBJECT_COLLATION; 44170| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44171| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44172| 0| (yyval.node) = (Node *) n; 44173| 0| ;} 44174| 0| break; 44175| | 44176| 0| case 1391: ------------------ | Branch (44176:3): [True: 0, False: 76.7M] ------------------ 44177| 0|#line 10480 "gram.y" 44178| 0| { 44179| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44180| | 44181| 0| n->objectType = OBJECT_CONVERSION; 44182| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44183| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44184| 0| (yyval.node) = (Node *) n; 44185| 0| ;} 44186| 0| break; 44187| | 44188| 132| case 1392: ------------------ | Branch (44188:3): [True: 132, False: 76.7M] ------------------ 44189| 132|#line 10489 "gram.y" 44190| 132| { 44191| 132| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 132|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44192| | 44193| 132| n->objectType = OBJECT_DATABASE; 44194| 132| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44195| 132| n->newowner = (yyvsp[(6) - (6)].rolespec); 44196| 132| (yyval.node) = (Node *) n; 44197| 132| ;} 44198| 132| break; 44199| | 44200| 0| case 1393: ------------------ | Branch (44200:3): [True: 0, False: 76.7M] ------------------ 44201| 0|#line 10498 "gram.y" 44202| 0| { 44203| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44204| | 44205| 0| n->objectType = OBJECT_DOMAIN; 44206| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44207| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44208| 0| (yyval.node) = (Node *) n; 44209| 0| ;} 44210| 0| break; 44211| | 44212| 0| case 1394: ------------------ | Branch (44212:3): [True: 0, False: 76.7M] ------------------ 44213| 0|#line 10507 "gram.y" 44214| 0| { 44215| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44216| | 44217| 0| n->objectType = OBJECT_FUNCTION; 44218| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 44219| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44220| 0| (yyval.node) = (Node *) n; 44221| 0| ;} 44222| 0| break; 44223| | 44224| 0| case 1395: ------------------ | Branch (44224:3): [True: 0, False: 76.7M] ------------------ 44225| 0|#line 10516 "gram.y" 44226| 0| { 44227| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44228| | 44229| 0| n->objectType = OBJECT_LANGUAGE; 44230| 0| n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); 44231| 0| n->newowner = (yyvsp[(7) - (7)].rolespec); 44232| 0| (yyval.node) = (Node *) n; 44233| 0| ;} 44234| 0| break; 44235| | 44236| 0| case 1396: ------------------ | Branch (44236:3): [True: 0, False: 76.7M] ------------------ 44237| 0|#line 10525 "gram.y" 44238| 0| { 44239| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44240| | 44241| 0| n->objectType = OBJECT_LARGEOBJECT; 44242| 0| n->object = (Node *) (yyvsp[(4) - (7)].node); 44243| 0| n->newowner = (yyvsp[(7) - (7)].rolespec); 44244| 0| (yyval.node) = (Node *) n; 44245| 0| ;} 44246| 0| break; 44247| | 44248| 0| case 1397: ------------------ | Branch (44248:3): [True: 0, False: 76.7M] ------------------ 44249| 0|#line 10534 "gram.y" 44250| 0| { 44251| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44252| | 44253| 0| n->objectType = OBJECT_OPERATOR; 44254| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 44255| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44256| 0| (yyval.node) = (Node *) n; 44257| 0| ;} 44258| 0| break; 44259| | 44260| 0| case 1398: ------------------ | Branch (44260:3): [True: 0, False: 76.7M] ------------------ 44261| 0|#line 10543 "gram.y" 44262| 0| { 44263| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44264| | 44265| 0| n->objectType = OBJECT_OPCLASS; 44266| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 44267| 0| n->newowner = (yyvsp[(9) - (9)].rolespec); 44268| 0| (yyval.node) = (Node *) n; 44269| 0| ;} 44270| 0| break; 44271| | 44272| 0| case 1399: ------------------ | Branch (44272:3): [True: 0, False: 76.7M] ------------------ 44273| 0|#line 10552 "gram.y" 44274| 0| { 44275| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44276| | 44277| 0| n->objectType = OBJECT_OPFAMILY; 44278| 0| n->object = (Node *) lcons(makeString((yyvsp[(6) - (9)].str)), (yyvsp[(4) - (9)].list)); 44279| 0| n->newowner = (yyvsp[(9) - (9)].rolespec); 44280| 0| (yyval.node) = (Node *) n; 44281| 0| ;} 44282| 0| break; 44283| | 44284| 0| case 1400: ------------------ | Branch (44284:3): [True: 0, False: 76.7M] ------------------ 44285| 0|#line 10561 "gram.y" 44286| 0| { 44287| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44288| | 44289| 0| n->objectType = OBJECT_PROCEDURE; 44290| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 44291| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44292| 0| (yyval.node) = (Node *) n; 44293| 0| ;} 44294| 0| break; 44295| | 44296| 0| case 1401: ------------------ | Branch (44296:3): [True: 0, False: 76.7M] ------------------ 44297| 0|#line 10570 "gram.y" 44298| 0| { 44299| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44300| | 44301| 0| n->objectType = OBJECT_ROUTINE; 44302| 0| n->object = (Node *) (yyvsp[(3) - (6)].objwithargs); 44303| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44304| 0| (yyval.node) = (Node *) n; 44305| 0| ;} 44306| 0| break; 44307| | 44308| 0| case 1402: ------------------ | Branch (44308:3): [True: 0, False: 76.7M] ------------------ 44309| 0|#line 10579 "gram.y" 44310| 0| { 44311| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44312| | 44313| 0| n->objectType = OBJECT_SCHEMA; 44314| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44315| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44316| 0| (yyval.node) = (Node *) n; 44317| 0| ;} 44318| 0| break; 44319| | 44320| 0| case 1403: ------------------ | Branch (44320:3): [True: 0, False: 76.7M] ------------------ 44321| 0|#line 10588 "gram.y" 44322| 0| { 44323| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44324| | 44325| 0| n->objectType = OBJECT_TYPE; 44326| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44327| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44328| 0| (yyval.node) = (Node *) n; 44329| 0| ;} 44330| 0| break; 44331| | 44332| 0| case 1404: ------------------ | Branch (44332:3): [True: 0, False: 76.7M] ------------------ 44333| 0|#line 10597 "gram.y" 44334| 0| { 44335| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44336| | 44337| 0| n->objectType = OBJECT_TABLESPACE; 44338| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44339| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44340| 0| (yyval.node) = (Node *) n; 44341| 0| ;} 44342| 0| break; 44343| | 44344| 0| case 1405: ------------------ | Branch (44344:3): [True: 0, False: 76.7M] ------------------ 44345| 0|#line 10606 "gram.y" 44346| 0| { 44347| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44348| | 44349| 0| n->objectType = OBJECT_STATISTIC_EXT; 44350| 0| n->object = (Node *) (yyvsp[(3) - (6)].list); 44351| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44352| 0| (yyval.node) = (Node *) n; 44353| 0| ;} 44354| 0| break; 44355| | 44356| 0| case 1406: ------------------ | Branch (44356:3): [True: 0, False: 76.7M] ------------------ 44357| 0|#line 10615 "gram.y" 44358| 0| { 44359| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44360| | 44361| 0| n->objectType = OBJECT_TSDICTIONARY; 44362| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 44363| 0| n->newowner = (yyvsp[(8) - (8)].rolespec); 44364| 0| (yyval.node) = (Node *) n; 44365| 0| ;} 44366| 0| break; 44367| | 44368| 0| case 1407: ------------------ | Branch (44368:3): [True: 0, False: 76.7M] ------------------ 44369| 0|#line 10624 "gram.y" 44370| 0| { 44371| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44372| | 44373| 0| n->objectType = OBJECT_TSCONFIGURATION; 44374| 0| n->object = (Node *) (yyvsp[(5) - (8)].list); 44375| 0| n->newowner = (yyvsp[(8) - (8)].rolespec); 44376| 0| (yyval.node) = (Node *) n; 44377| 0| ;} 44378| 0| break; 44379| | 44380| 0| case 1408: ------------------ | Branch (44380:3): [True: 0, False: 76.7M] ------------------ 44381| 0|#line 10633 "gram.y" 44382| 0| { 44383| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44384| | 44385| 0| n->objectType = OBJECT_FDW; 44386| 0| n->object = (Node *) makeString((yyvsp[(5) - (8)].str)); 44387| 0| n->newowner = (yyvsp[(8) - (8)].rolespec); 44388| 0| (yyval.node) = (Node *) n; 44389| 0| ;} 44390| 0| break; 44391| | 44392| 0| case 1409: ------------------ | Branch (44392:3): [True: 0, False: 76.7M] ------------------ 44393| 0|#line 10642 "gram.y" 44394| 0| { 44395| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44396| | 44397| 0| n->objectType = OBJECT_FOREIGN_SERVER; 44398| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44399| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44400| 0| (yyval.node) = (Node *) n; 44401| 0| ;} 44402| 0| break; 44403| | 44404| 0| case 1410: ------------------ | Branch (44404:3): [True: 0, False: 76.7M] ------------------ 44405| 0|#line 10651 "gram.y" 44406| 0| { 44407| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44408| | 44409| 0| n->objectType = OBJECT_EVENT_TRIGGER; 44410| 0| n->object = (Node *) makeString((yyvsp[(4) - (7)].str)); 44411| 0| n->newowner = (yyvsp[(7) - (7)].rolespec); 44412| 0| (yyval.node) = (Node *) n; 44413| 0| ;} 44414| 0| break; 44415| | 44416| 0| case 1411: ------------------ | Branch (44416:3): [True: 0, False: 76.7M] ------------------ 44417| 0|#line 10660 "gram.y" 44418| 0| { 44419| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44420| | 44421| 0| n->objectType = OBJECT_PUBLICATION; 44422| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44423| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44424| 0| (yyval.node) = (Node *) n; 44425| 0| ;} 44426| 0| break; 44427| | 44428| 0| case 1412: ------------------ | Branch (44428:3): [True: 0, False: 76.7M] ------------------ 44429| 0|#line 10669 "gram.y" 44430| 0| { 44431| 0| AlterOwnerStmt *n = makeNode(AlterOwnerStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44432| | 44433| 0| n->objectType = OBJECT_SUBSCRIPTION; 44434| 0| n->object = (Node *) makeString((yyvsp[(3) - (6)].str)); 44435| 0| n->newowner = (yyvsp[(6) - (6)].rolespec); 44436| 0| (yyval.node) = (Node *) n; 44437| 0| ;} 44438| 0| break; 44439| | 44440| 0| case 1413: ------------------ | Branch (44440:3): [True: 0, False: 76.7M] ------------------ 44441| 0|#line 10697 "gram.y" 44442| 0| { 44443| 0| CreatePublicationStmt *n = makeNode(CreatePublicationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44444| | 44445| 0| n->pubname = (yyvsp[(3) - (4)].str); 44446| 0| n->options = (yyvsp[(4) - (4)].list); 44447| 0| (yyval.node) = (Node *) n; 44448| 0| ;} 44449| 0| break; 44450| | 44451| 0| case 1414: ------------------ | Branch (44451:3): [True: 0, False: 76.7M] ------------------ 44452| 0|#line 10705 "gram.y" 44453| 0| { 44454| 0| CreatePublicationStmt *n = makeNode(CreatePublicationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44455| | 44456| 0| n->pubname = (yyvsp[(3) - (7)].str); 44457| 0| n->options = (yyvsp[(7) - (7)].list); 44458| 0| n->for_all_tables = true; 44459| 0| (yyval.node) = (Node *) n; 44460| 0| ;} 44461| 0| break; 44462| | 44463| 151| case 1415: ------------------ | Branch (44463:3): [True: 151, False: 76.7M] ------------------ 44464| 151|#line 10714 "gram.y" 44465| 151| { 44466| 151| CreatePublicationStmt *n = makeNode(CreatePublicationStmt); ------------------ | | 161| 151|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44467| | 44468| 151| n->pubname = (yyvsp[(3) - (6)].str); 44469| 151| n->options = (yyvsp[(6) - (6)].list); 44470| 151| n->pubobjects = (List *) (yyvsp[(5) - (6)].list); 44471| 151| preprocess_pubobj_list(n->pubobjects, yyscanner); 44472| 151| (yyval.node) = (Node *) n; 44473| 151| ;} 44474| 151| break; 44475| | 44476| 409| case 1416: ------------------ | Branch (44476:3): [True: 409, False: 76.7M] ------------------ 44477| 409|#line 10740 "gram.y" 44478| 409| { 44479| 409| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 409|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44480| 409| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLE; 44481| 409| (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); ------------------ | | 161| 409|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44482| 409| (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[(2) - (4)].range); 44483| 409| (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(3) - (4)].list); 44484| 409| (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(4) - (4)].node); 44485| 409| ;} 44486| 409| break; 44487| | 44488| 0| case 1417: ------------------ | Branch (44488:3): [True: 0, False: 76.7M] ------------------ 44489| 0|#line 10749 "gram.y" 44490| 0| { 44491| 0| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44492| 0| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA; 44493| 0| (yyval.publicationobjectspec)->name = (yyvsp[(4) - (4)].str); 44494| 0| (yyval.publicationobjectspec)->location = (yylsp[(4) - (4)]); 44495| 0| ;} 44496| 0| break; 44497| | 44498| 0| case 1418: ------------------ | Branch (44498:3): [True: 0, False: 76.7M] ------------------ 44499| 0|#line 10756 "gram.y" 44500| 0| { 44501| 0| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44502| 0| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA; 44503| 0| (yyval.publicationobjectspec)->location = (yylsp[(4) - (4)]); 44504| 0| ;} 44505| 0| break; 44506| | 44507| 2.17M| case 1419: ------------------ | Branch (44507:3): [True: 2.17M, False: 74.5M] ------------------ 44508| 2.17M|#line 10762 "gram.y" 44509| 2.17M| { 44510| 2.17M| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 2.17M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44511| 2.17M| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; 44512| | /* 44513| | * If either a row filter or column list is specified, create 44514| | * a PublicationTable object. 44515| | */ 44516| 2.17M| if ((yyvsp[(2) - (3)].list) || (yyvsp[(3) - (3)].node)) ------------------ | Branch (44516:10): [True: 254, False: 2.17M] | Branch (44516:37): [True: 0, False: 2.17M] ------------------ 44517| 254| { 44518| | /* 44519| | * The OptWhereClause must be stored here but it is 44520| | * valid only for tables. For non-table objects, an 44521| | * error will be thrown later via 44522| | * preprocess_pubobj_list(). 44523| | */ 44524| 254| (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); ------------------ | | 161| 254|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44525| 254| (yyval.publicationobjectspec)->pubtable->relation = makeRangeVar(NULL, (yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])); 44526| 254| (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(2) - (3)].list); 44527| 254| (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(3) - (3)].node); 44528| 254| } 44529| 2.17M| else 44530| 2.17M| { 44531| 2.17M| (yyval.publicationobjectspec)->name = (yyvsp[(1) - (3)].str); 44532| 2.17M| } 44533| 2.17M| (yyval.publicationobjectspec)->location = (yylsp[(1) - (3)]); 44534| 2.17M| ;} 44535| 2.17M| break; 44536| | 44537| 3.20k| case 1420: ------------------ | Branch (44537:3): [True: 3.20k, False: 76.7M] ------------------ 44538| 3.20k|#line 10789 "gram.y" 44539| 3.20k| { 44540| 3.20k| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 3.20k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44541| 3.20k| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; 44542| 3.20k| (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); ------------------ | | 161| 3.20k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44543| 3.20k| (yyval.publicationobjectspec)->pubtable->relation = makeRangeVarFromQualifiedName((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].list), (yylsp[(1) - (4)]), yyscanner); 44544| 3.20k| (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(3) - (4)].list); 44545| 3.20k| (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(4) - (4)].node); 44546| 3.20k| (yyval.publicationobjectspec)->location = (yylsp[(1) - (4)]); 44547| 3.20k| ;} 44548| 3.20k| break; 44549| | 44550| 965| case 1421: ------------------ | Branch (44550:3): [True: 965, False: 76.7M] ------------------ 44551| 965|#line 10800 "gram.y" 44552| 965| { 44553| 965| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 965|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44554| 965| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; 44555| 965| (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable); ------------------ | | 161| 965|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44556| 965| (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[(1) - (3)].range); 44557| 965| (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[(2) - (3)].list); 44558| 965| (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[(3) - (3)].node); 44559| 965| ;} 44560| 965| break; 44561| | 44562| 0| case 1422: ------------------ | Branch (44562:3): [True: 0, False: 76.7M] ------------------ 44563| 0|#line 10809 "gram.y" 44564| 0| { 44565| 0| (yyval.publicationobjectspec) = makeNode(PublicationObjSpec); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44566| 0| (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION; 44567| 0| (yyval.publicationobjectspec)->location = (yylsp[(1) - (1)]); 44568| 0| ;} 44569| 0| break; 44570| | 44571| 409| case 1423: ------------------ | Branch (44571:3): [True: 409, False: 76.7M] ------------------ 44572| 409|#line 10817 "gram.y" 44573| 409| { (yyval.list) = list_make1((yyvsp[(1) - (1)].publicationobjectspec)); ;} ------------------ | | 213| 409| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 409|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44574| 409| break; 44575| | 44576| 2.18M| case 1424: ------------------ | Branch (44576:3): [True: 2.18M, False: 74.5M] ------------------ 44577| 2.18M|#line 10819 "gram.y" 44578| 2.18M| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].publicationobjectspec)); ;} 44579| 2.18M| break; 44580| | 44581| 0| case 1425: ------------------ | Branch (44581:3): [True: 0, False: 76.7M] ------------------ 44582| 0|#line 10841 "gram.y" 44583| 0| { 44584| 0| AlterPublicationStmt *n = makeNode(AlterPublicationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44585| | 44586| 0| n->pubname = (yyvsp[(3) - (5)].str); 44587| 0| n->options = (yyvsp[(5) - (5)].list); 44588| 0| (yyval.node) = (Node *) n; 44589| 0| ;} 44590| 0| break; 44591| | 44592| 0| case 1426: ------------------ | Branch (44592:3): [True: 0, False: 76.7M] ------------------ 44593| 0|#line 10849 "gram.y" 44594| 0| { 44595| 0| AlterPublicationStmt *n = makeNode(AlterPublicationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44596| | 44597| 0| n->pubname = (yyvsp[(3) - (5)].str); 44598| 0| n->pubobjects = (yyvsp[(5) - (5)].list); 44599| 0| preprocess_pubobj_list(n->pubobjects, yyscanner); 44600| 0| n->action = AP_AddObjects; 44601| 0| (yyval.node) = (Node *) n; 44602| 0| ;} 44603| 0| break; 44604| | 44605| 0| case 1427: ------------------ | Branch (44605:3): [True: 0, False: 76.7M] ------------------ 44606| 0|#line 10859 "gram.y" 44607| 0| { 44608| 0| AlterPublicationStmt *n = makeNode(AlterPublicationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44609| | 44610| 0| n->pubname = (yyvsp[(3) - (5)].str); 44611| 0| n->pubobjects = (yyvsp[(5) - (5)].list); 44612| 0| preprocess_pubobj_list(n->pubobjects, yyscanner); 44613| 0| n->action = AP_SetObjects; 44614| 0| (yyval.node) = (Node *) n; 44615| 0| ;} 44616| 0| break; 44617| | 44618| 258| case 1428: ------------------ | Branch (44618:3): [True: 258, False: 76.7M] ------------------ 44619| 258|#line 10869 "gram.y" 44620| 258| { 44621| 258| AlterPublicationStmt *n = makeNode(AlterPublicationStmt); ------------------ | | 161| 258|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44622| | 44623| 258| n->pubname = (yyvsp[(3) - (5)].str); 44624| 258| n->pubobjects = (yyvsp[(5) - (5)].list); 44625| 258| preprocess_pubobj_list(n->pubobjects, yyscanner); 44626| 258| n->action = AP_DropObjects; 44627| 258| (yyval.node) = (Node *) n; 44628| 258| ;} 44629| 258| break; 44630| | 44631| 0| case 1429: ------------------ | Branch (44631:3): [True: 0, False: 76.7M] ------------------ 44632| 0|#line 10888 "gram.y" 44633| 0| { 44634| 0| CreateSubscriptionStmt *n = 44635| 0| makeNode(CreateSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44636| 0| n->subname = (yyvsp[(3) - (8)].str); 44637| 0| n->conninfo = (yyvsp[(5) - (8)].str); 44638| 0| n->conninfo_location = (yylsp[(5) - (8)]); 44639| 0| n->publication = (yyvsp[(7) - (8)].list); 44640| 0| n->options = (yyvsp[(8) - (8)].list); 44641| 0| (yyval.node) = (Node *) n; 44642| 0| ;} 44643| 0| break; 44644| | 44645| 0| case 1430: ------------------ | Branch (44645:3): [True: 0, False: 76.7M] ------------------ 44646| 0|#line 10908 "gram.y" 44647| 0| { 44648| 0| AlterSubscriptionStmt *n = 44649| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44650| | 44651| 0| n->kind = ALTER_SUBSCRIPTION_OPTIONS; 44652| 0| n->subname = (yyvsp[(3) - (5)].str); 44653| 0| n->options = (yyvsp[(5) - (5)].list); 44654| 0| (yyval.node) = (Node *) n; 44655| 0| ;} 44656| 0| break; 44657| | 44658| 0| case 1431: ------------------ | Branch (44658:3): [True: 0, False: 76.7M] ------------------ 44659| 0|#line 10918 "gram.y" 44660| 0| { 44661| 0| AlterSubscriptionStmt *n = 44662| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44663| | 44664| 0| n->kind = ALTER_SUBSCRIPTION_CONNECTION; 44665| 0| n->subname = (yyvsp[(3) - (5)].str); 44666| 0| n->conninfo = (yyvsp[(5) - (5)].str); 44667| 0| n->conninfo_location = (yylsp[(5) - (5)]); 44668| 0| (yyval.node) = (Node *) n; 44669| 0| ;} 44670| 0| break; 44671| | 44672| 0| case 1432: ------------------ | Branch (44672:3): [True: 0, False: 76.7M] ------------------ 44673| 0|#line 10929 "gram.y" 44674| 0| { 44675| 0| AlterSubscriptionStmt *n = 44676| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44677| | 44678| 0| n->kind = ALTER_SUBSCRIPTION_REFRESH; 44679| 0| n->subname = (yyvsp[(3) - (6)].str); 44680| 0| n->options = (yyvsp[(6) - (6)].list); 44681| 0| (yyval.node) = (Node *) n; 44682| 0| ;} 44683| 0| break; 44684| | 44685| 0| case 1433: ------------------ | Branch (44685:3): [True: 0, False: 76.7M] ------------------ 44686| 0|#line 10939 "gram.y" 44687| 0| { 44688| 0| AlterSubscriptionStmt *n = 44689| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44690| | 44691| 0| n->kind = ALTER_SUBSCRIPTION_ADD_PUBLICATION; 44692| 0| n->subname = (yyvsp[(3) - (7)].str); 44693| 0| n->publication = (yyvsp[(6) - (7)].list); 44694| 0| n->options = (yyvsp[(7) - (7)].list); 44695| 0| (yyval.node) = (Node *) n; 44696| 0| ;} 44697| 0| break; 44698| | 44699| 0| case 1434: ------------------ | Branch (44699:3): [True: 0, False: 76.7M] ------------------ 44700| 0|#line 10950 "gram.y" 44701| 0| { 44702| 0| AlterSubscriptionStmt *n = 44703| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44704| | 44705| 0| n->kind = ALTER_SUBSCRIPTION_DROP_PUBLICATION; 44706| 0| n->subname = (yyvsp[(3) - (7)].str); 44707| 0| n->publication = (yyvsp[(6) - (7)].list); 44708| 0| n->options = (yyvsp[(7) - (7)].list); 44709| 0| (yyval.node) = (Node *) n; 44710| 0| ;} 44711| 0| break; 44712| | 44713| 0| case 1435: ------------------ | Branch (44713:3): [True: 0, False: 76.7M] ------------------ 44714| 0|#line 10961 "gram.y" 44715| 0| { 44716| 0| AlterSubscriptionStmt *n = 44717| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44718| | 44719| 0| n->kind = ALTER_SUBSCRIPTION_SET_PUBLICATION; 44720| 0| n->subname = (yyvsp[(3) - (7)].str); 44721| 0| n->publication = (yyvsp[(6) - (7)].list); 44722| 0| n->options = (yyvsp[(7) - (7)].list); 44723| 0| (yyval.node) = (Node *) n; 44724| 0| ;} 44725| 0| break; 44726| | 44727| 0| case 1436: ------------------ | Branch (44727:3): [True: 0, False: 76.7M] ------------------ 44728| 0|#line 10972 "gram.y" 44729| 0| { 44730| 0| AlterSubscriptionStmt *n = 44731| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44732| | 44733| 0| n->kind = ALTER_SUBSCRIPTION_ENABLED; 44734| 0| n->subname = (yyvsp[(3) - (4)].str); 44735| 0| n->options = list_make1(makeDefElem("enabled", ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44736| 0| (Node *) makeBoolean(true), (yylsp[(1) - (4)]))); 44737| 0| (yyval.node) = (Node *) n; 44738| 0| ;} 44739| 0| break; 44740| | 44741| 0| case 1437: ------------------ | Branch (44741:3): [True: 0, False: 76.7M] ------------------ 44742| 0|#line 10983 "gram.y" 44743| 0| { 44744| 0| AlterSubscriptionStmt *n = 44745| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44746| | 44747| 0| n->kind = ALTER_SUBSCRIPTION_ENABLED; 44748| 0| n->subname = (yyvsp[(3) - (4)].str); 44749| 0| n->options = list_make1(makeDefElem("enabled", ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44750| 0| (Node *) makeBoolean(false), (yylsp[(1) - (4)]))); 44751| 0| (yyval.node) = (Node *) n; 44752| 0| ;} 44753| 0| break; 44754| | 44755| 0| case 1438: ------------------ | Branch (44755:3): [True: 0, False: 76.7M] ------------------ 44756| 0|#line 10994 "gram.y" 44757| 0| { 44758| 0| AlterSubscriptionStmt *n = 44759| 0| makeNode(AlterSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44760| | 44761| 0| n->kind = ALTER_SUBSCRIPTION_SKIP; 44762| 0| n->subname = (yyvsp[(3) - (5)].str); 44763| 0| n->options = (yyvsp[(5) - (5)].list); 44764| 0| (yyval.node) = (Node *) n; 44765| 0| ;} 44766| 0| break; 44767| | 44768| 0| case 1439: ------------------ | Branch (44768:3): [True: 0, False: 76.7M] ------------------ 44769| 0|#line 11012 "gram.y" 44770| 0| { 44771| 0| DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44772| | 44773| 0| n->subname = (yyvsp[(3) - (4)].str); 44774| 0| n->missing_ok = false; 44775| 0| n->behavior = (yyvsp[(4) - (4)].dbehavior); 44776| 0| (yyval.node) = (Node *) n; 44777| 0| ;} 44778| 0| break; 44779| | 44780| 0| case 1440: ------------------ | Branch (44780:3): [True: 0, False: 76.7M] ------------------ 44781| 0|#line 11021 "gram.y" 44782| 0| { 44783| 0| DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44784| | 44785| 0| n->subname = (yyvsp[(5) - (6)].str); 44786| 0| n->missing_ok = true; 44787| 0| n->behavior = (yyvsp[(6) - (6)].dbehavior); 44788| 0| (yyval.node) = (Node *) n; 44789| 0| ;} 44790| 0| break; 44791| | 44792| 0| case 1441: ------------------ | Branch (44792:3): [True: 0, False: 76.7M] ------------------ 44793| 0|#line 11040 "gram.y" 44794| 0| { 44795| 0| RuleStmt *n = makeNode(RuleStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44796| | 44797| 0| n->replace = (yyvsp[(2) - (13)].boolean); 44798| 0| n->relation = (yyvsp[(9) - (13)].range); 44799| 0| n->rulename = (yyvsp[(4) - (13)].str); 44800| 0| n->whereClause = (yyvsp[(10) - (13)].node); 44801| 0| n->event = (yyvsp[(7) - (13)].ival); 44802| 0| n->instead = (yyvsp[(12) - (13)].boolean); 44803| 0| n->actions = (yyvsp[(13) - (13)].list); 44804| 0| (yyval.node) = (Node *) n; 44805| 0| ;} 44806| 0| break; 44807| | 44808| 0| case 1442: ------------------ | Branch (44808:3): [True: 0, False: 76.7M] ------------------ 44809| 0|#line 11055 "gram.y" 44810| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 44811| 0| break; 44812| | 44813| 0| case 1443: ------------------ | Branch (44813:3): [True: 0, False: 76.7M] ------------------ 44814| 0|#line 11056 "gram.y" 44815| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44816| 0| break; 44817| | 44818| 0| case 1444: ------------------ | Branch (44818:3): [True: 0, False: 76.7M] ------------------ 44819| 0|#line 11057 "gram.y" 44820| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 44821| 0| break; 44822| | 44823| 0| case 1445: ------------------ | Branch (44823:3): [True: 0, False: 76.7M] ------------------ 44824| 0|#line 11063 "gram.y" 44825| 0| { if ((yyvsp[(3) - (3)].node) != NULL) ------------------ | Branch (44825:11): [True: 0, False: 0] ------------------ 44826| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 44827| 0| else 44828| 0| (yyval.list) = (yyvsp[(1) - (3)].list); 44829| 0| ;} 44830| 0| break; 44831| | 44832| 0| case 1446: ------------------ | Branch (44832:3): [True: 0, False: 76.7M] ------------------ 44833| 0|#line 11069 "gram.y" 44834| 0| { if ((yyvsp[(1) - (1)].node) != NULL) ------------------ | Branch (44834:11): [True: 0, False: 0] ------------------ 44835| 0| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 44836| 0| else 44837| 0| (yyval.list) = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 44838| 0| ;} 44839| 0| break; 44840| | 44841| 0| case 1452: ------------------ | Branch (44841:3): [True: 0, False: 76.7M] ------------------ 44842| 0|#line 11085 "gram.y" 44843| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 44844| 0| break; 44845| | 44846| 0| case 1453: ------------------ | Branch (44846:3): [True: 0, False: 76.7M] ------------------ 44847| 0|#line 11086 "gram.y" 44848| 0| { (yyval.node) = NULL; ;} 44849| 0| break; 44850| | 44851| 0| case 1454: ------------------ | Branch (44851:3): [True: 0, False: 76.7M] ------------------ 44852| 0|#line 11089 "gram.y" 44853| 0| { (yyval.ival) = CMD_SELECT; ;} 44854| 0| break; 44855| | 44856| 0| case 1455: ------------------ | Branch (44856:3): [True: 0, False: 76.7M] ------------------ 44857| 0|#line 11090 "gram.y" 44858| 0| { (yyval.ival) = CMD_UPDATE; ;} 44859| 0| break; 44860| | 44861| 0| case 1456: ------------------ | Branch (44861:3): [True: 0, False: 76.7M] ------------------ 44862| 0|#line 11091 "gram.y" 44863| 0| { (yyval.ival) = CMD_DELETE; ;} 44864| 0| break; 44865| | 44866| 0| case 1457: ------------------ | Branch (44866:3): [True: 0, False: 76.7M] ------------------ 44867| 0|#line 11092 "gram.y" 44868| 0| { (yyval.ival) = CMD_INSERT; ;} 44869| 0| break; 44870| | 44871| 0| case 1458: ------------------ | Branch (44871:3): [True: 0, False: 76.7M] ------------------ 44872| 0|#line 11096 "gram.y" 44873| 0| { (yyval.boolean) = true; ;} 44874| 0| break; 44875| | 44876| 0| case 1459: ------------------ | Branch (44876:3): [True: 0, False: 76.7M] ------------------ 44877| 0|#line 11097 "gram.y" 44878| 0| { (yyval.boolean) = false; ;} 44879| 0| break; 44880| | 44881| 0| case 1460: ------------------ | Branch (44881:3): [True: 0, False: 76.7M] ------------------ 44882| 0|#line 11098 "gram.y" 44883| 0| { (yyval.boolean) = false; ;} 44884| 0| break; 44885| | 44886| 0| case 1461: ------------------ | Branch (44886:3): [True: 0, False: 76.7M] ------------------ 44887| 0|#line 11111 "gram.y" 44888| 0| { 44889| 0| NotifyStmt *n = makeNode(NotifyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44890| | 44891| 0| n->conditionname = (yyvsp[(2) - (4)].str); 44892| 0| n->payload = (yyvsp[(4) - (4)].str); 44893| 0| n->payload_location = (yylsp[(4) - (4)]); 44894| 0| (yyval.node) = (Node *) n; 44895| 0| ;} 44896| 0| break; 44897| | 44898| 0| case 1462: ------------------ | Branch (44898:3): [True: 0, False: 76.7M] ------------------ 44899| 0|#line 11120 "gram.y" 44900| 0| { 44901| 0| NotifyStmt *n = makeNode(NotifyStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44902| | 44903| 0| n->conditionname = (yyvsp[(2) - (2)].str); 44904| 0| n->payload = NULL; 44905| 0| (yyval.node) = (Node *) n; 44906| 0| ;} 44907| 0| break; 44908| | 44909| 0| case 1463: ------------------ | Branch (44909:3): [True: 0, False: 76.7M] ------------------ 44910| 0|#line 11130 "gram.y" 44911| 0| { 44912| 0| ListenStmt *n = makeNode(ListenStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44913| | 44914| 0| n->conditionname = (yyvsp[(2) - (2)].str); 44915| 0| (yyval.node) = (Node *) n; 44916| 0| ;} 44917| 0| break; 44918| | 44919| 0| case 1464: ------------------ | Branch (44919:3): [True: 0, False: 76.7M] ------------------ 44920| 0|#line 11140 "gram.y" 44921| 0| { 44922| 0| UnlistenStmt *n = makeNode(UnlistenStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44923| | 44924| 0| n->conditionname = (yyvsp[(2) - (2)].str); 44925| 0| (yyval.node) = (Node *) n; 44926| 0| ;} 44927| 0| break; 44928| | 44929| 0| case 1465: ------------------ | Branch (44929:3): [True: 0, False: 76.7M] ------------------ 44930| 0|#line 11147 "gram.y" 44931| 0| { 44932| 0| UnlistenStmt *n = makeNode(UnlistenStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44933| | 44934| 0| n->conditionname = NULL; 44935| 0| (yyval.node) = (Node *) n; 44936| 0| ;} 44937| 0| break; 44938| | 44939| 0| case 1466: ------------------ | Branch (44939:3): [True: 0, False: 76.7M] ------------------ 44940| 0|#line 11167 "gram.y" 44941| 0| { 44942| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44943| | 44944| 0| n->kind = TRANS_STMT_ROLLBACK; 44945| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 44946| 0| n->chain = (yyvsp[(3) - (3)].boolean); 44947| 0| n->location = -1; 44948| 0| (yyval.node) = (Node *) n; 44949| 0| ;} 44950| 0| break; 44951| | 44952| 0| case 1467: ------------------ | Branch (44952:3): [True: 0, False: 76.7M] ------------------ 44953| 0|#line 11177 "gram.y" 44954| 0| { 44955| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44956| | 44957| 0| n->kind = TRANS_STMT_START; 44958| 0| n->options = (yyvsp[(3) - (3)].list); 44959| 0| n->location = -1; 44960| 0| (yyval.node) = (Node *) n; 44961| 0| ;} 44962| 0| break; 44963| | 44964| 0| case 1468: ------------------ | Branch (44964:3): [True: 0, False: 76.7M] ------------------ 44965| 0|#line 11186 "gram.y" 44966| 0| { 44967| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44968| | 44969| 0| n->kind = TRANS_STMT_COMMIT; 44970| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 44971| 0| n->chain = (yyvsp[(3) - (3)].boolean); 44972| 0| n->location = -1; 44973| 0| (yyval.node) = (Node *) n; 44974| 0| ;} 44975| 0| break; 44976| | 44977| 0| case 1469: ------------------ | Branch (44977:3): [True: 0, False: 76.7M] ------------------ 44978| 0|#line 11196 "gram.y" 44979| 0| { 44980| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44981| | 44982| 0| n->kind = TRANS_STMT_ROLLBACK; 44983| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 44984| 0| n->chain = (yyvsp[(3) - (3)].boolean); 44985| 0| n->location = -1; 44986| 0| (yyval.node) = (Node *) n; 44987| 0| ;} 44988| 0| break; 44989| | 44990| 40| case 1470: ------------------ | Branch (44990:3): [True: 40, False: 76.7M] ------------------ 44991| 40|#line 11206 "gram.y" 44992| 40| { 44993| 40| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 40|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 44994| | 44995| 40| n->kind = TRANS_STMT_SAVEPOINT; 44996| 40| n->savepoint_name = (yyvsp[(2) - (2)].str); 44997| 40| n->location = (yylsp[(2) - (2)]); 44998| 40| (yyval.node) = (Node *) n; 44999| 40| ;} 45000| 40| break; 45001| | 45002| 0| case 1471: ------------------ | Branch (45002:3): [True: 0, False: 76.7M] ------------------ 45003| 0|#line 11215 "gram.y" 45004| 0| { 45005| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45006| | 45007| 0| n->kind = TRANS_STMT_RELEASE; 45008| 0| n->savepoint_name = (yyvsp[(3) - (3)].str); 45009| 0| n->location = (yylsp[(3) - (3)]); 45010| 0| (yyval.node) = (Node *) n; 45011| 0| ;} 45012| 0| break; 45013| | 45014| 2| case 1472: ------------------ | Branch (45014:3): [True: 2, False: 76.7M] ------------------ 45015| 2|#line 11224 "gram.y" 45016| 2| { 45017| 2| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45018| | 45019| 2| n->kind = TRANS_STMT_RELEASE; 45020| 2| n->savepoint_name = (yyvsp[(2) - (2)].str); 45021| 2| n->location = (yylsp[(2) - (2)]); 45022| 2| (yyval.node) = (Node *) n; 45023| 2| ;} 45024| 2| break; 45025| | 45026| 0| case 1473: ------------------ | Branch (45026:3): [True: 0, False: 76.7M] ------------------ 45027| 0|#line 11233 "gram.y" 45028| 0| { 45029| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45030| | 45031| 0| n->kind = TRANS_STMT_ROLLBACK_TO; 45032| 0| n->savepoint_name = (yyvsp[(5) - (5)].str); 45033| 0| n->location = (yylsp[(5) - (5)]); 45034| 0| (yyval.node) = (Node *) n; 45035| 0| ;} 45036| 0| break; 45037| | 45038| 0| case 1474: ------------------ | Branch (45038:3): [True: 0, False: 76.7M] ------------------ 45039| 0|#line 11242 "gram.y" 45040| 0| { 45041| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45042| | 45043| 0| n->kind = TRANS_STMT_ROLLBACK_TO; 45044| 0| n->savepoint_name = (yyvsp[(4) - (4)].str); 45045| 0| n->location = (yylsp[(4) - (4)]); 45046| 0| (yyval.node) = (Node *) n; 45047| 0| ;} 45048| 0| break; 45049| | 45050| 0| case 1475: ------------------ | Branch (45050:3): [True: 0, False: 76.7M] ------------------ 45051| 0|#line 11251 "gram.y" 45052| 0| { 45053| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45054| | 45055| 0| n->kind = TRANS_STMT_PREPARE; 45056| 0| n->gid = (yyvsp[(3) - (3)].str); 45057| 0| n->location = (yylsp[(3) - (3)]); 45058| 0| (yyval.node) = (Node *) n; 45059| 0| ;} 45060| 0| break; 45061| | 45062| 0| case 1476: ------------------ | Branch (45062:3): [True: 0, False: 76.7M] ------------------ 45063| 0|#line 11260 "gram.y" 45064| 0| { 45065| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45066| | 45067| 0| n->kind = TRANS_STMT_COMMIT_PREPARED; 45068| 0| n->gid = (yyvsp[(3) - (3)].str); 45069| 0| n->location = (yylsp[(3) - (3)]); 45070| 0| (yyval.node) = (Node *) n; 45071| 0| ;} 45072| 0| break; 45073| | 45074| 0| case 1477: ------------------ | Branch (45074:3): [True: 0, False: 76.7M] ------------------ 45075| 0|#line 11269 "gram.y" 45076| 0| { 45077| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45078| | 45079| 0| n->kind = TRANS_STMT_ROLLBACK_PREPARED; 45080| 0| n->gid = (yyvsp[(3) - (3)].str); 45081| 0| n->location = (yylsp[(3) - (3)]); 45082| 0| (yyval.node) = (Node *) n; 45083| 0| ;} 45084| 0| break; 45085| | 45086| 0| case 1478: ------------------ | Branch (45086:3): [True: 0, False: 76.7M] ------------------ 45087| 0|#line 11281 "gram.y" 45088| 0| { 45089| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45090| | 45091| 0| n->kind = TRANS_STMT_BEGIN; 45092| 0| n->options = (yyvsp[(3) - (3)].list); 45093| 0| n->location = -1; 45094| 0| (yyval.node) = (Node *) n; 45095| 0| ;} 45096| 0| break; 45097| | 45098| 0| case 1479: ------------------ | Branch (45098:3): [True: 0, False: 76.7M] ------------------ 45099| 0|#line 11290 "gram.y" 45100| 0| { 45101| 0| TransactionStmt *n = makeNode(TransactionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45102| | 45103| 0| n->kind = TRANS_STMT_COMMIT; 45104| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45105| 0| n->chain = (yyvsp[(3) - (3)].boolean); 45106| 0| n->location = -1; 45107| 0| (yyval.node) = (Node *) n; 45108| 0| ;} 45109| 0| break; 45110| | 45111| 0| case 1483: ------------------ | Branch (45111:3): [True: 0, False: 76.7M] ------------------ 45112| 0|#line 11308 "gram.y" 45113| 0| { (yyval.defelt) = makeDefElem("transaction_isolation", 45114| 0| makeStringConst((yyvsp[(3) - (3)].str), (yylsp[(3) - (3)])), (yylsp[(1) - (3)])); ;} 45115| 0| break; 45116| | 45117| 0| case 1484: ------------------ | Branch (45117:3): [True: 0, False: 76.7M] ------------------ 45118| 0|#line 11311 "gram.y" 45119| 0| { (yyval.defelt) = makeDefElem("transaction_read_only", 45120| 0| makeIntConst(true, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} 45121| 0| break; 45122| | 45123| 0| case 1485: ------------------ | Branch (45123:3): [True: 0, False: 76.7M] ------------------ 45124| 0|#line 11314 "gram.y" 45125| 0| { (yyval.defelt) = makeDefElem("transaction_read_only", 45126| 0| makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} 45127| 0| break; 45128| | 45129| 0| case 1486: ------------------ | Branch (45129:3): [True: 0, False: 76.7M] ------------------ 45130| 0|#line 11317 "gram.y" 45131| 0| { (yyval.defelt) = makeDefElem("transaction_deferrable", 45132| 0| makeIntConst(true, (yylsp[(1) - (1)])), (yylsp[(1) - (1)])); ;} 45133| 0| break; 45134| | 45135| 0| case 1487: ------------------ | Branch (45135:3): [True: 0, False: 76.7M] ------------------ 45136| 0|#line 11320 "gram.y" 45137| 0| { (yyval.defelt) = makeDefElem("transaction_deferrable", 45138| 0| makeIntConst(false, (yylsp[(1) - (2)])), (yylsp[(1) - (2)])); ;} 45139| 0| break; 45140| | 45141| 0| case 1488: ------------------ | Branch (45141:3): [True: 0, False: 76.7M] ------------------ 45142| 0|#line 11327 "gram.y" 45143| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45144| 0| break; 45145| | 45146| 0| case 1489: ------------------ | Branch (45146:3): [True: 0, False: 76.7M] ------------------ 45147| 0|#line 11329 "gram.y" 45148| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} 45149| 0| break; 45150| | 45151| 0| case 1490: ------------------ | Branch (45151:3): [True: 0, False: 76.7M] ------------------ 45152| 0|#line 11331 "gram.y" 45153| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 45154| 0| break; 45155| | 45156| 0| case 1492: ------------------ | Branch (45156:3): [True: 0, False: 76.7M] ------------------ 45157| 0|#line 11337 "gram.y" 45158| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45159| 0| break; 45160| | 45161| 0| case 1493: ------------------ | Branch (45161:3): [True: 0, False: 76.7M] ------------------ 45162| 0|#line 11341 "gram.y" 45163| 0| { (yyval.boolean) = true; ;} 45164| 0| break; 45165| | 45166| 0| case 1494: ------------------ | Branch (45166:3): [True: 0, False: 76.7M] ------------------ 45167| 0|#line 11342 "gram.y" 45168| 0| { (yyval.boolean) = false; ;} 45169| 0| break; 45170| | 45171| 0| case 1495: ------------------ | Branch (45171:3): [True: 0, False: 76.7M] ------------------ 45172| 0|#line 11343 "gram.y" 45173| 0| { (yyval.boolean) = false; ;} 45174| 0| break; 45175| | 45176| 269| case 1496: ------------------ | Branch (45176:3): [True: 269, False: 76.7M] ------------------ 45177| 269|#line 11357 "gram.y" 45178| 269| { 45179| 269| ViewStmt *n = makeNode(ViewStmt); ------------------ | | 161| 269|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45180| | 45181| 269| n->view = (yyvsp[(4) - (9)].range); 45182| 269| n->view->relpersistence = (yyvsp[(2) - (9)].ival); 45183| 269| n->aliases = (yyvsp[(5) - (9)].list); 45184| 269| n->query = (yyvsp[(8) - (9)].node); 45185| 269| n->replace = false; 45186| 269| n->options = (yyvsp[(6) - (9)].list); 45187| 269| n->withCheckOption = (yyvsp[(9) - (9)].ival); 45188| 269| (yyval.node) = (Node *) n; 45189| 269| ;} 45190| 269| break; 45191| | 45192| 153| case 1497: ------------------ | Branch (45192:3): [True: 153, False: 76.7M] ------------------ 45193| 153|#line 11371 "gram.y" 45194| 153| { 45195| 153| ViewStmt *n = makeNode(ViewStmt); ------------------ | | 161| 153|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45196| | 45197| 153| n->view = (yyvsp[(6) - (11)].range); 45198| 153| n->view->relpersistence = (yyvsp[(4) - (11)].ival); 45199| 153| n->aliases = (yyvsp[(7) - (11)].list); 45200| 153| n->query = (yyvsp[(10) - (11)].node); 45201| 153| n->replace = true; 45202| 153| n->options = (yyvsp[(8) - (11)].list); 45203| 153| n->withCheckOption = (yyvsp[(11) - (11)].ival); 45204| 153| (yyval.node) = (Node *) n; 45205| 153| ;} 45206| 153| break; 45207| | 45208| 300| case 1498: ------------------ | Branch (45208:3): [True: 300, False: 76.7M] ------------------ 45209| 300|#line 11385 "gram.y" 45210| 300| { 45211| 300| ViewStmt *n = makeNode(ViewStmt); ------------------ | | 161| 300|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45212| | 45213| 300| n->view = (yyvsp[(5) - (12)].range); 45214| 300| n->view->relpersistence = (yyvsp[(2) - (12)].ival); 45215| 300| n->aliases = (yyvsp[(7) - (12)].list); 45216| 300| n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node)); 45217| 300| n->replace = false; 45218| 300| n->options = (yyvsp[(9) - (12)].list); 45219| 300| n->withCheckOption = (yyvsp[(12) - (12)].ival); 45220| 300| if (n->withCheckOption != NO_CHECK_OPTION) ------------------ | Branch (45220:10): [True: 0, False: 300] ------------------ 45221| 300| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 45222| 300| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 45223| 300| errmsg("WITH CHECK OPTION not supported on recursive views"), 45224| 300| parser_errposition((yylsp[(12) - (12)])))); 45225| 300| (yyval.node) = (Node *) n; 45226| 300| ;} 45227| 0| break; 45228| | 45229| 128| case 1499: ------------------ | Branch (45229:3): [True: 128, False: 76.7M] ------------------ 45230| 128|#line 11404 "gram.y" 45231| 128| { 45232| 128| ViewStmt *n = makeNode(ViewStmt); ------------------ | | 161| 128|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45233| | 45234| 128| n->view = (yyvsp[(7) - (14)].range); 45235| 128| n->view->relpersistence = (yyvsp[(4) - (14)].ival); 45236| 128| n->aliases = (yyvsp[(9) - (14)].list); 45237| 128| n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node)); 45238| 128| n->replace = true; 45239| 128| n->options = (yyvsp[(11) - (14)].list); 45240| 128| n->withCheckOption = (yyvsp[(14) - (14)].ival); 45241| 128| if (n->withCheckOption != NO_CHECK_OPTION) ------------------ | Branch (45241:10): [True: 0, False: 128] ------------------ 45242| 128| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 45243| 128| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 45244| 128| errmsg("WITH CHECK OPTION not supported on recursive views"), 45245| 128| parser_errposition((yylsp[(14) - (14)])))); 45246| 128| (yyval.node) = (Node *) n; 45247| 128| ;} 45248| 0| break; 45249| | 45250| 0| case 1500: ------------------ | Branch (45250:3): [True: 0, False: 76.7M] ------------------ 45251| 0|#line 11424 "gram.y" 45252| 0| { (yyval.ival) = CASCADED_CHECK_OPTION; ;} 45253| 0| break; 45254| | 45255| 0| case 1501: ------------------ | Branch (45255:3): [True: 0, False: 76.7M] ------------------ 45256| 0|#line 11425 "gram.y" 45257| 0| { (yyval.ival) = CASCADED_CHECK_OPTION; ;} 45258| 0| break; 45259| | 45260| 0| case 1502: ------------------ | Branch (45260:3): [True: 0, False: 76.7M] ------------------ 45261| 0|#line 11426 "gram.y" 45262| 0| { (yyval.ival) = LOCAL_CHECK_OPTION; ;} 45263| 0| break; 45264| | 45265| 850| case 1503: ------------------ | Branch (45265:3): [True: 850, False: 76.7M] ------------------ 45266| 850|#line 11427 "gram.y" 45267| 850| { (yyval.ival) = NO_CHECK_OPTION; ;} 45268| 850| break; 45269| | 45270| 5| case 1504: ------------------ | Branch (45270:3): [True: 5, False: 76.7M] ------------------ 45271| 5|#line 11438 "gram.y" 45272| 5| { 45273| 5| LoadStmt *n = makeNode(LoadStmt); ------------------ | | 161| 5|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45274| | 45275| 5| n->filename = (yyvsp[(2) - (2)].str); 45276| 5| (yyval.node) = (Node *) n; 45277| 5| ;} 45278| 5| break; 45279| | 45280| 3| case 1505: ------------------ | Branch (45280:3): [True: 3, False: 76.7M] ------------------ 45281| 3|#line 11455 "gram.y" 45282| 3| { 45283| 3| CreatedbStmt *n = makeNode(CreatedbStmt); ------------------ | | 161| 3|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45284| | 45285| 3| n->dbname = (yyvsp[(3) - (5)].str); 45286| 3| n->options = (yyvsp[(5) - (5)].list); 45287| 3| (yyval.node) = (Node *) n; 45288| 3| ;} 45289| 3| break; 45290| | 45291| 274| case 1506: ------------------ | Branch (45291:3): [True: 274, False: 76.7M] ------------------ 45292| 274|#line 11465 "gram.y" 45293| 274| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 45294| 274| break; 45295| | 45296| 315| case 1507: ------------------ | Branch (45296:3): [True: 315, False: 76.7M] ------------------ 45297| 315|#line 11466 "gram.y" 45298| 315| { (yyval.list) = NIL; ;} ------------------ | | 68| 315|#define NIL ((List *) NULL) ------------------ 45299| 315| break; 45300| | 45301| 274| case 1508: ------------------ | Branch (45301:3): [True: 274, False: 76.7M] ------------------ 45302| 274|#line 11470 "gram.y" 45303| 274| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 274| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 274|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45304| 274| break; 45305| | 45306| 5.42k| case 1509: ------------------ | Branch (45306:3): [True: 5.42k, False: 76.7M] ------------------ 45307| 5.42k|#line 11471 "gram.y" 45308| 5.42k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 45309| 5.42k| break; 45310| | 45311| 0| case 1510: ------------------ | Branch (45311:3): [True: 0, False: 76.7M] ------------------ 45312| 0|#line 11476 "gram.y" 45313| 0| { 45314| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)])); 45315| 0| ;} 45316| 0| break; 45317| | 45318| 5.69k| case 1511: ------------------ | Branch (45318:3): [True: 5.69k, False: 76.7M] ------------------ 45319| 5.69k|#line 11480 "gram.y" 45320| 5.69k| { 45321| 5.69k| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (Node *) makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)])); 45322| 5.69k| ;} 45323| 5.69k| break; 45324| | 45325| 0| case 1512: ------------------ | Branch (45325:3): [True: 0, False: 76.7M] ------------------ 45326| 0|#line 11484 "gram.y" 45327| 0| { 45328| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), NULL, (yylsp[(1) - (3)])); 45329| 0| ;} 45330| 0| break; 45331| | 45332| 4.40k| case 1513: ------------------ | Branch (45332:3): [True: 4.40k, False: 76.7M] ------------------ 45333| 4.40k|#line 11501 "gram.y" 45334| 4.40k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 45335| 4.40k| break; 45336| | 45337| 0| case 1514: ------------------ | Branch (45337:3): [True: 0, False: 76.7M] ------------------ 45338| 0|#line 11502 "gram.y" 45339| 0| { (yyval.str) = pstrdup("connection_limit"); ;} 45340| 0| break; 45341| | 45342| 0| case 1515: ------------------ | Branch (45342:3): [True: 0, False: 76.7M] ------------------ 45343| 0|#line 11503 "gram.y" 45344| 0| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 45345| 0| break; 45346| | 45347| 0| case 1516: ------------------ | Branch (45347:3): [True: 0, False: 76.7M] ------------------ 45348| 0|#line 11504 "gram.y" 45349| 0| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 45350| 0| break; 45351| | 45352| 0| case 1517: ------------------ | Branch (45352:3): [True: 0, False: 76.7M] ------------------ 45353| 0|#line 11505 "gram.y" 45354| 0| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 45355| 0| break; 45356| | 45357| 0| case 1518: ------------------ | Branch (45357:3): [True: 0, False: 76.7M] ------------------ 45358| 0|#line 11506 "gram.y" 45359| 0| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 45360| 0| break; 45361| | 45362| 1.29k| case 1519: ------------------ | Branch (45362:3): [True: 1.29k, False: 76.7M] ------------------ 45363| 1.29k|#line 11507 "gram.y" 45364| 1.29k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 45365| 1.29k| break; 45366| | 45367| 247| case 1522: ------------------ | Branch (45367:3): [True: 247, False: 76.7M] ------------------ 45368| 247|#line 11527 "gram.y" 45369| 247| { 45370| 247| AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); ------------------ | | 161| 247|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45371| | 45372| 247| n->dbname = (yyvsp[(3) - (5)].str); 45373| 247| n->options = (yyvsp[(5) - (5)].list); 45374| 247| (yyval.node) = (Node *) n; 45375| 247| ;} 45376| 247| break; 45377| | 45378| 339| case 1523: ------------------ | Branch (45378:3): [True: 339, False: 76.7M] ------------------ 45379| 339|#line 11535 "gram.y" 45380| 339| { 45381| 339| AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); ------------------ | | 161| 339|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45382| | 45383| 339| n->dbname = (yyvsp[(3) - (4)].str); 45384| 339| n->options = (yyvsp[(4) - (4)].list); 45385| 339| (yyval.node) = (Node *) n; 45386| 339| ;} 45387| 339| break; 45388| | 45389| 0| case 1524: ------------------ | Branch (45389:3): [True: 0, False: 76.7M] ------------------ 45390| 0|#line 11543 "gram.y" 45391| 0| { 45392| 0| AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45393| | 45394| 0| n->dbname = (yyvsp[(3) - (6)].str); 45395| 0| n->options = list_make1(makeDefElem("tablespace", ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45396| 0| (Node *) makeString((yyvsp[(6) - (6)].str)), (yylsp[(6) - (6)]))); 45397| 0| (yyval.node) = (Node *) n; 45398| 0| ;} 45399| 0| break; 45400| | 45401| 0| case 1525: ------------------ | Branch (45401:3): [True: 0, False: 76.7M] ------------------ 45402| 0|#line 11552 "gram.y" 45403| 0| { 45404| 0| AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45405| | 45406| 0| n->dbname = (yyvsp[(3) - (6)].str); 45407| 0| (yyval.node) = (Node *) n; 45408| 0| ;} 45409| 0| break; 45410| | 45411| 0| case 1526: ------------------ | Branch (45411:3): [True: 0, False: 76.7M] ------------------ 45412| 0|#line 11562 "gram.y" 45413| 0| { 45414| 0| AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45415| | 45416| 0| n->dbname = (yyvsp[(3) - (4)].str); 45417| 0| n->setstmt = (yyvsp[(4) - (4)].vsetstmt); 45418| 0| (yyval.node) = (Node *) n; 45419| 0| ;} 45420| 0| break; 45421| | 45422| 0| case 1527: ------------------ | Branch (45422:3): [True: 0, False: 76.7M] ------------------ 45423| 0|#line 11580 "gram.y" 45424| 0| { 45425| 0| DropdbStmt *n = makeNode(DropdbStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45426| | 45427| 0| n->dbname = (yyvsp[(3) - (3)].str); 45428| 0| n->missing_ok = false; 45429| 0| n->options = NULL; 45430| 0| (yyval.node) = (Node *) n; 45431| 0| ;} 45432| 0| break; 45433| | 45434| 0| case 1528: ------------------ | Branch (45434:3): [True: 0, False: 76.7M] ------------------ 45435| 0|#line 11589 "gram.y" 45436| 0| { 45437| 0| DropdbStmt *n = makeNode(DropdbStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45438| | 45439| 0| n->dbname = (yyvsp[(5) - (5)].str); 45440| 0| n->missing_ok = true; 45441| 0| n->options = NULL; 45442| 0| (yyval.node) = (Node *) n; 45443| 0| ;} 45444| 0| break; 45445| | 45446| 0| case 1529: ------------------ | Branch (45446:3): [True: 0, False: 76.7M] ------------------ 45447| 0|#line 11598 "gram.y" 45448| 0| { 45449| 0| DropdbStmt *n = makeNode(DropdbStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45450| | 45451| 0| n->dbname = (yyvsp[(3) - (7)].str); 45452| 0| n->missing_ok = false; 45453| 0| n->options = (yyvsp[(6) - (7)].list); 45454| 0| (yyval.node) = (Node *) n; 45455| 0| ;} 45456| 0| break; 45457| | 45458| 0| case 1530: ------------------ | Branch (45458:3): [True: 0, False: 76.7M] ------------------ 45459| 0|#line 11607 "gram.y" 45460| 0| { 45461| 0| DropdbStmt *n = makeNode(DropdbStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45462| | 45463| 0| n->dbname = (yyvsp[(5) - (9)].str); 45464| 0| n->missing_ok = true; 45465| 0| n->options = (yyvsp[(8) - (9)].list); 45466| 0| (yyval.node) = (Node *) n; 45467| 0| ;} 45468| 0| break; 45469| | 45470| 0| case 1531: ------------------ | Branch (45470:3): [True: 0, False: 76.7M] ------------------ 45471| 0|#line 11619 "gram.y" 45472| 0| { 45473| 0| (yyval.list) = list_make1((Node *) (yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45474| 0| ;} 45475| 0| break; 45476| | 45477| 0| case 1532: ------------------ | Branch (45477:3): [True: 0, False: 76.7M] ------------------ 45478| 0|#line 11623 "gram.y" 45479| 0| { 45480| 0| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (Node *) (yyvsp[(3) - (3)].defelt)); 45481| 0| ;} 45482| 0| break; 45483| | 45484| 0| case 1533: ------------------ | Branch (45484:3): [True: 0, False: 76.7M] ------------------ 45485| 0|#line 11634 "gram.y" 45486| 0| { 45487| 0| (yyval.defelt) = makeDefElem("force", NULL, (yylsp[(1) - (1)])); 45488| 0| ;} 45489| 0| break; 45490| | 45491| 0| case 1534: ------------------ | Branch (45491:3): [True: 0, False: 76.7M] ------------------ 45492| 0|#line 11646 "gram.y" 45493| 0| { 45494| 0| AlterCollationStmt *n = makeNode(AlterCollationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45495| | 45496| 0| n->collname = (yyvsp[(3) - (5)].list); 45497| 0| (yyval.node) = (Node *) n; 45498| 0| ;} 45499| 0| break; 45500| | 45501| 0| case 1535: ------------------ | Branch (45501:3): [True: 0, False: 76.7M] ------------------ 45502| 0|#line 11664 "gram.y" 45503| 0| { 45504| 0| AlterSystemStmt *n = makeNode(AlterSystemStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45505| | 45506| 0| n->setstmt = (yyvsp[(4) - (4)].vsetstmt); 45507| 0| (yyval.node) = (Node *) n; 45508| 0| ;} 45509| 0| break; 45510| | 45511| 0| case 1536: ------------------ | Branch (45511:3): [True: 0, False: 76.7M] ------------------ 45512| 0|#line 11671 "gram.y" 45513| 0| { 45514| 0| AlterSystemStmt *n = makeNode(AlterSystemStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45515| | 45516| 0| n->setstmt = (yyvsp[(4) - (4)].vsetstmt); 45517| 0| (yyval.node) = (Node *) n; 45518| 0| ;} 45519| 0| break; 45520| | 45521| 0| case 1537: ------------------ | Branch (45521:3): [True: 0, False: 76.7M] ------------------ 45522| 0|#line 11688 "gram.y" 45523| 0| { 45524| 0| CreateDomainStmt *n = makeNode(CreateDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45525| | 45526| 0| n->domainname = (yyvsp[(3) - (6)].list); 45527| 0| n->typeName = (yyvsp[(5) - (6)].typnam); 45528| 0| SplitColQualList((yyvsp[(6) - (6)].list), &n->constraints, &n->collClause, 45529| 0| yyscanner); 45530| 0| (yyval.node) = (Node *) n; 45531| 0| ;} 45532| 0| break; 45533| | 45534| 0| case 1538: ------------------ | Branch (45534:3): [True: 0, False: 76.7M] ------------------ 45535| 0|#line 11702 "gram.y" 45536| 0| { 45537| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45538| | 45539| 0| n->subtype = 'T'; 45540| 0| n->typeName = (yyvsp[(3) - (4)].list); 45541| 0| n->def = (yyvsp[(4) - (4)].node); 45542| 0| (yyval.node) = (Node *) n; 45543| 0| ;} 45544| 0| break; 45545| | 45546| 0| case 1539: ------------------ | Branch (45546:3): [True: 0, False: 76.7M] ------------------ 45547| 0|#line 11712 "gram.y" 45548| 0| { 45549| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45550| | 45551| 0| n->subtype = 'N'; 45552| 0| n->typeName = (yyvsp[(3) - (6)].list); 45553| 0| (yyval.node) = (Node *) n; 45554| 0| ;} 45555| 0| break; 45556| | 45557| 0| case 1540: ------------------ | Branch (45557:3): [True: 0, False: 76.7M] ------------------ 45558| 0|#line 11721 "gram.y" 45559| 0| { 45560| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45561| | 45562| 0| n->subtype = 'O'; 45563| 0| n->typeName = (yyvsp[(3) - (6)].list); 45564| 0| (yyval.node) = (Node *) n; 45565| 0| ;} 45566| 0| break; 45567| | 45568| 0| case 1541: ------------------ | Branch (45568:3): [True: 0, False: 76.7M] ------------------ 45569| 0|#line 11730 "gram.y" 45570| 0| { 45571| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45572| | 45573| 0| n->subtype = 'C'; 45574| 0| n->typeName = (yyvsp[(3) - (5)].list); 45575| 0| n->def = (yyvsp[(5) - (5)].node); 45576| 0| (yyval.node) = (Node *) n; 45577| 0| ;} 45578| 0| break; 45579| | 45580| 0| case 1542: ------------------ | Branch (45580:3): [True: 0, False: 76.7M] ------------------ 45581| 0|#line 11740 "gram.y" 45582| 0| { 45583| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45584| | 45585| 0| n->subtype = 'X'; 45586| 0| n->typeName = (yyvsp[(3) - (7)].list); 45587| 0| n->name = (yyvsp[(6) - (7)].str); 45588| 0| n->behavior = (yyvsp[(7) - (7)].dbehavior); 45589| 0| n->missing_ok = false; 45590| 0| (yyval.node) = (Node *) n; 45591| 0| ;} 45592| 0| break; 45593| | 45594| 0| case 1543: ------------------ | Branch (45594:3): [True: 0, False: 76.7M] ------------------ 45595| 0|#line 11752 "gram.y" 45596| 0| { 45597| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45598| | 45599| 0| n->subtype = 'X'; 45600| 0| n->typeName = (yyvsp[(3) - (9)].list); 45601| 0| n->name = (yyvsp[(8) - (9)].str); 45602| 0| n->behavior = (yyvsp[(9) - (9)].dbehavior); 45603| 0| n->missing_ok = true; 45604| 0| (yyval.node) = (Node *) n; 45605| 0| ;} 45606| 0| break; 45607| | 45608| 0| case 1544: ------------------ | Branch (45608:3): [True: 0, False: 76.7M] ------------------ 45609| 0|#line 11764 "gram.y" 45610| 0| { 45611| 0| AlterDomainStmt *n = makeNode(AlterDomainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45612| | 45613| 0| n->subtype = 'V'; 45614| 0| n->typeName = (yyvsp[(3) - (6)].list); 45615| 0| n->name = (yyvsp[(6) - (6)].str); 45616| 0| (yyval.node) = (Node *) n; 45617| 0| ;} 45618| 0| break; 45619| | 45620| 0| case 1547: ------------------ | Branch (45620:3): [True: 0, False: 76.7M] ------------------ 45621| 0|#line 11787 "gram.y" 45622| 0| { 45623| 0| AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45624| | 45625| 0| n->dictname = (yyvsp[(5) - (6)].list); 45626| 0| n->options = (yyvsp[(6) - (6)].list); 45627| 0| (yyval.node) = (Node *) n; 45628| 0| ;} 45629| 0| break; 45630| | 45631| 0| case 1548: ------------------ | Branch (45631:3): [True: 0, False: 76.7M] ------------------ 45632| 0|#line 11798 "gram.y" 45633| 0| { 45634| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45635| | 45636| 0| n->kind = ALTER_TSCONFIG_ADD_MAPPING; 45637| 0| n->cfgname = (yyvsp[(5) - (11)].list); 45638| 0| n->tokentype = (yyvsp[(9) - (11)].list); 45639| 0| n->dicts = (yyvsp[(11) - (11)].list); 45640| 0| n->override = false; 45641| 0| n->replace = false; 45642| 0| (yyval.node) = (Node *) n; 45643| 0| ;} 45644| 0| break; 45645| | 45646| 0| case 1549: ------------------ | Branch (45646:3): [True: 0, False: 76.7M] ------------------ 45647| 0|#line 11810 "gram.y" 45648| 0| { 45649| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45650| | 45651| 0| n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN; 45652| 0| n->cfgname = (yyvsp[(5) - (11)].list); 45653| 0| n->tokentype = (yyvsp[(9) - (11)].list); 45654| 0| n->dicts = (yyvsp[(11) - (11)].list); 45655| 0| n->override = true; 45656| 0| n->replace = false; 45657| 0| (yyval.node) = (Node *) n; 45658| 0| ;} 45659| 0| break; 45660| | 45661| 0| case 1550: ------------------ | Branch (45661:3): [True: 0, False: 76.7M] ------------------ 45662| 0|#line 11822 "gram.y" 45663| 0| { 45664| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45665| | 45666| 0| n->kind = ALTER_TSCONFIG_REPLACE_DICT; 45667| 0| n->cfgname = (yyvsp[(5) - (11)].list); 45668| 0| n->tokentype = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45669| 0| n->dicts = list_make2((yyvsp[(9) - (11)].list),(yyvsp[(11) - (11)].list)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45670| 0| n->override = false; 45671| 0| n->replace = true; 45672| 0| (yyval.node) = (Node *) n; 45673| 0| ;} 45674| 0| break; 45675| | 45676| 0| case 1551: ------------------ | Branch (45676:3): [True: 0, False: 76.7M] ------------------ 45677| 0|#line 11834 "gram.y" 45678| 0| { 45679| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45680| | 45681| 0| n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN; 45682| 0| n->cfgname = (yyvsp[(5) - (13)].list); 45683| 0| n->tokentype = (yyvsp[(9) - (13)].list); 45684| 0| n->dicts = list_make2((yyvsp[(11) - (13)].list),(yyvsp[(13) - (13)].list)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45685| 0| n->override = false; 45686| 0| n->replace = true; 45687| 0| (yyval.node) = (Node *) n; 45688| 0| ;} 45689| 0| break; 45690| | 45691| 0| case 1552: ------------------ | Branch (45691:3): [True: 0, False: 76.7M] ------------------ 45692| 0|#line 11846 "gram.y" 45693| 0| { 45694| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45695| | 45696| 0| n->kind = ALTER_TSCONFIG_DROP_MAPPING; 45697| 0| n->cfgname = (yyvsp[(5) - (9)].list); 45698| 0| n->tokentype = (yyvsp[(9) - (9)].list); 45699| 0| n->missing_ok = false; 45700| 0| (yyval.node) = (Node *) n; 45701| 0| ;} 45702| 0| break; 45703| | 45704| 0| case 1553: ------------------ | Branch (45704:3): [True: 0, False: 76.7M] ------------------ 45705| 0|#line 11856 "gram.y" 45706| 0| { 45707| 0| AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45708| | 45709| 0| n->kind = ALTER_TSCONFIG_DROP_MAPPING; 45710| 0| n->cfgname = (yyvsp[(5) - (11)].list); 45711| 0| n->tokentype = (yyvsp[(11) - (11)].list); 45712| 0| n->missing_ok = true; 45713| 0| (yyval.node) = (Node *) n; 45714| 0| ;} 45715| 0| break; 45716| | 45717| 0| case 1556: ------------------ | Branch (45717:3): [True: 0, False: 76.7M] ------------------ 45718| 0|#line 11885 "gram.y" 45719| 0| { 45720| 0| CreateConversionStmt *n = makeNode(CreateConversionStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45721| | 45722| 0| n->conversion_name = (yyvsp[(4) - (10)].list); 45723| 0| n->for_encoding_name = (yyvsp[(6) - (10)].str); 45724| 0| n->to_encoding_name = (yyvsp[(8) - (10)].str); 45725| 0| n->func_name = (yyvsp[(10) - (10)].list); 45726| 0| n->def = (yyvsp[(2) - (10)].boolean); 45727| 0| (yyval.node) = (Node *) n; 45728| 0| ;} 45729| 0| break; 45730| | 45731| 0| case 1557: ------------------ | Branch (45731:3): [True: 0, False: 76.7M] ------------------ 45732| 0|#line 11908 "gram.y" 45733| 0| { 45734| 0| ClusterStmt *n = makeNode(ClusterStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45735| | 45736| 0| n->relation = (yyvsp[(5) - (6)].range); 45737| 0| n->indexname = (yyvsp[(6) - (6)].str); 45738| 0| n->params = (yyvsp[(3) - (6)].list); 45739| 0| (yyval.node) = (Node *) n; 45740| 0| ;} 45741| 0| break; 45742| | 45743| 0| case 1558: ------------------ | Branch (45743:3): [True: 0, False: 76.7M] ------------------ 45744| 0|#line 11917 "gram.y" 45745| 0| { 45746| 0| ClusterStmt *n = makeNode(ClusterStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45747| | 45748| 0| n->relation = NULL; 45749| 0| n->indexname = NULL; 45750| 0| n->params = (yyvsp[(3) - (4)].list); 45751| 0| (yyval.node) = (Node *) n; 45752| 0| ;} 45753| 0| break; 45754| | 45755| 0| case 1559: ------------------ | Branch (45755:3): [True: 0, False: 76.7M] ------------------ 45756| 0|#line 11927 "gram.y" 45757| 0| { 45758| 0| ClusterStmt *n = makeNode(ClusterStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45759| | 45760| 0| n->relation = (yyvsp[(3) - (4)].range); 45761| 0| n->indexname = (yyvsp[(4) - (4)].str); 45762| 0| n->params = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45763| 0| if ((yyvsp[(2) - (4)].boolean)) ------------------ | Branch (45763:10): [True: 0, False: 0] ------------------ 45764| 0| n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (4)]))); 45765| 0| (yyval.node) = (Node *) n; 45766| 0| ;} 45767| 0| break; 45768| | 45769| 0| case 1560: ------------------ | Branch (45769:3): [True: 0, False: 76.7M] ------------------ 45770| 0|#line 11939 "gram.y" 45771| 0| { 45772| 0| ClusterStmt *n = makeNode(ClusterStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45773| | 45774| 0| n->relation = NULL; 45775| 0| n->indexname = NULL; 45776| 0| n->params = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45777| 0| if ((yyvsp[(2) - (2)].boolean)) ------------------ | Branch (45777:10): [True: 0, False: 0] ------------------ 45778| 0| n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (2)]))); 45779| 0| (yyval.node) = (Node *) n; 45780| 0| ;} 45781| 0| break; 45782| | 45783| 0| case 1561: ------------------ | Branch (45783:3): [True: 0, False: 76.7M] ------------------ 45784| 0|#line 11951 "gram.y" 45785| 0| { 45786| 0| ClusterStmt *n = makeNode(ClusterStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45787| | 45788| 0| n->relation = (yyvsp[(5) - (5)].range); 45789| 0| n->indexname = (yyvsp[(3) - (5)].str); 45790| 0| n->params = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45791| 0| if ((yyvsp[(2) - (5)].boolean)) ------------------ | Branch (45791:10): [True: 0, False: 0] ------------------ 45792| 0| n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[(2) - (5)]))); 45793| 0| (yyval.node) = (Node *) n; 45794| 0| ;} 45795| 0| break; 45796| | 45797| 0| case 1562: ------------------ | Branch (45797:3): [True: 0, False: 76.7M] ------------------ 45798| 0|#line 11964 "gram.y" 45799| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 45800| 0| break; 45801| | 45802| 0| case 1563: ------------------ | Branch (45802:3): [True: 0, False: 76.7M] ------------------ 45803| 0|#line 11965 "gram.y" 45804| 0| { (yyval.str) = NULL; ;} 45805| 0| break; 45806| | 45807| 29| case 1564: ------------------ | Branch (45807:3): [True: 29, False: 76.7M] ------------------ 45808| 29|#line 11978 "gram.y" 45809| 29| { 45810| 29| VacuumStmt *n = makeNode(VacuumStmt); ------------------ | | 161| 29|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45811| | 45812| 29| n->options = NIL; ------------------ | | 68| 29|#define NIL ((List *) NULL) ------------------ 45813| 29| if ((yyvsp[(2) - (6)].boolean)) ------------------ | Branch (45813:10): [True: 0, False: 29] ------------------ 45814| 0| n->options = lappend(n->options, 45815| 0| makeDefElem("full", NULL, (yylsp[(2) - (6)]))); 45816| 29| if ((yyvsp[(3) - (6)].boolean)) ------------------ | Branch (45816:10): [True: 0, False: 29] ------------------ 45817| 0| n->options = lappend(n->options, 45818| 0| makeDefElem("freeze", NULL, (yylsp[(3) - (6)]))); 45819| 29| if ((yyvsp[(4) - (6)].boolean)) ------------------ | Branch (45819:10): [True: 0, False: 29] ------------------ 45820| 0| n->options = lappend(n->options, 45821| 0| makeDefElem("verbose", NULL, (yylsp[(4) - (6)]))); 45822| 29| if ((yyvsp[(5) - (6)].boolean)) ------------------ | Branch (45822:10): [True: 0, False: 29] ------------------ 45823| 0| n->options = lappend(n->options, 45824| 0| makeDefElem("analyze", NULL, (yylsp[(5) - (6)]))); 45825| 29| n->rels = (yyvsp[(6) - (6)].list); 45826| 29| n->is_vacuumcmd = true; 45827| 29| (yyval.node) = (Node *) n; 45828| 29| ;} 45829| 29| break; 45830| | 45831| 5| case 1565: ------------------ | Branch (45831:3): [True: 5, False: 76.7M] ------------------ 45832| 5|#line 11999 "gram.y" 45833| 5| { 45834| 5| VacuumStmt *n = makeNode(VacuumStmt); ------------------ | | 161| 5|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45835| | 45836| 5| n->options = (yyvsp[(3) - (5)].list); 45837| 5| n->rels = (yyvsp[(5) - (5)].list); 45838| 5| n->is_vacuumcmd = true; 45839| 5| (yyval.node) = (Node *) n; 45840| 5| ;} 45841| 5| break; 45842| | 45843| 0| case 1566: ------------------ | Branch (45843:3): [True: 0, False: 76.7M] ------------------ 45844| 0|#line 12010 "gram.y" 45845| 0| { 45846| 0| VacuumStmt *n = makeNode(VacuumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45847| | 45848| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 45849| 0| if ((yyvsp[(2) - (3)].boolean)) ------------------ | Branch (45849:10): [True: 0, False: 0] ------------------ 45850| 0| n->options = lappend(n->options, 45851| 0| makeDefElem("verbose", NULL, (yylsp[(2) - (3)]))); 45852| 0| n->rels = (yyvsp[(3) - (3)].list); 45853| 0| n->is_vacuumcmd = false; 45854| 0| (yyval.node) = (Node *) n; 45855| 0| ;} 45856| 0| break; 45857| | 45858| 0| case 1567: ------------------ | Branch (45858:3): [True: 0, False: 76.7M] ------------------ 45859| 0|#line 12022 "gram.y" 45860| 0| { 45861| 0| VacuumStmt *n = makeNode(VacuumStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 45862| | 45863| 0| n->options = (yyvsp[(3) - (5)].list); 45864| 0| n->rels = (yyvsp[(5) - (5)].list); 45865| 0| n->is_vacuumcmd = false; 45866| 0| (yyval.node) = (Node *) n; 45867| 0| ;} 45868| 0| break; 45869| | 45870| 9| case 1568: ------------------ | Branch (45870:3): [True: 9, False: 76.7M] ------------------ 45871| 9|#line 12034 "gram.y" 45872| 9| { 45873| 9| (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ------------------ | | 213| 9| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 9|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45874| 9| ;} 45875| 9| break; 45876| | 45877| 134k| case 1569: ------------------ | Branch (45877:3): [True: 134k, False: 76.6M] ------------------ 45878| 134k|#line 12038 "gram.y" 45879| 134k| { 45880| 134k| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); 45881| 134k| ;} 45882| 134k| break; 45883| | 45884| 134k| case 1572: ------------------ | Branch (45884:3): [True: 134k, False: 76.6M] ------------------ 45885| 134k|#line 12050 "gram.y" 45886| 134k| { 45887| 134k| (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 45888| 134k| ;} 45889| 134k| break; 45890| | 45891| 134k| case 1573: ------------------ | Branch (45891:3): [True: 134k, False: 76.6M] ------------------ 45892| 134k|#line 12056 "gram.y" 45893| 134k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 45894| 134k| break; 45895| | 45896| 0| case 1574: ------------------ | Branch (45896:3): [True: 0, False: 76.7M] ------------------ 45897| 0|#line 12057 "gram.y" 45898| 0| { (yyval.str) = "analyze"; ;} 45899| 0| break; 45900| | 45901| 0| case 1575: ------------------ | Branch (45901:3): [True: 0, False: 76.7M] ------------------ 45902| 0|#line 12058 "gram.y" 45903| 0| { (yyval.str) = "format"; ;} 45904| 0| break; 45905| | 45906| 835| case 1576: ------------------ | Branch (45906:3): [True: 835, False: 76.7M] ------------------ 45907| 835|#line 12062 "gram.y" 45908| 835| { (yyval.node) = (Node *) makeString((yyvsp[(1) - (1)].str)); ;} 45909| 835| break; 45910| | 45911| 5.20k| case 1577: ------------------ | Branch (45911:3): [True: 5.20k, False: 76.7M] ------------------ 45912| 5.20k|#line 12063 "gram.y" 45913| 5.20k| { (yyval.node) = (Node *) (yyvsp[(1) - (1)].node); ;} 45914| 5.20k| break; 45915| | 45916| 128k| case 1578: ------------------ | Branch (45916:3): [True: 128k, False: 76.6M] ------------------ 45917| 128k|#line 12064 "gram.y" 45918| 128k| { (yyval.node) = NULL; ;} 45919| 128k| break; 45920| | 45921| 0| case 1579: ------------------ | Branch (45921:3): [True: 0, False: 76.7M] ------------------ 45922| 0|#line 12068 "gram.y" 45923| 0| { (yyval.boolean) = true; ;} 45924| 0| break; 45925| | 45926| 29| case 1580: ------------------ | Branch (45926:3): [True: 29, False: 76.7M] ------------------ 45927| 29|#line 12069 "gram.y" 45928| 29| { (yyval.boolean) = false; ;} 45929| 29| break; 45930| | 45931| 0| case 1581: ------------------ | Branch (45931:3): [True: 0, False: 76.7M] ------------------ 45932| 0|#line 12073 "gram.y" 45933| 0| { (yyval.boolean) = true; ;} 45934| 0| break; 45935| | 45936| 29| case 1582: ------------------ | Branch (45936:3): [True: 29, False: 76.7M] ------------------ 45937| 29|#line 12074 "gram.y" 45938| 29| { (yyval.boolean) = false; ;} 45939| 29| break; 45940| | 45941| 0| case 1583: ------------------ | Branch (45941:3): [True: 0, False: 76.7M] ------------------ 45942| 0|#line 12077 "gram.y" 45943| 0| { (yyval.boolean) = true; ;} 45944| 0| break; 45945| | 45946| 29| case 1584: ------------------ | Branch (45946:3): [True: 29, False: 76.7M] ------------------ 45947| 29|#line 12078 "gram.y" 45948| 29| { (yyval.boolean) = false; ;} 45949| 29| break; 45950| | 45951| 0| case 1585: ------------------ | Branch (45951:3): [True: 0, False: 76.7M] ------------------ 45952| 0|#line 12081 "gram.y" 45953| 0| { (yyval.boolean) = true; ;} 45954| 0| break; 45955| | 45956| 29| case 1586: ------------------ | Branch (45956:3): [True: 29, False: 76.7M] ------------------ 45957| 29|#line 12082 "gram.y" 45958| 29| { (yyval.boolean) = false; ;} 45959| 29| break; 45960| | 45961| 2.95k| case 1587: ------------------ | Branch (45961:3): [True: 2.95k, False: 76.7M] ------------------ 45962| 2.95k|#line 12086 "gram.y" 45963| 2.95k| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 45964| 2.95k| break; 45965| | 45966| 299k| case 1588: ------------------ | Branch (45966:3): [True: 299k, False: 76.4M] ------------------ 45967| 299k|#line 12087 "gram.y" 45968| 299k| { (yyval.list) = NIL; ;} ------------------ | | 68| 299k|#define NIL ((List *) NULL) ------------------ 45969| 299k| break; 45970| | 45971| 298k| case 1589: ------------------ | Branch (45971:3): [True: 298k, False: 76.4M] ------------------ 45972| 298k|#line 12092 "gram.y" 45973| 298k| { 45974| 298k| (yyval.node) = (Node *) makeVacuumRelation((yyvsp[(1) - (2)].range), InvalidOid, (yyvsp[(2) - (2)].list)); ------------------ | | 37| 298k|#define InvalidOid ((Oid) 0) ------------------ 45975| 298k| ;} 45976| 298k| break; 45977| | 45978| 17| case 1590: ------------------ | Branch (45978:3): [True: 17, False: 76.7M] ------------------ 45979| 17|#line 12099 "gram.y" 45980| 17| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 17| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 17|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 45981| 17| break; 45982| | 45983| 298k| case 1591: ------------------ | Branch (45983:3): [True: 298k, False: 76.4M] ------------------ 45984| 298k|#line 12101 "gram.y" 45985| 298k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 45986| 298k| break; 45987| | 45988| 17| case 1592: ------------------ | Branch (45988:3): [True: 17, False: 76.7M] ------------------ 45989| 17|#line 12105 "gram.y" 45990| 17| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 45991| 17| break; 45992| | 45993| 17| case 1593: ------------------ | Branch (45993:3): [True: 17, False: 76.7M] ------------------ 45994| 17|#line 12106 "gram.y" 45995| 17| { (yyval.list) = NIL; ;} ------------------ | | 68| 17|#define NIL ((List *) NULL) ------------------ 45996| 17| break; 45997| | 45998| 0| case 1594: ------------------ | Branch (45998:3): [True: 0, False: 76.7M] ------------------ 45999| 0|#line 12120 "gram.y" 46000| 0| { 46001| 0| ExplainStmt *n = makeNode(ExplainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46002| | 46003| 0| n->query = (yyvsp[(2) - (2)].node); 46004| 0| n->options = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46005| 0| (yyval.node) = (Node *) n; 46006| 0| ;} 46007| 0| break; 46008| | 46009| 0| case 1595: ------------------ | Branch (46009:3): [True: 0, False: 76.7M] ------------------ 46010| 0|#line 12128 "gram.y" 46011| 0| { 46012| 0| ExplainStmt *n = makeNode(ExplainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46013| | 46014| 0| n->query = (yyvsp[(4) - (4)].node); 46015| 0| n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46016| 0| if ((yyvsp[(3) - (4)].boolean)) ------------------ | Branch (46016:10): [True: 0, False: 0] ------------------ 46017| 0| n->options = lappend(n->options, 46018| 0| makeDefElem("verbose", NULL, (yylsp[(3) - (4)]))); 46019| 0| (yyval.node) = (Node *) n; 46020| 0| ;} 46021| 0| break; 46022| | 46023| 0| case 1596: ------------------ | Branch (46023:3): [True: 0, False: 76.7M] ------------------ 46024| 0|#line 12139 "gram.y" 46025| 0| { 46026| 0| ExplainStmt *n = makeNode(ExplainStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46027| | 46028| 0| n->query = (yyvsp[(3) - (3)].node); 46029| 0| n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46030| 0| (yyval.node) = (Node *) n; 46031| 0| ;} 46032| 0| break; 46033| | 46034| 3| case 1597: ------------------ | Branch (46034:3): [True: 3, False: 76.7M] ------------------ 46035| 3|#line 12147 "gram.y" 46036| 3| { 46037| 3| ExplainStmt *n = makeNode(ExplainStmt); ------------------ | | 161| 3|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46038| | 46039| 3| n->query = (yyvsp[(5) - (5)].node); 46040| 3| n->options = (yyvsp[(3) - (5)].list); 46041| 3| (yyval.node) = (Node *) n; 46042| 3| ;} 46043| 3| break; 46044| | 46045| 0| case 1608: ------------------ | Branch (46045:3): [True: 0, False: 76.7M] ------------------ 46046| 0|#line 12177 "gram.y" 46047| 0| { 46048| 0| PrepareStmt *n = makeNode(PrepareStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46049| | 46050| 0| n->name = (yyvsp[(2) - (5)].str); 46051| 0| n->argtypes = (yyvsp[(3) - (5)].list); 46052| 0| n->query = (yyvsp[(5) - (5)].node); 46053| 0| (yyval.node) = (Node *) n; 46054| 0| ;} 46055| 0| break; 46056| | 46057| 0| case 1609: ------------------ | Branch (46057:3): [True: 0, False: 76.7M] ------------------ 46058| 0|#line 12187 "gram.y" 46059| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 46060| 0| break; 46061| | 46062| 0| case 1610: ------------------ | Branch (46062:3): [True: 0, False: 76.7M] ------------------ 46063| 0|#line 12188 "gram.y" 46064| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46065| 0| break; 46066| | 46067| 0| case 1616: ------------------ | Branch (46067:3): [True: 0, False: 76.7M] ------------------ 46068| 0|#line 12207 "gram.y" 46069| 0| { 46070| 0| ExecuteStmt *n = makeNode(ExecuteStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46071| | 46072| 0| n->name = (yyvsp[(2) - (3)].str); 46073| 0| n->params = (yyvsp[(3) - (3)].list); 46074| 0| (yyval.node) = (Node *) n; 46075| 0| ;} 46076| 0| break; 46077| | 46078| 0| case 1617: ------------------ | Branch (46078:3): [True: 0, False: 76.7M] ------------------ 46079| 0|#line 12216 "gram.y" 46080| 0| { 46081| 0| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46082| 0| ExecuteStmt *n = makeNode(ExecuteStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46083| | 46084| 0| n->name = (yyvsp[(7) - (9)].str); 46085| 0| n->params = (yyvsp[(8) - (9)].list); 46086| 0| ctas->query = (Node *) n; 46087| 0| ctas->into = (yyvsp[(4) - (9)].into); 46088| 0| ctas->objtype = OBJECT_TABLE; 46089| 0| ctas->is_select_into = false; 46090| 0| ctas->if_not_exists = false; 46091| | /* cram additional flags into the IntoClause */ 46092| 0| (yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival); 46093| 0| (yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean)); 46094| 0| (yyval.node) = (Node *) ctas; 46095| 0| ;} 46096| 0| break; 46097| | 46098| 0| case 1618: ------------------ | Branch (46098:3): [True: 0, False: 76.7M] ------------------ 46099| 0|#line 12234 "gram.y" 46100| 0| { 46101| 0| CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46102| 0| ExecuteStmt *n = makeNode(ExecuteStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46103| | 46104| 0| n->name = (yyvsp[(10) - (12)].str); 46105| 0| n->params = (yyvsp[(11) - (12)].list); 46106| 0| ctas->query = (Node *) n; 46107| 0| ctas->into = (yyvsp[(7) - (12)].into); 46108| 0| ctas->objtype = OBJECT_TABLE; 46109| 0| ctas->is_select_into = false; 46110| 0| ctas->if_not_exists = true; 46111| | /* cram additional flags into the IntoClause */ 46112| 0| (yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival); 46113| 0| (yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean)); 46114| 0| (yyval.node) = (Node *) ctas; 46115| 0| ;} 46116| 0| break; 46117| | 46118| 0| case 1619: ------------------ | Branch (46118:3): [True: 0, False: 76.7M] ------------------ 46119| 0|#line 12252 "gram.y" 46120| 0| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 46121| 0| break; 46122| | 46123| 0| case 1620: ------------------ | Branch (46123:3): [True: 0, False: 76.7M] ------------------ 46124| 0|#line 12253 "gram.y" 46125| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46126| 0| break; 46127| | 46128| 0| case 1621: ------------------ | Branch (46128:3): [True: 0, False: 76.7M] ------------------ 46129| 0|#line 12264 "gram.y" 46130| 0| { 46131| 0| DeallocateStmt *n = makeNode(DeallocateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46132| | 46133| 0| n->name = (yyvsp[(2) - (2)].str); 46134| 0| n->isall = false; 46135| 0| n->location = (yylsp[(2) - (2)]); 46136| 0| (yyval.node) = (Node *) n; 46137| 0| ;} 46138| 0| break; 46139| | 46140| 0| case 1622: ------------------ | Branch (46140:3): [True: 0, False: 76.7M] ------------------ 46141| 0|#line 12273 "gram.y" 46142| 0| { 46143| 0| DeallocateStmt *n = makeNode(DeallocateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46144| | 46145| 0| n->name = (yyvsp[(3) - (3)].str); 46146| 0| n->isall = false; 46147| 0| n->location = (yylsp[(3) - (3)]); 46148| 0| (yyval.node) = (Node *) n; 46149| 0| ;} 46150| 0| break; 46151| | 46152| 0| case 1623: ------------------ | Branch (46152:3): [True: 0, False: 76.7M] ------------------ 46153| 0|#line 12282 "gram.y" 46154| 0| { 46155| 0| DeallocateStmt *n = makeNode(DeallocateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46156| | 46157| 0| n->name = NULL; 46158| 0| n->isall = true; 46159| 0| n->location = -1; 46160| 0| (yyval.node) = (Node *) n; 46161| 0| ;} 46162| 0| break; 46163| | 46164| 0| case 1624: ------------------ | Branch (46164:3): [True: 0, False: 76.7M] ------------------ 46165| 0|#line 12291 "gram.y" 46166| 0| { 46167| 0| DeallocateStmt *n = makeNode(DeallocateStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46168| | 46169| 0| n->name = NULL; 46170| 0| n->isall = true; 46171| 0| n->location = -1; 46172| 0| (yyval.node) = (Node *) n; 46173| 0| ;} 46174| 0| break; 46175| | 46176| 692| case 1625: ------------------ | Branch (46176:3): [True: 692, False: 76.7M] ------------------ 46177| 692|#line 12311 "gram.y" 46178| 692| { 46179| 692| (yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range); 46180| 692| (yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict); 46181| 692| (yyvsp[(5) - (7)].istmt)->returningClause = (yyvsp[(7) - (7)].retclause); 46182| 692| (yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with); 46183| 692| (yyval.node) = (Node *) (yyvsp[(5) - (7)].istmt); 46184| 692| ;} 46185| 692| break; 46186| | 46187| 692| case 1626: ------------------ | Branch (46187:3): [True: 692, False: 76.7M] ------------------ 46188| 692|#line 12328 "gram.y" 46189| 692| { 46190| 692| (yyval.range) = (yyvsp[(1) - (1)].range); 46191| 692| ;} 46192| 692| break; 46193| | 46194| 0| case 1627: ------------------ | Branch (46194:3): [True: 0, False: 76.7M] ------------------ 46195| 0|#line 12332 "gram.y" 46196| 0| { 46197| 0| (yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46198| 0| (yyval.range) = (yyvsp[(1) - (3)].range); 46199| 0| ;} 46200| 0| break; 46201| | 46202| 0| case 1628: ------------------ | Branch (46202:3): [True: 0, False: 76.7M] ------------------ 46203| 0|#line 12340 "gram.y" 46204| 0| { 46205| 0| (yyval.istmt) = makeNode(InsertStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46206| 0| (yyval.istmt)->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46207| 0| (yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node); 46208| 0| ;} 46209| 0| break; 46210| | 46211| 0| case 1629: ------------------ | Branch (46211:3): [True: 0, False: 76.7M] ------------------ 46212| 0|#line 12346 "gram.y" 46213| 0| { 46214| 0| (yyval.istmt) = makeNode(InsertStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46215| 0| (yyval.istmt)->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46216| 0| (yyval.istmt)->override = (yyvsp[(2) - (4)].ival); 46217| 0| (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); 46218| 0| ;} 46219| 0| break; 46220| | 46221| 692| case 1630: ------------------ | Branch (46221:3): [True: 692, False: 76.7M] ------------------ 46222| 692|#line 12353 "gram.y" 46223| 692| { 46224| 692| (yyval.istmt) = makeNode(InsertStmt); ------------------ | | 161| 692|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46225| 692| (yyval.istmt)->cols = (yyvsp[(2) - (4)].list); 46226| 692| (yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node); 46227| 692| ;} 46228| 692| break; 46229| | 46230| 0| case 1631: ------------------ | Branch (46230:3): [True: 0, False: 76.7M] ------------------ 46231| 0|#line 12359 "gram.y" 46232| 0| { 46233| 0| (yyval.istmt) = makeNode(InsertStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46234| 0| (yyval.istmt)->cols = (yyvsp[(2) - (7)].list); 46235| 0| (yyval.istmt)->override = (yyvsp[(5) - (7)].ival); 46236| 0| (yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node); 46237| 0| ;} 46238| 0| break; 46239| | 46240| 0| case 1632: ------------------ | Branch (46240:3): [True: 0, False: 76.7M] ------------------ 46241| 0|#line 12366 "gram.y" 46242| 0| { 46243| 0| (yyval.istmt) = makeNode(InsertStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46244| 0| (yyval.istmt)->cols = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46245| 0| (yyval.istmt)->selectStmt = NULL; 46246| 0| ;} 46247| 0| break; 46248| | 46249| 0| case 1633: ------------------ | Branch (46249:3): [True: 0, False: 76.7M] ------------------ 46250| 0|#line 12374 "gram.y" 46251| 0| { (yyval.ival) = OVERRIDING_USER_VALUE; ;} 46252| 0| break; 46253| | 46254| 0| case 1634: ------------------ | Branch (46254:3): [True: 0, False: 76.7M] ------------------ 46255| 0|#line 12375 "gram.y" 46256| 0| { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; ;} 46257| 0| break; 46258| | 46259| 692| case 1635: ------------------ | Branch (46259:3): [True: 692, False: 76.7M] ------------------ 46260| 692|#line 12380 "gram.y" 46261| 692| { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} ------------------ | | 213| 692| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 692|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46262| 692| break; 46263| | 46264| 646| case 1636: ------------------ | Branch (46264:3): [True: 646, False: 76.7M] ------------------ 46265| 646|#line 12382 "gram.y" 46266| 646| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} 46267| 646| break; 46268| | 46269| 1.33k| case 1637: ------------------ | Branch (46269:3): [True: 1.33k, False: 76.7M] ------------------ 46270| 1.33k|#line 12387 "gram.y" 46271| 1.33k| { 46272| 1.33k| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 1.33k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46273| 1.33k| (yyval.target)->name = (yyvsp[(1) - (2)].str); 46274| 1.33k| (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); 46275| 1.33k| (yyval.target)->val = NULL; 46276| 1.33k| (yyval.target)->location = (yylsp[(1) - (2)]); 46277| 1.33k| ;} 46278| 1.33k| break; 46279| | 46280| 0| case 1638: ------------------ | Branch (46280:3): [True: 0, False: 76.7M] ------------------ 46281| 0|#line 12398 "gram.y" 46282| 0| { 46283| 0| (yyval.onconflict) = makeNode(OnConflictClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46284| 0| (yyval.onconflict)->action = ONCONFLICT_UPDATE; 46285| 0| (yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer); 46286| 0| (yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list); 46287| 0| (yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node); 46288| 0| (yyval.onconflict)->location = (yylsp[(1) - (8)]); 46289| 0| ;} 46290| 0| break; 46291| | 46292| 0| case 1639: ------------------ | Branch (46292:3): [True: 0, False: 76.7M] ------------------ 46293| 0|#line 12408 "gram.y" 46294| 0| { 46295| 0| (yyval.onconflict) = makeNode(OnConflictClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46296| 0| (yyval.onconflict)->action = ONCONFLICT_NOTHING; 46297| 0| (yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer); 46298| 0| (yyval.onconflict)->targetList = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46299| 0| (yyval.onconflict)->whereClause = NULL; 46300| 0| (yyval.onconflict)->location = (yylsp[(1) - (5)]); 46301| 0| ;} 46302| 0| break; 46303| | 46304| 692| case 1640: ------------------ | Branch (46304:3): [True: 692, False: 76.7M] ------------------ 46305| 692|#line 12417 "gram.y" 46306| 692| { 46307| 692| (yyval.onconflict) = NULL; 46308| 692| ;} 46309| 692| break; 46310| | 46311| 0| case 1641: ------------------ | Branch (46311:3): [True: 0, False: 76.7M] ------------------ 46312| 0|#line 12424 "gram.y" 46313| 0| { 46314| 0| (yyval.infer) = makeNode(InferClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46315| 0| (yyval.infer)->indexElems = (yyvsp[(2) - (4)].list); 46316| 0| (yyval.infer)->whereClause = (yyvsp[(4) - (4)].node); 46317| 0| (yyval.infer)->conname = NULL; 46318| 0| (yyval.infer)->location = (yylsp[(1) - (4)]); 46319| 0| ;} 46320| 0| break; 46321| | 46322| 0| case 1642: ------------------ | Branch (46322:3): [True: 0, False: 76.7M] ------------------ 46323| 0|#line 12433 "gram.y" 46324| 0| { 46325| 0| (yyval.infer) = makeNode(InferClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46326| 0| (yyval.infer)->indexElems = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46327| 0| (yyval.infer)->whereClause = NULL; 46328| 0| (yyval.infer)->conname = (yyvsp[(3) - (3)].str); 46329| 0| (yyval.infer)->location = (yylsp[(1) - (3)]); 46330| 0| ;} 46331| 0| break; 46332| | 46333| 0| case 1643: ------------------ | Branch (46333:3): [True: 0, False: 76.7M] ------------------ 46334| 0|#line 12441 "gram.y" 46335| 0| { 46336| 0| (yyval.infer) = NULL; 46337| 0| ;} 46338| 0| break; 46339| | 46340| 0| case 1644: ------------------ | Branch (46340:3): [True: 0, False: 76.7M] ------------------ 46341| 0|#line 12448 "gram.y" 46342| 0| { 46343| 0| ReturningClause *n = makeNode(ReturningClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46344| | 46345| 0| n->options = (yyvsp[(2) - (3)].list); 46346| 0| n->exprs = (yyvsp[(3) - (3)].list); 46347| 0| (yyval.retclause) = n; 46348| 0| ;} 46349| 0| break; 46350| | 46351| 1.23k| case 1645: ------------------ | Branch (46351:3): [True: 1.23k, False: 76.7M] ------------------ 46352| 1.23k|#line 12456 "gram.y" 46353| 1.23k| { 46354| 1.23k| (yyval.retclause) = NULL; 46355| 1.23k| ;} 46356| 1.23k| break; 46357| | 46358| 0| case 1646: ------------------ | Branch (46358:3): [True: 0, False: 76.7M] ------------------ 46359| 0|#line 12462 "gram.y" 46360| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 46361| 0| break; 46362| | 46363| 0| case 1647: ------------------ | Branch (46363:3): [True: 0, False: 76.7M] ------------------ 46364| 0|#line 12463 "gram.y" 46365| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46366| 0| break; 46367| | 46368| 0| case 1648: ------------------ | Branch (46368:3): [True: 0, False: 76.7M] ------------------ 46369| 0|#line 12467 "gram.y" 46370| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46371| 0| break; 46372| | 46373| 0| case 1649: ------------------ | Branch (46373:3): [True: 0, False: 76.7M] ------------------ 46374| 0|#line 12468 "gram.y" 46375| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 46376| 0| break; 46377| | 46378| 0| case 1650: ------------------ | Branch (46378:3): [True: 0, False: 76.7M] ------------------ 46379| 0|#line 12473 "gram.y" 46380| 0| { 46381| 0| ReturningOption *n = makeNode(ReturningOption); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46382| | 46383| 0| n->option = (yyvsp[(1) - (3)].retoptionkind); 46384| 0| n->value = (yyvsp[(3) - (3)].str); 46385| 0| n->location = (yylsp[(1) - (3)]); 46386| 0| (yyval.node) = (Node *) n; 46387| 0| ;} 46388| 0| break; 46389| | 46390| 0| case 1651: ------------------ | Branch (46390:3): [True: 0, False: 76.7M] ------------------ 46391| 0|#line 12484 "gram.y" 46392| 0| { (yyval.retoptionkind) = RETURNING_OPTION_OLD; ;} 46393| 0| break; 46394| | 46395| 0| case 1652: ------------------ | Branch (46395:3): [True: 0, False: 76.7M] ------------------ 46396| 0|#line 12485 "gram.y" 46397| 0| { (yyval.retoptionkind) = RETURNING_OPTION_NEW; ;} 46398| 0| break; 46399| | 46400| 2| case 1653: ------------------ | Branch (46400:3): [True: 2, False: 76.7M] ------------------ 46401| 2|#line 12498 "gram.y" 46402| 2| { 46403| 2| DeleteStmt *n = makeNode(DeleteStmt); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46404| | 46405| 2| n->relation = (yyvsp[(4) - (7)].range); 46406| 2| n->usingClause = (yyvsp[(5) - (7)].list); 46407| 2| n->whereClause = (yyvsp[(6) - (7)].node); 46408| 2| n->returningClause = (yyvsp[(7) - (7)].retclause); 46409| 2| n->withClause = (yyvsp[(1) - (7)].with); 46410| 2| (yyval.node) = (Node *) n; 46411| 2| ;} 46412| 2| break; 46413| | 46414| 0| case 1654: ------------------ | Branch (46414:3): [True: 0, False: 76.7M] ------------------ 46415| 0|#line 12511 "gram.y" 46416| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 46417| 0| break; 46418| | 46419| 2| case 1655: ------------------ | Branch (46419:3): [True: 2, False: 76.7M] ------------------ 46420| 2|#line 12512 "gram.y" 46421| 2| { (yyval.list) = NIL; ;} ------------------ | | 68| 2|#define NIL ((List *) NULL) ------------------ 46422| 2| break; 46423| | 46424| 5| case 1656: ------------------ | Branch (46424:3): [True: 5, False: 76.7M] ------------------ 46425| 5|#line 12524 "gram.y" 46426| 5| { 46427| 5| LockStmt *n = makeNode(LockStmt); ------------------ | | 161| 5|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46428| | 46429| 5| n->relations = (yyvsp[(3) - (5)].list); 46430| 5| n->mode = (yyvsp[(4) - (5)].ival); 46431| 5| n->nowait = (yyvsp[(5) - (5)].boolean); 46432| 5| (yyval.node) = (Node *) n; 46433| 5| ;} 46434| 5| break; 46435| | 46436| 0| case 1657: ------------------ | Branch (46436:3): [True: 0, False: 76.7M] ------------------ 46437| 0|#line 12534 "gram.y" 46438| 0| { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;} 46439| 0| break; 46440| | 46441| 5| case 1658: ------------------ | Branch (46441:3): [True: 5, False: 76.7M] ------------------ 46442| 5|#line 12535 "gram.y" 46443| 5| { (yyval.ival) = AccessExclusiveLock; ;} ------------------ | | 45| 5|#define AccessExclusiveLock 8 /* ALTER TABLE, DROP TABLE, VACUUM FULL, ------------------ 46444| 5| break; 46445| | 46446| 0| case 1659: ------------------ | Branch (46446:3): [True: 0, False: 76.7M] ------------------ 46447| 0|#line 12538 "gram.y" 46448| 0| { (yyval.ival) = AccessShareLock; ;} ------------------ | | 36| 0|#define AccessShareLock 1 /* SELECT */ ------------------ 46449| 0| break; 46450| | 46451| 0| case 1660: ------------------ | Branch (46451:3): [True: 0, False: 76.7M] ------------------ 46452| 0|#line 12539 "gram.y" 46453| 0| { (yyval.ival) = RowShareLock; ;} ------------------ | | 37| 0|#define RowShareLock 2 /* SELECT FOR UPDATE/FOR SHARE */ ------------------ 46454| 0| break; 46455| | 46456| 0| case 1661: ------------------ | Branch (46456:3): [True: 0, False: 76.7M] ------------------ 46457| 0|#line 12540 "gram.y" 46458| 0| { (yyval.ival) = RowExclusiveLock; ;} ------------------ | | 38| 0|#define RowExclusiveLock 3 /* INSERT, UPDATE, DELETE */ ------------------ 46459| 0| break; 46460| | 46461| 0| case 1662: ------------------ | Branch (46461:3): [True: 0, False: 76.7M] ------------------ 46462| 0|#line 12541 "gram.y" 46463| 0| { (yyval.ival) = ShareUpdateExclusiveLock; ;} ------------------ | | 39| 0|#define ShareUpdateExclusiveLock 4 /* VACUUM (non-FULL), ANALYZE, CREATE ------------------ 46464| 0| break; 46465| | 46466| 0| case 1663: ------------------ | Branch (46466:3): [True: 0, False: 76.7M] ------------------ 46467| 0|#line 12542 "gram.y" 46468| 0| { (yyval.ival) = ShareLock; ;} ------------------ | | 41| 0|#define ShareLock 5 /* CREATE INDEX (WITHOUT CONCURRENTLY) */ ------------------ 46469| 0| break; 46470| | 46471| 0| case 1664: ------------------ | Branch (46471:3): [True: 0, False: 76.7M] ------------------ 46472| 0|#line 12543 "gram.y" 46473| 0| { (yyval.ival) = ShareRowExclusiveLock; ;} ------------------ | | 42| 0|#define ShareRowExclusiveLock 6 /* like EXCLUSIVE MODE, but allows ROW ------------------ 46474| 0| break; 46475| | 46476| 0| case 1665: ------------------ | Branch (46476:3): [True: 0, False: 76.7M] ------------------ 46477| 0|#line 12544 "gram.y" 46478| 0| { (yyval.ival) = ExclusiveLock; ;} ------------------ | | 44| 0|#define ExclusiveLock 7 /* blocks ROW SHARE/SELECT...FOR UPDATE */ ------------------ 46479| 0| break; 46480| | 46481| 0| case 1666: ------------------ | Branch (46481:3): [True: 0, False: 76.7M] ------------------ 46482| 0|#line 12545 "gram.y" 46483| 0| { (yyval.ival) = AccessExclusiveLock; ;} ------------------ | | 45| 0|#define AccessExclusiveLock 8 /* ALTER TABLE, DROP TABLE, VACUUM FULL, ------------------ 46484| 0| break; 46485| | 46486| 0| case 1667: ------------------ | Branch (46486:3): [True: 0, False: 76.7M] ------------------ 46487| 0|#line 12548 "gram.y" 46488| 0| { (yyval.boolean) = true; ;} 46489| 0| break; 46490| | 46491| 5| case 1668: ------------------ | Branch (46491:3): [True: 5, False: 76.7M] ------------------ 46492| 5|#line 12549 "gram.y" 46493| 5| { (yyval.boolean) = false; ;} 46494| 5| break; 46495| | 46496| 1.01k| case 1669: ------------------ | Branch (46496:3): [True: 1.01k, False: 76.7M] ------------------ 46497| 1.01k|#line 12553 "gram.y" 46498| 1.01k| { (yyval.ival) = LockWaitError; ;} 46499| 1.01k| break; 46500| | 46501| 0| case 1670: ------------------ | Branch (46501:3): [True: 0, False: 76.7M] ------------------ 46502| 0|#line 12554 "gram.y" 46503| 0| { (yyval.ival) = LockWaitSkip; ;} 46504| 0| break; 46505| | 46506| 1.52k| case 1671: ------------------ | Branch (46506:3): [True: 1.52k, False: 76.7M] ------------------ 46507| 1.52k|#line 12555 "gram.y" 46508| 1.52k| { (yyval.ival) = LockWaitBlock; ;} 46509| 1.52k| break; 46510| | 46511| 539| case 1672: ------------------ | Branch (46511:3): [True: 539, False: 76.7M] ------------------ 46512| 539|#line 12571 "gram.y" 46513| 539| { 46514| 539| UpdateStmt *n = makeNode(UpdateStmt); ------------------ | | 161| 539|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46515| | 46516| 539| n->relation = (yyvsp[(3) - (8)].range); 46517| 539| n->targetList = (yyvsp[(5) - (8)].list); 46518| 539| n->fromClause = (yyvsp[(6) - (8)].list); 46519| 539| n->whereClause = (yyvsp[(7) - (8)].node); 46520| 539| n->returningClause = (yyvsp[(8) - (8)].retclause); 46521| 539| n->withClause = (yyvsp[(1) - (8)].with); 46522| 539| (yyval.node) = (Node *) n; 46523| 539| ;} 46524| 539| break; 46525| | 46526| 548| case 1673: ------------------ | Branch (46526:3): [True: 548, False: 76.7M] ------------------ 46527| 548|#line 12585 "gram.y" 46528| 548| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 46529| 548| break; 46530| | 46531| 1.02k| case 1674: ------------------ | Branch (46531:3): [True: 1.02k, False: 76.7M] ------------------ 46532| 1.02k|#line 12586 "gram.y" 46533| 1.02k| { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;} 46534| 1.02k| break; 46535| | 46536| 440| case 1675: ------------------ | Branch (46536:3): [True: 440, False: 76.7M] ------------------ 46537| 440|#line 12591 "gram.y" 46538| 440| { 46539| 440| (yyvsp[(1) - (3)].target)->val = (Node *) (yyvsp[(3) - (3)].node); 46540| 440| (yyval.list) = list_make1((yyvsp[(1) - (3)].target)); ------------------ | | 213| 440| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 440|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46541| 440| ;} 46542| 440| break; 46543| | 46544| 1.12k| case 1676: ------------------ | Branch (46544:3): [True: 1.12k, False: 76.7M] ------------------ 46545| 1.12k|#line 12596 "gram.y" 46546| 1.12k| { 46547| 1.12k| int ncolumns = list_length((yyvsp[(2) - (5)].list)); 46548| 1.12k| int i = 1; 46549| 1.12k| ListCell *col_cell; 46550| | 46551| | /* Create a MultiAssignRef source for each target */ 46552| 1.12k| foreach(col_cell, (yyvsp[(2) - (5)].list)) ------------------ | | 374| 1.12k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 785k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 1.57M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 784k, False: 1.12k] | | | Branch (375:5): [True: 785k, False: 0] | | ------------------ | | 376| 785k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 784k, False: 1.12k] | | ------------------ | | 377| 785k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 785k| (cell = NULL, false); \ | | 379| 784k| cell##__state.i++) ------------------ 46553| 784k| { 46554| 784k| ResTarget *res_col = (ResTarget *) lfirst(col_cell); ------------------ | | 172| 784k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 46555| 784k| MultiAssignRef *r = makeNode(MultiAssignRef); ------------------ | | 161| 784k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46556| | 46557| 784k| r->source = (Node *) (yyvsp[(5) - (5)].node); 46558| 784k| r->colno = i; 46559| 784k| r->ncolumns = ncolumns; 46560| 784k| res_col->val = (Node *) r; 46561| 784k| i++; 46562| 784k| } 46563| | 46564| 1.12k| (yyval.list) = (yyvsp[(2) - (5)].list); 46565| 1.12k| ;} 46566| 1.12k| break; 46567| | 46568| 788k| case 1677: ------------------ | Branch (46568:3): [True: 788k, False: 75.9M] ------------------ 46569| 788k|#line 12620 "gram.y" 46570| 788k| { 46571| 788k| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 788k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46572| 788k| (yyval.target)->name = (yyvsp[(1) - (2)].str); 46573| 788k| (yyval.target)->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); 46574| 788k| (yyval.target)->val = NULL; /* upper production sets this */ 46575| 788k| (yyval.target)->location = (yylsp[(1) - (2)]); 46576| 788k| ;} 46577| 788k| break; 46578| | 46579| 1.28k| case 1678: ------------------ | Branch (46579:3): [True: 1.28k, False: 76.7M] ------------------ 46580| 1.28k|#line 12630 "gram.y" 46581| 1.28k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} ------------------ | | 213| 1.28k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.28k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46582| 1.28k| break; 46583| | 46584| 787k| case 1679: ------------------ | Branch (46584:3): [True: 787k, False: 75.9M] ------------------ 46585| 787k|#line 12631 "gram.y" 46586| 787k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;} 46587| 787k| break; 46588| | 46589| 0| case 1680: ------------------ | Branch (46589:3): [True: 0, False: 76.7M] ------------------ 46590| 0|#line 12648 "gram.y" 46591| 0| { 46592| 0| MergeStmt *m = makeNode(MergeStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46593| | 46594| 0| m->withClause = (yyvsp[(1) - (10)].with); 46595| 0| m->relation = (yyvsp[(4) - (10)].range); 46596| 0| m->sourceRelation = (yyvsp[(6) - (10)].node); 46597| 0| m->joinCondition = (yyvsp[(8) - (10)].node); 46598| 0| m->mergeWhenClauses = (yyvsp[(9) - (10)].list); 46599| 0| m->returningClause = (yyvsp[(10) - (10)].retclause); 46600| | 46601| 0| (yyval.node) = (Node *) m; 46602| 0| ;} 46603| 0| break; 46604| | 46605| 0| case 1681: ------------------ | Branch (46605:3): [True: 0, False: 76.7M] ------------------ 46606| 0|#line 12663 "gram.y" 46607| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 46608| 0| break; 46609| | 46610| 0| case 1682: ------------------ | Branch (46610:3): [True: 0, False: 76.7M] ------------------ 46611| 0|#line 12664 "gram.y" 46612| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list),(yyvsp[(2) - (2)].node)); ;} 46613| 0| break; 46614| | 46615| 0| case 1683: ------------------ | Branch (46615:3): [True: 0, False: 76.7M] ------------------ 46616| 0|#line 12675 "gram.y" 46617| 0| { 46618| 0| (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); 46619| 0| (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); 46620| | 46621| 0| (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); 46622| 0| ;} 46623| 0| break; 46624| | 46625| 0| case 1684: ------------------ | Branch (46625:3): [True: 0, False: 76.7M] ------------------ 46626| 0|#line 12682 "gram.y" 46627| 0| { 46628| 0| (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); 46629| 0| (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); 46630| | 46631| 0| (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); 46632| 0| ;} 46633| 0| break; 46634| | 46635| 0| case 1685: ------------------ | Branch (46635:3): [True: 0, False: 76.7M] ------------------ 46636| 0|#line 12689 "gram.y" 46637| 0| { 46638| 0| (yyvsp[(4) - (4)].mergewhen)->matchKind = (yyvsp[(1) - (4)].mergematch); 46639| 0| (yyvsp[(4) - (4)].mergewhen)->condition = (yyvsp[(2) - (4)].node); 46640| | 46641| 0| (yyval.node) = (Node *) (yyvsp[(4) - (4)].mergewhen); 46642| 0| ;} 46643| 0| break; 46644| | 46645| 0| case 1686: ------------------ | Branch (46645:3): [True: 0, False: 76.7M] ------------------ 46646| 0|#line 12696 "gram.y" 46647| 0| { 46648| 0| MergeWhenClause *m = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46649| | 46650| 0| m->matchKind = (yyvsp[(1) - (5)].mergematch); 46651| 0| m->commandType = CMD_NOTHING; 46652| 0| m->condition = (yyvsp[(2) - (5)].node); 46653| | 46654| 0| (yyval.node) = (Node *) m; 46655| 0| ;} 46656| 0| break; 46657| | 46658| 0| case 1687: ------------------ | Branch (46658:3): [True: 0, False: 76.7M] ------------------ 46659| 0|#line 12706 "gram.y" 46660| 0| { 46661| 0| MergeWhenClause *m = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46662| | 46663| 0| m->matchKind = (yyvsp[(1) - (5)].mergematch); 46664| 0| m->commandType = CMD_NOTHING; 46665| 0| m->condition = (yyvsp[(2) - (5)].node); 46666| | 46667| 0| (yyval.node) = (Node *) m; 46668| 0| ;} 46669| 0| break; 46670| | 46671| 0| case 1688: ------------------ | Branch (46671:3): [True: 0, False: 76.7M] ------------------ 46672| 0|#line 12718 "gram.y" 46673| 0| { (yyval.mergematch) = MERGE_WHEN_MATCHED; ;} 46674| 0| break; 46675| | 46676| 0| case 1689: ------------------ | Branch (46676:3): [True: 0, False: 76.7M] ------------------ 46677| 0|#line 12719 "gram.y" 46678| 0| { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_SOURCE; ;} 46679| 0| break; 46680| | 46681| 0| case 1690: ------------------ | Branch (46681:3): [True: 0, False: 76.7M] ------------------ 46682| 0|#line 12723 "gram.y" 46683| 0| { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; ;} 46684| 0| break; 46685| | 46686| 0| case 1691: ------------------ | Branch (46686:3): [True: 0, False: 76.7M] ------------------ 46687| 0|#line 12724 "gram.y" 46688| 0| { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; ;} 46689| 0| break; 46690| | 46691| 0| case 1692: ------------------ | Branch (46691:3): [True: 0, False: 76.7M] ------------------ 46692| 0|#line 12728 "gram.y" 46693| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 46694| 0| break; 46695| | 46696| 0| case 1693: ------------------ | Branch (46696:3): [True: 0, False: 76.7M] ------------------ 46697| 0|#line 12729 "gram.y" 46698| 0| { (yyval.node) = NULL; ;} 46699| 0| break; 46700| | 46701| 0| case 1694: ------------------ | Branch (46701:3): [True: 0, False: 76.7M] ------------------ 46702| 0|#line 12734 "gram.y" 46703| 0| { 46704| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46705| 0| n->commandType = CMD_UPDATE; 46706| 0| n->override = OVERRIDING_NOT_SET; 46707| 0| n->targetList = (yyvsp[(3) - (3)].list); 46708| 0| n->values = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46709| | 46710| 0| (yyval.mergewhen) = n; 46711| 0| ;} 46712| 0| break; 46713| | 46714| 0| case 1695: ------------------ | Branch (46714:3): [True: 0, False: 76.7M] ------------------ 46715| 0|#line 12747 "gram.y" 46716| 0| { 46717| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46718| 0| n->commandType = CMD_DELETE; 46719| 0| n->override = OVERRIDING_NOT_SET; 46720| 0| n->targetList = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46721| 0| n->values = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46722| | 46723| 0| (yyval.mergewhen) = n; 46724| 0| ;} 46725| 0| break; 46726| | 46727| 0| case 1696: ------------------ | Branch (46727:3): [True: 0, False: 76.7M] ------------------ 46728| 0|#line 12760 "gram.y" 46729| 0| { 46730| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46731| 0| n->commandType = CMD_INSERT; 46732| 0| n->override = OVERRIDING_NOT_SET; 46733| 0| n->targetList = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46734| 0| n->values = (yyvsp[(2) - (2)].list); 46735| 0| (yyval.mergewhen) = n; 46736| 0| ;} 46737| 0| break; 46738| | 46739| 0| case 1697: ------------------ | Branch (46739:3): [True: 0, False: 76.7M] ------------------ 46740| 0|#line 12769 "gram.y" 46741| 0| { 46742| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46743| 0| n->commandType = CMD_INSERT; 46744| 0| n->override = (yyvsp[(3) - (5)].ival); 46745| 0| n->targetList = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46746| 0| n->values = (yyvsp[(5) - (5)].list); 46747| 0| (yyval.mergewhen) = n; 46748| 0| ;} 46749| 0| break; 46750| | 46751| 0| case 1698: ------------------ | Branch (46751:3): [True: 0, False: 76.7M] ------------------ 46752| 0|#line 12778 "gram.y" 46753| 0| { 46754| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46755| 0| n->commandType = CMD_INSERT; 46756| 0| n->override = OVERRIDING_NOT_SET; 46757| 0| n->targetList = (yyvsp[(3) - (5)].list); 46758| 0| n->values = (yyvsp[(5) - (5)].list); 46759| 0| (yyval.mergewhen) = n; 46760| 0| ;} 46761| 0| break; 46762| | 46763| 0| case 1699: ------------------ | Branch (46763:3): [True: 0, False: 76.7M] ------------------ 46764| 0|#line 12787 "gram.y" 46765| 0| { 46766| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46767| 0| n->commandType = CMD_INSERT; 46768| 0| n->override = (yyvsp[(6) - (8)].ival); 46769| 0| n->targetList = (yyvsp[(3) - (8)].list); 46770| 0| n->values = (yyvsp[(8) - (8)].list); 46771| 0| (yyval.mergewhen) = n; 46772| 0| ;} 46773| 0| break; 46774| | 46775| 0| case 1700: ------------------ | Branch (46775:3): [True: 0, False: 76.7M] ------------------ 46776| 0|#line 12796 "gram.y" 46777| 0| { 46778| 0| MergeWhenClause *n = makeNode(MergeWhenClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46779| 0| n->commandType = CMD_INSERT; 46780| 0| n->override = OVERRIDING_NOT_SET; 46781| 0| n->targetList = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46782| 0| n->values = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 46783| 0| (yyval.mergewhen) = n; 46784| 0| ;} 46785| 0| break; 46786| | 46787| 0| case 1701: ------------------ | Branch (46787:3): [True: 0, False: 76.7M] ------------------ 46788| 0|#line 12808 "gram.y" 46789| 0| { 46790| 0| (yyval.list) = (yyvsp[(3) - (4)].list); 46791| 0| ;} 46792| 0| break; 46793| | 46794| 0| case 1702: ------------------ | Branch (46794:3): [True: 0, False: 76.7M] ------------------ 46795| 0|#line 12820 "gram.y" 46796| 0| { 46797| 0| DeclareCursorStmt *n = makeNode(DeclareCursorStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46798| | 46799| 0| n->portalname = (yyvsp[(2) - (7)].str); 46800| | /* currently we always set FAST_PLAN option */ 46801| 0| n->options = (yyvsp[(3) - (7)].ival) | (yyvsp[(5) - (7)].ival) | CURSOR_OPT_FAST_PLAN; ------------------ | | 3389| 0|#define CURSOR_OPT_FAST_PLAN 0x0100 /* prefer fast-start plan */ ------------------ 46802| 0| n->query = (yyvsp[(7) - (7)].node); 46803| 0| (yyval.node) = (Node *) n; 46804| 0| ;} 46805| 0| break; 46806| | 46807| 163| case 1703: ------------------ | Branch (46807:3): [True: 163, False: 76.7M] ------------------ 46808| 163|#line 12831 "gram.y" 46809| 163| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 46810| 163| break; 46811| | 46812| 1| case 1704: ------------------ | Branch (46812:3): [True: 1, False: 76.7M] ------------------ 46813| 1|#line 12834 "gram.y" 46814| 1| { (yyval.ival) = 0; ;} 46815| 1| break; 46816| | 46817| 488| case 1705: ------------------ | Branch (46817:3): [True: 488, False: 76.7M] ------------------ 46818| 488|#line 12835 "gram.y" 46819| 488| { (yyval.ival) = (yyvsp[(1) - (3)].ival) | CURSOR_OPT_NO_SCROLL; ;} ------------------ | | 3384| 488|#define CURSOR_OPT_NO_SCROLL 0x0004 /* NO SCROLL explicitly given */ ------------------ 46820| 488| break; 46821| | 46822| 130| case 1706: ------------------ | Branch (46822:3): [True: 130, False: 76.7M] ------------------ 46823| 130|#line 12836 "gram.y" 46824| 130| { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_SCROLL; ;} ------------------ | | 3383| 130|#define CURSOR_OPT_SCROLL 0x0002 /* SCROLL explicitly given */ ------------------ 46825| 130| break; 46826| | 46827| 0| case 1707: ------------------ | Branch (46827:3): [True: 0, False: 76.7M] ------------------ 46828| 0|#line 12837 "gram.y" 46829| 0| { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_BINARY; ;} ------------------ | | 3382| 0|#define CURSOR_OPT_BINARY 0x0001 /* BINARY */ ------------------ 46830| 0| break; 46831| | 46832| 0| case 1708: ------------------ | Branch (46832:3): [True: 0, False: 76.7M] ------------------ 46833| 0|#line 12838 "gram.y" 46834| 0| { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_ASENSITIVE; ;} ------------------ | | 3386| 0|#define CURSOR_OPT_ASENSITIVE 0x0010 /* ASENSITIVE */ ------------------ 46835| 0| break; 46836| | 46837| 0| case 1709: ------------------ | Branch (46837:3): [True: 0, False: 76.7M] ------------------ 46838| 0|#line 12839 "gram.y" 46839| 0| { (yyval.ival) = (yyvsp[(1) - (2)].ival) | CURSOR_OPT_INSENSITIVE; ;} ------------------ | | 3385| 0|#define CURSOR_OPT_INSENSITIVE 0x0008 /* INSENSITIVE */ ------------------ 46840| 0| break; 46841| | 46842| 0| case 1710: ------------------ | Branch (46842:3): [True: 0, False: 76.7M] ------------------ 46843| 0|#line 12842 "gram.y" 46844| 0| { (yyval.ival) = 0; ;} 46845| 0| break; 46846| | 46847| 0| case 1711: ------------------ | Branch (46847:3): [True: 0, False: 76.7M] ------------------ 46848| 0|#line 12843 "gram.y" 46849| 0| { (yyval.ival) = CURSOR_OPT_HOLD; ;} ------------------ | | 3387| 0|#define CURSOR_OPT_HOLD 0x0020 /* WITH HOLD */ ------------------ 46850| 0| break; 46851| | 46852| 0| case 1712: ------------------ | Branch (46852:3): [True: 0, False: 76.7M] ------------------ 46853| 0|#line 12844 "gram.y" 46854| 0| { (yyval.ival) = 0; ;} 46855| 0| break; 46856| | 46857| 6.65k| case 1715: ------------------ | Branch (46857:3): [True: 6.65k, False: 76.7M] ------------------ 46858| 6.65k|#line 12897 "gram.y" 46859| 6.65k| { (yyval.node) = (yyvsp[(2) - (3)].node); ;} 46860| 6.65k| break; 46861| | 46862| 0| case 1716: ------------------ | Branch (46862:3): [True: 0, False: 76.7M] ------------------ 46863| 0|#line 12898 "gram.y" 46864| 0| { (yyval.node) = (yyvsp[(2) - (3)].node); ;} 46865| 0| break; 46866| | 46867| 23.7k| case 1717: ------------------ | Branch (46867:3): [True: 23.7k, False: 76.7M] ------------------ 46868| 23.7k|#line 12913 "gram.y" 46869| 23.7k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 46870| 23.7k| break; 46871| | 46872| 706| case 1718: ------------------ | Branch (46872:3): [True: 706, False: 76.7M] ------------------ 46873| 706|#line 12915 "gram.y" 46874| 706| { 46875| 706| insertSelectOptions((SelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL, ------------------ | | 68| 706|#define NIL ((List *) NULL) ------------------ 46876| 706| NULL, NULL, 46877| 706| yyscanner); 46878| 706| (yyval.node) = (yyvsp[(1) - (2)].node); 46879| 706| ;} 46880| 706| break; 46881| | 46882| 134| case 1719: ------------------ | Branch (46882:3): [True: 134, False: 76.7M] ------------------ 46883| 134|#line 12922 "gram.y" 46884| 134| { 46885| 134| insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list), 46886| 134| (yyvsp[(4) - (4)].selectlimit), 46887| 134| NULL, 46888| 134| yyscanner); 46889| 134| (yyval.node) = (yyvsp[(1) - (4)].node); 46890| 134| ;} 46891| 134| break; 46892| | 46893| 536| case 1720: ------------------ | Branch (46893:3): [True: 536, False: 76.7M] ------------------ 46894| 536|#line 12930 "gram.y" 46895| 536| { 46896| 536| insertSelectOptions((SelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list), 46897| 536| (yyvsp[(3) - (4)].selectlimit), 46898| 536| NULL, 46899| 536| yyscanner); 46900| 536| (yyval.node) = (yyvsp[(1) - (4)].node); 46901| 536| ;} 46902| 536| break; 46903| | 46904| 1.17k| case 1721: ------------------ | Branch (46904:3): [True: 1.17k, False: 76.7M] ------------------ 46905| 1.17k|#line 12938 "gram.y" 46906| 1.17k| { 46907| 1.17k| insertSelectOptions((SelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL, ------------------ | | 68| 1.17k|#define NIL ((List *) NULL) ------------------ 46908| 1.17k| NULL, 46909| 1.17k| (yyvsp[(1) - (2)].with), 46910| 1.17k| yyscanner); 46911| 1.17k| (yyval.node) = (yyvsp[(2) - (2)].node); 46912| 1.17k| ;} 46913| 1.17k| break; 46914| | 46915| 897| case 1722: ------------------ | Branch (46915:3): [True: 897, False: 76.7M] ------------------ 46916| 897|#line 12946 "gram.y" 46917| 897| { 46918| 897| insertSelectOptions((SelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL, ------------------ | | 68| 897|#define NIL ((List *) NULL) ------------------ 46919| 897| NULL, 46920| 897| (yyvsp[(1) - (3)].with), 46921| 897| yyscanner); 46922| 897| (yyval.node) = (yyvsp[(2) - (3)].node); 46923| 897| ;} 46924| 897| break; 46925| | 46926| 1.36k| case 1723: ------------------ | Branch (46926:3): [True: 1.36k, False: 76.7M] ------------------ 46927| 1.36k|#line 12954 "gram.y" 46928| 1.36k| { 46929| 1.36k| insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list), 46930| 1.36k| (yyvsp[(5) - (5)].selectlimit), 46931| 1.36k| (yyvsp[(1) - (5)].with), 46932| 1.36k| yyscanner); 46933| 1.36k| (yyval.node) = (yyvsp[(2) - (5)].node); 46934| 1.36k| ;} 46935| 1.36k| break; 46936| | 46937| 42| case 1724: ------------------ | Branch (46937:3): [True: 42, False: 76.7M] ------------------ 46938| 42|#line 12962 "gram.y" 46939| 42| { 46940| 42| insertSelectOptions((SelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list), 46941| 42| (yyvsp[(4) - (5)].selectlimit), 46942| 42| (yyvsp[(1) - (5)].with), 46943| 42| yyscanner); 46944| 42| (yyval.node) = (yyvsp[(2) - (5)].node); 46945| 42| ;} 46946| 42| break; 46947| | 46948| 4.66k| case 1725: ------------------ | Branch (46948:3): [True: 4.66k, False: 76.7M] ------------------ 46949| 4.66k|#line 12972 "gram.y" 46950| 4.66k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 46951| 4.66k| break; 46952| | 46953| 589| case 1726: ------------------ | Branch (46953:3): [True: 589, False: 76.7M] ------------------ 46954| 589|#line 12973 "gram.y" 46955| 589| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 46956| 589| break; 46957| | 46958| 28.4k| case 1727: ------------------ | Branch (46958:3): [True: 28.4k, False: 76.7M] ------------------ 46959| 28.4k|#line 13008 "gram.y" 46960| 28.4k| { 46961| 28.4k| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 28.4k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46962| | 46963| 28.4k| n->targetList = (yyvsp[(3) - (9)].list); 46964| 28.4k| n->intoClause = (yyvsp[(4) - (9)].into); 46965| 28.4k| n->fromClause = (yyvsp[(5) - (9)].list); 46966| 28.4k| n->whereClause = (yyvsp[(6) - (9)].node); 46967| 28.4k| n->groupClause = ((yyvsp[(7) - (9)].groupclause))->list; 46968| 28.4k| n->groupDistinct = ((yyvsp[(7) - (9)].groupclause))->distinct; 46969| 28.4k| n->havingClause = (yyvsp[(8) - (9)].node); 46970| 28.4k| n->windowClause = (yyvsp[(9) - (9)].list); 46971| 28.4k| (yyval.node) = (Node *) n; 46972| 28.4k| ;} 46973| 28.4k| break; 46974| | 46975| 0| case 1728: ------------------ | Branch (46975:3): [True: 0, False: 76.7M] ------------------ 46976| 0|#line 13024 "gram.y" 46977| 0| { 46978| 0| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 46979| | 46980| 0| n->distinctClause = (yyvsp[(2) - (9)].list); 46981| 0| n->targetList = (yyvsp[(3) - (9)].list); 46982| 0| n->intoClause = (yyvsp[(4) - (9)].into); 46983| 0| n->fromClause = (yyvsp[(5) - (9)].list); 46984| 0| n->whereClause = (yyvsp[(6) - (9)].node); 46985| 0| n->groupClause = ((yyvsp[(7) - (9)].groupclause))->list; 46986| 0| n->groupDistinct = ((yyvsp[(7) - (9)].groupclause))->distinct; 46987| 0| n->havingClause = (yyvsp[(8) - (9)].node); 46988| 0| n->windowClause = (yyvsp[(9) - (9)].list); 46989| 0| (yyval.node) = (Node *) n; 46990| 0| ;} 46991| 0| break; 46992| | 46993| 0| case 1729: ------------------ | Branch (46993:3): [True: 0, False: 76.7M] ------------------ 46994| 0|#line 13038 "gram.y" 46995| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 46996| 0| break; 46997| | 46998| 0| case 1730: ------------------ | Branch (46998:3): [True: 0, False: 76.7M] ------------------ 46999| 0|#line 13040 "gram.y" 47000| 0| { 47001| | /* same as SELECT * FROM relation_expr */ 47002| 0| ColumnRef *cr = makeNode(ColumnRef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47003| 0| ResTarget *rt = makeNode(ResTarget); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47004| 0| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47005| | 47006| 0| cr->fields = list_make1(makeNode(A_Star)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47007| 0| cr->location = -1; 47008| | 47009| 0| rt->name = NULL; 47010| 0| rt->indirection = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 47011| 0| rt->val = (Node *) cr; 47012| 0| rt->location = -1; 47013| | 47014| 0| n->targetList = list_make1(rt); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47015| 0| n->fromClause = list_make1((yyvsp[(2) - (2)].range)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47016| 0| (yyval.node) = (Node *) n; 47017| 0| ;} 47018| 0| break; 47019| | 47020| 0| case 1731: ------------------ | Branch (47020:3): [True: 0, False: 76.7M] ------------------ 47021| 0|#line 13059 "gram.y" 47022| 0| { 47023| 0| (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); 47024| 0| ;} 47025| 0| break; 47026| | 47027| 18| case 1732: ------------------ | Branch (47027:3): [True: 18, False: 76.7M] ------------------ 47028| 18|#line 13063 "gram.y" 47029| 18| { 47030| 18| (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); 47031| 18| ;} 47032| 18| break; 47033| | 47034| 0| case 1733: ------------------ | Branch (47034:3): [True: 0, False: 76.7M] ------------------ 47035| 0|#line 13067 "gram.y" 47036| 0| { 47037| 0| (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node)); 47038| 0| ;} 47039| 0| break; 47040| | 47041| 4.17k| case 1734: ------------------ | Branch (47041:3): [True: 4.17k, False: 76.7M] ------------------ 47042| 4.17k|#line 13082 "gram.y" 47043| 4.17k| { 47044| 4.17k| (yyval.with) = makeNode(WithClause); ------------------ | | 161| 4.17k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47045| 4.17k| (yyval.with)->ctes = (yyvsp[(2) - (2)].list); 47046| 4.17k| (yyval.with)->recursive = false; 47047| 4.17k| (yyval.with)->location = (yylsp[(1) - (2)]); 47048| 4.17k| ;} 47049| 4.17k| break; 47050| | 47051| 0| case 1735: ------------------ | Branch (47051:3): [True: 0, False: 76.7M] ------------------ 47052| 0|#line 13089 "gram.y" 47053| 0| { 47054| 0| (yyval.with) = makeNode(WithClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47055| 0| (yyval.with)->ctes = (yyvsp[(2) - (2)].list); 47056| 0| (yyval.with)->recursive = false; 47057| 0| (yyval.with)->location = (yylsp[(1) - (2)]); 47058| 0| ;} 47059| 0| break; 47060| | 47061| 0| case 1736: ------------------ | Branch (47061:3): [True: 0, False: 76.7M] ------------------ 47062| 0|#line 13096 "gram.y" 47063| 0| { 47064| 0| (yyval.with) = makeNode(WithClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47065| 0| (yyval.with)->ctes = (yyvsp[(3) - (3)].list); 47066| 0| (yyval.with)->recursive = true; 47067| 0| (yyval.with)->location = (yylsp[(1) - (3)]); 47068| 0| ;} 47069| 0| break; 47070| | 47071| 4.17k| case 1737: ------------------ | Branch (47071:3): [True: 4.17k, False: 76.7M] ------------------ 47072| 4.17k|#line 13105 "gram.y" 47073| 4.17k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 4.17k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 4.17k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47074| 4.17k| break; 47075| | 47076| 0| case 1738: ------------------ | Branch (47076:3): [True: 0, False: 76.7M] ------------------ 47077| 0|#line 13106 "gram.y" 47078| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 47079| 0| break; 47080| | 47081| 4.17k| case 1739: ------------------ | Branch (47081:3): [True: 4.17k, False: 76.7M] ------------------ 47082| 4.17k|#line 13110 "gram.y" 47083| 4.17k| { 47084| 4.17k| CommonTableExpr *n = makeNode(CommonTableExpr); ------------------ | | 161| 4.17k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47085| | 47086| 4.17k| n->ctename = (yyvsp[(1) - (9)].str); 47087| 4.17k| n->aliascolnames = (yyvsp[(2) - (9)].list); 47088| 4.17k| n->ctematerialized = (yyvsp[(4) - (9)].ival); 47089| 4.17k| n->ctequery = (yyvsp[(6) - (9)].node); 47090| 4.17k| n->search_clause = castNode(CTESearchClause, (yyvsp[(8) - (9)].node)); ------------------ | | 182| 4.17k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 47091| 4.17k| n->cycle_clause = castNode(CTECycleClause, (yyvsp[(9) - (9)].node)); ------------------ | | 182| 4.17k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 47092| 4.17k| n->location = (yylsp[(1) - (9)]); 47093| 4.17k| (yyval.node) = (Node *) n; 47094| 4.17k| ;} 47095| 4.17k| break; 47096| | 47097| 0| case 1740: ------------------ | Branch (47097:3): [True: 0, False: 76.7M] ------------------ 47098| 0|#line 13125 "gram.y" 47099| 0| { (yyval.ival) = CTEMaterializeAlways; ;} 47100| 0| break; 47101| | 47102| 0| case 1741: ------------------ | Branch (47102:3): [True: 0, False: 76.7M] ------------------ 47103| 0|#line 13126 "gram.y" 47104| 0| { (yyval.ival) = CTEMaterializeNever; ;} 47105| 0| break; 47106| | 47107| 4.31k| case 1742: ------------------ | Branch (47107:3): [True: 4.31k, False: 76.7M] ------------------ 47108| 4.31k|#line 13127 "gram.y" 47109| 4.31k| { (yyval.ival) = CTEMaterializeDefault; ;} 47110| 4.31k| break; 47111| | 47112| 0| case 1743: ------------------ | Branch (47112:3): [True: 0, False: 76.7M] ------------------ 47113| 0|#line 13132 "gram.y" 47114| 0| { 47115| 0| CTESearchClause *n = makeNode(CTESearchClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47116| | 47117| 0| n->search_col_list = (yyvsp[(5) - (7)].list); 47118| 0| n->search_breadth_first = false; 47119| 0| n->search_seq_column = (yyvsp[(7) - (7)].str); 47120| 0| n->location = (yylsp[(1) - (7)]); 47121| 0| (yyval.node) = (Node *) n; 47122| 0| ;} 47123| 0| break; 47124| | 47125| 0| case 1744: ------------------ | Branch (47125:3): [True: 0, False: 76.7M] ------------------ 47126| 0|#line 13142 "gram.y" 47127| 0| { 47128| 0| CTESearchClause *n = makeNode(CTESearchClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47129| | 47130| 0| n->search_col_list = (yyvsp[(5) - (7)].list); 47131| 0| n->search_breadth_first = true; 47132| 0| n->search_seq_column = (yyvsp[(7) - (7)].str); 47133| 0| n->location = (yylsp[(1) - (7)]); 47134| 0| (yyval.node) = (Node *) n; 47135| 0| ;} 47136| 0| break; 47137| | 47138| 4.17k| case 1745: ------------------ | Branch (47138:3): [True: 4.17k, False: 76.7M] ------------------ 47139| 4.17k|#line 13152 "gram.y" 47140| 4.17k| { 47141| 4.17k| (yyval.node) = NULL; 47142| 4.17k| ;} 47143| 4.17k| break; 47144| | 47145| 0| case 1746: ------------------ | Branch (47145:3): [True: 0, False: 76.7M] ------------------ 47146| 0|#line 13159 "gram.y" 47147| 0| { 47148| 0| CTECycleClause *n = makeNode(CTECycleClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47149| | 47150| 0| n->cycle_col_list = (yyvsp[(2) - (10)].list); 47151| 0| n->cycle_mark_column = (yyvsp[(4) - (10)].str); 47152| 0| n->cycle_mark_value = (yyvsp[(6) - (10)].node); 47153| 0| n->cycle_mark_default = (yyvsp[(8) - (10)].node); 47154| 0| n->cycle_path_column = (yyvsp[(10) - (10)].str); 47155| 0| n->location = (yylsp[(1) - (10)]); 47156| 0| (yyval.node) = (Node *) n; 47157| 0| ;} 47158| 0| break; 47159| | 47160| 0| case 1747: ------------------ | Branch (47160:3): [True: 0, False: 76.7M] ------------------ 47161| 0|#line 13171 "gram.y" 47162| 0| { 47163| 0| CTECycleClause *n = makeNode(CTECycleClause); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47164| | 47165| 0| n->cycle_col_list = (yyvsp[(2) - (6)].list); 47166| 0| n->cycle_mark_column = (yyvsp[(4) - (6)].str); 47167| 0| n->cycle_mark_value = makeBoolAConst(true, -1); 47168| 0| n->cycle_mark_default = makeBoolAConst(false, -1); 47169| 0| n->cycle_path_column = (yyvsp[(6) - (6)].str); 47170| 0| n->location = (yylsp[(1) - (6)]); 47171| 0| (yyval.node) = (Node *) n; 47172| 0| ;} 47173| 0| break; 47174| | 47175| 4.17k| case 1748: ------------------ | Branch (47175:3): [True: 4.17k, False: 76.7M] ------------------ 47176| 4.17k|#line 13183 "gram.y" 47177| 4.17k| { 47178| 4.17k| (yyval.node) = NULL; 47179| 4.17k| ;} 47180| 4.17k| break; 47181| | 47182| 696| case 1749: ------------------ | Branch (47182:3): [True: 696, False: 76.7M] ------------------ 47183| 696|#line 13189 "gram.y" 47184| 696| { (yyval.with) = (yyvsp[(1) - (1)].with); ;} 47185| 696| break; 47186| | 47187| 738| case 1750: ------------------ | Branch (47187:3): [True: 738, False: 76.7M] ------------------ 47188| 738|#line 13190 "gram.y" 47189| 738| { (yyval.with) = NULL; ;} 47190| 738| break; 47191| | 47192| 154| case 1751: ------------------ | Branch (47192:3): [True: 154, False: 76.7M] ------------------ 47193| 154|#line 13195 "gram.y" 47194| 154| { 47195| 154| (yyval.into) = makeNode(IntoClause); ------------------ | | 161| 154|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47196| 154| (yyval.into)->rel = (yyvsp[(2) - (2)].range); 47197| 154| (yyval.into)->colNames = NIL; ------------------ | | 68| 154|#define NIL ((List *) NULL) ------------------ 47198| 154| (yyval.into)->options = NIL; ------------------ | | 68| 154|#define NIL ((List *) NULL) ------------------ 47199| 154| (yyval.into)->onCommit = ONCOMMIT_NOOP; 47200| 154| (yyval.into)->tableSpaceName = NULL; 47201| 154| (yyval.into)->viewQuery = NULL; 47202| 154| (yyval.into)->skipData = false; 47203| 154| ;} 47204| 154| break; 47205| | 47206| 28.2k| case 1752: ------------------ | Branch (47206:3): [True: 28.2k, False: 76.7M] ------------------ 47207| 28.2k|#line 13206 "gram.y" 47208| 28.2k| { (yyval.into) = NULL; ;} 47209| 28.2k| break; 47210| | 47211| 137| case 1753: ------------------ | Branch (47211:3): [True: 137, False: 76.7M] ------------------ 47212| 137|#line 13215 "gram.y" 47213| 137| { 47214| 137| (yyval.range) = (yyvsp[(3) - (3)].range); 47215| 137| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 137|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47216| 137| ;} 47217| 137| break; 47218| | 47219| 0| case 1754: ------------------ | Branch (47219:3): [True: 0, False: 76.7M] ------------------ 47220| 0|#line 13220 "gram.y" 47221| 0| { 47222| 0| (yyval.range) = (yyvsp[(3) - (3)].range); 47223| 0| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47224| 0| ;} 47225| 0| break; 47226| | 47227| 0| case 1755: ------------------ | Branch (47227:3): [True: 0, False: 76.7M] ------------------ 47228| 0|#line 13225 "gram.y" 47229| 0| { 47230| 0| (yyval.range) = (yyvsp[(4) - (4)].range); 47231| 0| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47232| 0| ;} 47233| 0| break; 47234| | 47235| 0| case 1756: ------------------ | Branch (47235:3): [True: 0, False: 76.7M] ------------------ 47236| 0|#line 13230 "gram.y" 47237| 0| { 47238| 0| (yyval.range) = (yyvsp[(4) - (4)].range); 47239| 0| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47240| 0| ;} 47241| 0| break; 47242| | 47243| 0| case 1757: ------------------ | Branch (47243:3): [True: 0, False: 76.7M] ------------------ 47244| 0|#line 13235 "gram.y" 47245| 0| { 47246| 0| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 47247| 0| (errmsg("GLOBAL is deprecated in temporary table creation"), 47248| 0| parser_errposition((yylsp[(1) - (4)])))); 47249| 0| (yyval.range) = (yyvsp[(4) - (4)].range); 47250| 0| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47251| 0| ;} 47252| 0| break; 47253| | 47254| 0| case 1758: ------------------ | Branch (47254:3): [True: 0, False: 76.7M] ------------------ 47255| 0|#line 13243 "gram.y" 47256| 0| { 47257| 0| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 47258| 0| (errmsg("GLOBAL is deprecated in temporary table creation"), 47259| 0| parser_errposition((yylsp[(1) - (4)])))); 47260| 0| (yyval.range) = (yyvsp[(4) - (4)].range); 47261| 0| (yyval.range)->relpersistence = RELPERSISTENCE_TEMP; ------------------ | | 82| 0|#define RELPERSISTENCE_TEMP 't' /* temporary table */ ------------------ 47262| 0| ;} 47263| 0| break; 47264| | 47265| 0| case 1759: ------------------ | Branch (47265:3): [True: 0, False: 76.7M] ------------------ 47266| 0|#line 13251 "gram.y" 47267| 0| { 47268| 0| (yyval.range) = (yyvsp[(3) - (3)].range); 47269| 0| (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED; ------------------ | | 81| 0|#define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */ ------------------ 47270| 0| ;} 47271| 0| break; 47272| | 47273| 0| case 1760: ------------------ | Branch (47273:3): [True: 0, False: 76.7M] ------------------ 47274| 0|#line 13256 "gram.y" 47275| 0| { 47276| 0| (yyval.range) = (yyvsp[(2) - (2)].range); 47277| 0| (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 0|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 47278| 0| ;} 47279| 0| break; 47280| | 47281| 17| case 1761: ------------------ | Branch (47281:3): [True: 17, False: 76.7M] ------------------ 47282| 17|#line 13261 "gram.y" 47283| 17| { 47284| 17| (yyval.range) = (yyvsp[(1) - (1)].range); 47285| 17| (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 17|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 47286| 17| ;} 47287| 17| break; 47288| | 47289| 18| case 1764: ------------------ | Branch (47289:3): [True: 18, False: 76.7M] ------------------ 47290| 18|#line 13272 "gram.y" 47291| 18| { (yyval.setquantifier) = SET_QUANTIFIER_ALL; ;} 47292| 18| break; 47293| | 47294| 198| case 1765: ------------------ | Branch (47294:3): [True: 198, False: 76.7M] ------------------ 47295| 198|#line 13273 "gram.y" 47296| 198| { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; ;} 47297| 198| break; 47298| | 47299| 101| case 1766: ------------------ | Branch (47299:3): [True: 101, False: 76.7M] ------------------ 47300| 101|#line 13274 "gram.y" 47301| 101| { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; ;} 47302| 101| break; 47303| | 47304| 0| case 1767: ------------------ | Branch (47304:3): [True: 0, False: 76.7M] ------------------ 47305| 0|#line 13281 "gram.y" 47306| 0| { (yyval.list) = list_make1(NIL); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47307| 0| break; 47308| | 47309| 0| case 1768: ------------------ | Branch (47309:3): [True: 0, False: 76.7M] ------------------ 47310| 0|#line 13282 "gram.y" 47311| 0| { (yyval.list) = (yyvsp[(4) - (5)].list); ;} 47312| 0| break; 47313| | 47314| 0| case 1771: ------------------ | Branch (47314:3): [True: 0, False: 76.7M] ------------------ 47315| 0|#line 13291 "gram.y" 47316| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 47317| 0| break; 47318| | 47319| 0| case 1772: ------------------ | Branch (47319:3): [True: 0, False: 76.7M] ------------------ 47320| 0|#line 13292 "gram.y" 47321| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 47322| 0| break; 47323| | 47324| 181| case 1773: ------------------ | Branch (47324:3): [True: 181, False: 76.7M] ------------------ 47325| 181|#line 13296 "gram.y" 47326| 181| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 47327| 181| break; 47328| | 47329| 30.3k| case 1774: ------------------ | Branch (47329:3): [True: 30.3k, False: 76.7M] ------------------ 47330| 30.3k|#line 13297 "gram.y" 47331| 30.3k| { (yyval.list) = NIL; ;} ------------------ | | 68| 30.3k|#define NIL ((List *) NULL) ------------------ 47332| 30.3k| break; 47333| | 47334| 1.78k| case 1775: ------------------ | Branch (47334:3): [True: 1.78k, False: 76.7M] ------------------ 47335| 1.78k|#line 13301 "gram.y" 47336| 1.78k| { (yyval.list) = (yyvsp[(3) - (3)].list); ;} 47337| 1.78k| break; 47338| | 47339| 1.92k| case 1776: ------------------ | Branch (47339:3): [True: 1.92k, False: 76.7M] ------------------ 47340| 1.92k|#line 13305 "gram.y" 47341| 1.92k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;} ------------------ | | 213| 1.92k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.92k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47342| 1.92k| break; 47343| | 47344| 109k| case 1777: ------------------ | Branch (47344:3): [True: 109k, False: 76.6M] ------------------ 47345| 109k|#line 13306 "gram.y" 47346| 109k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;} 47347| 109k| break; 47348| | 47349| 6.68k| case 1778: ------------------ | Branch (47349:3): [True: 6.68k, False: 76.7M] ------------------ 47350| 6.68k|#line 13310 "gram.y" 47351| 6.68k| { 47352| 6.68k| (yyval.sortby) = makeNode(SortBy); ------------------ | | 161| 6.68k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47353| 6.68k| (yyval.sortby)->node = (yyvsp[(1) - (4)].node); 47354| 6.68k| (yyval.sortby)->sortby_dir = SORTBY_USING; 47355| 6.68k| (yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].ival); 47356| 6.68k| (yyval.sortby)->useOp = (yyvsp[(3) - (4)].list); 47357| 6.68k| (yyval.sortby)->location = (yylsp[(3) - (4)]); 47358| 6.68k| ;} 47359| 6.68k| break; 47360| | 47361| 104k| case 1779: ------------------ | Branch (47361:3): [True: 104k, False: 76.6M] ------------------ 47362| 104k|#line 13319 "gram.y" 47363| 104k| { 47364| 104k| (yyval.sortby) = makeNode(SortBy); ------------------ | | 161| 104k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47365| 104k| (yyval.sortby)->node = (yyvsp[(1) - (3)].node); 47366| 104k| (yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].ival); 47367| 104k| (yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].ival); 47368| 104k| (yyval.sortby)->useOp = NIL; ------------------ | | 68| 104k|#define NIL ((List *) NULL) ------------------ 47369| 104k| (yyval.sortby)->location = -1; /* no operator */ 47370| 104k| ;} 47371| 104k| break; 47372| | 47373| 0| case 1780: ------------------ | Branch (47373:3): [True: 0, False: 76.7M] ------------------ 47374| 0|#line 13332 "gram.y" 47375| 0| { 47376| 0| (yyval.selectlimit) = (yyvsp[(1) - (2)].selectlimit); 47377| 0| ((yyval.selectlimit))->limitOffset = (yyvsp[(2) - (2)].node); 47378| 0| ((yyval.selectlimit))->offsetLoc = (yylsp[(2) - (2)]); 47379| 0| ;} 47380| 0| break; 47381| | 47382| 0| case 1781: ------------------ | Branch (47382:3): [True: 0, False: 76.7M] ------------------ 47383| 0|#line 13338 "gram.y" 47384| 0| { 47385| 0| (yyval.selectlimit) = (yyvsp[(2) - (2)].selectlimit); 47386| 0| ((yyval.selectlimit))->limitOffset = (yyvsp[(1) - (2)].node); 47387| 0| ((yyval.selectlimit))->offsetLoc = (yylsp[(1) - (2)]); 47388| 0| ;} 47389| 0| break; 47390| | 47391| 508| case 1782: ------------------ | Branch (47391:3): [True: 508, False: 76.7M] ------------------ 47392| 508|#line 13344 "gram.y" 47393| 508| { 47394| 508| (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); 47395| 508| ;} 47396| 508| break; 47397| | 47398| 70| case 1783: ------------------ | Branch (47398:3): [True: 70, False: 76.7M] ------------------ 47399| 70|#line 13348 "gram.y" 47400| 70| { 47401| 70| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47402| | 47403| 70| n->limitOffset = (yyvsp[(1) - (1)].node); 47404| 70| n->limitCount = NULL; 47405| 70| n->limitOption = LIMIT_OPTION_COUNT; 47406| 70| n->offsetLoc = (yylsp[(1) - (1)]); 47407| 70| n->countLoc = -1; 47408| 70| n->optionLoc = -1; 47409| 70| (yyval.selectlimit) = n; 47410| 70| ;} 47411| 70| break; 47412| | 47413| 0| case 1784: ------------------ | Branch (47413:3): [True: 0, False: 76.7M] ------------------ 47414| 0|#line 13362 "gram.y" 47415| 0| { (yyval.selectlimit) = (yyvsp[(1) - (1)].selectlimit); ;} 47416| 0| break; 47417| | 47418| 1.49k| case 1785: ------------------ | Branch (47418:3): [True: 1.49k, False: 76.7M] ------------------ 47419| 1.49k|#line 13363 "gram.y" 47420| 1.49k| { (yyval.selectlimit) = NULL; ;} 47421| 1.49k| break; 47422| | 47423| 508| case 1786: ------------------ | Branch (47423:3): [True: 508, False: 76.7M] ------------------ 47424| 508|#line 13368 "gram.y" 47425| 508| { 47426| 508| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47427| | 47428| 508| n->limitOffset = NULL; 47429| 508| n->limitCount = (yyvsp[(2) - (2)].node); 47430| 508| n->limitOption = LIMIT_OPTION_COUNT; 47431| 508| n->offsetLoc = -1; 47432| 508| n->countLoc = (yylsp[(1) - (2)]); 47433| 508| n->optionLoc = -1; 47434| 508| (yyval.selectlimit) = n; 47435| 508| ;} 47436| 508| break; 47437| | 47438| 0| case 1787: ------------------ | Branch (47438:3): [True: 0, False: 76.7M] ------------------ 47439| 0|#line 13380 "gram.y" 47440| 0| { 47441| | /* Disabled because it was too confusing, bjm 2002-02-18 */ 47442| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 47443| 0| (errcode(ERRCODE_SYNTAX_ERROR), 47444| 0| errmsg("LIMIT #,# syntax is not supported"), 47445| 0| errhint("Use separate LIMIT and OFFSET clauses."), 47446| 0| parser_errposition((yylsp[(1) - (4)])))); 47447| 0| ;} 47448| 0| break; 47449| | 47450| 0| case 1788: ------------------ | Branch (47450:3): [True: 0, False: 76.7M] ------------------ 47451| 0|#line 13396 "gram.y" 47452| 0| { 47453| 0| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47454| | 47455| 0| n->limitOffset = NULL; 47456| 0| n->limitCount = (yyvsp[(3) - (5)].node); 47457| 0| n->limitOption = LIMIT_OPTION_COUNT; 47458| 0| n->offsetLoc = -1; 47459| 0| n->countLoc = (yylsp[(1) - (5)]); 47460| 0| n->optionLoc = -1; 47461| 0| (yyval.selectlimit) = n; 47462| 0| ;} 47463| 0| break; 47464| | 47465| 0| case 1789: ------------------ | Branch (47465:3): [True: 0, False: 76.7M] ------------------ 47466| 0|#line 13408 "gram.y" 47467| 0| { 47468| 0| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47469| | 47470| 0| n->limitOffset = NULL; 47471| 0| n->limitCount = (yyvsp[(3) - (6)].node); 47472| 0| n->limitOption = LIMIT_OPTION_WITH_TIES; 47473| 0| n->offsetLoc = -1; 47474| 0| n->countLoc = (yylsp[(1) - (6)]); 47475| 0| n->optionLoc = (yylsp[(5) - (6)]); 47476| 0| (yyval.selectlimit) = n; 47477| 0| ;} 47478| 0| break; 47479| | 47480| 0| case 1790: ------------------ | Branch (47480:3): [True: 0, False: 76.7M] ------------------ 47481| 0|#line 13420 "gram.y" 47482| 0| { 47483| 0| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47484| | 47485| 0| n->limitOffset = NULL; 47486| 0| n->limitCount = makeIntConst(1, -1); 47487| 0| n->limitOption = LIMIT_OPTION_COUNT; 47488| 0| n->offsetLoc = -1; 47489| 0| n->countLoc = (yylsp[(1) - (4)]); 47490| 0| n->optionLoc = -1; 47491| 0| (yyval.selectlimit) = n; 47492| 0| ;} 47493| 0| break; 47494| | 47495| 0| case 1791: ------------------ | Branch (47495:3): [True: 0, False: 76.7M] ------------------ 47496| 0|#line 13432 "gram.y" 47497| 0| { 47498| 0| SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit)); 47499| | 47500| 0| n->limitOffset = NULL; 47501| 0| n->limitCount = makeIntConst(1, -1); 47502| 0| n->limitOption = LIMIT_OPTION_WITH_TIES; 47503| 0| n->offsetLoc = -1; 47504| 0| n->countLoc = (yylsp[(1) - (5)]); 47505| 0| n->optionLoc = (yylsp[(4) - (5)]); 47506| 0| (yyval.selectlimit) = n; 47507| 0| ;} 47508| 0| break; 47509| | 47510| 42| case 1792: ------------------ | Branch (47510:3): [True: 42, False: 76.7M] ------------------ 47511| 42|#line 13447 "gram.y" 47512| 42| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 47513| 42| break; 47514| | 47515| 28| case 1793: ------------------ | Branch (47515:3): [True: 28, False: 76.7M] ------------------ 47516| 28|#line 13450 "gram.y" 47517| 28| { (yyval.node) = (yyvsp[(2) - (3)].node); ;} 47518| 28| break; 47519| | 47520| 508| case 1794: ------------------ | Branch (47520:3): [True: 508, False: 76.7M] ------------------ 47521| 508|#line 13454 "gram.y" 47522| 508| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47523| 508| break; 47524| | 47525| 0| case 1795: ------------------ | Branch (47525:3): [True: 0, False: 76.7M] ------------------ 47526| 0|#line 13456 "gram.y" 47527| 0| { 47528| | /* LIMIT ALL is represented as a NULL constant */ 47529| 0| (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); 47530| 0| ;} 47531| 0| break; 47532| | 47533| 42| case 1796: ------------------ | Branch (47533:3): [True: 42, False: 76.7M] ------------------ 47534| 42|#line 13463 "gram.y" 47535| 42| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47536| 42| break; 47537| | 47538| 0| case 1797: ------------------ | Branch (47538:3): [True: 0, False: 76.7M] ------------------ 47539| 0|#line 13483 "gram.y" 47540| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47541| 0| break; 47542| | 47543| 0| case 1798: ------------------ | Branch (47543:3): [True: 0, False: 76.7M] ------------------ 47544| 0|#line 13485 "gram.y" 47545| 0| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 47546| 0| break; 47547| | 47548| 28| case 1799: ------------------ | Branch (47548:3): [True: 28, False: 76.7M] ------------------ 47549| 28|#line 13487 "gram.y" 47550| 28| { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 47551| 28| break; 47552| | 47553| 0| case 1800: ------------------ | Branch (47553:3): [True: 0, False: 76.7M] ------------------ 47554| 0|#line 13491 "gram.y" 47555| 0| { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} 47556| 0| break; 47557| | 47558| 28| case 1801: ------------------ | Branch (47558:3): [True: 28, False: 76.7M] ------------------ 47559| 28|#line 13492 "gram.y" 47560| 28| { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} 47561| 28| break; 47562| | 47563| 28| case 1802: ------------------ | Branch (47563:3): [True: 28, False: 76.7M] ------------------ 47564| 28|#line 13496 "gram.y" 47565| 28| { (yyval.ival) = 0; ;} 47566| 28| break; 47567| | 47568| 0| case 1803: ------------------ | Branch (47568:3): [True: 0, False: 76.7M] ------------------ 47569| 0|#line 13497 "gram.y" 47570| 0| { (yyval.ival) = 0; ;} 47571| 0| break; 47572| | 47573| 0| case 1804: ------------------ | Branch (47573:3): [True: 0, False: 76.7M] ------------------ 47574| 0|#line 13500 "gram.y" 47575| 0| { (yyval.ival) = 0; ;} 47576| 0| break; 47577| | 47578| 128| case 1805: ------------------ | Branch (47578:3): [True: 128, False: 76.7M] ------------------ 47579| 128|#line 13501 "gram.y" 47580| 128| { (yyval.ival) = 0; ;} 47581| 128| break; 47582| | 47583| 298| case 1806: ------------------ | Branch (47583:3): [True: 298, False: 76.7M] ------------------ 47584| 298|#line 13527 "gram.y" 47585| 298| { 47586| 298| GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause)); 47587| | 47588| 298| n->distinct = (yyvsp[(3) - (4)].setquantifier) == SET_QUANTIFIER_DISTINCT; 47589| 298| n->list = (yyvsp[(4) - (4)].list); 47590| 298| (yyval.groupclause) = n; 47591| 298| ;} 47592| 298| break; 47593| | 47594| 28.1k| case 1807: ------------------ | Branch (47594:3): [True: 28.1k, False: 76.7M] ------------------ 47595| 28.1k|#line 13535 "gram.y" 47596| 28.1k| { 47597| 28.1k| GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause)); 47598| | 47599| 28.1k| n->distinct = false; 47600| 28.1k| n->list = NIL; ------------------ | | 68| 28.1k|#define NIL ((List *) NULL) ------------------ 47601| 28.1k| (yyval.groupclause) = n; 47602| 28.1k| ;} 47603| 28.1k| break; 47604| | 47605| 299| case 1808: ------------------ | Branch (47605:3): [True: 299, False: 76.7M] ------------------ 47606| 299|#line 13545 "gram.y" 47607| 299| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 299| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 299|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47608| 299| break; 47609| | 47610| 28.1k| case 1809: ------------------ | Branch (47610:3): [True: 28.1k, False: 76.7M] ------------------ 47611| 28.1k|#line 13546 "gram.y" 47612| 28.1k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} 47613| 28.1k| break; 47614| | 47615| 28.1k| case 1810: ------------------ | Branch (47615:3): [True: 28.1k, False: 76.7M] ------------------ 47616| 28.1k|#line 13550 "gram.y" 47617| 28.1k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47618| 28.1k| break; 47619| | 47620| 273| case 1811: ------------------ | Branch (47620:3): [True: 273, False: 76.7M] ------------------ 47621| 273|#line 13551 "gram.y" 47622| 273| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47623| 273| break; 47624| | 47625| 0| case 1812: ------------------ | Branch (47625:3): [True: 0, False: 76.7M] ------------------ 47626| 0|#line 13552 "gram.y" 47627| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47628| 0| break; 47629| | 47630| 0| case 1813: ------------------ | Branch (47630:3): [True: 0, False: 76.7M] ------------------ 47631| 0|#line 13553 "gram.y" 47632| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47633| 0| break; 47634| | 47635| 0| case 1814: ------------------ | Branch (47635:3): [True: 0, False: 76.7M] ------------------ 47636| 0|#line 13554 "gram.y" 47637| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 47638| 0| break; 47639| | 47640| 273| case 1815: ------------------ | Branch (47640:3): [True: 273, False: 76.7M] ------------------ 47641| 273|#line 13559 "gram.y" 47642| 273| { 47643| 273| (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ------------------ | | 68| 273|#define NIL ((List *) NULL) ------------------ 47644| 273| ;} 47645| 273| break; 47646| | 47647| 0| case 1816: ------------------ | Branch (47647:3): [True: 0, False: 76.7M] ------------------ 47648| 0|#line 13572 "gram.y" 47649| 0| { 47650| 0| (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); 47651| 0| ;} 47652| 0| break; 47653| | 47654| 0| case 1817: ------------------ | Branch (47654:3): [True: 0, False: 76.7M] ------------------ 47655| 0|#line 13579 "gram.y" 47656| 0| { 47657| 0| (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); 47658| 0| ;} 47659| 0| break; 47660| | 47661| 0| case 1818: ------------------ | Branch (47661:3): [True: 0, False: 76.7M] ------------------ 47662| 0|#line 13586 "gram.y" 47663| 0| { 47664| 0| (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); 47665| 0| ;} 47666| 0| break; 47667| | 47668| 0| case 1819: ------------------ | Branch (47668:3): [True: 0, False: 76.7M] ------------------ 47669| 0|#line 13592 "gram.y" 47670| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 47671| 0| break; 47672| | 47673| 28.4k| case 1820: ------------------ | Branch (47673:3): [True: 28.4k, False: 76.7M] ------------------ 47674| 28.4k|#line 13593 "gram.y" 47675| 28.4k| { (yyval.node) = NULL; ;} 47676| 28.4k| break; 47677| | 47678| 1.49k| case 1821: ------------------ | Branch (47678:3): [True: 1.49k, False: 76.7M] ------------------ 47679| 1.49k|#line 13597 "gram.y" 47680| 1.49k| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 47681| 1.49k| break; 47682| | 47683| 0| case 1822: ------------------ | Branch (47683:3): [True: 0, False: 76.7M] ------------------ 47684| 0|#line 13598 "gram.y" 47685| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 47686| 0| break; 47687| | 47688| 0| case 1823: ------------------ | Branch (47688:3): [True: 0, False: 76.7M] ------------------ 47689| 0|#line 13602 "gram.y" 47690| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 47691| 0| break; 47692| | 47693| 578| case 1824: ------------------ | Branch (47693:3): [True: 578, False: 76.7M] ------------------ 47694| 578|#line 13603 "gram.y" 47695| 578| { (yyval.list) = NIL; ;} ------------------ | | 68| 578|#define NIL ((List *) NULL) ------------------ 47696| 578| break; 47697| | 47698| 1.49k| case 1825: ------------------ | Branch (47698:3): [True: 1.49k, False: 76.7M] ------------------ 47699| 1.49k|#line 13607 "gram.y" 47700| 1.49k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 1.49k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.49k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47701| 1.49k| break; 47702| | 47703| 1.04k| case 1826: ------------------ | Branch (47703:3): [True: 1.04k, False: 76.7M] ------------------ 47704| 1.04k|#line 13608 "gram.y" 47705| 1.04k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 47706| 1.04k| break; 47707| | 47708| 2.53k| case 1827: ------------------ | Branch (47708:3): [True: 2.53k, False: 76.7M] ------------------ 47709| 2.53k|#line 13613 "gram.y" 47710| 2.53k| { 47711| 2.53k| LockingClause *n = makeNode(LockingClause); ------------------ | | 161| 2.53k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47712| | 47713| 2.53k| n->lockedRels = (yyvsp[(2) - (3)].list); 47714| 2.53k| n->strength = (yyvsp[(1) - (3)].ival); 47715| 2.53k| n->waitPolicy = (yyvsp[(3) - (3)].ival); 47716| 2.53k| (yyval.node) = (Node *) n; 47717| 2.53k| ;} 47718| 2.53k| break; 47719| | 47720| 2.53k| case 1828: ------------------ | Branch (47720:3): [True: 2.53k, False: 76.7M] ------------------ 47721| 2.53k|#line 13624 "gram.y" 47722| 2.53k| { (yyval.ival) = LCS_FORUPDATE; ;} 47723| 2.53k| break; 47724| | 47725| 0| case 1829: ------------------ | Branch (47725:3): [True: 0, False: 76.7M] ------------------ 47726| 0|#line 13625 "gram.y" 47727| 0| { (yyval.ival) = LCS_FORNOKEYUPDATE; ;} 47728| 0| break; 47729| | 47730| 0| case 1830: ------------------ | Branch (47730:3): [True: 0, False: 76.7M] ------------------ 47731| 0|#line 13626 "gram.y" 47732| 0| { (yyval.ival) = LCS_FORSHARE; ;} 47733| 0| break; 47734| | 47735| 0| case 1831: ------------------ | Branch (47735:3): [True: 0, False: 76.7M] ------------------ 47736| 0|#line 13627 "gram.y" 47737| 0| { (yyval.ival) = LCS_FORKEYSHARE; ;} 47738| 0| break; 47739| | 47740| 30| case 1832: ------------------ | Branch (47740:3): [True: 30, False: 76.7M] ------------------ 47741| 30|#line 13631 "gram.y" 47742| 30| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 47743| 30| break; 47744| | 47745| 2.50k| case 1833: ------------------ | Branch (47745:3): [True: 2.50k, False: 76.7M] ------------------ 47746| 2.50k|#line 13632 "gram.y" 47747| 2.50k| { (yyval.list) = NIL; ;} ------------------ | | 68| 2.50k|#define NIL ((List *) NULL) ------------------ 47748| 2.50k| break; 47749| | 47750| 0| case 1834: ------------------ | Branch (47750:3): [True: 0, False: 76.7M] ------------------ 47751| 0|#line 13643 "gram.y" 47752| 0| { 47753| 0| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47754| | 47755| 0| n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47756| 0| (yyval.node) = (Node *) n; 47757| 0| ;} 47758| 0| break; 47759| | 47760| 0| case 1835: ------------------ | Branch (47760:3): [True: 0, False: 76.7M] ------------------ 47761| 0|#line 13650 "gram.y" 47762| 0| { 47763| 0| SelectStmt *n = (SelectStmt *) (yyvsp[(1) - (5)].node); 47764| | 47765| 0| n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); 47766| 0| (yyval.node) = (Node *) n; 47767| 0| ;} 47768| 0| break; 47769| | 47770| 297| case 1836: ------------------ | Branch (47770:3): [True: 297, False: 76.7M] ------------------ 47771| 297|#line 13668 "gram.y" 47772| 297| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 47773| 297| break; 47774| | 47775| 28.6k| case 1837: ------------------ | Branch (47775:3): [True: 28.6k, False: 76.7M] ------------------ 47776| 28.6k|#line 13669 "gram.y" 47777| 28.6k| { (yyval.list) = NIL; ;} ------------------ | | 68| 28.6k|#define NIL ((List *) NULL) ------------------ 47778| 28.6k| break; 47779| | 47780| 297| case 1838: ------------------ | Branch (47780:3): [True: 297, False: 76.7M] ------------------ 47781| 297|#line 13673 "gram.y" 47782| 297| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 297| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 297|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 47783| 297| break; 47784| | 47785| 83.5k| case 1839: ------------------ | Branch (47785:3): [True: 83.5k, False: 76.6M] ------------------ 47786| 83.5k|#line 13674 "gram.y" 47787| 83.5k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 47788| 83.5k| break; 47789| | 47790| 81.1k| case 1840: ------------------ | Branch (47790:3): [True: 81.1k, False: 76.6M] ------------------ 47791| 81.1k|#line 13681 "gram.y" 47792| 81.1k| { 47793| 81.1k| (yyvsp[(1) - (2)].range)->alias = (yyvsp[(2) - (2)].alias); 47794| 81.1k| (yyval.node) = (Node *) (yyvsp[(1) - (2)].range); 47795| 81.1k| ;} 47796| 81.1k| break; 47797| | 47798| 0| case 1841: ------------------ | Branch (47798:3): [True: 0, False: 76.7M] ------------------ 47799| 0|#line 13686 "gram.y" 47800| 0| { 47801| 0| RangeTableSample *n = (RangeTableSample *) (yyvsp[(3) - (3)].node); 47802| | 47803| 0| (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); 47804| | /* relation_expr goes inside the RangeTableSample node */ 47805| 0| n->relation = (Node *) (yyvsp[(1) - (3)].range); 47806| 0| (yyval.node) = (Node *) n; 47807| 0| ;} 47808| 0| break; 47809| | 47810| 2.62k| case 1842: ------------------ | Branch (47810:3): [True: 2.62k, False: 76.7M] ------------------ 47811| 2.62k|#line 13695 "gram.y" 47812| 2.62k| { 47813| 2.62k| RangeFunction *n = (RangeFunction *) (yyvsp[(1) - (2)].node); 47814| | 47815| 2.62k| n->alias = linitial((yyvsp[(2) - (2)].list)); ------------------ | | 178| 2.62k|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 2.62k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 47816| 2.62k| n->coldeflist = lsecond((yyvsp[(2) - (2)].list)); ------------------ | | 183| 2.62k|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 2.62k|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 47817| 2.62k| (yyval.node) = (Node *) n; 47818| 2.62k| ;} 47819| 2.62k| break; 47820| | 47821| 0| case 1843: ------------------ | Branch (47821:3): [True: 0, False: 76.7M] ------------------ 47822| 0|#line 13703 "gram.y" 47823| 0| { 47824| 0| RangeFunction *n = (RangeFunction *) (yyvsp[(2) - (3)].node); 47825| | 47826| 0| n->lateral = true; 47827| 0| n->alias = linitial((yyvsp[(3) - (3)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 47828| 0| n->coldeflist = lsecond((yyvsp[(3) - (3)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 47829| 0| (yyval.node) = (Node *) n; 47830| 0| ;} 47831| 0| break; 47832| | 47833| 0| case 1844: ------------------ | Branch (47833:3): [True: 0, False: 76.7M] ------------------ 47834| 0|#line 13712 "gram.y" 47835| 0| { 47836| 0| RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(1) - (2)].node); 47837| | 47838| 0| n->alias = (yyvsp[(2) - (2)].alias); 47839| 0| (yyval.node) = (Node *) n; 47840| 0| ;} 47841| 0| break; 47842| | 47843| 0| case 1845: ------------------ | Branch (47843:3): [True: 0, False: 76.7M] ------------------ 47844| 0|#line 13719 "gram.y" 47845| 0| { 47846| 0| RangeTableFunc *n = (RangeTableFunc *) (yyvsp[(2) - (3)].node); 47847| | 47848| 0| n->lateral = true; 47849| 0| n->alias = (yyvsp[(3) - (3)].alias); 47850| 0| (yyval.node) = (Node *) n; 47851| 0| ;} 47852| 0| break; 47853| | 47854| 15| case 1846: ------------------ | Branch (47854:3): [True: 15, False: 76.7M] ------------------ 47855| 15|#line 13727 "gram.y" 47856| 15| { 47857| 15| RangeSubselect *n = makeNode(RangeSubselect); ------------------ | | 161| 15|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47858| | 47859| 15| n->lateral = false; 47860| 15| n->subquery = (yyvsp[(1) - (2)].node); 47861| 15| n->alias = (yyvsp[(2) - (2)].alias); 47862| 15| (yyval.node) = (Node *) n; 47863| 15| ;} 47864| 15| break; 47865| | 47866| 0| case 1847: ------------------ | Branch (47866:3): [True: 0, False: 76.7M] ------------------ 47867| 0|#line 13736 "gram.y" 47868| 0| { 47869| 0| RangeSubselect *n = makeNode(RangeSubselect); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47870| | 47871| 0| n->lateral = true; 47872| 0| n->subquery = (yyvsp[(2) - (3)].node); 47873| 0| n->alias = (yyvsp[(3) - (3)].alias); 47874| 0| (yyval.node) = (Node *) n; 47875| 0| ;} 47876| 0| break; 47877| | 47878| 0| case 1848: ------------------ | Branch (47878:3): [True: 0, False: 76.7M] ------------------ 47879| 0|#line 13745 "gram.y" 47880| 0| { 47881| 0| (yyval.node) = (Node *) (yyvsp[(1) - (1)].jexpr); 47882| 0| ;} 47883| 0| break; 47884| | 47885| 4| case 1849: ------------------ | Branch (47885:3): [True: 4, False: 76.7M] ------------------ 47886| 4|#line 13749 "gram.y" 47887| 4| { 47888| 4| (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); 47889| 4| (yyval.node) = (Node *) (yyvsp[(2) - (4)].jexpr); 47890| 4| ;} 47891| 4| break; 47892| | 47893| 0| case 1850: ------------------ | Branch (47893:3): [True: 0, False: 76.7M] ------------------ 47894| 0|#line 13754 "gram.y" 47895| 0| { 47896| 0| JsonTable *jt = castNode(JsonTable, (yyvsp[(1) - (2)].node)); ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 47897| | 47898| 0| jt->alias = (yyvsp[(2) - (2)].alias); 47899| 0| (yyval.node) = (Node *) jt; 47900| 0| ;} 47901| 0| break; 47902| | 47903| 0| case 1851: ------------------ | Branch (47903:3): [True: 0, False: 76.7M] ------------------ 47904| 0|#line 13761 "gram.y" 47905| 0| { 47906| 0| JsonTable *jt = castNode(JsonTable, (yyvsp[(2) - (3)].node)); ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 47907| | 47908| 0| jt->alias = (yyvsp[(3) - (3)].alias); 47909| 0| jt->lateral = true; 47910| 0| (yyval.node) = (Node *) jt; 47911| 0| ;} 47912| 0| break; 47913| | 47914| 0| case 1852: ------------------ | Branch (47914:3): [True: 0, False: 76.7M] ------------------ 47915| 0|#line 13790 "gram.y" 47916| 0| { 47917| 0| (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); 47918| 0| ;} 47919| 0| break; 47920| | 47921| 0| case 1853: ------------------ | Branch (47921:3): [True: 0, False: 76.7M] ------------------ 47922| 0|#line 13794 "gram.y" 47923| 0| { 47924| | /* CROSS JOIN is same as unqualified inner join */ 47925| 0| JoinExpr *n = makeNode(JoinExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47926| | 47927| 0| n->jointype = JOIN_INNER; 47928| 0| n->isNatural = false; 47929| 0| n->larg = (yyvsp[(1) - (4)].node); 47930| 0| n->rarg = (yyvsp[(4) - (4)].node); 47931| 0| n->usingClause = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 47932| 0| n->join_using_alias = NULL; 47933| 0| n->quals = NULL; 47934| 0| (yyval.jexpr) = n; 47935| 0| ;} 47936| 0| break; 47937| | 47938| 0| case 1854: ------------------ | Branch (47938:3): [True: 0, False: 76.7M] ------------------ 47939| 0|#line 13808 "gram.y" 47940| 0| { 47941| 0| JoinExpr *n = makeNode(JoinExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47942| | 47943| 0| n->jointype = (yyvsp[(2) - (5)].jtype); 47944| 0| n->isNatural = false; 47945| 0| n->larg = (yyvsp[(1) - (5)].node); 47946| 0| n->rarg = (yyvsp[(4) - (5)].node); 47947| 0| if ((yyvsp[(5) - (5)].node) != NULL && IsA((yyvsp[(5) - (5)].node), List)) ------------------ | | 164| 0|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 0|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 0] | | ------------------ ------------------ | Branch (47947:10): [True: 0, False: 0] ------------------ 47948| 0| { 47949| | /* USING clause */ 47950| 0| n->usingClause = linitial_node(List, castNode(List, (yyvsp[(5) - (5)].node))); ------------------ | | 181| 0|#define linitial_node(type,l) castNode(type, linitial(l)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 47951| 0| n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[(5) - (5)].node))); ------------------ | | 186| 0|#define lsecond_node(type,l) castNode(type, lsecond(l)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 47952| 0| } 47953| 0| else 47954| 0| { 47955| | /* ON clause */ 47956| 0| n->quals = (yyvsp[(5) - (5)].node); 47957| 0| } 47958| 0| (yyval.jexpr) = n; 47959| 0| ;} 47960| 0| break; 47961| | 47962| 4| case 1855: ------------------ | Branch (47962:3): [True: 4, False: 76.7M] ------------------ 47963| 4|#line 13829 "gram.y" 47964| 4| { 47965| | /* letting join_type reduce to empty doesn't work */ 47966| 4| JoinExpr *n = makeNode(JoinExpr); ------------------ | | 161| 4|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47967| | 47968| 4| n->jointype = JOIN_INNER; 47969| 4| n->isNatural = false; 47970| 4| n->larg = (yyvsp[(1) - (4)].node); 47971| 4| n->rarg = (yyvsp[(3) - (4)].node); 47972| 4| if ((yyvsp[(4) - (4)].node) != NULL && IsA((yyvsp[(4) - (4)].node), List)) ------------------ | | 164| 4|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 4|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 4] | | ------------------ ------------------ | Branch (47972:10): [True: 4, False: 0] ------------------ 47973| 0| { 47974| | /* USING clause */ 47975| 0| n->usingClause = linitial_node(List, castNode(List, (yyvsp[(4) - (4)].node))); ------------------ | | 181| 0|#define linitial_node(type,l) castNode(type, linitial(l)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 47976| 0| n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[(4) - (4)].node))); ------------------ | | 186| 0|#define lsecond_node(type,l) castNode(type, lsecond(l)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 47977| 0| } 47978| 4| else 47979| 4| { 47980| | /* ON clause */ 47981| 4| n->quals = (yyvsp[(4) - (4)].node); 47982| 4| } 47983| 4| (yyval.jexpr) = n; 47984| 4| ;} 47985| 4| break; 47986| | 47987| 0| case 1856: ------------------ | Branch (47987:3): [True: 0, False: 76.7M] ------------------ 47988| 0|#line 13851 "gram.y" 47989| 0| { 47990| 0| JoinExpr *n = makeNode(JoinExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 47991| | 47992| 0| n->jointype = (yyvsp[(3) - (5)].jtype); 47993| 0| n->isNatural = true; 47994| 0| n->larg = (yyvsp[(1) - (5)].node); 47995| 0| n->rarg = (yyvsp[(5) - (5)].node); 47996| 0| n->usingClause = NIL; /* figure out which columns later... */ ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 47997| 0| n->join_using_alias = NULL; 47998| 0| n->quals = NULL; /* fill later */ 47999| 0| (yyval.jexpr) = n; 48000| 0| ;} 48001| 0| break; 48002| | 48003| 0| case 1857: ------------------ | Branch (48003:3): [True: 0, False: 76.7M] ------------------ 48004| 0|#line 13864 "gram.y" 48005| 0| { 48006| | /* letting join_type reduce to empty doesn't work */ 48007| 0| JoinExpr *n = makeNode(JoinExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48008| | 48009| 0| n->jointype = JOIN_INNER; 48010| 0| n->isNatural = true; 48011| 0| n->larg = (yyvsp[(1) - (4)].node); 48012| 0| n->rarg = (yyvsp[(4) - (4)].node); 48013| 0| n->usingClause = NIL; /* figure out which columns later... */ ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 48014| 0| n->join_using_alias = NULL; 48015| 0| n->quals = NULL; /* fill later */ 48016| 0| (yyval.jexpr) = n; 48017| 0| ;} 48018| 0| break; 48019| | 48020| 319| case 1858: ------------------ | Branch (48020:3): [True: 319, False: 76.7M] ------------------ 48021| 319|#line 13881 "gram.y" 48022| 319| { 48023| 319| (yyval.alias) = makeNode(Alias); ------------------ | | 161| 319|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48024| 319| (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); 48025| 319| (yyval.alias)->colnames = (yyvsp[(4) - (5)].list); 48026| 319| ;} 48027| 319| break; 48028| | 48029| 115| case 1859: ------------------ | Branch (48029:3): [True: 115, False: 76.7M] ------------------ 48030| 115|#line 13887 "gram.y" 48031| 115| { 48032| 115| (yyval.alias) = makeNode(Alias); ------------------ | | 161| 115|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48033| 115| (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); 48034| 115| ;} 48035| 115| break; 48036| | 48037| 0| case 1860: ------------------ | Branch (48037:3): [True: 0, False: 76.7M] ------------------ 48038| 0|#line 13892 "gram.y" 48039| 0| { 48040| 0| (yyval.alias) = makeNode(Alias); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48041| 0| (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); 48042| 0| (yyval.alias)->colnames = (yyvsp[(3) - (4)].list); 48043| 0| ;} 48044| 0| break; 48045| | 48046| 1.15k| case 1861: ------------------ | Branch (48046:3): [True: 1.15k, False: 76.7M] ------------------ 48047| 1.15k|#line 13898 "gram.y" 48048| 1.15k| { 48049| 1.15k| (yyval.alias) = makeNode(Alias); ------------------ | | 161| 1.15k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48050| 1.15k| (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); 48051| 1.15k| ;} 48052| 1.15k| break; 48053| | 48054| 127| case 1862: ------------------ | Branch (48054:3): [True: 127, False: 76.7M] ------------------ 48055| 127|#line 13904 "gram.y" 48056| 127| { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} 48057| 127| break; 48058| | 48059| 81.0k| case 1863: ------------------ | Branch (48059:3): [True: 81.0k, False: 76.6M] ------------------ 48060| 81.0k|#line 13905 "gram.y" 48061| 81.0k| { (yyval.alias) = NULL; ;} 48062| 81.0k| break; 48063| | 48064| 0| case 1864: ------------------ | Branch (48064:3): [True: 0, False: 76.7M] ------------------ 48065| 0|#line 13916 "gram.y" 48066| 0| { 48067| 0| (yyval.alias) = makeNode(Alias); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48068| 0| (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); 48069| | /* the column name list will be inserted later */ 48070| 0| ;} 48071| 0| break; 48072| | 48073| 0| case 1865: ------------------ | Branch (48073:3): [True: 0, False: 76.7M] ------------------ 48074| 0|#line 13921 "gram.y" 48075| 0| { (yyval.alias) = NULL; ;} 48076| 0| break; 48077| | 48078| 1.45k| case 1866: ------------------ | Branch (48078:3): [True: 1.45k, False: 76.7M] ------------------ 48079| 1.45k|#line 13930 "gram.y" 48080| 1.45k| { 48081| 1.45k| (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); ------------------ | | 215| 1.45k| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 1.45k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 1.45k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48082| 1.45k| ;} 48083| 1.45k| break; 48084| | 48085| 987| case 1867: ------------------ | Branch (48085:3): [True: 987, False: 76.7M] ------------------ 48086| 987|#line 13934 "gram.y" 48087| 987| { 48088| 987| (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); ------------------ | | 215| 987| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 987|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 987|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48089| 987| ;} 48090| 987| break; 48091| | 48092| 0| case 1868: ------------------ | Branch (48092:3): [True: 0, False: 76.7M] ------------------ 48093| 0|#line 13938 "gram.y" 48094| 0| { 48095| 0| Alias *a = makeNode(Alias); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48096| | 48097| 0| a->aliasname = (yyvsp[(2) - (5)].str); 48098| 0| (yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48099| 0| ;} 48100| 0| break; 48101| | 48102| 16| case 1869: ------------------ | Branch (48102:3): [True: 16, False: 76.7M] ------------------ 48103| 16|#line 13945 "gram.y" 48104| 16| { 48105| 16| Alias *a = makeNode(Alias); ------------------ | | 161| 16|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48106| | 48107| 16| a->aliasname = (yyvsp[(1) - (4)].str); 48108| 16| (yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list)); ------------------ | | 215| 16| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 16|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 16|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48109| 16| ;} 48110| 16| break; 48111| | 48112| 160| case 1870: ------------------ | Branch (48112:3): [True: 160, False: 76.7M] ------------------ 48113| 160|#line 13952 "gram.y" 48114| 160| { 48115| 160| (yyval.list) = list_make2(NULL, NIL); ------------------ | | 215| 160| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 160|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 160|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48116| 160| ;} 48117| 160| break; 48118| | 48119| 0| case 1871: ------------------ | Branch (48119:3): [True: 0, False: 76.7M] ------------------ 48120| 0|#line 13957 "gram.y" 48121| 0| { (yyval.jtype) = JOIN_FULL; ;} 48122| 0| break; 48123| | 48124| 0| case 1872: ------------------ | Branch (48124:3): [True: 0, False: 76.7M] ------------------ 48125| 0|#line 13958 "gram.y" 48126| 0| { (yyval.jtype) = JOIN_LEFT; ;} 48127| 0| break; 48128| | 48129| 0| case 1873: ------------------ | Branch (48129:3): [True: 0, False: 76.7M] ------------------ 48130| 0|#line 13959 "gram.y" 48131| 0| { (yyval.jtype) = JOIN_RIGHT; ;} 48132| 0| break; 48133| | 48134| 0| case 1874: ------------------ | Branch (48134:3): [True: 0, False: 76.7M] ------------------ 48135| 0|#line 13960 "gram.y" 48136| 0| { (yyval.jtype) = JOIN_INNER; ;} 48137| 0| break; 48138| | 48139| 0| case 1877: ------------------ | Branch (48139:3): [True: 0, False: 76.7M] ------------------ 48140| 0|#line 13981 "gram.y" 48141| 0| { 48142| 0| (yyval.node) = (Node *) list_make2((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].alias)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48143| 0| ;} 48144| 0| break; 48145| | 48146| 4| case 1878: ------------------ | Branch (48146:3): [True: 4, False: 76.7M] ------------------ 48147| 4|#line 13985 "gram.y" 48148| 4| { 48149| 4| (yyval.node) = (yyvsp[(2) - (2)].node); 48150| 4| ;} 48151| 4| break; 48152| | 48153| 621k| case 1879: ------------------ | Branch (48153:3): [True: 621k, False: 76.1M] ------------------ 48154| 621k|#line 13993 "gram.y" 48155| 621k| { 48156| | /* inheritance query, implicitly */ 48157| 621k| (yyval.range) = (yyvsp[(1) - (1)].range); 48158| 621k| (yyval.range)->inh = true; 48159| 621k| (yyval.range)->alias = NULL; 48160| 621k| ;} 48161| 621k| break; 48162| | 48163| 79| case 1880: ------------------ | Branch (48163:3): [True: 79, False: 76.7M] ------------------ 48164| 79|#line 14000 "gram.y" 48165| 79| { 48166| 79| (yyval.range) = (yyvsp[(1) - (1)].range); 48167| 79| ;} 48168| 79| break; 48169| | 48170| 1.04k| case 1881: ------------------ | Branch (48170:3): [True: 1.04k, False: 76.7M] ------------------ 48171| 1.04k|#line 14007 "gram.y" 48172| 1.04k| { 48173| | /* inheritance query, explicitly */ 48174| 1.04k| (yyval.range) = (yyvsp[(1) - (2)].range); 48175| 1.04k| (yyval.range)->inh = true; 48176| 1.04k| (yyval.range)->alias = NULL; 48177| 1.04k| ;} 48178| 1.04k| break; 48179| | 48180| 0| case 1882: ------------------ | Branch (48180:3): [True: 0, False: 76.7M] ------------------ 48181| 0|#line 14014 "gram.y" 48182| 0| { 48183| | /* no inheritance */ 48184| 0| (yyval.range) = (yyvsp[(2) - (2)].range); 48185| 0| (yyval.range)->inh = false; 48186| 0| (yyval.range)->alias = NULL; 48187| 0| ;} 48188| 0| break; 48189| | 48190| 0| case 1883: ------------------ | Branch (48190:3): [True: 0, False: 76.7M] ------------------ 48191| 0|#line 14021 "gram.y" 48192| 0| { 48193| | /* no inheritance, SQL99-style syntax */ 48194| 0| (yyval.range) = (yyvsp[(3) - (4)].range); 48195| 0| (yyval.range)->inh = false; 48196| 0| (yyval.range)->alias = NULL; 48197| 0| ;} 48198| 0| break; 48199| | 48200| 405| case 1884: ------------------ | Branch (48200:3): [True: 405, False: 76.7M] ------------------ 48201| 405|#line 14031 "gram.y" 48202| 405| { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} ------------------ | | 213| 405| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 405|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48203| 405| break; 48204| | 48205| 235k| case 1885: ------------------ | Branch (48205:3): [True: 235k, False: 76.5M] ------------------ 48206| 235k|#line 14032 "gram.y" 48207| 235k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} 48208| 235k| break; 48209| | 48210| 535| case 1886: ------------------ | Branch (48210:3): [True: 535, False: 76.7M] ------------------ 48211| 535|#line 14046 "gram.y" 48212| 535| { 48213| 535| (yyval.range) = (yyvsp[(1) - (1)].range); 48214| 535| ;} 48215| 535| break; 48216| | 48217| 158| case 1887: ------------------ | Branch (48217:3): [True: 158, False: 76.7M] ------------------ 48218| 158|#line 14050 "gram.y" 48219| 158| { 48220| 158| Alias *alias = makeNode(Alias); ------------------ | | 161| 158|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48221| | 48222| 158| alias->aliasname = (yyvsp[(2) - (2)].str); 48223| 158| (yyvsp[(1) - (2)].range)->alias = alias; 48224| 158| (yyval.range) = (yyvsp[(1) - (2)].range); 48225| 158| ;} 48226| 158| break; 48227| | 48228| 0| case 1888: ------------------ | Branch (48228:3): [True: 0, False: 76.7M] ------------------ 48229| 0|#line 14058 "gram.y" 48230| 0| { 48231| 0| Alias *alias = makeNode(Alias); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48232| | 48233| 0| alias->aliasname = (yyvsp[(3) - (3)].str); 48234| 0| (yyvsp[(1) - (3)].range)->alias = alias; 48235| 0| (yyval.range) = (yyvsp[(1) - (3)].range); 48236| 0| ;} 48237| 0| break; 48238| | 48239| 0| case 1889: ------------------ | Branch (48239:3): [True: 0, False: 76.7M] ------------------ 48240| 0|#line 14072 "gram.y" 48241| 0| { 48242| 0| RangeTableSample *n = makeNode(RangeTableSample); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48243| | 48244| | /* n->relation will be filled in later */ 48245| 0| n->method = (yyvsp[(2) - (6)].list); 48246| 0| n->args = (yyvsp[(4) - (6)].list); 48247| 0| n->repeatable = (yyvsp[(6) - (6)].node); 48248| 0| n->location = (yylsp[(2) - (6)]); 48249| 0| (yyval.node) = (Node *) n; 48250| 0| ;} 48251| 0| break; 48252| | 48253| 0| case 1890: ------------------ | Branch (48253:3): [True: 0, False: 76.7M] ------------------ 48254| 0|#line 14085 "gram.y" 48255| 0| { (yyval.node) = (Node *) (yyvsp[(3) - (4)].node); ;} 48256| 0| break; 48257| | 48258| 0| case 1891: ------------------ | Branch (48258:3): [True: 0, False: 76.7M] ------------------ 48259| 0|#line 14086 "gram.y" 48260| 0| { (yyval.node) = NULL; ;} 48261| 0| break; 48262| | 48263| 2.62k| case 1892: ------------------ | Branch (48263:3): [True: 2.62k, False: 76.7M] ------------------ 48264| 2.62k|#line 14102 "gram.y" 48265| 2.62k| { 48266| 2.62k| RangeFunction *n = makeNode(RangeFunction); ------------------ | | 161| 2.62k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48267| | 48268| 2.62k| n->lateral = false; 48269| 2.62k| n->ordinality = (yyvsp[(2) - (2)].boolean); 48270| 2.62k| n->is_rowsfrom = false; 48271| 2.62k| n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL)); ------------------ | | 213| 2.62k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2.62k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48272| | /* alias and coldeflist are set by table_ref production */ 48273| 2.62k| (yyval.node) = (Node *) n; 48274| 2.62k| ;} 48275| 2.62k| break; 48276| | 48277| 0| case 1893: ------------------ | Branch (48277:3): [True: 0, False: 76.7M] ------------------ 48278| 0|#line 14113 "gram.y" 48279| 0| { 48280| 0| RangeFunction *n = makeNode(RangeFunction); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48281| | 48282| 0| n->lateral = false; 48283| 0| n->ordinality = (yyvsp[(6) - (6)].boolean); 48284| 0| n->is_rowsfrom = true; 48285| 0| n->functions = (yyvsp[(4) - (6)].list); 48286| | /* alias and coldeflist are set by table_ref production */ 48287| 0| (yyval.node) = (Node *) n; 48288| 0| ;} 48289| 0| break; 48290| | 48291| 0| case 1894: ------------------ | Branch (48291:3): [True: 0, False: 76.7M] ------------------ 48292| 0|#line 14126 "gram.y" 48293| 0| { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48294| 0| break; 48295| | 48296| 0| case 1895: ------------------ | Branch (48296:3): [True: 0, False: 76.7M] ------------------ 48297| 0|#line 14130 "gram.y" 48298| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48299| 0| break; 48300| | 48301| 0| case 1896: ------------------ | Branch (48301:3): [True: 0, False: 76.7M] ------------------ 48302| 0|#line 14131 "gram.y" 48303| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} 48304| 0| break; 48305| | 48306| 0| case 1897: ------------------ | Branch (48306:3): [True: 0, False: 76.7M] ------------------ 48307| 0|#line 14134 "gram.y" 48308| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 48309| 0| break; 48310| | 48311| 0| case 1898: ------------------ | Branch (48311:3): [True: 0, False: 76.7M] ------------------ 48312| 0|#line 14135 "gram.y" 48313| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 48314| 0| break; 48315| | 48316| 0| case 1899: ------------------ | Branch (48316:3): [True: 0, False: 76.7M] ------------------ 48317| 0|#line 14138 "gram.y" 48318| 0| { (yyval.boolean) = true; ;} 48319| 0| break; 48320| | 48321| 2.62k| case 1900: ------------------ | Branch (48321:3): [True: 2.62k, False: 76.7M] ------------------ 48322| 2.62k|#line 14139 "gram.y" 48323| 2.62k| { (yyval.boolean) = false; ;} 48324| 2.62k| break; 48325| | 48326| 0| case 1901: ------------------ | Branch (48326:3): [True: 0, False: 76.7M] ------------------ 48327| 0|#line 14144 "gram.y" 48328| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 48329| 0| break; 48330| | 48331| 28.8k| case 1902: ------------------ | Branch (48331:3): [True: 28.8k, False: 76.7M] ------------------ 48332| 28.8k|#line 14145 "gram.y" 48333| 28.8k| { (yyval.node) = NULL; ;} 48334| 28.8k| break; 48335| | 48336| 0| case 1903: ------------------ | Branch (48336:3): [True: 0, False: 76.7M] ------------------ 48337| 0|#line 14150 "gram.y" 48338| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 48339| 0| break; 48340| | 48341| 0| case 1904: ------------------ | Branch (48341:3): [True: 0, False: 76.7M] ------------------ 48342| 0|#line 14152 "gram.y" 48343| 0| { 48344| 0| CurrentOfExpr *n = makeNode(CurrentOfExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48345| | 48346| | /* cvarno is filled in by parse analysis */ 48347| 0| n->cursor_name = (yyvsp[(4) - (4)].str); 48348| 0| n->cursor_param = 0; 48349| 0| (yyval.node) = (Node *) n; 48350| 0| ;} 48351| 0| break; 48352| | 48353| 541| case 1905: ------------------ | Branch (48353:3): [True: 541, False: 76.7M] ------------------ 48354| 541|#line 14160 "gram.y" 48355| 541| { (yyval.node) = NULL; ;} 48356| 541| break; 48357| | 48358| 893| case 1906: ------------------ | Branch (48358:3): [True: 893, False: 76.7M] ------------------ 48359| 893|#line 14165 "gram.y" 48360| 893| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 48361| 893| break; 48362| | 48363| 650| case 1907: ------------------ | Branch (48363:3): [True: 650, False: 76.7M] ------------------ 48364| 650|#line 14166 "gram.y" 48365| 650| { (yyval.list) = NIL; ;} ------------------ | | 68| 650|#define NIL ((List *) NULL) ------------------ 48366| 650| break; 48367| | 48368| 1.89k| case 1908: ------------------ | Branch (48368:3): [True: 1.89k, False: 76.7M] ------------------ 48369| 1.89k|#line 14171 "gram.y" 48370| 1.89k| { 48371| 1.89k| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 1.89k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.89k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48372| 1.89k| ;} 48373| 1.89k| break; 48374| | 48375| 2| case 1909: ------------------ | Branch (48375:3): [True: 2, False: 76.7M] ------------------ 48376| 2|#line 14175 "gram.y" 48377| 2| { 48378| 2| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 48379| 2| ;} 48380| 2| break; 48381| | 48382| 1.89k| case 1910: ------------------ | Branch (48382:3): [True: 1.89k, False: 76.7M] ------------------ 48383| 1.89k|#line 14181 "gram.y" 48384| 1.89k| { 48385| 1.89k| ColumnDef *n = makeNode(ColumnDef); ------------------ | | 161| 1.89k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48386| | 48387| 1.89k| n->colname = (yyvsp[(1) - (3)].str); 48388| 1.89k| n->typeName = (yyvsp[(2) - (3)].typnam); 48389| 1.89k| n->inhcount = 0; 48390| 1.89k| n->is_local = true; 48391| 1.89k| n->is_not_null = false; 48392| 1.89k| n->is_from_type = false; 48393| 1.89k| n->storage = 0; 48394| 1.89k| n->raw_default = NULL; 48395| 1.89k| n->cooked_default = NULL; 48396| 1.89k| n->collClause = (CollateClause *) (yyvsp[(3) - (3)].node); 48397| 1.89k| n->collOid = InvalidOid; ------------------ | | 37| 1.89k|#define InvalidOid ((Oid) 0) ------------------ 48398| 1.89k| n->constraints = NIL; ------------------ | | 68| 1.89k|#define NIL ((List *) NULL) ------------------ 48399| 1.89k| n->location = (yylsp[(1) - (3)]); 48400| 1.89k| (yyval.node) = (Node *) n; 48401| 1.89k| ;} 48402| 1.89k| break; 48403| | 48404| 0| case 1911: ------------------ | Branch (48404:3): [True: 0, False: 76.7M] ------------------ 48405| 0|#line 14206 "gram.y" 48406| 0| { 48407| 0| RangeTableFunc *n = makeNode(RangeTableFunc); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48408| | 48409| 0| n->rowexpr = (yyvsp[(3) - (7)].node); 48410| 0| n->docexpr = (yyvsp[(4) - (7)].node); 48411| 0| n->columns = (yyvsp[(6) - (7)].list); 48412| 0| n->namespaces = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 48413| 0| n->location = (yylsp[(1) - (7)]); 48414| 0| (yyval.node) = (Node *) n; 48415| 0| ;} 48416| 0| break; 48417| | 48418| 0| case 1912: ------------------ | Branch (48418:3): [True: 0, False: 76.7M] ------------------ 48419| 0|#line 14218 "gram.y" 48420| 0| { 48421| 0| RangeTableFunc *n = makeNode(RangeTableFunc); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48422| | 48423| 0| n->rowexpr = (yyvsp[(8) - (12)].node); 48424| 0| n->docexpr = (yyvsp[(9) - (12)].node); 48425| 0| n->columns = (yyvsp[(11) - (12)].list); 48426| 0| n->namespaces = (yyvsp[(5) - (12)].list); 48427| 0| n->location = (yylsp[(1) - (12)]); 48428| 0| (yyval.node) = (Node *) n; 48429| 0| ;} 48430| 0| break; 48431| | 48432| 0| case 1913: ------------------ | Branch (48432:3): [True: 0, False: 76.7M] ------------------ 48433| 0|#line 14230 "gram.y" 48434| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48435| 0| break; 48436| | 48437| 0| case 1914: ------------------ | Branch (48437:3): [True: 0, False: 76.7M] ------------------ 48438| 0|#line 14231 "gram.y" 48439| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 48440| 0| break; 48441| | 48442| 0| case 1915: ------------------ | Branch (48442:3): [True: 0, False: 76.7M] ------------------ 48443| 0|#line 14236 "gram.y" 48444| 0| { 48445| 0| RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48446| | 48447| 0| fc->colname = (yyvsp[(1) - (2)].str); 48448| 0| fc->for_ordinality = false; 48449| 0| fc->typeName = (yyvsp[(2) - (2)].typnam); 48450| 0| fc->is_not_null = false; 48451| 0| fc->colexpr = NULL; 48452| 0| fc->coldefexpr = NULL; 48453| 0| fc->location = (yylsp[(1) - (2)]); 48454| | 48455| 0| (yyval.node) = (Node *) fc; 48456| 0| ;} 48457| 0| break; 48458| | 48459| 0| case 1916: ------------------ | Branch (48459:3): [True: 0, False: 76.7M] ------------------ 48460| 0|#line 14250 "gram.y" 48461| 0| { 48462| 0| RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48463| 0| ListCell *option; 48464| 0| bool nullability_seen = false; 48465| | 48466| 0| fc->colname = (yyvsp[(1) - (3)].str); 48467| 0| fc->typeName = (yyvsp[(2) - (3)].typnam); 48468| 0| fc->for_ordinality = false; 48469| 0| fc->is_not_null = false; 48470| 0| fc->colexpr = NULL; 48471| 0| fc->coldefexpr = NULL; 48472| 0| fc->location = (yylsp[(1) - (3)]); 48473| | 48474| 0| foreach(option, (yyvsp[(3) - (3)].list)) ------------------ | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 0| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 0|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 0, False: 0] | | | Branch (375:5): [True: 0, False: 0] | | ------------------ | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 0, False: 0] | | ------------------ | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 0| (cell = NULL, false); \ | | 379| 0| cell##__state.i++) ------------------ 48475| 0| { 48476| 0| DefElem *defel = (DefElem *) lfirst(option); ------------------ | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) ------------------ 48477| | 48478| 0| if (strcmp(defel->defname, "default") == 0) ------------------ | Branch (48478:11): [True: 0, False: 0] ------------------ 48479| 0| { 48480| 0| if (fc->coldefexpr != NULL) ------------------ | Branch (48480:12): [True: 0, False: 0] ------------------ 48481| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48482| 0| (errcode(ERRCODE_SYNTAX_ERROR), 48483| 0| errmsg("only one DEFAULT value is allowed"), 48484| 0| parser_errposition(defel->location))); 48485| 0| fc->coldefexpr = defel->arg; 48486| 0| } 48487| 0| else if (strcmp(defel->defname, "path") == 0) ------------------ | Branch (48487:16): [True: 0, False: 0] ------------------ 48488| 0| { 48489| 0| if (fc->colexpr != NULL) ------------------ | Branch (48489:12): [True: 0, False: 0] ------------------ 48490| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48491| 0| (errcode(ERRCODE_SYNTAX_ERROR), 48492| 0| errmsg("only one PATH value per column is allowed"), 48493| 0| parser_errposition(defel->location))); 48494| 0| fc->colexpr = defel->arg; 48495| 0| } 48496| 0| else if (strcmp(defel->defname, "__pg__is_not_null") == 0) ------------------ | Branch (48496:16): [True: 0, False: 0] ------------------ 48497| 0| { 48498| 0| if (nullability_seen) ------------------ | Branch (48498:12): [True: 0, False: 0] ------------------ 48499| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48500| 0| (errcode(ERRCODE_SYNTAX_ERROR), 48501| 0| errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname), 48502| 0| parser_errposition(defel->location))); 48503| 0| fc->is_not_null = boolVal(defel->arg); ------------------ | | 81| 0|#define boolVal(v) (castNode(Boolean, v)->boolval) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 48504| 0| nullability_seen = true; 48505| 0| } 48506| 0| else 48507| 0| { 48508| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48509| 0| (errcode(ERRCODE_SYNTAX_ERROR), 48510| 0| errmsg("unrecognized column option \"%s\"", 48511| 0| defel->defname), 48512| 0| parser_errposition(defel->location))); 48513| 0| } 48514| 0| } 48515| 0| (yyval.node) = (Node *) fc; 48516| 0| ;} 48517| 0| break; 48518| | 48519| 0| case 1917: ------------------ | Branch (48519:3): [True: 0, False: 76.7M] ------------------ 48520| 0|#line 14307 "gram.y" 48521| 0| { 48522| 0| RangeTableFuncCol *fc = makeNode(RangeTableFuncCol); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48523| | 48524| 0| fc->colname = (yyvsp[(1) - (3)].str); 48525| 0| fc->for_ordinality = true; 48526| | /* other fields are ignored, initialized by makeNode */ 48527| 0| fc->location = (yylsp[(1) - (3)]); 48528| | 48529| 0| (yyval.node) = (Node *) fc; 48530| 0| ;} 48531| 0| break; 48532| | 48533| 0| case 1918: ------------------ | Branch (48533:3): [True: 0, False: 76.7M] ------------------ 48534| 0|#line 14321 "gram.y" 48535| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48536| 0| break; 48537| | 48538| 0| case 1919: ------------------ | Branch (48538:3): [True: 0, False: 76.7M] ------------------ 48539| 0|#line 14323 "gram.y" 48540| 0| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;} 48541| 0| break; 48542| | 48543| 0| case 1920: ------------------ | Branch (48543:3): [True: 0, False: 76.7M] ------------------ 48544| 0|#line 14328 "gram.y" 48545| 0| { 48546| 0| if (strcmp((yyvsp[(1) - (2)].str), "__pg__is_not_null") == 0) ------------------ | Branch (48546:10): [True: 0, False: 0] ------------------ 48547| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48548| 0| (errcode(ERRCODE_SYNTAX_ERROR), 48549| 0| errmsg("option name \"%s\" cannot be used in XMLTABLE", (yyvsp[(1) - (2)].str)), 48550| 0| parser_errposition((yylsp[(1) - (2)])))); 48551| 0| (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); 48552| 0| ;} 48553| 0| break; 48554| | 48555| 0| case 1921: ------------------ | Branch (48555:3): [True: 0, False: 76.7M] ------------------ 48556| 0|#line 14337 "gram.y" 48557| 0| { (yyval.defelt) = makeDefElem("default", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 48558| 0| break; 48559| | 48560| 0| case 1922: ------------------ | Branch (48560:3): [True: 0, False: 76.7M] ------------------ 48561| 0|#line 14339 "gram.y" 48562| 0| { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(true), (yylsp[(1) - (2)])); ;} 48563| 0| break; 48564| | 48565| 0| case 1923: ------------------ | Branch (48565:3): [True: 0, False: 76.7M] ------------------ 48566| 0|#line 14341 "gram.y" 48567| 0| { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(false), (yylsp[(1) - (1)])); ;} 48568| 0| break; 48569| | 48570| 0| case 1924: ------------------ | Branch (48570:3): [True: 0, False: 76.7M] ------------------ 48571| 0|#line 14343 "gram.y" 48572| 0| { (yyval.defelt) = makeDefElem("path", (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 48573| 0| break; 48574| | 48575| 0| case 1925: ------------------ | Branch (48575:3): [True: 0, False: 76.7M] ------------------ 48576| 0|#line 14348 "gram.y" 48577| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48578| 0| break; 48579| | 48580| 0| case 1926: ------------------ | Branch (48580:3): [True: 0, False: 76.7M] ------------------ 48581| 0|#line 14350 "gram.y" 48582| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} 48583| 0| break; 48584| | 48585| 0| case 1927: ------------------ | Branch (48585:3): [True: 0, False: 76.7M] ------------------ 48586| 0|#line 14355 "gram.y" 48587| 0| { 48588| 0| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48589| 0| (yyval.target)->name = (yyvsp[(3) - (3)].str); 48590| 0| (yyval.target)->indirection = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 48591| 0| (yyval.target)->val = (yyvsp[(1) - (3)].node); 48592| 0| (yyval.target)->location = (yylsp[(1) - (3)]); 48593| 0| ;} 48594| 0| break; 48595| | 48596| 0| case 1928: ------------------ | Branch (48596:3): [True: 0, False: 76.7M] ------------------ 48597| 0|#line 14363 "gram.y" 48598| 0| { 48599| 0| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48600| 0| (yyval.target)->name = NULL; 48601| 0| (yyval.target)->indirection = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 48602| 0| (yyval.target)->val = (yyvsp[(2) - (2)].node); 48603| 0| (yyval.target)->location = (yylsp[(1) - (2)]); 48604| 0| ;} 48605| 0| break; 48606| | 48607| 0| case 1929: ------------------ | Branch (48607:3): [True: 0, False: 76.7M] ------------------ 48608| 0|#line 14379 "gram.y" 48609| 0| { 48610| 0| JsonTable *n = makeNode(JsonTable); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48611| 0| char *pathstring; 48612| | 48613| 0| n->context_item = (JsonValueExpr *) (yyvsp[(3) - (13)].node); 48614| 0| if (!IsA((yyvsp[(5) - (13)].node), A_Const) || ------------------ | | 164| 0|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 0|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ ------------------ | Branch (48614:10): [True: 0, False: 0] ------------------ 48615| 0| castNode(A_Const, (yyvsp[(5) - (13)].node))->val.node.type != T_String) ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ | Branch (48615:7): [True: 0, False: 0] ------------------ 48616| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 48617| 0| errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 48618| 0| errmsg("only string constants are supported in JSON_TABLE path specification"), 48619| 0| parser_errposition((yylsp[(5) - (13)]))); 48620| 0| pathstring = castNode(A_Const, (yyvsp[(5) - (13)].node))->val.sval.sval; ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 48621| 0| n->pathspec = makeJsonTablePathSpec(pathstring, (yyvsp[(6) - (13)].str), (yylsp[(5) - (13)]), (yylsp[(6) - (13)])); 48622| 0| n->passing = (yyvsp[(7) - (13)].list); 48623| 0| n->columns = (yyvsp[(10) - (13)].list); 48624| 0| n->on_error = (JsonBehavior *) (yyvsp[(12) - (13)].node); 48625| 0| n->location = (yylsp[(1) - (13)]); 48626| 0| (yyval.node) = (Node *) n; 48627| 0| ;} 48628| 0| break; 48629| | 48630| 0| case 1930: ------------------ | Branch (48630:3): [True: 0, False: 76.7M] ------------------ 48631| 0|#line 14401 "gram.y" 48632| 0| { (yyval.str) = (yyvsp[(2) - (2)].str); ;} 48633| 0| break; 48634| | 48635| 0| case 1931: ------------------ | Branch (48635:3): [True: 0, False: 76.7M] ------------------ 48636| 0|#line 14402 "gram.y" 48637| 0| { (yyval.str) = NULL; ;} 48638| 0| break; 48639| | 48640| 0| case 1932: ------------------ | Branch (48640:3): [True: 0, False: 76.7M] ------------------ 48641| 0|#line 14407 "gram.y" 48642| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48643| 0| break; 48644| | 48645| 0| case 1933: ------------------ | Branch (48645:3): [True: 0, False: 76.7M] ------------------ 48646| 0|#line 14409 "gram.y" 48647| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 48648| 0| break; 48649| | 48650| 0| case 1934: ------------------ | Branch (48650:3): [True: 0, False: 76.7M] ------------------ 48651| 0|#line 14414 "gram.y" 48652| 0| { 48653| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48654| | 48655| 0| n->coltype = JTC_FOR_ORDINALITY; 48656| 0| n->name = (yyvsp[(1) - (3)].str); 48657| 0| n->location = (yylsp[(1) - (3)]); 48658| 0| (yyval.node) = (Node *) n; 48659| 0| ;} 48660| 0| break; 48661| | 48662| 0| case 1935: ------------------ | Branch (48662:3): [True: 0, False: 76.7M] ------------------ 48663| 0|#line 14427 "gram.y" 48664| 0| { 48665| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48666| | 48667| 0| n->coltype = JTC_REGULAR; 48668| 0| n->name = (yyvsp[(1) - (6)].str); 48669| 0| n->typeName = (yyvsp[(2) - (6)].typnam); 48670| 0| n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); 48671| 0| n->pathspec = (JsonTablePathSpec *) (yyvsp[(3) - (6)].node); 48672| 0| n->wrapper = (yyvsp[(4) - (6)].ival); 48673| 0| n->quotes = (yyvsp[(5) - (6)].ival); 48674| 0| n->on_empty = (JsonBehavior *) linitial((yyvsp[(6) - (6)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 48675| 0| n->on_error = (JsonBehavior *) lsecond((yyvsp[(6) - (6)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 48676| 0| n->location = (yylsp[(1) - (6)]); 48677| 0| (yyval.node) = (Node *) n; 48678| 0| ;} 48679| 0| break; 48680| | 48681| 0| case 1936: ------------------ | Branch (48681:3): [True: 0, False: 76.7M] ------------------ 48682| 0|#line 14447 "gram.y" 48683| 0| { 48684| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48685| | 48686| 0| n->coltype = JTC_FORMATTED; 48687| 0| n->name = (yyvsp[(1) - (7)].str); 48688| 0| n->typeName = (yyvsp[(2) - (7)].typnam); 48689| 0| n->format = (JsonFormat *) (yyvsp[(3) - (7)].node); 48690| 0| n->pathspec = (JsonTablePathSpec *) (yyvsp[(4) - (7)].node); 48691| 0| n->wrapper = (yyvsp[(5) - (7)].ival); 48692| 0| n->quotes = (yyvsp[(6) - (7)].ival); 48693| 0| n->on_empty = (JsonBehavior *) linitial((yyvsp[(7) - (7)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 48694| 0| n->on_error = (JsonBehavior *) lsecond((yyvsp[(7) - (7)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 48695| 0| n->location = (yylsp[(1) - (7)]); 48696| 0| (yyval.node) = (Node *) n; 48697| 0| ;} 48698| 0| break; 48699| | 48700| 0| case 1937: ------------------ | Branch (48700:3): [True: 0, False: 76.7M] ------------------ 48701| 0|#line 14465 "gram.y" 48702| 0| { 48703| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48704| | 48705| 0| n->coltype = JTC_EXISTS; 48706| 0| n->name = (yyvsp[(1) - (5)].str); 48707| 0| n->typeName = (yyvsp[(2) - (5)].typnam); 48708| 0| n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); 48709| 0| n->wrapper = JSW_NONE; 48710| 0| n->quotes = JS_QUOTES_UNSPEC; 48711| 0| n->pathspec = (JsonTablePathSpec *) (yyvsp[(4) - (5)].node); 48712| 0| n->on_empty = NULL; 48713| 0| n->on_error = (JsonBehavior *) (yyvsp[(5) - (5)].node); 48714| 0| n->location = (yylsp[(1) - (5)]); 48715| 0| (yyval.node) = (Node *) n; 48716| 0| ;} 48717| 0| break; 48718| | 48719| 0| case 1938: ------------------ | Branch (48719:3): [True: 0, False: 76.7M] ------------------ 48720| 0|#line 14482 "gram.y" 48721| 0| { 48722| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48723| | 48724| 0| n->coltype = JTC_NESTED; 48725| 0| n->pathspec = (JsonTablePathSpec *) 48726| 0| makeJsonTablePathSpec((yyvsp[(3) - (7)].str), NULL, (yylsp[(3) - (7)]), -1); 48727| 0| n->columns = (yyvsp[(6) - (7)].list); 48728| 0| n->location = (yylsp[(1) - (7)]); 48729| 0| (yyval.node) = (Node *) n; 48730| 0| ;} 48731| 0| break; 48732| | 48733| 0| case 1939: ------------------ | Branch (48733:3): [True: 0, False: 76.7M] ------------------ 48734| 0|#line 14494 "gram.y" 48735| 0| { 48736| 0| JsonTableColumn *n = makeNode(JsonTableColumn); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 48737| | 48738| 0| n->coltype = JTC_NESTED; 48739| 0| n->pathspec = (JsonTablePathSpec *) 48740| 0| makeJsonTablePathSpec((yyvsp[(3) - (9)].str), (yyvsp[(5) - (9)].str), (yylsp[(3) - (9)]), (yylsp[(5) - (9)])); 48741| 0| n->columns = (yyvsp[(8) - (9)].list); 48742| 0| n->location = (yylsp[(1) - (9)]); 48743| 0| (yyval.node) = (Node *) n; 48744| 0| ;} 48745| 0| break; 48746| | 48747| 0| case 1942: ------------------ | Branch (48747:3): [True: 0, False: 76.7M] ------------------ 48748| 0|#line 14513 "gram.y" 48749| 0| { (yyval.node) = (Node *) makeJsonTablePathSpec((yyvsp[(2) - (2)].str), NULL, (yylsp[(2) - (2)]), -1); ;} 48750| 0| break; 48751| | 48752| 0| case 1943: ------------------ | Branch (48752:3): [True: 0, False: 76.7M] ------------------ 48753| 0|#line 14515 "gram.y" 48754| 0| { (yyval.node) = NULL; ;} 48755| 0| break; 48756| | 48757| 954k| case 1944: ------------------ | Branch (48757:3): [True: 954k, False: 75.8M] ------------------ 48758| 954k|#line 14529 "gram.y" 48759| 954k| { 48760| 954k| (yyval.typnam) = (yyvsp[(1) - (2)].typnam); 48761| 954k| (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); 48762| 954k| ;} 48763| 954k| break; 48764| | 48765| 1.07k| case 1945: ------------------ | Branch (48765:3): [True: 1.07k, False: 76.7M] ------------------ 48766| 1.07k|#line 14534 "gram.y" 48767| 1.07k| { 48768| 1.07k| (yyval.typnam) = (yyvsp[(2) - (3)].typnam); 48769| 1.07k| (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); 48770| 1.07k| (yyval.typnam)->setof = true; 48771| 1.07k| ;} 48772| 1.07k| break; 48773| | 48774| 272| case 1946: ------------------ | Branch (48774:3): [True: 272, False: 76.7M] ------------------ 48775| 272|#line 14541 "gram.y" 48776| 272| { 48777| 272| (yyval.typnam) = (yyvsp[(1) - (5)].typnam); 48778| 272| (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ------------------ | | 213| 272| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 272|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48779| 272| ;} 48780| 272| break; 48781| | 48782| 166| case 1947: ------------------ | Branch (48782:3): [True: 166, False: 76.7M] ------------------ 48783| 166|#line 14546 "gram.y" 48784| 166| { 48785| 166| (yyval.typnam) = (yyvsp[(2) - (6)].typnam); 48786| 166| (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); ------------------ | | 213| 166| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 166|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48787| 166| (yyval.typnam)->setof = true; 48788| 166| ;} 48789| 166| break; 48790| | 48791| 0| case 1948: ------------------ | Branch (48791:3): [True: 0, False: 76.7M] ------------------ 48792| 0|#line 14552 "gram.y" 48793| 0| { 48794| 0| (yyval.typnam) = (yyvsp[(1) - (2)].typnam); 48795| 0| (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48796| 0| ;} 48797| 0| break; 48798| | 48799| 2.41k| case 1949: ------------------ | Branch (48799:3): [True: 2.41k, False: 76.7M] ------------------ 48800| 2.41k|#line 14557 "gram.y" 48801| 2.41k| { 48802| 2.41k| (yyval.typnam) = (yyvsp[(2) - (3)].typnam); 48803| 2.41k| (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ------------------ | | 213| 2.41k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2.41k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48804| 2.41k| (yyval.typnam)->setof = true; 48805| 2.41k| ;} 48806| 2.41k| break; 48807| | 48808| 221| case 1950: ------------------ | Branch (48808:3): [True: 221, False: 76.7M] ------------------ 48809| 221|#line 14566 "gram.y" 48810| 221| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} 48811| 221| break; 48812| | 48813| 598| case 1951: ------------------ | Branch (48813:3): [True: 598, False: 76.7M] ------------------ 48814| 598|#line 14568 "gram.y" 48815| 598| { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} 48816| 598| break; 48817| | 48818| 955k| case 1952: ------------------ | Branch (48818:3): [True: 955k, False: 75.8M] ------------------ 48819| 955k|#line 14570 "gram.y" 48820| 955k| { (yyval.list) = NIL; ;} ------------------ | | 68| 955k|#define NIL ((List *) NULL) ------------------ 48821| 955k| break; 48822| | 48823| 952k| case 1953: ------------------ | Branch (48823:3): [True: 952k, False: 75.8M] ------------------ 48824| 952k|#line 14574 "gram.y" 48825| 952k| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48826| 952k| break; 48827| | 48828| 1.63k| case 1954: ------------------ | Branch (48828:3): [True: 1.63k, False: 76.7M] ------------------ 48829| 1.63k|#line 14575 "gram.y" 48830| 1.63k| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48831| 1.63k| break; 48832| | 48833| 3.27k| case 1955: ------------------ | Branch (48833:3): [True: 3.27k, False: 76.7M] ------------------ 48834| 3.27k|#line 14576 "gram.y" 48835| 3.27k| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48836| 3.27k| break; 48837| | 48838| 22| case 1956: ------------------ | Branch (48838:3): [True: 22, False: 76.7M] ------------------ 48839| 22|#line 14577 "gram.y" 48840| 22| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48841| 22| break; 48842| | 48843| 92| case 1957: ------------------ | Branch (48843:3): [True: 92, False: 76.7M] ------------------ 48844| 92|#line 14578 "gram.y" 48845| 92| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48846| 92| break; 48847| | 48848| 509| case 1958: ------------------ | Branch (48848:3): [True: 509, False: 76.7M] ------------------ 48849| 509|#line 14580 "gram.y" 48850| 509| { 48851| 509| (yyval.typnam) = (yyvsp[(1) - (2)].typnam); 48852| 509| (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); 48853| 509| ;} 48854| 509| break; 48855| | 48856| 2| case 1959: ------------------ | Branch (48856:3): [True: 2, False: 76.7M] ------------------ 48857| 2|#line 14585 "gram.y" 48858| 2| { 48859| 2| (yyval.typnam) = (yyvsp[(1) - (4)].typnam); 48860| 2| (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), ------------------ | | 215| 2| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 2|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 2|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 48861| 2| makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); 48862| 2| ;} 48863| 2| break; 48864| | 48865| 186| case 1960: ------------------ | Branch (48865:3): [True: 186, False: 76.7M] ------------------ 48866| 186|#line 14590 "gram.y" 48867| 186| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48868| 186| break; 48869| | 48870| 128| case 1961: ------------------ | Branch (48870:3): [True: 128, False: 76.7M] ------------------ 48871| 128|#line 14605 "gram.y" 48872| 128| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48873| 128| break; 48874| | 48875| 3| case 1962: ------------------ | Branch (48875:3): [True: 3, False: 76.7M] ------------------ 48876| 3|#line 14606 "gram.y" 48877| 3| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48878| 3| break; 48879| | 48880| 22| case 1963: ------------------ | Branch (48880:3): [True: 22, False: 76.7M] ------------------ 48881| 22|#line 14607 "gram.y" 48882| 22| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48883| 22| break; 48884| | 48885| 0| case 1964: ------------------ | Branch (48885:3): [True: 0, False: 76.7M] ------------------ 48886| 0|#line 14608 "gram.y" 48887| 0| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48888| 0| break; 48889| | 48890| 8| case 1965: ------------------ | Branch (48890:3): [True: 8, False: 76.7M] ------------------ 48891| 8|#line 14609 "gram.y" 48892| 8| { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} 48893| 8| break; 48894| | 48895| 947k| case 1966: ------------------ | Branch (48895:3): [True: 947k, False: 75.8M] ------------------ 48896| 947k|#line 14621 "gram.y" 48897| 947k| { 48898| 947k| (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); 48899| 947k| (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); 48900| 947k| (yyval.typnam)->location = (yylsp[(1) - (2)]); 48901| 947k| ;} 48902| 947k| break; 48903| | 48904| 4.94k| case 1967: ------------------ | Branch (48904:3): [True: 4.94k, False: 76.7M] ------------------ 48905| 4.94k|#line 14627 "gram.y" 48906| 4.94k| { 48907| 4.94k| (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(2) - (3)].list))); 48908| 4.94k| (yyval.typnam)->typmods = (yyvsp[(3) - (3)].list); 48909| 4.94k| (yyval.typnam)->location = (yylsp[(1) - (3)]); 48910| 4.94k| ;} 48911| 4.94k| break; 48912| | 48913| 93| case 1968: ------------------ | Branch (48913:3): [True: 93, False: 76.7M] ------------------ 48914| 93|#line 14634 "gram.y" 48915| 93| { (yyval.list) = (yyvsp[(2) - (3)].list); ;} 48916| 93| break; 48917| | 48918| 952k| case 1969: ------------------ | Branch (48918:3): [True: 952k, False: 75.8M] ------------------ 48919| 952k|#line 14635 "gram.y" 48920| 952k| { (yyval.list) = NIL; ;} ------------------ | | 68| 952k|#define NIL ((List *) NULL) ------------------ 48921| 952k| break; 48922| | 48923| 136| case 1970: ------------------ | Branch (48923:3): [True: 136, False: 76.7M] ------------------ 48924| 136|#line 14642 "gram.y" 48925| 136| { 48926| 136| (yyval.typnam) = SystemTypeName("int4"); 48927| 136| (yyval.typnam)->location = (yylsp[(1) - (1)]); 48928| 136| ;} 48929| 136| break; 48930| | 48931| 0| case 1971: ------------------ | Branch (48931:3): [True: 0, False: 76.7M] ------------------ 48932| 0|#line 14647 "gram.y" 48933| 0| { 48934| 0| (yyval.typnam) = SystemTypeName("int4"); 48935| 0| (yyval.typnam)->location = (yylsp[(1) - (1)]); 48936| 0| ;} 48937| 0| break; 48938| | 48939| 0| case 1972: ------------------ | Branch (48939:3): [True: 0, False: 76.7M] ------------------ 48940| 0|#line 14652 "gram.y" 48941| 0| { 48942| 0| (yyval.typnam) = SystemTypeName("int2"); 48943| 0| (yyval.typnam)->location = (yylsp[(1) - (1)]); 48944| 0| ;} 48945| 0| break; 48946| | 48947| 591| case 1973: ------------------ | Branch (48947:3): [True: 591, False: 76.7M] ------------------ 48948| 591|#line 14657 "gram.y" 48949| 591| { 48950| 591| (yyval.typnam) = SystemTypeName("int8"); 48951| 591| (yyval.typnam)->location = (yylsp[(1) - (1)]); 48952| 591| ;} 48953| 591| break; 48954| | 48955| 906| case 1974: ------------------ | Branch (48955:3): [True: 906, False: 76.7M] ------------------ 48956| 906|#line 14662 "gram.y" 48957| 906| { 48958| 906| (yyval.typnam) = SystemTypeName("float4"); 48959| 906| (yyval.typnam)->location = (yylsp[(1) - (1)]); 48960| 906| ;} 48961| 906| break; 48962| | 48963| 128| case 1975: ------------------ | Branch (48963:3): [True: 128, False: 76.7M] ------------------ 48964| 128|#line 14667 "gram.y" 48965| 128| { 48966| 128| (yyval.typnam) = (yyvsp[(2) - (2)].typnam); 48967| 128| (yyval.typnam)->location = (yylsp[(1) - (2)]); 48968| 128| ;} 48969| 128| break; 48970| | 48971| 0| case 1976: ------------------ | Branch (48971:3): [True: 0, False: 76.7M] ------------------ 48972| 0|#line 14672 "gram.y" 48973| 0| { 48974| 0| (yyval.typnam) = SystemTypeName("float8"); 48975| 0| (yyval.typnam)->location = (yylsp[(1) - (2)]); 48976| 0| ;} 48977| 0| break; 48978| | 48979| 0| case 1977: ------------------ | Branch (48979:3): [True: 0, False: 76.7M] ------------------ 48980| 0|#line 14677 "gram.y" 48981| 0| { 48982| 0| (yyval.typnam) = SystemTypeName("numeric"); 48983| 0| (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); 48984| 0| (yyval.typnam)->location = (yylsp[(1) - (2)]); 48985| 0| ;} 48986| 0| break; 48987| | 48988| 0| case 1978: ------------------ | Branch (48988:3): [True: 0, False: 76.7M] ------------------ 48989| 0|#line 14683 "gram.y" 48990| 0| { 48991| 0| (yyval.typnam) = SystemTypeName("numeric"); 48992| 0| (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); 48993| 0| (yyval.typnam)->location = (yylsp[(1) - (2)]); 48994| 0| ;} 48995| 0| break; 48996| | 48997| 0| case 1979: ------------------ | Branch (48997:3): [True: 0, False: 76.7M] ------------------ 48998| 0|#line 14689 "gram.y" 48999| 0| { 49000| 0| (yyval.typnam) = SystemTypeName("numeric"); 49001| 0| (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); 49002| 0| (yyval.typnam)->location = (yylsp[(1) - (2)]); 49003| 0| ;} 49004| 0| break; 49005| | 49006| 0| case 1980: ------------------ | Branch (49006:3): [True: 0, False: 76.7M] ------------------ 49007| 0|#line 14695 "gram.y" 49008| 0| { 49009| 0| (yyval.typnam) = SystemTypeName("bool"); 49010| 0| (yyval.typnam)->location = (yylsp[(1) - (1)]); 49011| 0| ;} 49012| 0| break; 49013| | 49014| 0| case 1981: ------------------ | Branch (49014:3): [True: 0, False: 76.7M] ------------------ 49015| 0|#line 14702 "gram.y" 49016| 0| { 49017| | /* 49018| | * Check FLOAT() precision limits assuming IEEE floating 49019| | * types - thomas 1997-09-18 49020| | */ 49021| 0| if ((yyvsp[(2) - (3)].ival) < 1) ------------------ | Branch (49021:10): [True: 0, False: 0] ------------------ 49022| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 49023| 0| (errcode(ERRCODE_INVALID_PARAMETER_VALUE), 49024| 0| errmsg("precision for type float must be at least 1 bit"), 49025| 0| parser_errposition((yylsp[(2) - (3)])))); 49026| 0| else if ((yyvsp[(2) - (3)].ival) <= 24) ------------------ | Branch (49026:15): [True: 0, False: 0] ------------------ 49027| 0| (yyval.typnam) = SystemTypeName("float4"); 49028| 0| else if ((yyvsp[(2) - (3)].ival) <= 53) ------------------ | Branch (49028:15): [True: 0, False: 0] ------------------ 49029| 0| (yyval.typnam) = SystemTypeName("float8"); 49030| 0| else 49031| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 49032| 0| (errcode(ERRCODE_INVALID_PARAMETER_VALUE), 49033| 0| errmsg("precision for type float must be less than 54 bits"), 49034| 0| parser_errposition((yylsp[(2) - (3)])))); 49035| 0| ;} 49036| 0| break; 49037| | 49038| 128| case 1982: ------------------ | Branch (49038:3): [True: 128, False: 76.7M] ------------------ 49039| 128|#line 14723 "gram.y" 49040| 128| { 49041| 128| (yyval.typnam) = SystemTypeName("float8"); 49042| 128| ;} 49043| 128| break; 49044| | 49045| 0| case 1983: ------------------ | Branch (49045:3): [True: 0, False: 76.7M] ------------------ 49046| 0|#line 14733 "gram.y" 49047| 0| { 49048| 0| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49049| 0| ;} 49050| 0| break; 49051| | 49052| 3.27k| case 1984: ------------------ | Branch (49052:3): [True: 3.27k, False: 76.7M] ------------------ 49053| 3.27k|#line 14737 "gram.y" 49054| 3.27k| { 49055| 3.27k| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49056| 3.27k| ;} 49057| 3.27k| break; 49058| | 49059| 0| case 1985: ------------------ | Branch (49059:3): [True: 0, False: 76.7M] ------------------ 49060| 0|#line 14745 "gram.y" 49061| 0| { 49062| 0| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49063| 0| ;} 49064| 0| break; 49065| | 49066| 3| case 1986: ------------------ | Branch (49066:3): [True: 3, False: 76.7M] ------------------ 49067| 3|#line 14749 "gram.y" 49068| 3| { 49069| 3| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49070| 3| (yyval.typnam)->typmods = NIL; ------------------ | | 68| 3|#define NIL ((List *) NULL) ------------------ 49071| 3| ;} 49072| 3| break; 49073| | 49074| 0| case 1987: ------------------ | Branch (49074:3): [True: 0, False: 76.7M] ------------------ 49075| 0|#line 14757 "gram.y" 49076| 0| { 49077| 0| char *typname; 49078| | 49079| 0| typname = (yyvsp[(2) - (5)].boolean) ? "varbit" : "bit"; ------------------ | Branch (49079:16): [True: 0, False: 0] ------------------ 49080| 0| (yyval.typnam) = SystemTypeName(typname); 49081| 0| (yyval.typnam)->typmods = (yyvsp[(4) - (5)].list); 49082| 0| (yyval.typnam)->location = (yylsp[(1) - (5)]); 49083| 0| ;} 49084| 0| break; 49085| | 49086| 3.27k| case 1988: ------------------ | Branch (49086:3): [True: 3.27k, False: 76.7M] ------------------ 49087| 3.27k|#line 14769 "gram.y" 49088| 3.27k| { 49089| | /* bit defaults to bit(1), varbit to no limit */ 49090| 3.27k| if ((yyvsp[(2) - (2)].boolean)) ------------------ | Branch (49090:10): [True: 0, False: 3.27k] ------------------ 49091| 0| { 49092| 0| (yyval.typnam) = SystemTypeName("varbit"); 49093| 0| } 49094| 3.27k| else 49095| 3.27k| { 49096| 3.27k| (yyval.typnam) = SystemTypeName("bit"); 49097| 3.27k| (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); ------------------ | | 213| 3.27k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 3.27k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49098| 3.27k| } 49099| 3.27k| (yyval.typnam)->location = (yylsp[(1) - (2)]); 49100| 3.27k| ;} 49101| 3.27k| break; 49102| | 49103| 22| case 1989: ------------------ | Branch (49103:3): [True: 22, False: 76.7M] ------------------ 49104| 22|#line 14790 "gram.y" 49105| 22| { 49106| 22| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49107| 22| ;} 49108| 22| break; 49109| | 49110| 0| case 1990: ------------------ | Branch (49110:3): [True: 0, False: 76.7M] ------------------ 49111| 0|#line 14794 "gram.y" 49112| 0| { 49113| 0| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49114| 0| ;} 49115| 0| break; 49116| | 49117| 6| case 1991: ------------------ | Branch (49117:3): [True: 6, False: 76.7M] ------------------ 49118| 6|#line 14800 "gram.y" 49119| 6| { 49120| 6| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49121| 6| ;} 49122| 6| break; 49123| | 49124| 16| case 1992: ------------------ | Branch (49124:3): [True: 16, False: 76.7M] ------------------ 49125| 16|#line 14804 "gram.y" 49126| 16| { 49127| | /* Length was not specified so allow to be unrestricted. 49128| | * This handles problems with fixed-length (bpchar) strings 49129| | * which in column definitions must default to a length 49130| | * of one, but should not be constrained if the length 49131| | * was not specified. 49132| | */ 49133| 16| (yyval.typnam) = (yyvsp[(1) - (1)].typnam); 49134| 16| (yyval.typnam)->typmods = NIL; ------------------ | | 68| 16|#define NIL ((List *) NULL) ------------------ 49135| 16| ;} 49136| 16| break; 49137| | 49138| 28| case 1993: ------------------ | Branch (49138:3): [True: 28, False: 76.7M] ------------------ 49139| 28|#line 14817 "gram.y" 49140| 28| { 49141| 28| (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].str)); 49142| 28| (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); ------------------ | | 213| 28| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 28|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49143| 28| (yyval.typnam)->location = (yylsp[(1) - (4)]); 49144| 28| ;} 49145| 28| break; 49146| | 49147| 16| case 1994: ------------------ | Branch (49147:3): [True: 16, False: 76.7M] ------------------ 49148| 16|#line 14825 "gram.y" 49149| 16| { 49150| 16| (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].str)); 49151| | /* char defaults to char(1), varchar to no limit */ 49152| 16| if (strcmp((yyvsp[(1) - (1)].str), "bpchar") == 0) ------------------ | Branch (49152:10): [True: 6, False: 10] ------------------ 49153| 6| (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1)); ------------------ | | 213| 6| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 6|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49154| 16| (yyval.typnam)->location = (yylsp[(1) - (1)]); 49155| 16| ;} 49156| 16| break; 49157| | 49158| 0| case 1995: ------------------ | Branch (49158:3): [True: 0, False: 76.7M] ------------------ 49159| 0|#line 14835 "gram.y" 49160| 0| { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} ------------------ | Branch (49160:21): [True: 0, False: 0] ------------------ 49161| 0| break; 49162| | 49163| 28| case 1996: ------------------ | Branch (49163:3): [True: 28, False: 76.7M] ------------------ 49164| 28|#line 14837 "gram.y" 49165| 28| { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} ------------------ | Branch (49165:21): [True: 0, False: 28] ------------------ 49166| 28| break; 49167| | 49168| 10| case 1997: ------------------ | Branch (49168:3): [True: 10, False: 76.7M] ------------------ 49169| 10|#line 14839 "gram.y" 49170| 10| { (yyval.str) = "varchar"; ;} 49171| 10| break; 49172| | 49173| 0| case 1998: ------------------ | Branch (49173:3): [True: 0, False: 76.7M] ------------------ 49174| 0|#line 14841 "gram.y" 49175| 0| { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} ------------------ | Branch (49175:21): [True: 0, False: 0] ------------------ 49176| 0| break; 49177| | 49178| 0| case 1999: ------------------ | Branch (49178:3): [True: 0, False: 76.7M] ------------------ 49179| 0|#line 14843 "gram.y" 49180| 0| { (yyval.str) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} ------------------ | Branch (49180:21): [True: 0, False: 0] ------------------ 49181| 0| break; 49182| | 49183| 6| case 2000: ------------------ | Branch (49183:3): [True: 6, False: 76.7M] ------------------ 49184| 6|#line 14845 "gram.y" 49185| 6| { (yyval.str) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} ------------------ | Branch (49185:21): [True: 0, False: 6] ------------------ 49186| 6| break; 49187| | 49188| 0| case 2001: ------------------ | Branch (49188:3): [True: 0, False: 76.7M] ------------------ 49189| 0|#line 14849 "gram.y" 49190| 0| { (yyval.boolean) = true; ;} 49191| 0| break; 49192| | 49193| 3.31k| case 2002: ------------------ | Branch (49193:3): [True: 3.31k, False: 76.7M] ------------------ 49194| 3.31k|#line 14850 "gram.y" 49195| 3.31k| { (yyval.boolean) = false; ;} 49196| 3.31k| break; 49197| | 49198| 0| case 2003: ------------------ | Branch (49198:3): [True: 0, False: 76.7M] ------------------ 49199| 0|#line 14858 "gram.y" 49200| 0| { 49201| 0| if ((yyvsp[(5) - (5)].boolean)) ------------------ | Branch (49201:10): [True: 0, False: 0] ------------------ 49202| 0| (yyval.typnam) = SystemTypeName("timestamptz"); 49203| 0| else 49204| 0| (yyval.typnam) = SystemTypeName("timestamp"); 49205| 0| (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49206| 0| (yyval.typnam)->location = (yylsp[(1) - (5)]); 49207| 0| ;} 49208| 0| break; 49209| | 49210| 0| case 2004: ------------------ | Branch (49210:3): [True: 0, False: 76.7M] ------------------ 49211| 0|#line 14867 "gram.y" 49212| 0| { 49213| 0| if ((yyvsp[(2) - (2)].boolean)) ------------------ | Branch (49213:10): [True: 0, False: 0] ------------------ 49214| 0| (yyval.typnam) = SystemTypeName("timestamptz"); 49215| 0| else 49216| 0| (yyval.typnam) = SystemTypeName("timestamp"); 49217| 0| (yyval.typnam)->location = (yylsp[(1) - (2)]); 49218| 0| ;} 49219| 0| break; 49220| | 49221| 0| case 2005: ------------------ | Branch (49221:3): [True: 0, False: 76.7M] ------------------ 49222| 0|#line 14875 "gram.y" 49223| 0| { 49224| 0| if ((yyvsp[(5) - (5)].boolean)) ------------------ | Branch (49224:10): [True: 0, False: 0] ------------------ 49225| 0| (yyval.typnam) = SystemTypeName("timetz"); 49226| 0| else 49227| 0| (yyval.typnam) = SystemTypeName("time"); 49228| 0| (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49229| 0| (yyval.typnam)->location = (yylsp[(1) - (5)]); 49230| 0| ;} 49231| 0| break; 49232| | 49233| 92| case 2006: ------------------ | Branch (49233:3): [True: 92, False: 76.7M] ------------------ 49234| 92|#line 14884 "gram.y" 49235| 92| { 49236| 92| if ((yyvsp[(2) - (2)].boolean)) ------------------ | Branch (49236:10): [True: 0, False: 92] ------------------ 49237| 0| (yyval.typnam) = SystemTypeName("timetz"); 49238| 92| else 49239| 92| (yyval.typnam) = SystemTypeName("time"); 49240| 92| (yyval.typnam)->location = (yylsp[(1) - (2)]); 49241| 92| ;} 49242| 92| break; 49243| | 49244| 2.77k| case 2007: ------------------ | Branch (49244:3): [True: 2.77k, False: 76.7M] ------------------ 49245| 2.77k|#line 14895 "gram.y" 49246| 2.77k| { 49247| 2.77k| (yyval.typnam) = SystemTypeName("interval"); 49248| 2.77k| (yyval.typnam)->location = (yylsp[(1) - (1)]); 49249| 2.77k| ;} 49250| 2.77k| break; 49251| | 49252| 0| case 2008: ------------------ | Branch (49252:3): [True: 0, False: 76.7M] ------------------ 49253| 0|#line 14902 "gram.y" 49254| 0| { (yyval.boolean) = true; ;} 49255| 0| break; 49256| | 49257| 0| case 2009: ------------------ | Branch (49257:3): [True: 0, False: 76.7M] ------------------ 49258| 0|#line 14903 "gram.y" 49259| 0| { (yyval.boolean) = false; ;} 49260| 0| break; 49261| | 49262| 92| case 2010: ------------------ | Branch (49262:3): [True: 92, False: 76.7M] ------------------ 49263| 92|#line 14904 "gram.y" 49264| 92| { (yyval.boolean) = false; ;} 49265| 92| break; 49266| | 49267| 0| case 2011: ------------------ | Branch (49267:3): [True: 0, False: 76.7M] ------------------ 49268| 0|#line 14909 "gram.y" 49269| 0| { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49270| 0| break; 49271| | 49272| 0| case 2012: ------------------ | Branch (49272:3): [True: 0, False: 76.7M] ------------------ 49273| 0|#line 14911 "gram.y" 49274| 0| { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49275| 0| break; 49276| | 49277| 0| case 2013: ------------------ | Branch (49277:3): [True: 0, False: 76.7M] ------------------ 49278| 0|#line 14913 "gram.y" 49279| 0| { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49280| 0| break; 49281| | 49282| 0| case 2014: ------------------ | Branch (49282:3): [True: 0, False: 76.7M] ------------------ 49283| 0|#line 14915 "gram.y" 49284| 0| { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49285| 0| break; 49286| | 49287| 1.07k| case 2015: ------------------ | Branch (49287:3): [True: 1.07k, False: 76.7M] ------------------ 49288| 1.07k|#line 14917 "gram.y" 49289| 1.07k| { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} ------------------ | | 213| 1.07k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 1.07k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49290| 1.07k| break; 49291| | 49292| 137| case 2016: ------------------ | Branch (49292:3): [True: 137, False: 76.7M] ------------------ 49293| 137|#line 14919 "gram.y" 49294| 137| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 49295| 137| break; 49296| | 49297| 0| case 2017: ------------------ | Branch (49297:3): [True: 0, False: 76.7M] ------------------ 49298| 0|#line 14921 "gram.y" 49299| 0| { 49300| 0| (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49301| 0| INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); 49302| 0| ;} 49303| 0| break; 49304| | 49305| 0| case 2018: ------------------ | Branch (49305:3): [True: 0, False: 76.7M] ------------------ 49306| 0|#line 14926 "gram.y" 49307| 0| { 49308| 0| (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49309| 0| INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); 49310| 0| ;} 49311| 0| break; 49312| | 49313| 0| case 2019: ------------------ | Branch (49313:3): [True: 0, False: 76.7M] ------------------ 49314| 0|#line 14931 "gram.y" 49315| 0| { 49316| 0| (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49317| 0| INTERVAL_MASK(HOUR) | 49318| 0| INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); 49319| 0| ;} 49320| 0| break; 49321| | 49322| 0| case 2020: ------------------ | Branch (49322:3): [True: 0, False: 76.7M] ------------------ 49323| 0|#line 14937 "gram.y" 49324| 0| { 49325| 0| (yyval.list) = (yyvsp[(3) - (3)].list); 49326| 0| linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49327| 0| INTERVAL_MASK(HOUR) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49328| 0| INTERVAL_MASK(MINUTE) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49329| 0| INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49330| 0| ;} 49331| 0| break; 49332| | 49333| 0| case 2021: ------------------ | Branch (49333:3): [True: 0, False: 76.7M] ------------------ 49334| 0|#line 14945 "gram.y" 49335| 0| { 49336| 0| (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49337| 0| INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); 49338| 0| ;} 49339| 0| break; 49340| | 49341| 0| case 2022: ------------------ | Branch (49341:3): [True: 0, False: 76.7M] ------------------ 49342| 0|#line 14950 "gram.y" 49343| 0| { 49344| 0| (yyval.list) = (yyvsp[(3) - (3)].list); 49345| 0| linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49346| 0| INTERVAL_MASK(MINUTE) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49347| 0| INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49348| 0| ;} 49349| 0| break; 49350| | 49351| 0| case 2023: ------------------ | Branch (49351:3): [True: 0, False: 76.7M] ------------------ 49352| 0|#line 14957 "gram.y" 49353| 0| { 49354| 0| (yyval.list) = (yyvsp[(3) - (3)].list); 49355| 0| linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) | ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49356| 0| INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])); ------------------ | | 73| 0|#define INTERVAL_MASK(b) (1 << (b)) ------------------ 49357| 0| ;} 49358| 0| break; 49359| | 49360| 1.56k| case 2024: ------------------ | Branch (49360:3): [True: 1.56k, False: 76.7M] ------------------ 49361| 1.56k|#line 14963 "gram.y" 49362| 1.56k| { (yyval.list) = NIL; ;} ------------------ | | 68| 1.56k|#define NIL ((List *) NULL) ------------------ 49363| 1.56k| break; 49364| | 49365| 5| case 2025: ------------------ | Branch (49365:3): [True: 5, False: 76.7M] ------------------ 49366| 5|#line 14968 "gram.y" 49367| 5| { 49368| 5| (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ------------------ | | 213| 5| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 5|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49369| 5| ;} 49370| 5| break; 49371| | 49372| 132| case 2026: ------------------ | Branch (49372:3): [True: 132, False: 76.7M] ------------------ 49373| 132|#line 14972 "gram.y" 49374| 132| { 49375| 132| (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (4)])), ------------------ | | 215| 132| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 132|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 132|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49376| 132| makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); 49377| 132| ;} 49378| 132| break; 49379| | 49380| 194| case 2027: ------------------ | Branch (49380:3): [True: 194, False: 76.7M] ------------------ 49381| 194|#line 14980 "gram.y" 49382| 194| { 49383| 194| (yyval.typnam) = SystemTypeName("json"); 49384| 194| (yyval.typnam)->location = (yylsp[(1) - (1)]); 49385| 194| ;} 49386| 194| break; 49387| | 49388| 4.16M| case 2028: ------------------ | Branch (49388:3): [True: 4.16M, False: 72.6M] ------------------ 49389| 4.16M|#line 15014 "gram.y" 49390| 4.16M| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 49391| 4.16M| break; 49392| | 49393| 19.7k| case 2029: ------------------ | Branch (49393:3): [True: 19.7k, False: 76.7M] ------------------ 49394| 19.7k|#line 15016 "gram.y" 49395| 19.7k| { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} 49396| 19.7k| break; 49397| | 49398| 536| case 2030: ------------------ | Branch (49398:3): [True: 536, False: 76.7M] ------------------ 49399| 536|#line 15018 "gram.y" 49400| 536| { 49401| 536| CollateClause *n = makeNode(CollateClause); ------------------ | | 161| 536|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49402| | 49403| 536| n->arg = (yyvsp[(1) - (3)].node); 49404| 536| n->collname = (yyvsp[(3) - (3)].list); 49405| 536| n->location = (yylsp[(2) - (3)]); 49406| 536| (yyval.node) = (Node *) n; 49407| 536| ;} 49408| 536| break; 49409| | 49410| 0| case 2031: ------------------ | Branch (49410:3): [True: 0, False: 76.7M] ------------------ 49411| 0|#line 15027 "gram.y" 49412| 0| { 49413| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), 49414| 0| list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49415| 0| COERCE_SQL_SYNTAX, 49416| 0| (yylsp[(2) - (5)])); 49417| 0| ;} 49418| 0| break; 49419| | 49420| 171| case 2032: ------------------ | Branch (49420:3): [True: 171, False: 76.7M] ------------------ 49421| 171|#line 15034 "gram.y" 49422| 171| { 49423| 171| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"), 49424| 171| list_make1((yyvsp[(1) - (3)].node)), ------------------ | | 213| 171| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 171|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49425| 171| COERCE_SQL_SYNTAX, 49426| 171| -1); 49427| 171| ;} 49428| 171| break; 49429| | 49430| 944k| case 2033: ------------------ | Branch (49430:3): [True: 944k, False: 75.8M] ------------------ 49431| 944k|#line 15050 "gram.y" 49432| 944k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 49433| 944k| break; 49434| | 49435| 29.9k| case 2034: ------------------ | Branch (49435:3): [True: 29.9k, False: 76.7M] ------------------ 49436| 29.9k|#line 15052 "gram.y" 49437| 29.9k| { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 49438| 29.9k| break; 49439| | 49440| 2.41M| case 2035: ------------------ | Branch (49440:3): [True: 2.41M, False: 74.3M] ------------------ 49441| 2.41M|#line 15054 "gram.y" 49442| 2.41M| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49443| 2.41M| break; 49444| | 49445| 160k| case 2036: ------------------ | Branch (49445:3): [True: 160k, False: 76.6M] ------------------ 49446| 160k|#line 15056 "gram.y" 49447| 160k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49448| 160k| break; 49449| | 49450| 7.05k| case 2037: ------------------ | Branch (49450:3): [True: 7.05k, False: 76.7M] ------------------ 49451| 7.05k|#line 15058 "gram.y" 49452| 7.05k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49453| 7.05k| break; 49454| | 49455| 11.0k| case 2038: ------------------ | Branch (49455:3): [True: 11.0k, False: 76.7M] ------------------ 49456| 11.0k|#line 15060 "gram.y" 49457| 11.0k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49458| 11.0k| break; 49459| | 49460| 252k| case 2039: ------------------ | Branch (49460:3): [True: 252k, False: 76.5M] ------------------ 49461| 252k|#line 15062 "gram.y" 49462| 252k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49463| 252k| break; 49464| | 49465| 973| case 2040: ------------------ | Branch (49465:3): [True: 973, False: 76.7M] ------------------ 49466| 973|#line 15064 "gram.y" 49467| 973| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49468| 973| break; 49469| | 49470| 645| case 2041: ------------------ | Branch (49470:3): [True: 645, False: 76.7M] ------------------ 49471| 645|#line 15066 "gram.y" 49472| 645| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49473| 645| break; 49474| | 49475| 287| case 2042: ------------------ | Branch (49475:3): [True: 287, False: 76.7M] ------------------ 49476| 287|#line 15068 "gram.y" 49477| 287| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49478| 287| break; 49479| | 49480| 4.90k| case 2043: ------------------ | Branch (49480:3): [True: 4.90k, False: 76.7M] ------------------ 49481| 4.90k|#line 15070 "gram.y" 49482| 4.90k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49483| 4.90k| break; 49484| | 49485| 13| case 2044: ------------------ | Branch (49485:3): [True: 13, False: 76.7M] ------------------ 49486| 13|#line 15072 "gram.y" 49487| 13| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49488| 13| break; 49489| | 49490| 386| case 2045: ------------------ | Branch (49490:3): [True: 386, False: 76.7M] ------------------ 49491| 386|#line 15074 "gram.y" 49492| 386| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49493| 386| break; 49494| | 49495| 5.72k| case 2046: ------------------ | Branch (49495:3): [True: 5.72k, False: 76.7M] ------------------ 49496| 5.72k|#line 15076 "gram.y" 49497| 5.72k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49498| 5.72k| break; 49499| | 49500| 388k| case 2047: ------------------ | Branch (49500:3): [True: 388k, False: 76.3M] ------------------ 49501| 388k|#line 15079 "gram.y" 49502| 388k| { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49503| 388k| break; 49504| | 49505| 17.9k| case 2048: ------------------ | Branch (49505:3): [True: 17.9k, False: 76.7M] ------------------ 49506| 17.9k|#line 15081 "gram.y" 49507| 17.9k| { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 49508| 17.9k| break; 49509| | 49510| 586| case 2049: ------------------ | Branch (49510:3): [True: 586, False: 76.7M] ------------------ 49511| 586|#line 15084 "gram.y" 49512| 586| { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49513| 586| break; 49514| | 49515| 250| case 2050: ------------------ | Branch (49515:3): [True: 250, False: 76.7M] ------------------ 49516| 250|#line 15086 "gram.y" 49517| 250| { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 49518| 250| break; 49519| | 49520| 2.52k| case 2051: ------------------ | Branch (49520:3): [True: 2.52k, False: 76.7M] ------------------ 49521| 2.52k|#line 15088 "gram.y" 49522| 2.52k| { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 49523| 2.52k| break; 49524| | 49525| 9| case 2052: ------------------ | Branch (49525:3): [True: 9, False: 76.7M] ------------------ 49526| 9|#line 15090 "gram.y" 49527| 9| { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 49528| 9| break; 49529| | 49530| 7| case 2053: ------------------ | Branch (49530:3): [True: 7, False: 76.7M] ------------------ 49531| 7|#line 15093 "gram.y" 49532| 7| { 49533| 7| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", 49534| 7| (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); 49535| 7| ;} 49536| 7| break; 49537| | 49538| 138| case 2054: ------------------ | Branch (49538:3): [True: 138, False: 76.7M] ------------------ 49539| 138|#line 15098 "gram.y" 49540| 138| { 49541| 138| FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), 49542| 138| list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), ------------------ | | 215| 138| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 138|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 138|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49543| 138| COERCE_EXPLICIT_CALL, 49544| 138| (yylsp[(2) - (5)])); 49545| 138| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~", 49546| 138| (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); 49547| 138| ;} 49548| 138| break; 49549| | 49550| 3| case 2055: ------------------ | Branch (49550:3): [True: 3, False: 76.7M] ------------------ 49551| 3|#line 15107 "gram.y" 49552| 3| { 49553| 3| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", 49554| 3| (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); 49555| 3| ;} 49556| 3| break; 49557| | 49558| 0| case 2056: ------------------ | Branch (49558:3): [True: 0, False: 76.7M] ------------------ 49559| 0|#line 15112 "gram.y" 49560| 0| { 49561| 0| FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), 49562| 0| list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49563| 0| COERCE_EXPLICIT_CALL, 49564| 0| (yylsp[(2) - (6)])); 49565| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~", 49566| 0| (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); 49567| 0| ;} 49568| 0| break; 49569| | 49570| 2| case 2057: ------------------ | Branch (49570:3): [True: 2, False: 76.7M] ------------------ 49571| 2|#line 15121 "gram.y" 49572| 2| { 49573| 2| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", 49574| 2| (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); 49575| 2| ;} 49576| 2| break; 49577| | 49578| 0| case 2058: ------------------ | Branch (49578:3): [True: 0, False: 76.7M] ------------------ 49579| 0|#line 15126 "gram.y" 49580| 0| { 49581| 0| FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), 49582| 0| list_make2((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49583| 0| COERCE_EXPLICIT_CALL, 49584| 0| (yylsp[(2) - (5)])); 49585| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*", 49586| 0| (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); 49587| 0| ;} 49588| 0| break; 49589| | 49590| 46| case 2059: ------------------ | Branch (49590:3): [True: 46, False: 76.7M] ------------------ 49591| 46|#line 15135 "gram.y" 49592| 46| { 49593| 46| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", 49594| 46| (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); 49595| 46| ;} 49596| 46| break; 49597| | 49598| 0| case 2060: ------------------ | Branch (49598:3): [True: 0, False: 76.7M] ------------------ 49599| 0|#line 15140 "gram.y" 49600| 0| { 49601| 0| FuncCall *n = makeFuncCall(SystemFuncName("like_escape"), 49602| 0| list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49603| 0| COERCE_EXPLICIT_CALL, 49604| 0| (yylsp[(2) - (6)])); 49605| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*", 49606| 0| (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); 49607| 0| ;} 49608| 0| break; 49609| | 49610| 0| case 2061: ------------------ | Branch (49610:3): [True: 0, False: 76.7M] ------------------ 49611| 0|#line 15150 "gram.y" 49612| 0| { 49613| 0| FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), 49614| 0| list_make1((yyvsp[(4) - (4)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49615| 0| COERCE_EXPLICIT_CALL, 49616| 0| (yylsp[(2) - (4)])); 49617| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", 49618| 0| (yyvsp[(1) - (4)].node), (Node *) n, (yylsp[(2) - (4)])); 49619| 0| ;} 49620| 0| break; 49621| | 49622| 0| case 2062: ------------------ | Branch (49622:3): [True: 0, False: 76.7M] ------------------ 49623| 0|#line 15159 "gram.y" 49624| 0| { 49625| 0| FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), 49626| 0| list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49627| 0| COERCE_EXPLICIT_CALL, 49628| 0| (yylsp[(2) - (6)])); 49629| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~", 49630| 0| (yyvsp[(1) - (6)].node), (Node *) n, (yylsp[(2) - (6)])); 49631| 0| ;} 49632| 0| break; 49633| | 49634| 0| case 2063: ------------------ | Branch (49634:3): [True: 0, False: 76.7M] ------------------ 49635| 0|#line 15168 "gram.y" 49636| 0| { 49637| 0| FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), 49638| 0| list_make1((yyvsp[(5) - (5)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49639| 0| COERCE_EXPLICIT_CALL, 49640| 0| (yylsp[(2) - (5)])); 49641| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", 49642| 0| (yyvsp[(1) - (5)].node), (Node *) n, (yylsp[(2) - (5)])); 49643| 0| ;} 49644| 0| break; 49645| | 49646| 0| case 2064: ------------------ | Branch (49646:3): [True: 0, False: 76.7M] ------------------ 49647| 0|#line 15177 "gram.y" 49648| 0| { 49649| 0| FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"), 49650| 0| list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49651| 0| COERCE_EXPLICIT_CALL, 49652| 0| (yylsp[(2) - (7)])); 49653| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~", 49654| 0| (yyvsp[(1) - (7)].node), (Node *) n, (yylsp[(2) - (7)])); 49655| 0| ;} 49656| 0| break; 49657| | 49658| 2.71k| case 2065: ------------------ | Branch (49658:3): [True: 2.71k, False: 76.7M] ------------------ 49659| 2.71k|#line 15196 "gram.y" 49660| 2.71k| { 49661| 2.71k| NullTest *n = makeNode(NullTest); ------------------ | | 161| 2.71k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49662| | 49663| 2.71k| n->arg = (Expr *) (yyvsp[(1) - (3)].node); 49664| 2.71k| n->nulltesttype = IS_NULL; 49665| 2.71k| n->location = (yylsp[(2) - (3)]); 49666| 2.71k| (yyval.node) = (Node *) n; 49667| 2.71k| ;} 49668| 2.71k| break; 49669| | 49670| 167| case 2066: ------------------ | Branch (49670:3): [True: 167, False: 76.7M] ------------------ 49671| 167|#line 15205 "gram.y" 49672| 167| { 49673| 167| NullTest *n = makeNode(NullTest); ------------------ | | 161| 167|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49674| | 49675| 167| n->arg = (Expr *) (yyvsp[(1) - (2)].node); 49676| 167| n->nulltesttype = IS_NULL; 49677| 167| n->location = (yylsp[(2) - (2)]); 49678| 167| (yyval.node) = (Node *) n; 49679| 167| ;} 49680| 167| break; 49681| | 49682| 826| case 2067: ------------------ | Branch (49682:3): [True: 826, False: 76.7M] ------------------ 49683| 826|#line 15214 "gram.y" 49684| 826| { 49685| 826| NullTest *n = makeNode(NullTest); ------------------ | | 161| 826|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49686| | 49687| 826| n->arg = (Expr *) (yyvsp[(1) - (4)].node); 49688| 826| n->nulltesttype = IS_NOT_NULL; 49689| 826| n->location = (yylsp[(2) - (4)]); 49690| 826| (yyval.node) = (Node *) n; 49691| 826| ;} 49692| 826| break; 49693| | 49694| 0| case 2068: ------------------ | Branch (49694:3): [True: 0, False: 76.7M] ------------------ 49695| 0|#line 15223 "gram.y" 49696| 0| { 49697| 0| NullTest *n = makeNode(NullTest); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49698| | 49699| 0| n->arg = (Expr *) (yyvsp[(1) - (2)].node); 49700| 0| n->nulltesttype = IS_NOT_NULL; 49701| 0| n->location = (yylsp[(2) - (2)]); 49702| 0| (yyval.node) = (Node *) n; 49703| 0| ;} 49704| 0| break; 49705| | 49706| 0| case 2069: ------------------ | Branch (49706:3): [True: 0, False: 76.7M] ------------------ 49707| 0|#line 15232 "gram.y" 49708| 0| { 49709| 0| if (list_length((yyvsp[(1) - (3)].list)) != 2) ------------------ | Branch (49709:10): [True: 0, False: 0] ------------------ 49710| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 49711| 0| (errcode(ERRCODE_SYNTAX_ERROR), 49712| 0| errmsg("wrong number of parameters on left side of OVERLAPS expression"), 49713| 0| parser_errposition((yylsp[(1) - (3)])))); 49714| 0| if (list_length((yyvsp[(3) - (3)].list)) != 2) ------------------ | Branch (49714:10): [True: 0, False: 0] ------------------ 49715| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 49716| 0| (errcode(ERRCODE_SYNTAX_ERROR), 49717| 0| errmsg("wrong number of parameters on right side of OVERLAPS expression"), 49718| 0| parser_errposition((yylsp[(3) - (3)])))); 49719| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"), 49720| 0| list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)), 49721| 0| COERCE_SQL_SYNTAX, 49722| 0| (yylsp[(2) - (3)])); 49723| 0| ;} 49724| 0| break; 49725| | 49726| 2.89k| case 2070: ------------------ | Branch (49726:3): [True: 2.89k, False: 76.7M] ------------------ 49727| 2.89k|#line 15249 "gram.y" 49728| 2.89k| { 49729| 2.89k| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 2.89k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49730| | 49731| 2.89k| b->arg = (Expr *) (yyvsp[(1) - (3)].node); 49732| 2.89k| b->booltesttype = IS_TRUE; 49733| 2.89k| b->location = (yylsp[(2) - (3)]); 49734| 2.89k| (yyval.node) = (Node *) b; 49735| 2.89k| ;} 49736| 2.89k| break; 49737| | 49738| 2| case 2071: ------------------ | Branch (49738:3): [True: 2, False: 76.7M] ------------------ 49739| 2|#line 15258 "gram.y" 49740| 2| { 49741| 2| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49742| | 49743| 2| b->arg = (Expr *) (yyvsp[(1) - (4)].node); 49744| 2| b->booltesttype = IS_NOT_TRUE; 49745| 2| b->location = (yylsp[(2) - (4)]); 49746| 2| (yyval.node) = (Node *) b; 49747| 2| ;} 49748| 2| break; 49749| | 49750| 1.01k| case 2072: ------------------ | Branch (49750:3): [True: 1.01k, False: 76.7M] ------------------ 49751| 1.01k|#line 15267 "gram.y" 49752| 1.01k| { 49753| 1.01k| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 1.01k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49754| | 49755| 1.01k| b->arg = (Expr *) (yyvsp[(1) - (3)].node); 49756| 1.01k| b->booltesttype = IS_FALSE; 49757| 1.01k| b->location = (yylsp[(2) - (3)]); 49758| 1.01k| (yyval.node) = (Node *) b; 49759| 1.01k| ;} 49760| 1.01k| break; 49761| | 49762| 746| case 2073: ------------------ | Branch (49762:3): [True: 746, False: 76.7M] ------------------ 49763| 746|#line 15276 "gram.y" 49764| 746| { 49765| 746| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 746|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49766| | 49767| 746| b->arg = (Expr *) (yyvsp[(1) - (4)].node); 49768| 746| b->booltesttype = IS_NOT_FALSE; 49769| 746| b->location = (yylsp[(2) - (4)]); 49770| 746| (yyval.node) = (Node *) b; 49771| 746| ;} 49772| 746| break; 49773| | 49774| 0| case 2074: ------------------ | Branch (49774:3): [True: 0, False: 76.7M] ------------------ 49775| 0|#line 15285 "gram.y" 49776| 0| { 49777| 0| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49778| | 49779| 0| b->arg = (Expr *) (yyvsp[(1) - (3)].node); 49780| 0| b->booltesttype = IS_UNKNOWN; 49781| 0| b->location = (yylsp[(2) - (3)]); 49782| 0| (yyval.node) = (Node *) b; 49783| 0| ;} 49784| 0| break; 49785| | 49786| 0| case 2075: ------------------ | Branch (49786:3): [True: 0, False: 76.7M] ------------------ 49787| 0|#line 15294 "gram.y" 49788| 0| { 49789| 0| BooleanTest *b = makeNode(BooleanTest); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49790| | 49791| 0| b->arg = (Expr *) (yyvsp[(1) - (4)].node); 49792| 0| b->booltesttype = IS_NOT_UNKNOWN; 49793| 0| b->location = (yylsp[(2) - (4)]); 49794| 0| (yyval.node) = (Node *) b; 49795| 0| ;} 49796| 0| break; 49797| | 49798| 0| case 2076: ------------------ | Branch (49798:3): [True: 0, False: 76.7M] ------------------ 49799| 0|#line 15303 "gram.y" 49800| 0| { 49801| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); 49802| 0| ;} 49803| 0| break; 49804| | 49805| 0| case 2077: ------------------ | Branch (49805:3): [True: 0, False: 76.7M] ------------------ 49806| 0|#line 15307 "gram.y" 49807| 0| { 49808| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); 49809| 0| ;} 49810| 0| break; 49811| | 49812| 306| case 2078: ------------------ | Branch (49812:3): [True: 306, False: 76.7M] ------------------ 49813| 306|#line 15311 "gram.y" 49814| 306| { 49815| 306| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN, 49816| 306| "BETWEEN", 49817| 306| (yyvsp[(1) - (6)].node), 49818| 306| (Node *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), ------------------ | | 215| 306| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 306|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 306|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49819| 306| (yylsp[(2) - (6)])); 49820| 306| ;} 49821| 306| break; 49822| | 49823| 505| case 2079: ------------------ | Branch (49823:3): [True: 505, False: 76.7M] ------------------ 49824| 505|#line 15319 "gram.y" 49825| 505| { 49826| 505| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN, 49827| 505| "NOT BETWEEN", 49828| 505| (yyvsp[(1) - (7)].node), 49829| 505| (Node *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), ------------------ | | 215| 505| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 505|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 505|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49830| 505| (yylsp[(2) - (7)])); 49831| 505| ;} 49832| 505| break; 49833| | 49834| 0| case 2080: ------------------ | Branch (49834:3): [True: 0, False: 76.7M] ------------------ 49835| 0|#line 15327 "gram.y" 49836| 0| { 49837| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM, 49838| 0| "BETWEEN SYMMETRIC", 49839| 0| (yyvsp[(1) - (6)].node), 49840| 0| (Node *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49841| 0| (yylsp[(2) - (6)])); 49842| 0| ;} 49843| 0| break; 49844| | 49845| 0| case 2081: ------------------ | Branch (49845:3): [True: 0, False: 76.7M] ------------------ 49846| 0|#line 15335 "gram.y" 49847| 0| { 49848| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM, 49849| 0| "NOT BETWEEN SYMMETRIC", 49850| 0| (yyvsp[(1) - (7)].node), 49851| 0| (Node *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49852| 0| (yylsp[(2) - (7)])); 49853| 0| ;} 49854| 0| break; 49855| | 49856| 2.29k| case 2082: ------------------ | Branch (49856:3): [True: 2.29k, False: 76.7M] ------------------ 49857| 2.29k|#line 15343 "gram.y" 49858| 2.29k| { 49859| | /* generate foo = ANY (subquery) */ 49860| 2.29k| SubLink *n = makeNode(SubLink); ------------------ | | 161| 2.29k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49861| | 49862| 2.29k| n->subselect = (yyvsp[(3) - (3)].node); 49863| 2.29k| n->subLinkType = ANY_SUBLINK; 49864| 2.29k| n->subLinkId = 0; 49865| 2.29k| n->testexpr = (yyvsp[(1) - (3)].node); 49866| 2.29k| n->operName = NIL; /* show it's IN not = ANY */ ------------------ | | 68| 2.29k|#define NIL ((List *) NULL) ------------------ 49867| 2.29k| n->location = (yylsp[(2) - (3)]); 49868| 2.29k| (yyval.node) = (Node *) n; 49869| 2.29k| ;} 49870| 2.29k| break; 49871| | 49872| 2.93k| case 2083: ------------------ | Branch (49872:3): [True: 2.93k, False: 76.7M] ------------------ 49873| 2.93k|#line 15356 "gram.y" 49874| 2.93k| { 49875| | /* generate scalar IN expression */ 49876| 2.93k| A_Expr *n = makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[(1) - (5)].node), (Node *) (yyvsp[(4) - (5)].list), (yylsp[(2) - (5)])); 49877| | 49878| 2.93k| n->rexpr_list_start = (yylsp[(3) - (5)]); 49879| 2.93k| n->rexpr_list_end = (yylsp[(5) - (5)]); 49880| 2.93k| (yyval.node) = (Node *) n; 49881| 2.93k| ;} 49882| 2.93k| break; 49883| | 49884| 2.34k| case 2084: ------------------ | Branch (49884:3): [True: 2.34k, False: 76.7M] ------------------ 49885| 2.34k|#line 15365 "gram.y" 49886| 2.34k| { 49887| | /* generate NOT (foo = ANY (subquery)) */ 49888| 2.34k| SubLink *n = makeNode(SubLink); ------------------ | | 161| 2.34k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49889| | 49890| 2.34k| n->subselect = (yyvsp[(4) - (4)].node); 49891| 2.34k| n->subLinkType = ANY_SUBLINK; 49892| 2.34k| n->subLinkId = 0; 49893| 2.34k| n->testexpr = (yyvsp[(1) - (4)].node); 49894| 2.34k| n->operName = NIL; /* show it's IN not = ANY */ ------------------ | | 68| 2.34k|#define NIL ((List *) NULL) ------------------ 49895| 2.34k| n->location = (yylsp[(2) - (4)]); 49896| | /* Stick a NOT on top; must have same parse location */ 49897| 2.34k| (yyval.node) = makeNotExpr((Node *) n, (yylsp[(2) - (4)])); 49898| 2.34k| ;} 49899| 2.34k| break; 49900| | 49901| 53| case 2085: ------------------ | Branch (49901:3): [True: 53, False: 76.7M] ------------------ 49902| 53|#line 15379 "gram.y" 49903| 53| { 49904| | /* generate scalar NOT IN expression */ 49905| 53| A_Expr *n = makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[(1) - (6)].node), (Node *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); 49906| | 49907| 53| n->rexpr_list_start = (yylsp[(4) - (6)]); 49908| 53| n->rexpr_list_end = (yylsp[(6) - (6)]); 49909| 53| (yyval.node) = (Node *) n; 49910| 53| ;} 49911| 53| break; 49912| | 49913| 692| case 2086: ------------------ | Branch (49913:3): [True: 692, False: 76.7M] ------------------ 49914| 692|#line 15388 "gram.y" 49915| 692| { 49916| 692| SubLink *n = makeNode(SubLink); ------------------ | | 161| 692|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 49917| | 49918| 692| n->subLinkType = (yyvsp[(3) - (4)].ival); 49919| 692| n->subLinkId = 0; 49920| 692| n->testexpr = (yyvsp[(1) - (4)].node); 49921| 692| n->operName = (yyvsp[(2) - (4)].list); 49922| 692| n->subselect = (yyvsp[(4) - (4)].node); 49923| 692| n->location = (yylsp[(2) - (4)]); 49924| 692| (yyval.node) = (Node *) n; 49925| 692| ;} 49926| 692| break; 49927| | 49928| 0| case 2087: ------------------ | Branch (49928:3): [True: 0, False: 76.7M] ------------------ 49929| 0|#line 15400 "gram.y" 49930| 0| { 49931| 0| if ((yyvsp[(3) - (6)].ival) == ANY_SUBLINK) ------------------ | Branch (49931:10): [True: 0, False: 0] ------------------ 49932| 0| (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); 49933| 0| else 49934| 0| (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); 49935| 0| ;} 49936| 0| break; 49937| | 49938| 0| case 2088: ------------------ | Branch (49938:3): [True: 0, False: 76.7M] ------------------ 49939| 0|#line 15407 "gram.y" 49940| 0| { 49941| | /* Not sure how to get rid of the parentheses 49942| | * but there are lots of shift/reduce errors without them. 49943| | * 49944| | * Should be able to implement this by plopping the entire 49945| | * select into a node, then transforming the target expressions 49946| | * from whatever they are into count(*), and testing the 49947| | * entire result equal to one. 49948| | * But, will probably implement a separate node in the executor. 49949| | */ 49950| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 49951| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 49952| 0| errmsg("UNIQUE predicate is not yet implemented"), 49953| 0| parser_errposition((yylsp[(1) - (3)])))); 49954| 0| ;} 49955| 0| break; 49956| | 49957| 0| case 2089: ------------------ | Branch (49957:3): [True: 0, False: 76.7M] ------------------ 49958| 0|#line 15423 "gram.y" 49959| 0| { 49960| 0| (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 49961| 0| list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49962| 0| ;} 49963| 0| break; 49964| | 49965| 0| case 2090: ------------------ | Branch (49965:3): [True: 0, False: 76.7M] ------------------ 49966| 0|#line 15428 "gram.y" 49967| 0| { 49968| 0| (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 49969| 0| list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49970| 0| (yylsp[(2) - (4)])); 49971| 0| ;} 49972| 0| break; 49973| | 49974| 0| case 2091: ------------------ | Branch (49974:3): [True: 0, False: 76.7M] ------------------ 49975| 0|#line 15434 "gram.y" 49976| 0| { 49977| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), 49978| 0| list_make1((yyvsp[(1) - (3)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49979| 0| COERCE_SQL_SYNTAX, 49980| 0| (yylsp[(2) - (3)])); 49981| 0| ;} 49982| 0| break; 49983| | 49984| 0| case 2092: ------------------ | Branch (49984:3): [True: 0, False: 76.7M] ------------------ 49985| 0|#line 15441 "gram.y" 49986| 0| { 49987| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"), 49988| 0| list_make2((yyvsp[(1) - (4)].node), makeStringConst((yyvsp[(3) - (4)].str), (yylsp[(3) - (4)]))), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49989| 0| COERCE_SQL_SYNTAX, 49990| 0| (yylsp[(2) - (4)])); 49991| 0| ;} 49992| 0| break; 49993| | 49994| 0| case 2093: ------------------ | Branch (49994:3): [True: 0, False: 76.7M] ------------------ 49995| 0|#line 15448 "gram.y" 49996| 0| { 49997| 0| (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), 49998| 0| list_make1((yyvsp[(1) - (4)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 49999| 0| COERCE_SQL_SYNTAX, 50000| 0| (yylsp[(2) - (4)])), 50001| 0| (yylsp[(2) - (4)])); 50002| 0| ;} 50003| 0| break; 50004| | 50005| 0| case 2094: ------------------ | Branch (50005:3): [True: 0, False: 76.7M] ------------------ 50006| 0|#line 15456 "gram.y" 50007| 0| { 50008| 0| (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"), 50009| 0| list_make2((yyvsp[(1) - (5)].node), makeStringConst((yyvsp[(4) - (5)].str), (yylsp[(4) - (5)]))), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50010| 0| COERCE_SQL_SYNTAX, 50011| 0| (yylsp[(2) - (5)])), 50012| 0| (yylsp[(2) - (5)])); 50013| 0| ;} 50014| 0| break; 50015| | 50016| 2.32k| case 2095: ------------------ | Branch (50016:3): [True: 2.32k, False: 76.7M] ------------------ 50017| 2.32k|#line 15465 "gram.y" 50018| 2.32k| { 50019| 2.32k| JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); 50020| | 50021| 2.32k| (yyval.node) = makeJsonIsPredicate((yyvsp[(1) - (4)].node), format, (yyvsp[(3) - (4)].ival), (yyvsp[(4) - (4)].boolean), (yylsp[(1) - (4)])); 50022| 2.32k| ;} 50023| 2.32k| break; 50024| | 50025| 0| case 2096: ------------------ | Branch (50025:3): [True: 0, False: 76.7M] ------------------ 50026| 0|#line 15483 "gram.y" 50027| 0| { 50028| 0| JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); 50029| | 50030| 0| (yyval.node) = makeNotExpr(makeJsonIsPredicate((yyvsp[(1) - (5)].node), format, (yyvsp[(4) - (5)].ival), (yyvsp[(5) - (5)].boolean), (yylsp[(1) - (5)])), (yylsp[(1) - (5)])); 50031| 0| ;} 50032| 0| break; 50033| | 50034| 12.7k| case 2097: ------------------ | Branch (50034:3): [True: 12.7k, False: 76.7M] ------------------ 50035| 12.7k|#line 15500 "gram.y" 50036| 12.7k| { 50037| | /* 50038| | * The SQL spec only allows DEFAULT in "contextually typed 50039| | * expressions", but for us, it's easier to allow it in 50040| | * any a_expr and then throw error during parse analysis 50041| | * if it's in an inappropriate context. This way also 50042| | * lets us say something smarter than "syntax error". 50043| | */ 50044| 12.7k| SetToDefault *n = makeNode(SetToDefault); ------------------ | | 161| 12.7k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50045| | 50046| | /* parse analysis will fill in the rest */ 50047| 12.7k| n->location = (yylsp[(1) - (1)]); 50048| 12.7k| (yyval.node) = (Node *) n; 50049| 12.7k| ;} 50050| 12.7k| break; 50051| | 50052| 87.8k| case 2098: ------------------ | Branch (50052:3): [True: 87.8k, False: 76.6M] ------------------ 50053| 87.8k|#line 15526 "gram.y" 50054| 87.8k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50055| 87.8k| break; 50056| | 50057| 41| case 2099: ------------------ | Branch (50057:3): [True: 41, False: 76.7M] ------------------ 50058| 41|#line 15528 "gram.y" 50059| 41| { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), (yylsp[(2) - (3)])); ;} 50060| 41| break; 50061| | 50062| 371k| case 2100: ------------------ | Branch (50062:3): [True: 371k, False: 76.3M] ------------------ 50063| 371k|#line 15530 "gram.y" 50064| 371k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 50065| 371k| break; 50066| | 50067| 4.30k| case 2101: ------------------ | Branch (50067:3): [True: 4.30k, False: 76.7M] ------------------ 50068| 4.30k|#line 15532 "gram.y" 50069| 4.30k| { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 50070| 4.30k| break; 50071| | 50072| 24.9k| case 2102: ------------------ | Branch (50072:3): [True: 24.9k, False: 76.7M] ------------------ 50073| 24.9k|#line 15534 "gram.y" 50074| 24.9k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50075| 24.9k| break; 50076| | 50077| 5| case 2103: ------------------ | Branch (50077:3): [True: 5, False: 76.7M] ------------------ 50078| 5|#line 15536 "gram.y" 50079| 5| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50080| 5| break; 50081| | 50082| 13| case 2104: ------------------ | Branch (50082:3): [True: 13, False: 76.7M] ------------------ 50083| 13|#line 15538 "gram.y" 50084| 13| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50085| 13| break; 50086| | 50087| 13| case 2105: ------------------ | Branch (50087:3): [True: 13, False: 76.7M] ------------------ 50088| 13|#line 15540 "gram.y" 50089| 13| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50090| 13| break; 50091| | 50092| 240| case 2106: ------------------ | Branch (50092:3): [True: 240, False: 76.7M] ------------------ 50093| 240|#line 15542 "gram.y" 50094| 240| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50095| 240| break; 50096| | 50097| 18| case 2107: ------------------ | Branch (50097:3): [True: 18, False: 76.7M] ------------------ 50098| 18|#line 15544 "gram.y" 50099| 18| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50100| 18| break; 50101| | 50102| 4.70k| case 2108: ------------------ | Branch (50102:3): [True: 4.70k, False: 76.7M] ------------------ 50103| 4.70k|#line 15546 "gram.y" 50104| 4.70k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50105| 4.70k| break; 50106| | 50107| 8.52k| case 2109: ------------------ | Branch (50107:3): [True: 8.52k, False: 76.7M] ------------------ 50108| 8.52k|#line 15548 "gram.y" 50109| 8.52k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50110| 8.52k| break; 50111| | 50112| 0| case 2110: ------------------ | Branch (50112:3): [True: 0, False: 76.7M] ------------------ 50113| 0|#line 15550 "gram.y" 50114| 0| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50115| 0| break; 50116| | 50117| 0| case 2111: ------------------ | Branch (50117:3): [True: 0, False: 76.7M] ------------------ 50118| 0|#line 15552 "gram.y" 50119| 0| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50120| 0| break; 50121| | 50122| 0| case 2112: ------------------ | Branch (50122:3): [True: 0, False: 76.7M] ------------------ 50123| 0|#line 15554 "gram.y" 50124| 0| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50125| 0| break; 50126| | 50127| 1.13k| case 2113: ------------------ | Branch (50127:3): [True: 1.13k, False: 76.7M] ------------------ 50128| 1.13k|#line 15556 "gram.y" 50129| 1.13k| { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50130| 1.13k| break; 50131| | 50132| 25.7k| case 2114: ------------------ | Branch (50132:3): [True: 25.7k, False: 76.7M] ------------------ 50133| 25.7k|#line 15558 "gram.y" 50134| 25.7k| { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} 50135| 25.7k| break; 50136| | 50137| 1.00k| case 2115: ------------------ | Branch (50137:3): [True: 1.00k, False: 76.7M] ------------------ 50138| 1.00k|#line 15560 "gram.y" 50139| 1.00k| { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 50140| 1.00k| break; 50141| | 50142| 0| case 2116: ------------------ | Branch (50142:3): [True: 0, False: 76.7M] ------------------ 50143| 0|#line 15562 "gram.y" 50144| 0| { 50145| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); 50146| 0| ;} 50147| 0| break; 50148| | 50149| 0| case 2117: ------------------ | Branch (50149:3): [True: 0, False: 76.7M] ------------------ 50150| 0|#line 15566 "gram.y" 50151| 0| { 50152| 0| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); 50153| 0| ;} 50154| 0| break; 50155| | 50156| 0| case 2118: ------------------ | Branch (50156:3): [True: 0, False: 76.7M] ------------------ 50157| 0|#line 15570 "gram.y" 50158| 0| { 50159| 0| (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50160| 0| list_make1((yyvsp[(1) - (3)].node)), (yylsp[(2) - (3)])); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50161| 0| ;} 50162| 0| break; 50163| | 50164| 0| case 2119: ------------------ | Branch (50164:3): [True: 0, False: 76.7M] ------------------ 50165| 0|#line 15575 "gram.y" 50166| 0| { 50167| 0| (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50168| 0| list_make1((yyvsp[(1) - (4)].node)), (yylsp[(2) - (4)])), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50169| 0| (yylsp[(2) - (4)])); 50170| 0| ;} 50171| 0| break; 50172| | 50173| 3.91M| case 2120: ------------------ | Branch (50173:3): [True: 3.91M, False: 72.8M] ------------------ 50174| 3.91M|#line 15590 "gram.y" 50175| 3.91M| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50176| 3.91M| break; 50177| | 50178| 88.7k| case 2121: ------------------ | Branch (50178:3): [True: 88.7k, False: 76.6M] ------------------ 50179| 88.7k|#line 15591 "gram.y" 50180| 88.7k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50181| 88.7k| break; 50182| | 50183| 2.37k| case 2122: ------------------ | Branch (50183:3): [True: 2.37k, False: 76.7M] ------------------ 50184| 2.37k|#line 15593 "gram.y" 50185| 2.37k| { 50186| 2.37k| ParamRef *p = makeNode(ParamRef); ------------------ | | 161| 2.37k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50187| | 50188| 2.37k| p->number = (yyvsp[(1) - (2)].ival); 50189| 2.37k| p->location = (yylsp[(1) - (2)]); 50190| 2.37k| if ((yyvsp[(2) - (2)].list)) ------------------ | Branch (50190:10): [True: 758, False: 1.61k] ------------------ 50191| 758| { 50192| 758| A_Indirection *n = makeNode(A_Indirection); ------------------ | | 161| 758|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50193| | 50194| 758| n->arg = (Node *) p; 50195| 758| n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); 50196| 758| (yyval.node) = (Node *) n; 50197| 758| } 50198| 1.61k| else 50199| 1.61k| (yyval.node) = (Node *) p; 50200| 2.37k| ;} 50201| 2.37k| break; 50202| | 50203| 1.48k| case 2123: ------------------ | Branch (50203:3): [True: 1.48k, False: 76.7M] ------------------ 50204| 1.48k|#line 15610 "gram.y" 50205| 1.48k| { 50206| 1.48k| if ((yyvsp[(4) - (4)].list)) ------------------ | Branch (50206:10): [True: 0, False: 1.48k] ------------------ 50207| 0| { 50208| 0| A_Indirection *n = makeNode(A_Indirection); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50209| | 50210| 0| n->arg = (yyvsp[(2) - (4)].node); 50211| 0| n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner); 50212| 0| (yyval.node) = (Node *) n; 50213| 0| } 50214| 1.48k| else 50215| 1.48k| (yyval.node) = (yyvsp[(2) - (4)].node); 50216| 1.48k| ;} 50217| 1.48k| break; 50218| | 50219| 800| case 2124: ------------------ | Branch (50219:3): [True: 800, False: 76.7M] ------------------ 50220| 800|#line 15623 "gram.y" 50221| 800| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50222| 800| break; 50223| | 50224| 230k| case 2125: ------------------ | Branch (50224:3): [True: 230k, False: 76.5M] ------------------ 50225| 230k|#line 15625 "gram.y" 50226| 230k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50227| 230k| break; 50228| | 50229| 197| case 2126: ------------------ | Branch (50229:3): [True: 197, False: 76.7M] ------------------ 50230| 197|#line 15627 "gram.y" 50231| 197| { 50232| 197| SubLink *n = makeNode(SubLink); ------------------ | | 161| 197|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50233| | 50234| 197| n->subLinkType = EXPR_SUBLINK; 50235| 197| n->subLinkId = 0; 50236| 197| n->testexpr = NULL; 50237| 197| n->operName = NIL; ------------------ | | 68| 197|#define NIL ((List *) NULL) ------------------ 50238| 197| n->subselect = (yyvsp[(1) - (1)].node); 50239| 197| n->location = (yylsp[(1) - (1)]); 50240| 197| (yyval.node) = (Node *) n; 50241| 197| ;} 50242| 197| break; 50243| | 50244| 525| case 2127: ------------------ | Branch (50244:3): [True: 525, False: 76.7M] ------------------ 50245| 525|#line 15639 "gram.y" 50246| 525| { 50247| | /* 50248| | * Because the select_with_parens nonterminal is designed 50249| | * to "eat" as many levels of parens as possible, the 50250| | * '(' a_expr ')' opt_indirection production above will 50251| | * fail to match a sub-SELECT with indirection decoration; 50252| | * the sub-SELECT won't be regarded as an a_expr as long 50253| | * as there are parens around it. To support applying 50254| | * subscripting or field selection to a sub-SELECT result, 50255| | * we need this redundant-looking production. 50256| | */ 50257| 525| SubLink *n = makeNode(SubLink); ------------------ | | 161| 525|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50258| 525| A_Indirection *a = makeNode(A_Indirection); ------------------ | | 161| 525|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50259| | 50260| 525| n->subLinkType = EXPR_SUBLINK; 50261| 525| n->subLinkId = 0; 50262| 525| n->testexpr = NULL; 50263| 525| n->operName = NIL; ------------------ | | 68| 525|#define NIL ((List *) NULL) ------------------ 50264| 525| n->subselect = (yyvsp[(1) - (2)].node); 50265| 525| n->location = (yylsp[(1) - (2)]); 50266| 525| a->arg = (Node *) n; 50267| 525| a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner); 50268| 525| (yyval.node) = (Node *) a; 50269| 525| ;} 50270| 525| break; 50271| | 50272| 0| case 2128: ------------------ | Branch (50272:3): [True: 0, False: 76.7M] ------------------ 50273| 0|#line 15664 "gram.y" 50274| 0| { 50275| 0| SubLink *n = makeNode(SubLink); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50276| | 50277| 0| n->subLinkType = EXISTS_SUBLINK; 50278| 0| n->subLinkId = 0; 50279| 0| n->testexpr = NULL; 50280| 0| n->operName = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50281| 0| n->subselect = (yyvsp[(2) - (2)].node); 50282| 0| n->location = (yylsp[(1) - (2)]); 50283| 0| (yyval.node) = (Node *) n; 50284| 0| ;} 50285| 0| break; 50286| | 50287| 1| case 2129: ------------------ | Branch (50287:3): [True: 1, False: 76.7M] ------------------ 50288| 1|#line 15676 "gram.y" 50289| 1| { 50290| 1| SubLink *n = makeNode(SubLink); ------------------ | | 161| 1|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50291| | 50292| 1| n->subLinkType = ARRAY_SUBLINK; 50293| 1| n->subLinkId = 0; 50294| 1| n->testexpr = NULL; 50295| 1| n->operName = NIL; ------------------ | | 68| 1|#define NIL ((List *) NULL) ------------------ 50296| 1| n->subselect = (yyvsp[(2) - (2)].node); 50297| 1| n->location = (yylsp[(1) - (2)]); 50298| 1| (yyval.node) = (Node *) n; 50299| 1| ;} 50300| 1| break; 50301| | 50302| 3.34k| case 2130: ------------------ | Branch (50302:3): [True: 3.34k, False: 76.7M] ------------------ 50303| 3.34k|#line 15688 "gram.y" 50304| 3.34k| { 50305| 3.34k| A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[(2) - (2)].node)); ------------------ | | 182| 3.34k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 50306| | 50307| | /* point outermost A_ArrayExpr to the ARRAY keyword */ 50308| 3.34k| n->location = (yylsp[(1) - (2)]); 50309| 3.34k| (yyval.node) = (Node *) n; 50310| 3.34k| ;} 50311| 3.34k| break; 50312| | 50313| 160| case 2131: ------------------ | Branch (50313:3): [True: 160, False: 76.7M] ------------------ 50314| 160|#line 15696 "gram.y" 50315| 160| { 50316| 160| RowExpr *r = makeNode(RowExpr); ------------------ | | 161| 160|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50317| | 50318| 160| r->args = (yyvsp[(1) - (1)].list); 50319| 160| r->row_typeid = InvalidOid; /* not analyzed yet */ ------------------ | | 37| 160|#define InvalidOid ((Oid) 0) ------------------ 50320| 160| r->colnames = NIL; /* to be filled in during analysis */ ------------------ | | 68| 160|#define NIL ((List *) NULL) ------------------ 50321| 160| r->row_format = COERCE_EXPLICIT_CALL; /* abuse */ 50322| 160| r->location = (yylsp[(1) - (1)]); 50323| 160| (yyval.node) = (Node *) r; 50324| 160| ;} 50325| 160| break; 50326| | 50327| 4.05k| case 2132: ------------------ | Branch (50327:3): [True: 4.05k, False: 76.7M] ------------------ 50328| 4.05k|#line 15707 "gram.y" 50329| 4.05k| { 50330| 4.05k| RowExpr *r = makeNode(RowExpr); ------------------ | | 161| 4.05k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50331| | 50332| 4.05k| r->args = (yyvsp[(1) - (1)].list); 50333| 4.05k| r->row_typeid = InvalidOid; /* not analyzed yet */ ------------------ | | 37| 4.05k|#define InvalidOid ((Oid) 0) ------------------ 50334| 4.05k| r->colnames = NIL; /* to be filled in during analysis */ ------------------ | | 68| 4.05k|#define NIL ((List *) NULL) ------------------ 50335| 4.05k| r->row_format = COERCE_IMPLICIT_CAST; /* abuse */ 50336| 4.05k| r->location = (yylsp[(1) - (1)]); 50337| 4.05k| (yyval.node) = (Node *) r; 50338| 4.05k| ;} 50339| 4.05k| break; 50340| | 50341| 69| case 2133: ------------------ | Branch (50341:3): [True: 69, False: 76.7M] ------------------ 50342| 69|#line 15718 "gram.y" 50343| 69| { 50344| 69| GroupingFunc *g = makeNode(GroupingFunc); ------------------ | | 161| 69|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50345| | 50346| 69| g->args = (yyvsp[(3) - (4)].list); 50347| 69| g->location = (yylsp[(1) - (4)]); 50348| 69| (yyval.node) = (Node *) g; 50349| 69| ;} 50350| 69| break; 50351| | 50352| 14.5k| case 2134: ------------------ | Branch (50352:3): [True: 14.5k, False: 76.7M] ------------------ 50353| 14.5k|#line 15728 "gram.y" 50354| 14.5k| { 50355| 14.5k| (yyval.node) = (Node *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, ------------------ | | 68| 14.5k|#define NIL ((List *) NULL) ------------------ 50356| 14.5k| COERCE_EXPLICIT_CALL, 50357| 14.5k| (yylsp[(1) - (3)])); 50358| 14.5k| ;} 50359| 14.5k| break; 50360| | 50361| 17.8k| case 2135: ------------------ | Branch (50361:3): [True: 17.8k, False: 76.7M] ------------------ 50362| 17.8k|#line 15734 "gram.y" 50363| 17.8k| { 50364| 17.8k| FuncCall *n = makeFuncCall((yyvsp[(1) - (5)].list), (yyvsp[(3) - (5)].list), 50365| 17.8k| COERCE_EXPLICIT_CALL, 50366| 17.8k| (yylsp[(1) - (5)])); 50367| | 50368| 17.8k| n->agg_order = (yyvsp[(4) - (5)].list); 50369| 17.8k| (yyval.node) = (Node *) n; 50370| 17.8k| ;} 50371| 17.8k| break; 50372| | 50373| 0| case 2136: ------------------ | Branch (50373:3): [True: 0, False: 76.7M] ------------------ 50374| 0|#line 15743 "gram.y" 50375| 0| { 50376| 0| FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), list_make1((yyvsp[(4) - (6)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50377| 0| COERCE_EXPLICIT_CALL, 50378| 0| (yylsp[(1) - (6)])); 50379| | 50380| 0| n->func_variadic = true; 50381| 0| n->agg_order = (yyvsp[(5) - (6)].list); 50382| 0| (yyval.node) = (Node *) n; 50383| 0| ;} 50384| 0| break; 50385| | 50386| 0| case 2137: ------------------ | Branch (50386:3): [True: 0, False: 76.7M] ------------------ 50387| 0|#line 15753 "gram.y" 50388| 0| { 50389| 0| FuncCall *n = makeFuncCall((yyvsp[(1) - (8)].list), lappend((yyvsp[(3) - (8)].list), (yyvsp[(6) - (8)].node)), 50390| 0| COERCE_EXPLICIT_CALL, 50391| 0| (yylsp[(1) - (8)])); 50392| | 50393| 0| n->func_variadic = true; 50394| 0| n->agg_order = (yyvsp[(7) - (8)].list); 50395| 0| (yyval.node) = (Node *) n; 50396| 0| ;} 50397| 0| break; 50398| | 50399| 0| case 2138: ------------------ | Branch (50399:3): [True: 0, False: 76.7M] ------------------ 50400| 0|#line 15763 "gram.y" 50401| 0| { 50402| 0| FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), 50403| 0| COERCE_EXPLICIT_CALL, 50404| 0| (yylsp[(1) - (6)])); 50405| | 50406| 0| n->agg_order = (yyvsp[(5) - (6)].list); 50407| | /* Ideally we'd mark the FuncCall node to indicate 50408| | * "must be an aggregate", but there's no provision 50409| | * for that in FuncCall at the moment. 50410| | */ 50411| 0| (yyval.node) = (Node *) n; 50412| 0| ;} 50413| 0| break; 50414| | 50415| 0| case 2139: ------------------ | Branch (50415:3): [True: 0, False: 76.7M] ------------------ 50416| 0|#line 15776 "gram.y" 50417| 0| { 50418| 0| FuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(4) - (6)].list), 50419| 0| COERCE_EXPLICIT_CALL, 50420| 0| (yylsp[(1) - (6)])); 50421| | 50422| 0| n->agg_order = (yyvsp[(5) - (6)].list); 50423| 0| n->agg_distinct = true; 50424| 0| (yyval.node) = (Node *) n; 50425| 0| ;} 50426| 0| break; 50427| | 50428| 2| case 2140: ------------------ | Branch (50428:3): [True: 2, False: 76.7M] ------------------ 50429| 2|#line 15786 "gram.y" 50430| 2| { 50431| | /* 50432| | * We consider AGGREGATE(*) to invoke a parameterless 50433| | * aggregate. This does the right thing for COUNT(*), 50434| | * and there are no other aggregates in SQL that accept 50435| | * '*' as parameter. 50436| | * 50437| | * The FuncCall node is also marked agg_star = true, 50438| | * so that later processing can detect what the argument 50439| | * really was. 50440| | */ 50441| 2| FuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, ------------------ | | 68| 2|#define NIL ((List *) NULL) ------------------ 50442| 2| COERCE_EXPLICIT_CALL, 50443| 2| (yylsp[(1) - (4)])); 50444| | 50445| 2| n->agg_star = true; 50446| 2| (yyval.node) = (Node *) n; 50447| 2| ;} 50448| 2| break; 50449| | 50450| 29.8k| case 2141: ------------------ | Branch (50450:3): [True: 29.8k, False: 76.7M] ------------------ 50451| 29.8k|#line 15817 "gram.y" 50452| 29.8k| { 50453| 29.8k| FuncCall *n = (FuncCall *) (yyvsp[(1) - (4)].node); 50454| | 50455| | /* 50456| | * The order clause for WITHIN GROUP and the one for 50457| | * plain-aggregate ORDER BY share a field, so we have to 50458| | * check here that at most one is present. We also check 50459| | * for DISTINCT and VARIADIC here to give a better error 50460| | * location. Other consistency checks are deferred to 50461| | * parse analysis. 50462| | */ 50463| 29.8k| if ((yyvsp[(2) - (4)].list) != NIL) ------------------ | | 68| 29.8k|#define NIL ((List *) NULL) ------------------ | Branch (50463:10): [True: 0, False: 29.8k] ------------------ 50464| 0| { 50465| 0| if (n->agg_order != NIL) ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ | Branch (50465:11): [True: 0, False: 0] ------------------ 50466| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 50467| 0| (errcode(ERRCODE_SYNTAX_ERROR), 50468| 0| errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), 50469| 0| parser_errposition((yylsp[(2) - (4)])))); 50470| 0| if (n->agg_distinct) ------------------ | Branch (50470:11): [True: 0, False: 0] ------------------ 50471| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 50472| 0| (errcode(ERRCODE_SYNTAX_ERROR), 50473| 0| errmsg("cannot use DISTINCT with WITHIN GROUP"), 50474| 0| parser_errposition((yylsp[(2) - (4)])))); 50475| 0| if (n->func_variadic) ------------------ | Branch (50475:11): [True: 0, False: 0] ------------------ 50476| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 50477| 0| (errcode(ERRCODE_SYNTAX_ERROR), 50478| 0| errmsg("cannot use VARIADIC with WITHIN GROUP"), 50479| 0| parser_errposition((yylsp[(2) - (4)])))); 50480| 0| n->agg_order = (yyvsp[(2) - (4)].list); 50481| 0| n->agg_within_group = true; 50482| 0| } 50483| 29.8k| n->agg_filter = (yyvsp[(3) - (4)].node); 50484| 29.8k| n->over = (yyvsp[(4) - (4)].windef); 50485| 29.8k| (yyval.node) = (Node *) n; 50486| 29.8k| ;} 50487| 0| break; 50488| | 50489| 0| case 2142: ------------------ | Branch (50489:3): [True: 0, False: 76.7M] ------------------ 50490| 0|#line 15853 "gram.y" 50491| 0| { 50492| 0| JsonAggConstructor *n = IsA((yyvsp[(1) - (3)].node), JsonObjectAgg) ? ------------------ | | 164| 0|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 0|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 0] | | ------------------ ------------------ 50493| 0| ((JsonObjectAgg *) (yyvsp[(1) - (3)].node))->constructor : 50494| 0| ((JsonArrayAgg *) (yyvsp[(1) - (3)].node))->constructor; 50495| | 50496| 0| n->agg_filter = (yyvsp[(2) - (3)].node); 50497| 0| n->over = (yyvsp[(3) - (3)].windef); 50498| 0| (yyval.node) = (Node *) (yyvsp[(1) - (3)].node); 50499| 0| ;} 50500| 0| break; 50501| | 50502| 200k| case 2143: ------------------ | Branch (50502:3): [True: 200k, False: 76.5M] ------------------ 50503| 200k|#line 15863 "gram.y" 50504| 200k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50505| 200k| break; 50506| | 50507| 2.62k| case 2144: ------------------ | Branch (50507:3): [True: 2.62k, False: 76.7M] ------------------ 50508| 2.62k|#line 15873 "gram.y" 50509| 2.62k| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50510| 2.62k| break; 50511| | 50512| 621| case 2145: ------------------ | Branch (50512:3): [True: 621, False: 76.7M] ------------------ 50513| 621|#line 15874 "gram.y" 50514| 621| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50515| 621| break; 50516| | 50517| 0| case 2146: ------------------ | Branch (50517:3): [True: 0, False: 76.7M] ------------------ 50518| 0|#line 15875 "gram.y" 50519| 0| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 50520| 0| break; 50521| | 50522| 0| case 2147: ------------------ | Branch (50522:3): [True: 0, False: 76.7M] ------------------ 50523| 0|#line 15883 "gram.y" 50524| 0| { 50525| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"), 50526| 0| list_make1((yyvsp[(4) - (5)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50527| 0| COERCE_SQL_SYNTAX, 50528| 0| (yylsp[(1) - (5)])); 50529| 0| ;} 50530| 0| break; 50531| | 50532| 16| case 2148: ------------------ | Branch (50532:3): [True: 16, False: 76.7M] ------------------ 50533| 16|#line 15890 "gram.y" 50534| 16| { 50535| 16| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)])); 50536| 16| ;} 50537| 16| break; 50538| | 50539| 166| case 2149: ------------------ | Branch (50539:3): [True: 166, False: 76.7M] ------------------ 50540| 166|#line 15894 "gram.y" 50541| 166| { 50542| 166| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)])); 50543| 166| ;} 50544| 166| break; 50545| | 50546| 366| case 2150: ------------------ | Branch (50546:3): [True: 366, False: 76.7M] ------------------ 50547| 366|#line 15898 "gram.y" 50548| 366| { 50549| 366| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); 50550| 366| ;} 50551| 366| break; 50552| | 50553| 80.7k| case 2151: ------------------ | Branch (50553:3): [True: 80.7k, False: 76.6M] ------------------ 50554| 80.7k|#line 15902 "gram.y" 50555| 80.7k| { 50556| 80.7k| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)])); 50557| 80.7k| ;} 50558| 80.7k| break; 50559| | 50560| 27| case 2152: ------------------ | Branch (50560:3): [True: 27, False: 76.7M] ------------------ 50561| 27|#line 15906 "gram.y" 50562| 27| { 50563| 27| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); 50564| 27| ;} 50565| 27| break; 50566| | 50567| 156| case 2153: ------------------ | Branch (50567:3): [True: 156, False: 76.7M] ------------------ 50568| 156|#line 15910 "gram.y" 50569| 156| { 50570| 156| (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)])); 50571| 156| ;} 50572| 156| break; 50573| | 50574| 2.60k| case 2154: ------------------ | Branch (50574:3): [True: 2.60k, False: 76.7M] ------------------ 50575| 2.60k|#line 15914 "gram.y" 50576| 2.60k| { 50577| 2.60k| (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); 50578| 2.60k| ;} 50579| 2.60k| break; 50580| | 50581| 112| case 2155: ------------------ | Branch (50581:3): [True: 112, False: 76.7M] ------------------ 50582| 112|#line 15918 "gram.y" 50583| 112| { 50584| 112| (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)])); 50585| 112| ;} 50586| 112| break; 50587| | 50588| 84| case 2156: ------------------ | Branch (50588:3): [True: 84, False: 76.7M] ------------------ 50589| 84|#line 15922 "gram.y" 50590| 84| { 50591| 84| (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)])); 50592| 84| ;} 50593| 84| break; 50594| | 50595| 22.8k| case 2157: ------------------ | Branch (50595:3): [True: 22.8k, False: 76.7M] ------------------ 50596| 22.8k|#line 15926 "gram.y" 50597| 22.8k| { 50598| 22.8k| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)])); 50599| 22.8k| ;} 50600| 22.8k| break; 50601| | 50602| 84.5k| case 2158: ------------------ | Branch (50602:3): [True: 84.5k, False: 76.6M] ------------------ 50603| 84.5k|#line 15930 "gram.y" 50604| 84.5k| { 50605| 84.5k| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)])); 50606| 84.5k| ;} 50607| 84.5k| break; 50608| | 50609| 0| case 2159: ------------------ | Branch (50609:3): [True: 0, False: 76.7M] ------------------ 50610| 0|#line 15934 "gram.y" 50611| 0| { 50612| 0| (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)])); 50613| 0| ;} 50614| 0| break; 50615| | 50616| 0| case 2160: ------------------ | Branch (50616:3): [True: 0, False: 76.7M] ------------------ 50617| 0|#line 15938 "gram.y" 50618| 0| { 50619| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"), 50620| 0| NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50621| 0| COERCE_SQL_SYNTAX, 50622| 0| (yylsp[(1) - (1)])); 50623| 0| ;} 50624| 0| break; 50625| | 50626| 123| case 2161: ------------------ | Branch (50626:3): [True: 123, False: 76.7M] ------------------ 50627| 123|#line 15945 "gram.y" 50628| 123| { 50629| 123| (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[(1) - (1)])); 50630| 123| ;} 50631| 123| break; 50632| | 50633| 0| case 2162: ------------------ | Branch (50633:3): [True: 0, False: 76.7M] ------------------ 50634| 0|#line 15949 "gram.y" 50635| 0| { 50636| 0| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)])); 50637| 0| ;} 50638| 0| break; 50639| | 50640| 645| case 2163: ------------------ | Branch (50640:3): [True: 645, False: 76.7M] ------------------ 50641| 645|#line 15953 "gram.y" 50642| 645| { 50643| 645| (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)])); 50644| 645| ;} 50645| 645| break; 50646| | 50647| 0| case 2164: ------------------ | Branch (50647:3): [True: 0, False: 76.7M] ------------------ 50648| 0|#line 15957 "gram.y" 50649| 0| { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), (yylsp[(1) - (6)])); ;} 50650| 0| break; 50651| | 50652| 0| case 2165: ------------------ | Branch (50652:3): [True: 0, False: 76.7M] ------------------ 50653| 0|#line 15959 "gram.y" 50654| 0| { 50655| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"), 50656| 0| (yyvsp[(3) - (4)].list), 50657| 0| COERCE_SQL_SYNTAX, 50658| 0| (yylsp[(1) - (4)])); 50659| 0| ;} 50660| 0| break; 50661| | 50662| 0| case 2166: ------------------ | Branch (50662:3): [True: 0, False: 76.7M] ------------------ 50663| 0|#line 15966 "gram.y" 50664| 0| { 50665| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), 50666| 0| list_make1((yyvsp[(3) - (4)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50667| 0| COERCE_SQL_SYNTAX, 50668| 0| (yylsp[(1) - (4)])); 50669| 0| ;} 50670| 0| break; 50671| | 50672| 0| case 2167: ------------------ | Branch (50672:3): [True: 0, False: 76.7M] ------------------ 50673| 0|#line 15973 "gram.y" 50674| 0| { 50675| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"), 50676| 0| list_make2((yyvsp[(3) - (6)].node), makeStringConst((yyvsp[(5) - (6)].str), (yylsp[(5) - (6)]))), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50677| 0| COERCE_SQL_SYNTAX, 50678| 0| (yylsp[(1) - (6)])); 50679| 0| ;} 50680| 0| break; 50681| | 50682| 0| case 2168: ------------------ | Branch (50682:3): [True: 0, False: 76.7M] ------------------ 50683| 0|#line 15980 "gram.y" 50684| 0| { 50685| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"), 50686| 0| (yyvsp[(3) - (4)].list), 50687| 0| COERCE_SQL_SYNTAX, 50688| 0| (yylsp[(1) - (4)])); 50689| 0| ;} 50690| 0| break; 50691| | 50692| 0| case 2169: ------------------ | Branch (50692:3): [True: 0, False: 76.7M] ------------------ 50693| 0|#line 15987 "gram.y" 50694| 0| { 50695| | /* 50696| | * allow functions named overlay() to be called without 50697| | * special syntax 50698| | */ 50699| 0| (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("overlay")), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50700| 0| (yyvsp[(3) - (4)].list), 50701| 0| COERCE_EXPLICIT_CALL, 50702| 0| (yylsp[(1) - (4)])); 50703| 0| ;} 50704| 0| break; 50705| | 50706| 0| case 2170: ------------------ | Branch (50706:3): [True: 0, False: 76.7M] ------------------ 50707| 0|#line 15998 "gram.y" 50708| 0| { 50709| | /* 50710| | * position(A in B) is converted to position(B, A) 50711| | * 50712| | * We deliberately don't offer a "plain syntax" option 50713| | * for position(), because the reversal of the arguments 50714| | * creates too much risk of confusion. 50715| | */ 50716| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"), 50717| 0| (yyvsp[(3) - (4)].list), 50718| 0| COERCE_SQL_SYNTAX, 50719| 0| (yylsp[(1) - (4)])); 50720| 0| ;} 50721| 0| break; 50722| | 50723| 0| case 2171: ------------------ | Branch (50723:3): [True: 0, False: 76.7M] ------------------ 50724| 0|#line 16012 "gram.y" 50725| 0| { 50726| | /* substring(A from B for C) is converted to 50727| | * substring(A, B, C) - thomas 2000-11-28 50728| | */ 50729| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"), 50730| 0| (yyvsp[(3) - (4)].list), 50731| 0| COERCE_SQL_SYNTAX, 50732| 0| (yylsp[(1) - (4)])); 50733| 0| ;} 50734| 0| break; 50735| | 50736| 0| case 2172: ------------------ | Branch (50736:3): [True: 0, False: 76.7M] ------------------ 50737| 0|#line 16022 "gram.y" 50738| 0| { 50739| | /* 50740| | * allow functions named substring() to be called without 50741| | * special syntax 50742| | */ 50743| 0| (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("substring")), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50744| 0| (yyvsp[(3) - (4)].list), 50745| 0| COERCE_EXPLICIT_CALL, 50746| 0| (yylsp[(1) - (4)])); 50747| 0| ;} 50748| 0| break; 50749| | 50750| 0| case 2173: ------------------ | Branch (50750:3): [True: 0, False: 76.7M] ------------------ 50751| 0|#line 16033 "gram.y" 50752| 0| { 50753| | /* TREAT(expr AS target) converts expr of a particular type to target, 50754| | * which is defined to be a subtype of the original expression. 50755| | * In SQL99, this is intended for use with structured UDTs, 50756| | * but let's make this a generally useful form allowing stronger 50757| | * coercions than are handled by implicit casting. 50758| | * 50759| | * Convert SystemTypeName() to SystemFuncName() even though 50760| | * at the moment they result in the same thing. 50761| | */ 50762| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName(strVal(llast((yyvsp[(5) - (6)].typnam)->names))), ------------------ | | 82| 0|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 50763| 0| list_make1((yyvsp[(3) - (6)].node)), ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50764| 0| COERCE_EXPLICIT_CALL, 50765| 0| (yylsp[(1) - (6)])); 50766| 0| ;} 50767| 0| break; 50768| | 50769| 0| case 2174: ------------------ | Branch (50769:3): [True: 0, False: 76.7M] ------------------ 50770| 0|#line 16049 "gram.y" 50771| 0| { 50772| | /* various trim expressions are defined in SQL 50773| | * - thomas 1997-07-19 50774| | */ 50775| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), 50776| 0| (yyvsp[(4) - (5)].list), 50777| 0| COERCE_SQL_SYNTAX, 50778| 0| (yylsp[(1) - (5)])); 50779| 0| ;} 50780| 0| break; 50781| | 50782| 0| case 2175: ------------------ | Branch (50782:3): [True: 0, False: 76.7M] ------------------ 50783| 0|#line 16059 "gram.y" 50784| 0| { 50785| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"), 50786| 0| (yyvsp[(4) - (5)].list), 50787| 0| COERCE_SQL_SYNTAX, 50788| 0| (yylsp[(1) - (5)])); 50789| 0| ;} 50790| 0| break; 50791| | 50792| 0| case 2176: ------------------ | Branch (50792:3): [True: 0, False: 76.7M] ------------------ 50793| 0|#line 16066 "gram.y" 50794| 0| { 50795| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"), 50796| 0| (yyvsp[(4) - (5)].list), 50797| 0| COERCE_SQL_SYNTAX, 50798| 0| (yylsp[(1) - (5)])); 50799| 0| ;} 50800| 0| break; 50801| | 50802| 0| case 2177: ------------------ | Branch (50802:3): [True: 0, False: 76.7M] ------------------ 50803| 0|#line 16073 "gram.y" 50804| 0| { 50805| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"), 50806| 0| (yyvsp[(3) - (4)].list), 50807| 0| COERCE_SQL_SYNTAX, 50808| 0| (yylsp[(1) - (4)])); 50809| 0| ;} 50810| 0| break; 50811| | 50812| 156| case 2178: ------------------ | Branch (50812:3): [True: 156, False: 76.7M] ------------------ 50813| 156|#line 16080 "gram.y" 50814| 156| { 50815| 156| (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); 50816| 156| ;} 50817| 156| break; 50818| | 50819| 157| case 2179: ------------------ | Branch (50819:3): [True: 157, False: 76.7M] ------------------ 50820| 157|#line 16084 "gram.y" 50821| 157| { 50822| 157| CoalesceExpr *c = makeNode(CoalesceExpr); ------------------ | | 161| 157|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50823| | 50824| 157| c->args = (yyvsp[(3) - (4)].list); 50825| 157| c->location = (yylsp[(1) - (4)]); 50826| 157| (yyval.node) = (Node *) c; 50827| 157| ;} 50828| 157| break; 50829| | 50830| 3.78k| case 2180: ------------------ | Branch (50830:3): [True: 3.78k, False: 76.7M] ------------------ 50831| 3.78k|#line 16092 "gram.y" 50832| 3.78k| { 50833| 3.78k| MinMaxExpr *v = makeNode(MinMaxExpr); ------------------ | | 161| 3.78k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50834| | 50835| 3.78k| v->args = (yyvsp[(3) - (4)].list); 50836| 3.78k| v->op = IS_GREATEST; 50837| 3.78k| v->location = (yylsp[(1) - (4)]); 50838| 3.78k| (yyval.node) = (Node *) v; 50839| 3.78k| ;} 50840| 3.78k| break; 50841| | 50842| 2| case 2181: ------------------ | Branch (50842:3): [True: 2, False: 76.7M] ------------------ 50843| 2|#line 16101 "gram.y" 50844| 2| { 50845| 2| MinMaxExpr *v = makeNode(MinMaxExpr); ------------------ | | 161| 2|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50846| | 50847| 2| v->args = (yyvsp[(3) - (4)].list); 50848| 2| v->op = IS_LEAST; 50849| 2| v->location = (yylsp[(1) - (4)]); 50850| 2| (yyval.node) = (Node *) v; 50851| 2| ;} 50852| 2| break; 50853| | 50854| 0| case 2182: ------------------ | Branch (50854:3): [True: 0, False: 76.7M] ------------------ 50855| 0|#line 16110 "gram.y" 50856| 0| { 50857| 0| (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50858| 0| ;} 50859| 0| break; 50860| | 50861| 0| case 2183: ------------------ | Branch (50861:3): [True: 0, False: 76.7M] ------------------ 50862| 0|#line 16114 "gram.y" 50863| 0| { 50864| 0| (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (5)].str), NIL, NIL, (yylsp[(1) - (5)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50865| 0| ;} 50866| 0| break; 50867| | 50868| 0| case 2184: ------------------ | Branch (50868:3): [True: 0, False: 76.7M] ------------------ 50869| 0|#line 16118 "gram.y" 50870| 0| { 50871| 0| (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].list), NIL, (yylsp[(1) - (7)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50872| 0| ;} 50873| 0| break; 50874| | 50875| 0| case 2185: ------------------ | Branch (50875:3): [True: 0, False: 76.7M] ------------------ 50876| 0|#line 16122 "gram.y" 50877| 0| { 50878| 0| (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (7)].str), NIL, (yyvsp[(6) - (7)].list), (yylsp[(1) - (7)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50879| 0| ;} 50880| 0| break; 50881| | 50882| 0| case 2186: ------------------ | Branch (50882:3): [True: 0, False: 76.7M] ------------------ 50883| 0|#line 16126 "gram.y" 50884| 0| { 50885| 0| (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[(4) - (9)].str), (yyvsp[(6) - (9)].list), (yyvsp[(8) - (9)].list), (yylsp[(1) - (9)])); 50886| 0| ;} 50887| 0| break; 50888| | 50889| 0| case 2187: ------------------ | Branch (50889:3): [True: 0, False: 76.7M] ------------------ 50890| 0|#line 16130 "gram.y" 50891| 0| { 50892| | /* xmlexists(A PASSING [BY REF] B [BY REF]) is 50893| | * converted to xmlexists(A, B)*/ 50894| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"), 50895| 0| list_make2((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50896| 0| COERCE_SQL_SYNTAX, 50897| 0| (yylsp[(1) - (5)])); 50898| 0| ;} 50899| 0| break; 50900| | 50901| 0| case 2188: ------------------ | Branch (50901:3): [True: 0, False: 76.7M] ------------------ 50902| 0|#line 16139 "gram.y" 50903| 0| { 50904| 0| (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[(3) - (4)].list), NIL, (yylsp[(1) - (4)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50905| 0| ;} 50906| 0| break; 50907| | 50908| 0| case 2189: ------------------ | Branch (50908:3): [True: 0, False: 76.7M] ------------------ 50909| 0|#line 16143 "gram.y" 50910| 0| { 50911| 0| XmlExpr *x = (XmlExpr *) 50912| 0| makeXmlExpr(IS_XMLPARSE, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50913| 0| list_make2((yyvsp[(4) - (6)].node), makeBoolAConst((yyvsp[(5) - (6)].boolean), -1)), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50914| 0| (yylsp[(1) - (6)])); 50915| | 50916| 0| x->xmloption = (yyvsp[(3) - (6)].ival); 50917| 0| (yyval.node) = (Node *) x; 50918| 0| ;} 50919| 0| break; 50920| | 50921| 0| case 2190: ------------------ | Branch (50921:3): [True: 0, False: 76.7M] ------------------ 50922| 0|#line 16153 "gram.y" 50923| 0| { 50924| 0| (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (5)].str), NULL, NIL, (yylsp[(1) - (5)])); ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50925| 0| ;} 50926| 0| break; 50927| | 50928| 0| case 2191: ------------------ | Branch (50928:3): [True: 0, False: 76.7M] ------------------ 50929| 0|#line 16157 "gram.y" 50930| 0| { 50931| 0| (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[(4) - (7)].str), NULL, list_make1((yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50932| 0| ;} 50933| 0| break; 50934| | 50935| 0| case 2192: ------------------ | Branch (50935:3): [True: 0, False: 76.7M] ------------------ 50936| 0|#line 16161 "gram.y" 50937| 0| { 50938| 0| (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL, ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 50939| 0| list_make3((yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(6) - (7)].node)), (yylsp[(1) - (7)])); ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 50940| 0| ;} 50941| 0| break; 50942| | 50943| 0| case 2193: ------------------ | Branch (50943:3): [True: 0, False: 76.7M] ------------------ 50944| 0|#line 16166 "gram.y" 50945| 0| { 50946| 0| XmlSerialize *n = makeNode(XmlSerialize); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50947| | 50948| 0| n->xmloption = (yyvsp[(3) - (8)].ival); 50949| 0| n->expr = (yyvsp[(4) - (8)].node); 50950| 0| n->typeName = (yyvsp[(6) - (8)].typnam); 50951| 0| n->indent = (yyvsp[(7) - (8)].boolean); 50952| 0| n->location = (yylsp[(1) - (8)]); 50953| 0| (yyval.node) = (Node *) n; 50954| 0| ;} 50955| 0| break; 50956| | 50957| 0| case 2194: ------------------ | Branch (50957:3): [True: 0, False: 76.7M] ------------------ 50958| 0|#line 16177 "gram.y" 50959| 0| { 50960| | /* Support for legacy (non-standard) json_object() */ 50961| 0| (yyval.node) = (Node *) makeFuncCall(SystemFuncName("json_object"), 50962| 0| (yyvsp[(3) - (4)].list), COERCE_EXPLICIT_CALL, (yylsp[(1) - (4)])); 50963| 0| ;} 50964| 0| break; 50965| | 50966| 0| case 2195: ------------------ | Branch (50966:3): [True: 0, False: 76.7M] ------------------ 50967| 0|#line 16186 "gram.y" 50968| 0| { 50969| 0| JsonObjectConstructor *n = makeNode(JsonObjectConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50970| | 50971| 0| n->exprs = (yyvsp[(3) - (7)].list); 50972| 0| n->absent_on_null = (yyvsp[(4) - (7)].boolean); 50973| 0| n->unique = (yyvsp[(5) - (7)].boolean); 50974| 0| n->output = (JsonOutput *) (yyvsp[(6) - (7)].node); 50975| 0| n->location = (yylsp[(1) - (7)]); 50976| 0| (yyval.node) = (Node *) n; 50977| 0| ;} 50978| 0| break; 50979| | 50980| 0| case 2196: ------------------ | Branch (50980:3): [True: 0, False: 76.7M] ------------------ 50981| 0|#line 16197 "gram.y" 50982| 0| { 50983| 0| JsonObjectConstructor *n = makeNode(JsonObjectConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50984| | 50985| 0| n->exprs = NULL; 50986| 0| n->absent_on_null = false; 50987| 0| n->unique = false; 50988| 0| n->output = (JsonOutput *) (yyvsp[(3) - (4)].node); 50989| 0| n->location = (yylsp[(1) - (4)]); 50990| 0| (yyval.node) = (Node *) n; 50991| 0| ;} 50992| 0| break; 50993| | 50994| 0| case 2197: ------------------ | Branch (50994:3): [True: 0, False: 76.7M] ------------------ 50995| 0|#line 16212 "gram.y" 50996| 0| { 50997| 0| JsonArrayConstructor *n = makeNode(JsonArrayConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 50998| | 50999| 0| n->exprs = (yyvsp[(3) - (6)].list); 51000| 0| n->absent_on_null = (yyvsp[(4) - (6)].boolean); 51001| 0| n->output = (JsonOutput *) (yyvsp[(5) - (6)].node); 51002| 0| n->location = (yylsp[(1) - (6)]); 51003| 0| (yyval.node) = (Node *) n; 51004| 0| ;} 51005| 0| break; 51006| | 51007| 0| case 2198: ------------------ | Branch (51007:3): [True: 0, False: 76.7M] ------------------ 51008| 0|#line 16227 "gram.y" 51009| 0| { 51010| 0| JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51011| | 51012| 0| n->query = (yyvsp[(3) - (6)].node); 51013| 0| n->format = (JsonFormat *) (yyvsp[(4) - (6)].node); 51014| 0| n->absent_on_null = true; /* XXX */ 51015| 0| n->output = (JsonOutput *) (yyvsp[(5) - (6)].node); 51016| 0| n->location = (yylsp[(1) - (6)]); 51017| 0| (yyval.node) = (Node *) n; 51018| 0| ;} 51019| 0| break; 51020| | 51021| 0| case 2199: ------------------ | Branch (51021:3): [True: 0, False: 76.7M] ------------------ 51022| 0|#line 16240 "gram.y" 51023| 0| { 51024| 0| JsonArrayConstructor *n = makeNode(JsonArrayConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51025| | 51026| 0| n->exprs = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 51027| 0| n->absent_on_null = true; 51028| 0| n->output = (JsonOutput *) (yyvsp[(3) - (4)].node); 51029| 0| n->location = (yylsp[(1) - (4)]); 51030| 0| (yyval.node) = (Node *) n; 51031| 0| ;} 51032| 0| break; 51033| | 51034| 4.63k| case 2200: ------------------ | Branch (51034:3): [True: 4.63k, False: 76.7M] ------------------ 51035| 4.63k|#line 16250 "gram.y" 51036| 4.63k| { 51037| 4.63k| JsonParseExpr *n = makeNode(JsonParseExpr); ------------------ | | 161| 4.63k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51038| | 51039| 4.63k| n->expr = (JsonValueExpr *) (yyvsp[(3) - (5)].node); 51040| 4.63k| n->unique_keys = (yyvsp[(4) - (5)].boolean); 51041| 4.63k| n->output = NULL; 51042| 4.63k| n->location = (yylsp[(1) - (5)]); 51043| 4.63k| (yyval.node) = (Node *) n; 51044| 4.63k| ;} 51045| 4.63k| break; 51046| | 51047| 0| case 2201: ------------------ | Branch (51047:3): [True: 0, False: 76.7M] ------------------ 51048| 0|#line 16260 "gram.y" 51049| 0| { 51050| 0| JsonScalarExpr *n = makeNode(JsonScalarExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51051| | 51052| 0| n->expr = (Expr *) (yyvsp[(3) - (4)].node); 51053| 0| n->output = NULL; 51054| 0| n->location = (yylsp[(1) - (4)]); 51055| 0| (yyval.node) = (Node *) n; 51056| 0| ;} 51057| 0| break; 51058| | 51059| 0| case 2202: ------------------ | Branch (51059:3): [True: 0, False: 76.7M] ------------------ 51060| 0|#line 16269 "gram.y" 51061| 0| { 51062| 0| JsonSerializeExpr *n = makeNode(JsonSerializeExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51063| | 51064| 0| n->expr = (JsonValueExpr *) (yyvsp[(3) - (5)].node); 51065| 0| n->output = (JsonOutput *) (yyvsp[(4) - (5)].node); 51066| 0| n->location = (yylsp[(1) - (5)]); 51067| 0| (yyval.node) = (Node *) n; 51068| 0| ;} 51069| 0| break; 51070| | 51071| 0| case 2203: ------------------ | Branch (51071:3): [True: 0, False: 76.7M] ------------------ 51072| 0|#line 16278 "gram.y" 51073| 0| { 51074| 0| MergeSupportFunc *m = makeNode(MergeSupportFunc); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51075| | 51076| 0| m->msftype = TEXTOID; ------------------ | | 150| 0|#define TEXTOID 25 ------------------ 51077| 0| m->location = (yylsp[(1) - (3)]); 51078| 0| (yyval.node) = (Node *) m; 51079| 0| ;} 51080| 0| break; 51081| | 51082| 0| case 2204: ------------------ | Branch (51082:3): [True: 0, False: 76.7M] ------------------ 51083| 0|#line 16292 "gram.y" 51084| 0| { 51085| 0| JsonFuncExpr *n = makeNode(JsonFuncExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51086| | 51087| 0| n->op = JSON_QUERY_OP; 51088| 0| n->context_item = (JsonValueExpr *) (yyvsp[(3) - (11)].node); 51089| 0| n->pathspec = (yyvsp[(5) - (11)].node); 51090| 0| n->passing = (yyvsp[(6) - (11)].list); 51091| 0| n->output = (JsonOutput *) (yyvsp[(7) - (11)].node); 51092| 0| n->wrapper = (yyvsp[(8) - (11)].ival); 51093| 0| n->quotes = (yyvsp[(9) - (11)].ival); 51094| 0| n->on_empty = (JsonBehavior *) linitial((yyvsp[(10) - (11)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 51095| 0| n->on_error = (JsonBehavior *) lsecond((yyvsp[(10) - (11)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 51096| 0| n->location = (yylsp[(1) - (11)]); 51097| 0| (yyval.node) = (Node *) n; 51098| 0| ;} 51099| 0| break; 51100| | 51101| 0| case 2205: ------------------ | Branch (51101:3): [True: 0, False: 76.7M] ------------------ 51102| 0|#line 16311 "gram.y" 51103| 0| { 51104| 0| JsonFuncExpr *n = makeNode(JsonFuncExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51105| | 51106| 0| n->op = JSON_EXISTS_OP; 51107| 0| n->context_item = (JsonValueExpr *) (yyvsp[(3) - (8)].node); 51108| 0| n->pathspec = (yyvsp[(5) - (8)].node); 51109| 0| n->passing = (yyvsp[(6) - (8)].list); 51110| 0| n->output = NULL; 51111| 0| n->on_error = (JsonBehavior *) (yyvsp[(7) - (8)].node); 51112| 0| n->location = (yylsp[(1) - (8)]); 51113| 0| (yyval.node) = (Node *) n; 51114| 0| ;} 51115| 0| break; 51116| | 51117| 0| case 2206: ------------------ | Branch (51117:3): [True: 0, False: 76.7M] ------------------ 51118| 0|#line 16328 "gram.y" 51119| 0| { 51120| 0| JsonFuncExpr *n = makeNode(JsonFuncExpr); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51121| | 51122| 0| n->op = JSON_VALUE_OP; 51123| 0| n->context_item = (JsonValueExpr *) (yyvsp[(3) - (9)].node); 51124| 0| n->pathspec = (yyvsp[(5) - (9)].node); 51125| 0| n->passing = (yyvsp[(6) - (9)].list); 51126| 0| n->output = (JsonOutput *) (yyvsp[(7) - (9)].node); 51127| 0| n->on_empty = (JsonBehavior *) linitial((yyvsp[(8) - (9)].list)); ------------------ | | 178| 0|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 51128| 0| n->on_error = (JsonBehavior *) lsecond((yyvsp[(8) - (9)].list)); ------------------ | | 183| 0|#define lsecond(l) lfirst(list_nth_cell(l, 1)) | | ------------------ | | | | 172| 0|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 51129| 0| n->location = (yylsp[(1) - (9)]); 51130| 0| (yyval.node) = (Node *) n; 51131| 0| ;} 51132| 0| break; 51133| | 51134| 0| case 2207: ------------------ | Branch (51134:3): [True: 0, False: 76.7M] ------------------ 51135| 0|#line 16348 "gram.y" 51136| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 51137| 0| break; 51138| | 51139| 0| case 2208: ------------------ | Branch (51139:3): [True: 0, False: 76.7M] ------------------ 51140| 0|#line 16350 "gram.y" 51141| 0| { (yyval.node) = makeNullAConst(-1); ;} 51142| 0| break; 51143| | 51144| 0| case 2209: ------------------ | Branch (51144:3): [True: 0, False: 76.7M] ------------------ 51145| 0|#line 16354 "gram.y" 51146| 0| { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); ;} 51147| 0| break; 51148| | 51149| 0| case 2210: ------------------ | Branch (51149:3): [True: 0, False: 76.7M] ------------------ 51150| 0|#line 16356 "gram.y" 51151| 0| { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); ;} 51152| 0| break; 51153| | 51154| 0| case 2211: ------------------ | Branch (51154:3): [True: 0, False: 76.7M] ------------------ 51155| 0|#line 16358 "gram.y" 51156| 0| { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); ;} 51157| 0| break; 51158| | 51159| 0| case 2212: ------------------ | Branch (51159:3): [True: 0, False: 76.7M] ------------------ 51160| 0|#line 16360 "gram.y" 51161| 0| { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); ;} 51162| 0| break; 51163| | 51164| 0| case 2213: ------------------ | Branch (51164:3): [True: 0, False: 76.7M] ------------------ 51165| 0|#line 16363 "gram.y" 51166| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51167| 0| break; 51168| | 51169| 0| case 2214: ------------------ | Branch (51169:3): [True: 0, False: 76.7M] ------------------ 51170| 0|#line 16366 "gram.y" 51171| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51172| 0| break; 51173| | 51174| 0| case 2215: ------------------ | Branch (51174:3): [True: 0, False: 76.7M] ------------------ 51175| 0|#line 16367 "gram.y" 51176| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} 51177| 0| break; 51178| | 51179| 0| case 2216: ------------------ | Branch (51179:3): [True: 0, False: 76.7M] ------------------ 51180| 0|#line 16371 "gram.y" 51181| 0| { 51182| 0| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51183| 0| (yyval.target)->name = (yyvsp[(3) - (3)].str); 51184| 0| (yyval.target)->indirection = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 51185| 0| (yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node); 51186| 0| (yyval.target)->location = (yylsp[(1) - (3)]); 51187| 0| ;} 51188| 0| break; 51189| | 51190| 0| case 2217: ------------------ | Branch (51190:3): [True: 0, False: 76.7M] ------------------ 51191| 0|#line 16379 "gram.y" 51192| 0| { 51193| 0| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51194| 0| (yyval.target)->name = NULL; 51195| 0| (yyval.target)->indirection = NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 51196| 0| (yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node); 51197| 0| (yyval.target)->location = (yylsp[(1) - (1)]); 51198| 0| ;} 51199| 0| break; 51200| | 51201| 0| case 2218: ------------------ | Branch (51201:3): [True: 0, False: 76.7M] ------------------ 51202| 0|#line 16388 "gram.y" 51203| 0| { (yyval.ival) = XMLOPTION_DOCUMENT; ;} 51204| 0| break; 51205| | 51206| 0| case 2219: ------------------ | Branch (51206:3): [True: 0, False: 76.7M] ------------------ 51207| 0|#line 16389 "gram.y" 51208| 0| { (yyval.ival) = XMLOPTION_CONTENT; ;} 51209| 0| break; 51210| | 51211| 0| case 2220: ------------------ | Branch (51211:3): [True: 0, False: 76.7M] ------------------ 51212| 0|#line 16392 "gram.y" 51213| 0| { (yyval.boolean) = true; ;} 51214| 0| break; 51215| | 51216| 0| case 2221: ------------------ | Branch (51216:3): [True: 0, False: 76.7M] ------------------ 51217| 0|#line 16393 "gram.y" 51218| 0| { (yyval.boolean) = false; ;} 51219| 0| break; 51220| | 51221| 0| case 2222: ------------------ | Branch (51221:3): [True: 0, False: 76.7M] ------------------ 51222| 0|#line 16394 "gram.y" 51223| 0| { (yyval.boolean) = false; ;} 51224| 0| break; 51225| | 51226| 0| case 2223: ------------------ | Branch (51226:3): [True: 0, False: 76.7M] ------------------ 51227| 0|#line 16397 "gram.y" 51228| 0| { (yyval.boolean) = true; ;} 51229| 0| break; 51230| | 51231| 0| case 2224: ------------------ | Branch (51231:3): [True: 0, False: 76.7M] ------------------ 51232| 0|#line 16398 "gram.y" 51233| 0| { (yyval.boolean) = false; ;} 51234| 0| break; 51235| | 51236| 0| case 2225: ------------------ | Branch (51236:3): [True: 0, False: 76.7M] ------------------ 51237| 0|#line 16399 "gram.y" 51238| 0| { (yyval.boolean) = false; ;} 51239| 0| break; 51240| | 51241| 0| case 2226: ------------------ | Branch (51241:3): [True: 0, False: 76.7M] ------------------ 51242| 0|#line 16405 "gram.y" 51243| 0| { 51244| 0| (yyval.node) = (yyvsp[(2) - (2)].node); 51245| 0| ;} 51246| 0| break; 51247| | 51248| 0| case 2227: ------------------ | Branch (51248:3): [True: 0, False: 76.7M] ------------------ 51249| 0|#line 16409 "gram.y" 51250| 0| { 51251| 0| (yyval.node) = (yyvsp[(2) - (3)].node); 51252| 0| ;} 51253| 0| break; 51254| | 51255| 0| case 2228: ------------------ | Branch (51255:3): [True: 0, False: 76.7M] ------------------ 51256| 0|#line 16413 "gram.y" 51257| 0| { 51258| 0| (yyval.node) = (yyvsp[(3) - (3)].node); 51259| 0| ;} 51260| 0| break; 51261| | 51262| 0| case 2229: ------------------ | Branch (51262:3): [True: 0, False: 76.7M] ------------------ 51263| 0|#line 16417 "gram.y" 51264| 0| { 51265| 0| (yyval.node) = (yyvsp[(3) - (4)].node); 51266| 0| ;} 51267| 0| break; 51268| | 51269| 0| case 2232: ------------------ | Branch (51269:3): [True: 0, False: 76.7M] ------------------ 51270| 0|#line 16432 "gram.y" 51271| 0| { (yyval.list) = (yyvsp[(4) - (5)].list); ;} 51272| 0| break; 51273| | 51274| 29.8k| case 2233: ------------------ | Branch (51274:3): [True: 29.8k, False: 76.7M] ------------------ 51275| 29.8k|#line 16433 "gram.y" 51276| 29.8k| { (yyval.list) = NIL; ;} ------------------ | | 68| 29.8k|#define NIL ((List *) NULL) ------------------ 51277| 29.8k| break; 51278| | 51279| 0| case 2234: ------------------ | Branch (51279:3): [True: 0, False: 76.7M] ------------------ 51280| 0|#line 16437 "gram.y" 51281| 0| { (yyval.node) = (yyvsp[(4) - (5)].node); ;} 51282| 0| break; 51283| | 51284| 29.8k| case 2235: ------------------ | Branch (51284:3): [True: 29.8k, False: 76.7M] ------------------ 51285| 29.8k|#line 16438 "gram.y" 51286| 29.8k| { (yyval.node) = NULL; ;} 51287| 29.8k| break; 51288| | 51289| 2| case 2236: ------------------ | Branch (51289:3): [True: 2, False: 76.7M] ------------------ 51290| 2|#line 16446 "gram.y" 51291| 2| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 51292| 2| break; 51293| | 51294| 28.4k| case 2237: ------------------ | Branch (51294:3): [True: 28.4k, False: 76.7M] ------------------ 51295| 28.4k|#line 16447 "gram.y" 51296| 28.4k| { (yyval.list) = NIL; ;} ------------------ | | 68| 28.4k|#define NIL ((List *) NULL) ------------------ 51297| 28.4k| break; 51298| | 51299| 2| case 2238: ------------------ | Branch (51299:3): [True: 2, False: 76.7M] ------------------ 51300| 2|#line 16451 "gram.y" 51301| 2| { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} ------------------ | | 213| 2| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51302| 2| break; 51303| | 51304| 0| case 2239: ------------------ | Branch (51304:3): [True: 0, False: 76.7M] ------------------ 51305| 0|#line 16453 "gram.y" 51306| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} 51307| 0| break; 51308| | 51309| 2| case 2240: ------------------ | Branch (51309:3): [True: 2, False: 76.7M] ------------------ 51310| 2|#line 16458 "gram.y" 51311| 2| { 51312| 2| WindowDef *n = (yyvsp[(3) - (3)].windef); 51313| | 51314| 2| n->name = (yyvsp[(1) - (3)].str); 51315| 2| (yyval.windef) = n; 51316| 2| ;} 51317| 2| break; 51318| | 51319| 10.3k| case 2241: ------------------ | Branch (51319:3): [True: 10.3k, False: 76.7M] ------------------ 51320| 10.3k|#line 16467 "gram.y" 51321| 10.3k| { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} 51322| 10.3k| break; 51323| | 51324| 7| case 2242: ------------------ | Branch (51324:3): [True: 7, False: 76.7M] ------------------ 51325| 7|#line 16469 "gram.y" 51326| 7| { 51327| 7| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 7|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51328| | 51329| 7| n->name = (yyvsp[(2) - (2)].str); 51330| 7| n->refname = NULL; 51331| 7| n->partitionClause = NIL; ------------------ | | 68| 7|#define NIL ((List *) NULL) ------------------ 51332| 7| n->orderClause = NIL; ------------------ | | 68| 7|#define NIL ((List *) NULL) ------------------ 51333| 7| n->frameOptions = FRAMEOPTION_DEFAULTS; ------------------ | | 635| 7| (FRAMEOPTION_RANGE | FRAMEOPTION_START_UNBOUNDED_PRECEDING | \ | | ------------------ | | | | 608| 7|#define FRAMEOPTION_RANGE 0x00002 /* RANGE behavior */ | | ------------------ | | (FRAMEOPTION_RANGE | FRAMEOPTION_START_UNBOUNDED_PRECEDING | \ | | ------------------ | | | | 612| 7|#define FRAMEOPTION_START_UNBOUNDED_PRECEDING 0x00020 /* start is U. P. */ | | ------------------ | | 636| 7| FRAMEOPTION_END_CURRENT_ROW) | | ------------------ | | | | 617| 7|#define FRAMEOPTION_END_CURRENT_ROW 0x00400 /* end is C. R. */ | | ------------------ ------------------ 51334| 7| n->startOffset = NULL; 51335| 7| n->endOffset = NULL; 51336| 7| n->location = (yylsp[(2) - (2)]); 51337| 7| (yyval.windef) = n; 51338| 7| ;} 51339| 7| break; 51340| | 51341| 19.4k| case 2243: ------------------ | Branch (51341:3): [True: 19.4k, False: 76.7M] ------------------ 51342| 19.4k|#line 16483 "gram.y" 51343| 19.4k| { (yyval.windef) = NULL; ;} 51344| 19.4k| break; 51345| | 51346| 10.3k| case 2244: ------------------ | Branch (51346:3): [True: 10.3k, False: 76.7M] ------------------ 51347| 10.3k|#line 16488 "gram.y" 51348| 10.3k| { 51349| 10.3k| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 10.3k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51350| | 51351| 10.3k| n->name = NULL; 51352| 10.3k| n->refname = (yyvsp[(2) - (6)].str); 51353| 10.3k| n->partitionClause = (yyvsp[(3) - (6)].list); 51354| 10.3k| n->orderClause = (yyvsp[(4) - (6)].list); 51355| | /* copy relevant fields of opt_frame_clause */ 51356| 10.3k| n->frameOptions = (yyvsp[(5) - (6)].windef)->frameOptions; 51357| 10.3k| n->startOffset = (yyvsp[(5) - (6)].windef)->startOffset; 51358| 10.3k| n->endOffset = (yyvsp[(5) - (6)].windef)->endOffset; 51359| 10.3k| n->location = (yylsp[(1) - (6)]); 51360| 10.3k| (yyval.windef) = n; 51361| 10.3k| ;} 51362| 10.3k| break; 51363| | 51364| 4.09k| case 2245: ------------------ | Branch (51364:3): [True: 4.09k, False: 76.7M] ------------------ 51365| 4.09k|#line 16514 "gram.y" 51366| 4.09k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 51367| 4.09k| break; 51368| | 51369| 6.29k| case 2246: ------------------ | Branch (51369:3): [True: 6.29k, False: 76.7M] ------------------ 51370| 6.29k|#line 16515 "gram.y" 51371| 6.29k| { (yyval.str) = NULL; ;} 51372| 6.29k| break; 51373| | 51374| 0| case 2247: ------------------ | Branch (51374:3): [True: 0, False: 76.7M] ------------------ 51375| 0|#line 16518 "gram.y" 51376| 0| { (yyval.list) = (yyvsp[(3) - (3)].list); ;} 51377| 0| break; 51378| | 51379| 10.3k| case 2248: ------------------ | Branch (51379:3): [True: 10.3k, False: 76.7M] ------------------ 51380| 10.3k|#line 16519 "gram.y" 51381| 10.3k| { (yyval.list) = NIL; ;} ------------------ | | 68| 10.3k|#define NIL ((List *) NULL) ------------------ 51382| 10.3k| break; 51383| | 51384| 0| case 2249: ------------------ | Branch (51384:3): [True: 0, False: 76.7M] ------------------ 51385| 0|#line 16528 "gram.y" 51386| 0| { 51387| 0| WindowDef *n = (yyvsp[(2) - (3)].windef); 51388| | 51389| 0| n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; ------------------ | | 607| 0|#define FRAMEOPTION_NONDEFAULT 0x00001 /* any specified? */ ------------------ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; ------------------ | | 608| 0|#define FRAMEOPTION_RANGE 0x00002 /* RANGE behavior */ ------------------ 51390| 0| n->frameOptions |= (yyvsp[(3) - (3)].ival); 51391| 0| (yyval.windef) = n; 51392| 0| ;} 51393| 0| break; 51394| | 51395| 0| case 2250: ------------------ | Branch (51395:3): [True: 0, False: 76.7M] ------------------ 51396| 0|#line 16536 "gram.y" 51397| 0| { 51398| 0| WindowDef *n = (yyvsp[(2) - (3)].windef); 51399| | 51400| 0| n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; ------------------ | | 607| 0|#define FRAMEOPTION_NONDEFAULT 0x00001 /* any specified? */ ------------------ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS; ------------------ | | 609| 0|#define FRAMEOPTION_ROWS 0x00004 /* ROWS behavior */ ------------------ 51401| 0| n->frameOptions |= (yyvsp[(3) - (3)].ival); 51402| 0| (yyval.windef) = n; 51403| 0| ;} 51404| 0| break; 51405| | 51406| 0| case 2251: ------------------ | Branch (51406:3): [True: 0, False: 76.7M] ------------------ 51407| 0|#line 16544 "gram.y" 51408| 0| { 51409| 0| WindowDef *n = (yyvsp[(2) - (3)].windef); 51410| | 51411| 0| n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; ------------------ | | 607| 0|#define FRAMEOPTION_NONDEFAULT 0x00001 /* any specified? */ ------------------ n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS; ------------------ | | 610| 0|#define FRAMEOPTION_GROUPS 0x00008 /* GROUPS behavior */ ------------------ 51412| 0| n->frameOptions |= (yyvsp[(3) - (3)].ival); 51413| 0| (yyval.windef) = n; 51414| 0| ;} 51415| 0| break; 51416| | 51417| 10.3k| case 2252: ------------------ | Branch (51417:3): [True: 10.3k, False: 76.7M] ------------------ 51418| 10.3k|#line 16552 "gram.y" 51419| 10.3k| { 51420| 10.3k| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 10.3k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51421| | 51422| 10.3k| n->frameOptions = FRAMEOPTION_DEFAULTS; ------------------ | | 635| 10.3k| (FRAMEOPTION_RANGE | FRAMEOPTION_START_UNBOUNDED_PRECEDING | \ | | ------------------ | | | | 608| 10.3k|#define FRAMEOPTION_RANGE 0x00002 /* RANGE behavior */ | | ------------------ | | (FRAMEOPTION_RANGE | FRAMEOPTION_START_UNBOUNDED_PRECEDING | \ | | ------------------ | | | | 612| 10.3k|#define FRAMEOPTION_START_UNBOUNDED_PRECEDING 0x00020 /* start is U. P. */ | | ------------------ | | 636| 10.3k| FRAMEOPTION_END_CURRENT_ROW) | | ------------------ | | | | 617| 10.3k|#define FRAMEOPTION_END_CURRENT_ROW 0x00400 /* end is C. R. */ | | ------------------ ------------------ 51423| 10.3k| n->startOffset = NULL; 51424| 10.3k| n->endOffset = NULL; 51425| 10.3k| (yyval.windef) = n; 51426| 10.3k| ;} 51427| 10.3k| break; 51428| | 51429| 0| case 2253: ------------------ | Branch (51429:3): [True: 0, False: 76.7M] ------------------ 51430| 0|#line 16563 "gram.y" 51431| 0| { 51432| 0| WindowDef *n = (yyvsp[(1) - (1)].windef); 51433| | 51434| | /* reject invalid cases */ 51435| 0| if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ------------------ | | 614| 0|#define FRAMEOPTION_START_UNBOUNDED_FOLLOWING 0x00080 /* (disallowed) */ ------------------ | Branch (51435:10): [True: 0, False: 0] ------------------ 51436| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51437| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51438| 0| errmsg("frame start cannot be UNBOUNDED FOLLOWING"), 51439| 0| parser_errposition((yylsp[(1) - (1)])))); 51440| 0| if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) ------------------ | | 620| 0|#define FRAMEOPTION_START_OFFSET_FOLLOWING 0x02000 /* start is O. F. */ ------------------ | Branch (51440:10): [True: 0, False: 0] ------------------ 51441| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51442| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51443| 0| errmsg("frame starting from following row cannot end with current row"), 51444| 0| parser_errposition((yylsp[(1) - (1)])))); 51445| 0| n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; ------------------ | | 617| 0|#define FRAMEOPTION_END_CURRENT_ROW 0x00400 /* end is C. R. */ ------------------ 51446| 0| (yyval.windef) = n; 51447| 0| ;} 51448| 0| break; 51449| | 51450| 0| case 2254: ------------------ | Branch (51450:3): [True: 0, False: 76.7M] ------------------ 51451| 0|#line 16581 "gram.y" 51452| 0| { 51453| 0| WindowDef *n1 = (yyvsp[(2) - (4)].windef); 51454| 0| WindowDef *n2 = (yyvsp[(4) - (4)].windef); 51455| | 51456| | /* form merged options */ 51457| 0| int frameOptions = n1->frameOptions; 51458| | /* shift converts START_ options to END_ options */ 51459| 0| frameOptions |= n2->frameOptions << 1; 51460| 0| frameOptions |= FRAMEOPTION_BETWEEN; ------------------ | | 611| 0|#define FRAMEOPTION_BETWEEN 0x00010 /* BETWEEN given? */ ------------------ 51461| | /* reject invalid cases */ 51462| 0| if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) ------------------ | | 614| 0|#define FRAMEOPTION_START_UNBOUNDED_FOLLOWING 0x00080 /* (disallowed) */ ------------------ | Branch (51462:10): [True: 0, False: 0] ------------------ 51463| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51464| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51465| 0| errmsg("frame start cannot be UNBOUNDED FOLLOWING"), 51466| 0| parser_errposition((yylsp[(2) - (4)])))); 51467| 0| if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) ------------------ | | 613| 0|#define FRAMEOPTION_END_UNBOUNDED_PRECEDING 0x00040 /* (disallowed) */ ------------------ | Branch (51467:10): [True: 0, False: 0] ------------------ 51468| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51469| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51470| 0| errmsg("frame end cannot be UNBOUNDED PRECEDING"), 51471| 0| parser_errposition((yylsp[(4) - (4)])))); 51472| 0| if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && ------------------ | | 616| 0|#define FRAMEOPTION_START_CURRENT_ROW 0x00200 /* start is C. R. */ ------------------ | Branch (51472:10): [True: 0, False: 0] ------------------ 51473| 0| (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING)) ------------------ | | 619| 0|#define FRAMEOPTION_END_OFFSET_PRECEDING 0x01000 /* end is O. P. */ ------------------ | Branch (51473:7): [True: 0, False: 0] ------------------ 51474| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51475| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51476| 0| errmsg("frame starting from current row cannot have preceding rows"), 51477| 0| parser_errposition((yylsp[(4) - (4)])))); 51478| 0| if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) && ------------------ | | 620| 0|#define FRAMEOPTION_START_OFFSET_FOLLOWING 0x02000 /* start is O. F. */ ------------------ | Branch (51478:10): [True: 0, False: 0] ------------------ 51479| 0| (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING | ------------------ | | 619| 0|#define FRAMEOPTION_END_OFFSET_PRECEDING 0x01000 /* end is O. P. */ ------------------ | Branch (51479:7): [True: 0, False: 0] ------------------ 51480| 0| FRAMEOPTION_END_CURRENT_ROW))) ------------------ | | 617| 0|#define FRAMEOPTION_END_CURRENT_ROW 0x00400 /* end is C. R. */ ------------------ 51481| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 51482| 0| (errcode(ERRCODE_WINDOWING_ERROR), 51483| 0| errmsg("frame starting from following row cannot have preceding rows"), 51484| 0| parser_errposition((yylsp[(4) - (4)])))); 51485| 0| n1->frameOptions = frameOptions; 51486| 0| n1->endOffset = n2->startOffset; 51487| 0| (yyval.windef) = n1; 51488| 0| ;} 51489| 0| break; 51490| | 51491| 0| case 2255: ------------------ | Branch (51491:3): [True: 0, False: 76.7M] ------------------ 51492| 0|#line 16627 "gram.y" 51493| 0| { 51494| 0| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51495| | 51496| 0| n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING; ------------------ | | 612| 0|#define FRAMEOPTION_START_UNBOUNDED_PRECEDING 0x00020 /* start is U. P. */ ------------------ 51497| 0| n->startOffset = NULL; 51498| 0| n->endOffset = NULL; 51499| 0| (yyval.windef) = n; 51500| 0| ;} 51501| 0| break; 51502| | 51503| 0| case 2256: ------------------ | Branch (51503:3): [True: 0, False: 76.7M] ------------------ 51504| 0|#line 16636 "gram.y" 51505| 0| { 51506| 0| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51507| | 51508| 0| n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING; ------------------ | | 614| 0|#define FRAMEOPTION_START_UNBOUNDED_FOLLOWING 0x00080 /* (disallowed) */ ------------------ 51509| 0| n->startOffset = NULL; 51510| 0| n->endOffset = NULL; 51511| 0| (yyval.windef) = n; 51512| 0| ;} 51513| 0| break; 51514| | 51515| 0| case 2257: ------------------ | Branch (51515:3): [True: 0, False: 76.7M] ------------------ 51516| 0|#line 16645 "gram.y" 51517| 0| { 51518| 0| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51519| | 51520| 0| n->frameOptions = FRAMEOPTION_START_CURRENT_ROW; ------------------ | | 616| 0|#define FRAMEOPTION_START_CURRENT_ROW 0x00200 /* start is C. R. */ ------------------ 51521| 0| n->startOffset = NULL; 51522| 0| n->endOffset = NULL; 51523| 0| (yyval.windef) = n; 51524| 0| ;} 51525| 0| break; 51526| | 51527| 0| case 2258: ------------------ | Branch (51527:3): [True: 0, False: 76.7M] ------------------ 51528| 0|#line 16654 "gram.y" 51529| 0| { 51530| 0| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51531| | 51532| 0| n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING; ------------------ | | 618| 0|#define FRAMEOPTION_START_OFFSET_PRECEDING 0x00800 /* start is O. P. */ ------------------ 51533| 0| n->startOffset = (yyvsp[(1) - (2)].node); 51534| 0| n->endOffset = NULL; 51535| 0| (yyval.windef) = n; 51536| 0| ;} 51537| 0| break; 51538| | 51539| 0| case 2259: ------------------ | Branch (51539:3): [True: 0, False: 76.7M] ------------------ 51540| 0|#line 16663 "gram.y" 51541| 0| { 51542| 0| WindowDef *n = makeNode(WindowDef); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51543| | 51544| 0| n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING; ------------------ | | 620| 0|#define FRAMEOPTION_START_OFFSET_FOLLOWING 0x02000 /* start is O. F. */ ------------------ 51545| 0| n->startOffset = (yyvsp[(1) - (2)].node); 51546| 0| n->endOffset = NULL; 51547| 0| (yyval.windef) = n; 51548| 0| ;} 51549| 0| break; 51550| | 51551| 0| case 2260: ------------------ | Branch (51551:3): [True: 0, False: 76.7M] ------------------ 51552| 0|#line 16674 "gram.y" 51553| 0| { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;} ------------------ | | 622| 0|#define FRAMEOPTION_EXCLUDE_CURRENT_ROW 0x08000 /* omit C.R. */ ------------------ 51554| 0| break; 51555| | 51556| 0| case 2261: ------------------ | Branch (51556:3): [True: 0, False: 76.7M] ------------------ 51557| 0|#line 16675 "gram.y" 51558| 0| { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;} ------------------ | | 623| 0|#define FRAMEOPTION_EXCLUDE_GROUP 0x10000 /* omit C.R. & peers */ ------------------ 51559| 0| break; 51560| | 51561| 0| case 2262: ------------------ | Branch (51561:3): [True: 0, False: 76.7M] ------------------ 51562| 0|#line 16676 "gram.y" 51563| 0| { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;} ------------------ | | 624| 0|#define FRAMEOPTION_EXCLUDE_TIES 0x20000 /* omit C.R.'s peers */ ------------------ 51564| 0| break; 51565| | 51566| 0| case 2263: ------------------ | Branch (51566:3): [True: 0, False: 76.7M] ------------------ 51567| 0|#line 16677 "gram.y" 51568| 0| { (yyval.ival) = 0; ;} 51569| 0| break; 51570| | 51571| 0| case 2264: ------------------ | Branch (51571:3): [True: 0, False: 76.7M] ------------------ 51572| 0|#line 16678 "gram.y" 51573| 0| { (yyval.ival) = 0; ;} 51574| 0| break; 51575| | 51576| 0| case 2265: ------------------ | Branch (51576:3): [True: 0, False: 76.7M] ------------------ 51577| 0|#line 16692 "gram.y" 51578| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51579| 0| break; 51580| | 51581| 0| case 2266: ------------------ | Branch (51581:3): [True: 0, False: 76.7M] ------------------ 51582| 0|#line 16693 "gram.y" 51583| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 51584| 0| break; 51585| | 51586| 0| case 2267: ------------------ | Branch (51586:3): [True: 0, False: 76.7M] ------------------ 51587| 0|#line 16694 "gram.y" 51588| 0| { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} 51589| 0| break; 51590| | 51591| 3| case 2268: ------------------ | Branch (51591:3): [True: 3, False: 76.7M] ------------------ 51592| 3|#line 16697 "gram.y" 51593| 3| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51594| 3| break; 51595| | 51596| 157| case 2269: ------------------ | Branch (51596:3): [True: 157, False: 76.7M] ------------------ 51597| 157|#line 16698 "gram.y" 51598| 157| { (yyval.list) = NIL; ;} ------------------ | | 68| 157|#define NIL ((List *) NULL) ------------------ 51599| 157| break; 51600| | 51601| 4.05k| case 2270: ------------------ | Branch (51601:3): [True: 4.05k, False: 76.7M] ------------------ 51602| 4.05k|#line 16701 "gram.y" 51603| 4.05k| { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} 51604| 4.05k| break; 51605| | 51606| 0| case 2271: ------------------ | Branch (51606:3): [True: 0, False: 76.7M] ------------------ 51607| 0|#line 16704 "gram.y" 51608| 0| { (yyval.ival) = ANY_SUBLINK; ;} 51609| 0| break; 51610| | 51611| 0| case 2272: ------------------ | Branch (51611:3): [True: 0, False: 76.7M] ------------------ 51612| 0|#line 16705 "gram.y" 51613| 0| { (yyval.ival) = ANY_SUBLINK; ;} 51614| 0| break; 51615| | 51616| 693| case 2273: ------------------ | Branch (51616:3): [True: 693, False: 76.7M] ------------------ 51617| 693|#line 16706 "gram.y" 51618| 693| { (yyval.ival) = ALL_SUBLINK; ;} 51619| 693| break; 51620| | 51621| 4.21k| case 2274: ------------------ | Branch (51621:3): [True: 4.21k, False: 76.7M] ------------------ 51622| 4.21k|#line 16709 "gram.y" 51623| 4.21k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 51624| 4.21k| break; 51625| | 51626| 3.16k| case 2275: ------------------ | Branch (51626:3): [True: 3.16k, False: 76.7M] ------------------ 51627| 3.16k|#line 16710 "gram.y" 51628| 3.16k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 51629| 3.16k| break; 51630| | 51631| 1| case 2276: ------------------ | Branch (51631:3): [True: 1, False: 76.7M] ------------------ 51632| 1|#line 16713 "gram.y" 51633| 1| { (yyval.str) = "+"; ;} 51634| 1| break; 51635| | 51636| 0| case 2277: ------------------ | Branch (51636:3): [True: 0, False: 76.7M] ------------------ 51637| 0|#line 16714 "gram.y" 51638| 0| { (yyval.str) = "-"; ;} 51639| 0| break; 51640| | 51641| 0| case 2278: ------------------ | Branch (51641:3): [True: 0, False: 76.7M] ------------------ 51642| 0|#line 16715 "gram.y" 51643| 0| { (yyval.str) = "*"; ;} 51644| 0| break; 51645| | 51646| 0| case 2279: ------------------ | Branch (51646:3): [True: 0, False: 76.7M] ------------------ 51647| 0|#line 16716 "gram.y" 51648| 0| { (yyval.str) = "/"; ;} 51649| 0| break; 51650| | 51651| 0| case 2280: ------------------ | Branch (51651:3): [True: 0, False: 76.7M] ------------------ 51652| 0|#line 16717 "gram.y" 51653| 0| { (yyval.str) = "%"; ;} 51654| 0| break; 51655| | 51656| 0| case 2281: ------------------ | Branch (51656:3): [True: 0, False: 76.7M] ------------------ 51657| 0|#line 16718 "gram.y" 51658| 0| { (yyval.str) = "^"; ;} 51659| 0| break; 51660| | 51661| 0| case 2282: ------------------ | Branch (51661:3): [True: 0, False: 76.7M] ------------------ 51662| 0|#line 16719 "gram.y" 51663| 0| { (yyval.str) = "<"; ;} 51664| 0| break; 51665| | 51666| 3.07k| case 2283: ------------------ | Branch (51666:3): [True: 3.07k, False: 76.7M] ------------------ 51667| 3.07k|#line 16720 "gram.y" 51668| 3.07k| { (yyval.str) = ">"; ;} 51669| 3.07k| break; 51670| | 51671| 95| case 2284: ------------------ | Branch (51671:3): [True: 95, False: 76.7M] ------------------ 51672| 95|#line 16721 "gram.y" 51673| 95| { (yyval.str) = "="; ;} 51674| 95| break; 51675| | 51676| 0| case 2285: ------------------ | Branch (51676:3): [True: 0, False: 76.7M] ------------------ 51677| 0|#line 16722 "gram.y" 51678| 0| { (yyval.str) = "<="; ;} 51679| 0| break; 51680| | 51681| 0| case 2286: ------------------ | Branch (51681:3): [True: 0, False: 76.7M] ------------------ 51682| 0|#line 16723 "gram.y" 51683| 0| { (yyval.str) = ">="; ;} 51684| 0| break; 51685| | 51686| 0| case 2287: ------------------ | Branch (51686:3): [True: 0, False: 76.7M] ------------------ 51687| 0|#line 16724 "gram.y" 51688| 0| { (yyval.str) = "<>"; ;} 51689| 0| break; 51690| | 51691| 433k| case 2288: ------------------ | Branch (51691:3): [True: 433k, False: 76.3M] ------------------ 51692| 433k|#line 16728 "gram.y" 51693| 433k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 433k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 433k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51694| 433k| break; 51695| | 51696| 0| case 2289: ------------------ | Branch (51696:3): [True: 0, False: 76.7M] ------------------ 51697| 0|#line 16730 "gram.y" 51698| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51699| 0| break; 51700| | 51701| 6.68k| case 2290: ------------------ | Branch (51701:3): [True: 6.68k, False: 76.7M] ------------------ 51702| 6.68k|#line 16735 "gram.y" 51703| 6.68k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 6.68k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 6.68k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51704| 6.68k| break; 51705| | 51706| 0| case 2291: ------------------ | Branch (51706:3): [True: 0, False: 76.7M] ------------------ 51707| 0|#line 16737 "gram.y" 51708| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51709| 0| break; 51710| | 51711| 695| case 2292: ------------------ | Branch (51711:3): [True: 695, False: 76.7M] ------------------ 51712| 695|#line 16742 "gram.y" 51713| 695| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 695| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 695|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51714| 695| break; 51715| | 51716| 0| case 2293: ------------------ | Branch (51716:3): [True: 0, False: 76.7M] ------------------ 51717| 0|#line 16744 "gram.y" 51718| 0| { (yyval.list) = (yyvsp[(3) - (4)].list); ;} 51719| 0| break; 51720| | 51721| 0| case 2294: ------------------ | Branch (51721:3): [True: 0, False: 76.7M] ------------------ 51722| 0|#line 16746 "gram.y" 51723| 0| { (yyval.list) = list_make1(makeString("~~")); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51724| 0| break; 51725| | 51726| 0| case 2295: ------------------ | Branch (51726:3): [True: 0, False: 76.7M] ------------------ 51727| 0|#line 16748 "gram.y" 51728| 0| { (yyval.list) = list_make1(makeString("!~~")); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51729| 0| break; 51730| | 51731| 0| case 2296: ------------------ | Branch (51731:3): [True: 0, False: 76.7M] ------------------ 51732| 0|#line 16750 "gram.y" 51733| 0| { (yyval.list) = list_make1(makeString("~~*")); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51734| 0| break; 51735| | 51736| 0| case 2297: ------------------ | Branch (51736:3): [True: 0, False: 76.7M] ------------------ 51737| 0|#line 16752 "gram.y" 51738| 0| { (yyval.list) = list_make1(makeString("!~~*")); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51739| 0| break; 51740| | 51741| 12.2k| case 2298: ------------------ | Branch (51741:3): [True: 12.2k, False: 76.7M] ------------------ 51742| 12.2k|#line 16764 "gram.y" 51743| 12.2k| { 51744| 12.2k| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 12.2k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 12.2k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51745| 12.2k| ;} 51746| 12.2k| break; 51747| | 51748| 201k| case 2299: ------------------ | Branch (51748:3): [True: 201k, False: 76.5M] ------------------ 51749| 201k|#line 16768 "gram.y" 51750| 201k| { 51751| 201k| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 51752| 201k| ;} 51753| 201k| break; 51754| | 51755| 17.9k| case 2300: ------------------ | Branch (51755:3): [True: 17.9k, False: 76.7M] ------------------ 51756| 17.9k|#line 16775 "gram.y" 51757| 17.9k| { 51758| 17.9k| (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ------------------ | | 213| 17.9k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 17.9k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51759| 17.9k| ;} 51760| 17.9k| break; 51761| | 51762| 11.0k| case 2301: ------------------ | Branch (51762:3): [True: 11.0k, False: 76.7M] ------------------ 51763| 11.0k|#line 16779 "gram.y" 51764| 11.0k| { 51765| 11.0k| (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); 51766| 11.0k| ;} 51767| 11.0k| break; 51768| | 51769| 28.5k| case 2302: ------------------ | Branch (51769:3): [True: 28.5k, False: 76.7M] ------------------ 51770| 28.5k|#line 16785 "gram.y" 51771| 28.5k| { 51772| 28.5k| (yyval.node) = (yyvsp[(1) - (1)].node); 51773| 28.5k| ;} 51774| 28.5k| break; 51775| | 51776| 85| case 2303: ------------------ | Branch (51776:3): [True: 85, False: 76.7M] ------------------ 51777| 85|#line 16789 "gram.y" 51778| 85| { 51779| 85| NamedArgExpr *na = makeNode(NamedArgExpr); ------------------ | | 161| 85|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51780| | 51781| 85| na->name = (yyvsp[(1) - (3)].str); 51782| 85| na->arg = (Expr *) (yyvsp[(3) - (3)].node); 51783| 85| na->argnumber = -1; /* until determined */ 51784| 85| na->location = (yylsp[(1) - (3)]); 51785| 85| (yyval.node) = (Node *) na; 51786| 85| ;} 51787| 85| break; 51788| | 51789| 306| case 2304: ------------------ | Branch (51789:3): [True: 306, False: 76.7M] ------------------ 51790| 306|#line 16799 "gram.y" 51791| 306| { 51792| 306| NamedArgExpr *na = makeNode(NamedArgExpr); ------------------ | | 161| 306|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 51793| | 51794| 306| na->name = (yyvsp[(1) - (3)].str); 51795| 306| na->arg = (Expr *) (yyvsp[(3) - (3)].node); 51796| 306| na->argnumber = -1; /* until determined */ 51797| 306| na->location = (yylsp[(1) - (3)]); 51798| 306| (yyval.node) = (Node *) na; 51799| 306| ;} 51800| 306| break; 51801| | 51802| 0| case 2305: ------------------ | Branch (51802:3): [True: 0, False: 76.7M] ------------------ 51803| 0|#line 16810 "gram.y" 51804| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 51805| 0| break; 51806| | 51807| 0| case 2306: ------------------ | Branch (51807:3): [True: 0, False: 76.7M] ------------------ 51808| 0|#line 16811 "gram.y" 51809| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 51810| 0| break; 51811| | 51812| 0| case 2307: ------------------ | Branch (51812:3): [True: 0, False: 76.7M] ------------------ 51813| 0|#line 16814 "gram.y" 51814| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51815| 0| break; 51816| | 51817| 0| case 2308: ------------------ | Branch (51817:3): [True: 0, False: 76.7M] ------------------ 51818| 0|#line 16815 "gram.y" 51819| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} 51820| 0| break; 51821| | 51822| 1.05k| case 2309: ------------------ | Branch (51822:3): [True: 1.05k, False: 76.7M] ------------------ 51823| 1.05k|#line 16819 "gram.y" 51824| 1.05k| { 51825| 1.05k| (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); 51826| 1.05k| ;} 51827| 1.05k| break; 51828| | 51829| 0| case 2310: ------------------ | Branch (51829:3): [True: 0, False: 76.7M] ------------------ 51830| 0|#line 16823 "gram.y" 51831| 0| { 51832| 0| (yyval.node) = makeAArrayExpr((yyvsp[(2) - (3)].list), (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); 51833| 0| ;} 51834| 0| break; 51835| | 51836| 2.29k| case 2311: ------------------ | Branch (51836:3): [True: 2.29k, False: 76.7M] ------------------ 51837| 2.29k|#line 16827 "gram.y" 51838| 2.29k| { 51839| 2.29k| (yyval.node) = makeAArrayExpr(NIL, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ------------------ | | 68| 2.29k|#define NIL ((List *) NULL) ------------------ 51840| 2.29k| ;} 51841| 2.29k| break; 51842| | 51843| 0| case 2312: ------------------ | Branch (51843:3): [True: 0, False: 76.7M] ------------------ 51844| 0|#line 16832 "gram.y" 51845| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51846| 0| break; 51847| | 51848| 0| case 2313: ------------------ | Branch (51848:3): [True: 0, False: 76.7M] ------------------ 51849| 0|#line 16833 "gram.y" 51850| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 51851| 0| break; 51852| | 51853| 0| case 2314: ------------------ | Branch (51853:3): [True: 0, False: 76.7M] ------------------ 51854| 0|#line 16839 "gram.y" 51855| 0| { 51856| 0| (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51857| 0| ;} 51858| 0| break; 51859| | 51860| 0| case 2315: ------------------ | Branch (51860:3): [True: 0, False: 76.7M] ------------------ 51861| 0|#line 16843 "gram.y" 51862| 0| { 51863| 0| (yyval.list) = list_make2(makeParamRef((yyvsp[(1) - (3)].ival), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51864| 0| ;} 51865| 0| break; 51866| | 51867| 0| case 2316: ------------------ | Branch (51867:3): [True: 0, False: 76.7M] ------------------ 51868| 0|#line 16852 "gram.y" 51869| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 51870| 0| break; 51871| | 51872| 0| case 2317: ------------------ | Branch (51872:3): [True: 0, False: 76.7M] ------------------ 51873| 0|#line 16853 "gram.y" 51874| 0| { (yyval.str) = "year"; ;} 51875| 0| break; 51876| | 51877| 0| case 2318: ------------------ | Branch (51877:3): [True: 0, False: 76.7M] ------------------ 51878| 0|#line 16854 "gram.y" 51879| 0| { (yyval.str) = "month"; ;} 51880| 0| break; 51881| | 51882| 0| case 2319: ------------------ | Branch (51882:3): [True: 0, False: 76.7M] ------------------ 51883| 0|#line 16855 "gram.y" 51884| 0| { (yyval.str) = "day"; ;} 51885| 0| break; 51886| | 51887| 0| case 2320: ------------------ | Branch (51887:3): [True: 0, False: 76.7M] ------------------ 51888| 0|#line 16856 "gram.y" 51889| 0| { (yyval.str) = "hour"; ;} 51890| 0| break; 51891| | 51892| 0| case 2321: ------------------ | Branch (51892:3): [True: 0, False: 76.7M] ------------------ 51893| 0|#line 16857 "gram.y" 51894| 0| { (yyval.str) = "minute"; ;} 51895| 0| break; 51896| | 51897| 0| case 2322: ------------------ | Branch (51897:3): [True: 0, False: 76.7M] ------------------ 51898| 0|#line 16858 "gram.y" 51899| 0| { (yyval.str) = "second"; ;} 51900| 0| break; 51901| | 51902| 0| case 2323: ------------------ | Branch (51902:3): [True: 0, False: 76.7M] ------------------ 51903| 0|#line 16859 "gram.y" 51904| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 51905| 0| break; 51906| | 51907| 0| case 2324: ------------------ | Branch (51907:3): [True: 0, False: 76.7M] ------------------ 51908| 0|#line 16863 "gram.y" 51909| 0| { (yyval.str) = "NFC"; ;} 51910| 0| break; 51911| | 51912| 0| case 2325: ------------------ | Branch (51912:3): [True: 0, False: 76.7M] ------------------ 51913| 0|#line 16864 "gram.y" 51914| 0| { (yyval.str) = "NFD"; ;} 51915| 0| break; 51916| | 51917| 0| case 2326: ------------------ | Branch (51917:3): [True: 0, False: 76.7M] ------------------ 51918| 0|#line 16865 "gram.y" 51919| 0| { (yyval.str) = "NFKC"; ;} 51920| 0| break; 51921| | 51922| 0| case 2327: ------------------ | Branch (51922:3): [True: 0, False: 76.7M] ------------------ 51923| 0|#line 16866 "gram.y" 51924| 0| { (yyval.str) = "NFKD"; ;} 51925| 0| break; 51926| | 51927| 0| case 2328: ------------------ | Branch (51927:3): [True: 0, False: 76.7M] ------------------ 51928| 0|#line 16872 "gram.y" 51929| 0| { 51930| | /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */ 51931| 0| (yyval.list) = list_make4((yyvsp[(1) - (7)].node), (yyvsp[(3) - (7)].node), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); ------------------ | | 220| 0| list_make4_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make4_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 221| 0| list_make_ptr_cell(x3), list_make_ptr_cell(x4)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make_ptr_cell(x3), list_make_ptr_cell(x4)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51932| 0| ;} 51933| 0| break; 51934| | 51935| 0| case 2329: ------------------ | Branch (51935:3): [True: 0, False: 76.7M] ------------------ 51936| 0|#line 16877 "gram.y" 51937| 0| { 51938| | /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */ 51939| 0| (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51940| 0| ;} 51941| 0| break; 51942| | 51943| 0| case 2330: ------------------ | Branch (51943:3): [True: 0, False: 76.7M] ------------------ 51944| 0|#line 16885 "gram.y" 51945| 0| { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51946| 0| break; 51947| | 51948| 0| case 2331: ------------------ | Branch (51948:3): [True: 0, False: 76.7M] ------------------ 51949| 0|#line 16907 "gram.y" 51950| 0| { 51951| 0| (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51952| 0| ;} 51953| 0| break; 51954| | 51955| 0| case 2332: ------------------ | Branch (51955:3): [True: 0, False: 76.7M] ------------------ 51956| 0|#line 16911 "gram.y" 51957| 0| { 51958| | /* not legal per SQL, but might as well allow it */ 51959| 0| (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yyvsp[(3) - (5)].node)); ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51960| 0| ;} 51961| 0| break; 51962| | 51963| 0| case 2333: ------------------ | Branch (51963:3): [True: 0, False: 76.7M] ------------------ 51964| 0|#line 16916 "gram.y" 51965| 0| { 51966| | /* 51967| | * Because we aren't restricting data types here, this 51968| | * syntax can end up resolving to textregexsubstr(). 51969| | * We've historically allowed that to happen, so continue 51970| | * to accept it. However, ruleutils.c will reverse-list 51971| | * such a call in regular function call syntax. 51972| | */ 51973| 0| (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51974| 0| ;} 51975| 0| break; 51976| | 51977| 0| case 2334: ------------------ | Branch (51977:3): [True: 0, False: 76.7M] ------------------ 51978| 0|#line 16927 "gram.y" 51979| 0| { 51980| | /* not legal per SQL */ 51981| | 51982| | /* 51983| | * Since there are no cases where this syntax allows 51984| | * a textual FOR value, we forcibly cast the argument 51985| | * to int4. The possible matches in pg_proc are 51986| | * substring(text,int4) and substring(text,text), 51987| | * and we don't want the parser to choose the latter, 51988| | * which it is likely to do if the second argument 51989| | * is unknown or doesn't have an implicit cast to int4. 51990| | */ 51991| 0| (yyval.list) = list_make3((yyvsp[(1) - (3)].node), makeIntConst(1, -1), ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 51992| 0| makeTypeCast((yyvsp[(3) - (3)].node), 51993| 0| SystemTypeName("int4"), -1)); 51994| 0| ;} 51995| 0| break; 51996| | 51997| 0| case 2335: ------------------ | Branch (51997:3): [True: 0, False: 76.7M] ------------------ 51998| 0|#line 16944 "gram.y" 51999| 0| { 52000| 0| (yyval.list) = list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)); ------------------ | | 217| 0| list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make3_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2), \ | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | 218| 0| list_make_ptr_cell(x3)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52001| 0| ;} 52002| 0| break; 52003| | 52004| 0| case 2336: ------------------ | Branch (52004:3): [True: 0, False: 76.7M] ------------------ 52005| 0|#line 16949 "gram.y" 52006| 0| { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} 52007| 0| break; 52008| | 52009| 0| case 2337: ------------------ | Branch (52009:3): [True: 0, False: 76.7M] ------------------ 52010| 0|#line 16950 "gram.y" 52011| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 52012| 0| break; 52013| | 52014| 0| case 2338: ------------------ | Branch (52014:3): [True: 0, False: 76.7M] ------------------ 52015| 0|#line 16951 "gram.y" 52016| 0| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 52017| 0| break; 52018| | 52019| 800| case 2339: ------------------ | Branch (52019:3): [True: 800, False: 76.7M] ------------------ 52020| 800|#line 16962 "gram.y" 52021| 800| { 52022| 800| CaseExpr *c = makeNode(CaseExpr); ------------------ | | 161| 800|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52023| | 52024| 800| c->casetype = InvalidOid; /* not analyzed yet */ ------------------ | | 37| 800|#define InvalidOid ((Oid) 0) ------------------ 52025| 800| c->arg = (Expr *) (yyvsp[(2) - (5)].node); 52026| 800| c->args = (yyvsp[(3) - (5)].list); 52027| 800| c->defresult = (Expr *) (yyvsp[(4) - (5)].node); 52028| 800| c->location = (yylsp[(1) - (5)]); 52029| 800| (yyval.node) = (Node *) c; 52030| 800| ;} 52031| 800| break; 52032| | 52033| 800| case 2340: ------------------ | Branch (52033:3): [True: 800, False: 76.7M] ------------------ 52034| 800|#line 16976 "gram.y" 52035| 800| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 800| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 800|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52036| 800| break; 52037| | 52038| 82| case 2341: ------------------ | Branch (52038:3): [True: 82, False: 76.7M] ------------------ 52039| 82|#line 16977 "gram.y" 52040| 82| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 52041| 82| break; 52042| | 52043| 882| case 2342: ------------------ | Branch (52043:3): [True: 882, False: 76.7M] ------------------ 52044| 882|#line 16982 "gram.y" 52045| 882| { 52046| 882| CaseWhen *w = makeNode(CaseWhen); ------------------ | | 161| 882|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52047| | 52048| 882| w->expr = (Expr *) (yyvsp[(2) - (4)].node); 52049| 882| w->result = (Expr *) (yyvsp[(4) - (4)].node); 52050| 882| w->location = (yylsp[(1) - (4)]); 52051| 882| (yyval.node) = (Node *) w; 52052| 882| ;} 52053| 882| break; 52054| | 52055| 0| case 2343: ------------------ | Branch (52055:3): [True: 0, False: 76.7M] ------------------ 52056| 0|#line 16993 "gram.y" 52057| 0| { (yyval.node) = (yyvsp[(2) - (2)].node); ;} 52058| 0| break; 52059| | 52060| 800| case 2344: ------------------ | Branch (52060:3): [True: 800, False: 76.7M] ------------------ 52061| 800|#line 16994 "gram.y" 52062| 800| { (yyval.node) = NULL; ;} 52063| 800| break; 52064| | 52065| 281| case 2345: ------------------ | Branch (52065:3): [True: 281, False: 76.7M] ------------------ 52066| 281|#line 16997 "gram.y" 52067| 281| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 52068| 281| break; 52069| | 52070| 519| case 2346: ------------------ | Branch (52070:3): [True: 519, False: 76.7M] ------------------ 52071| 519|#line 16998 "gram.y" 52072| 519| { (yyval.node) = NULL; ;} 52073| 519| break; 52074| | 52075| 3.90M| case 2347: ------------------ | Branch (52075:3): [True: 3.90M, False: 72.8M] ------------------ 52076| 3.90M|#line 17002 "gram.y" 52077| 3.90M| { 52078| 3.90M| (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ------------------ | | 68| 3.90M|#define NIL ((List *) NULL) ------------------ 52079| 3.90M| ;} 52080| 3.90M| break; 52081| | 52082| 18.1k| case 2348: ------------------ | Branch (52082:3): [True: 18.1k, False: 76.7M] ------------------ 52083| 18.1k|#line 17006 "gram.y" 52084| 18.1k| { 52085| 18.1k| (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); 52086| 18.1k| ;} 52087| 18.1k| break; 52088| | 52089| 2.68M| case 2349: ------------------ | Branch (52089:3): [True: 2.68M, False: 74.0M] ------------------ 52090| 2.68M|#line 17013 "gram.y" 52091| 2.68M| { 52092| 2.68M| (yyval.node) = (Node *) makeString((yyvsp[(2) - (2)].str)); 52093| 2.68M| ;} 52094| 2.68M| break; 52095| | 52096| 189| case 2350: ------------------ | Branch (52096:3): [True: 189, False: 76.7M] ------------------ 52097| 189|#line 17017 "gram.y" 52098| 189| { 52099| 189| (yyval.node) = (Node *) makeNode(A_Star); ------------------ | | 161| 189|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52100| 189| ;} 52101| 189| break; 52102| | 52103| 1.32k| case 2351: ------------------ | Branch (52103:3): [True: 1.32k, False: 76.7M] ------------------ 52104| 1.32k|#line 17021 "gram.y" 52105| 1.32k| { 52106| 1.32k| A_Indices *ai = makeNode(A_Indices); ------------------ | | 161| 1.32k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52107| | 52108| 1.32k| ai->is_slice = false; 52109| 1.32k| ai->lidx = NULL; 52110| 1.32k| ai->uidx = (yyvsp[(2) - (3)].node); 52111| 1.32k| (yyval.node) = (Node *) ai; 52112| 1.32k| ;} 52113| 1.32k| break; 52114| | 52115| 0| case 2352: ------------------ | Branch (52115:3): [True: 0, False: 76.7M] ------------------ 52116| 0|#line 17030 "gram.y" 52117| 0| { 52118| 0| A_Indices *ai = makeNode(A_Indices); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52119| | 52120| 0| ai->is_slice = true; 52121| 0| ai->lidx = (yyvsp[(2) - (5)].node); 52122| 0| ai->uidx = (yyvsp[(4) - (5)].node); 52123| 0| (yyval.node) = (Node *) ai; 52124| 0| ;} 52125| 0| break; 52126| | 52127| 2| case 2353: ------------------ | Branch (52127:3): [True: 2, False: 76.7M] ------------------ 52128| 2|#line 17041 "gram.y" 52129| 2| { (yyval.node) = (yyvsp[(1) - (1)].node); ;} 52130| 2| break; 52131| | 52132| 1| case 2354: ------------------ | Branch (52132:3): [True: 1, False: 76.7M] ------------------ 52133| 1|#line 17042 "gram.y" 52134| 1| { (yyval.node) = NULL; ;} 52135| 1| break; 52136| | 52137| 25.6k| case 2355: ------------------ | Branch (52137:3): [True: 25.6k, False: 76.7M] ------------------ 52138| 25.6k|#line 17046 "gram.y" 52139| 25.6k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 25.6k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 25.6k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52140| 25.6k| break; 52141| | 52142| 2.33M| case 2356: ------------------ | Branch (52142:3): [True: 2.33M, False: 74.4M] ------------------ 52143| 2.33M|#line 17047 "gram.y" 52144| 2.33M| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 52145| 2.33M| break; 52146| | 52147| 794k| case 2357: ------------------ | Branch (52147:3): [True: 794k, False: 75.9M] ------------------ 52148| 794k|#line 17051 "gram.y" 52149| 794k| { (yyval.list) = NIL; ;} ------------------ | | 68| 794k|#define NIL ((List *) NULL) ------------------ 52150| 794k| break; 52151| | 52152| 324k| case 2358: ------------------ | Branch (52152:3): [True: 324k, False: 76.4M] ------------------ 52153| 324k|#line 17052 "gram.y" 52154| 324k| { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} 52155| 324k| break; 52156| | 52157| 0| case 2361: ------------------ | Branch (52157:3): [True: 0, False: 76.7M] ------------------ 52158| 0|#line 17061 "gram.y" 52159| 0| { (yyval.list) = (yyvsp[(2) - (2)].list); ;} 52160| 0| break; 52161| | 52162| 0| case 2362: ------------------ | Branch (52162:3): [True: 0, False: 76.7M] ------------------ 52163| 0|#line 17062 "gram.y" 52164| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 52165| 0| break; 52166| | 52167| 0| case 2363: ------------------ | Branch (52167:3): [True: 0, False: 76.7M] ------------------ 52168| 0|#line 17066 "gram.y" 52169| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52170| 0| break; 52171| | 52172| 0| case 2364: ------------------ | Branch (52172:3): [True: 0, False: 76.7M] ------------------ 52173| 0|#line 17067 "gram.y" 52174| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 52175| 0| break; 52176| | 52177| 0| case 2365: ------------------ | Branch (52177:3): [True: 0, False: 76.7M] ------------------ 52178| 0|#line 17072 "gram.y" 52179| 0| { 52180| 0| JsonArgument *n = makeNode(JsonArgument); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52181| | 52182| 0| n->val = (JsonValueExpr *) (yyvsp[(1) - (3)].node); 52183| 0| n->name = (yyvsp[(3) - (3)].str); 52184| 0| (yyval.node) = (Node *) n; 52185| 0| ;} 52186| 0| break; 52187| | 52188| 0| case 2366: ------------------ | Branch (52188:3): [True: 0, False: 76.7M] ------------------ 52189| 0|#line 17083 "gram.y" 52190| 0| { (yyval.ival) = JSW_NONE; ;} 52191| 0| break; 52192| | 52193| 0| case 2367: ------------------ | Branch (52193:3): [True: 0, False: 76.7M] ------------------ 52194| 0|#line 17084 "gram.y" 52195| 0| { (yyval.ival) = JSW_NONE; ;} 52196| 0| break; 52197| | 52198| 0| case 2368: ------------------ | Branch (52198:3): [True: 0, False: 76.7M] ------------------ 52199| 0|#line 17085 "gram.y" 52200| 0| { (yyval.ival) = JSW_UNCONDITIONAL; ;} 52201| 0| break; 52202| | 52203| 0| case 2369: ------------------ | Branch (52203:3): [True: 0, False: 76.7M] ------------------ 52204| 0|#line 17086 "gram.y" 52205| 0| { (yyval.ival) = JSW_UNCONDITIONAL; ;} 52206| 0| break; 52207| | 52208| 0| case 2370: ------------------ | Branch (52208:3): [True: 0, False: 76.7M] ------------------ 52209| 0|#line 17087 "gram.y" 52210| 0| { (yyval.ival) = JSW_CONDITIONAL; ;} 52211| 0| break; 52212| | 52213| 0| case 2371: ------------------ | Branch (52213:3): [True: 0, False: 76.7M] ------------------ 52214| 0|#line 17088 "gram.y" 52215| 0| { (yyval.ival) = JSW_UNCONDITIONAL; ;} 52216| 0| break; 52217| | 52218| 0| case 2372: ------------------ | Branch (52218:3): [True: 0, False: 76.7M] ------------------ 52219| 0|#line 17089 "gram.y" 52220| 0| { (yyval.ival) = JSW_CONDITIONAL; ;} 52221| 0| break; 52222| | 52223| 0| case 2373: ------------------ | Branch (52223:3): [True: 0, False: 76.7M] ------------------ 52224| 0|#line 17090 "gram.y" 52225| 0| { (yyval.ival) = JSW_UNCONDITIONAL; ;} 52226| 0| break; 52227| | 52228| 0| case 2374: ------------------ | Branch (52228:3): [True: 0, False: 76.7M] ------------------ 52229| 0|#line 17091 "gram.y" 52230| 0| { (yyval.ival) = JSW_UNSPEC; ;} 52231| 0| break; 52232| | 52233| 0| case 2375: ------------------ | Branch (52233:3): [True: 0, False: 76.7M] ------------------ 52234| 0|#line 17096 "gram.y" 52235| 0| { (yyval.node) = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} 52236| 0| break; 52237| | 52238| 0| case 2376: ------------------ | Branch (52238:3): [True: 0, False: 76.7M] ------------------ 52239| 0|#line 17098 "gram.y" 52240| 0| { (yyval.node) = (Node *) makeJsonBehavior((yyvsp[(1) - (1)].ival), NULL, (yylsp[(1) - (1)])); ;} 52241| 0| break; 52242| | 52243| 0| case 2377: ------------------ | Branch (52243:3): [True: 0, False: 76.7M] ------------------ 52244| 0|#line 17102 "gram.y" 52245| 0| { (yyval.ival) = JSON_BEHAVIOR_ERROR; ;} 52246| 0| break; 52247| | 52248| 0| case 2378: ------------------ | Branch (52248:3): [True: 0, False: 76.7M] ------------------ 52249| 0|#line 17103 "gram.y" 52250| 0| { (yyval.ival) = JSON_BEHAVIOR_NULL; ;} 52251| 0| break; 52252| | 52253| 0| case 2379: ------------------ | Branch (52253:3): [True: 0, False: 76.7M] ------------------ 52254| 0|#line 17104 "gram.y" 52255| 0| { (yyval.ival) = JSON_BEHAVIOR_TRUE; ;} 52256| 0| break; 52257| | 52258| 0| case 2380: ------------------ | Branch (52258:3): [True: 0, False: 76.7M] ------------------ 52259| 0|#line 17105 "gram.y" 52260| 0| { (yyval.ival) = JSON_BEHAVIOR_FALSE; ;} 52261| 0| break; 52262| | 52263| 0| case 2381: ------------------ | Branch (52263:3): [True: 0, False: 76.7M] ------------------ 52264| 0|#line 17106 "gram.y" 52265| 0| { (yyval.ival) = JSON_BEHAVIOR_UNKNOWN; ;} 52266| 0| break; 52267| | 52268| 0| case 2382: ------------------ | Branch (52268:3): [True: 0, False: 76.7M] ------------------ 52269| 0|#line 17107 "gram.y" 52270| 0| { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;} 52271| 0| break; 52272| | 52273| 0| case 2383: ------------------ | Branch (52273:3): [True: 0, False: 76.7M] ------------------ 52274| 0|#line 17108 "gram.y" 52275| 0| { (yyval.ival) = JSON_BEHAVIOR_EMPTY_OBJECT; ;} 52276| 0| break; 52277| | 52278| 0| case 2384: ------------------ | Branch (52278:3): [True: 0, False: 76.7M] ------------------ 52279| 0|#line 17110 "gram.y" 52280| 0| { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; ;} 52281| 0| break; 52282| | 52283| 0| case 2385: ------------------ | Branch (52283:3): [True: 0, False: 76.7M] ------------------ 52284| 0|#line 17115 "gram.y" 52285| 0| { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), NULL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52286| 0| break; 52287| | 52288| 0| case 2386: ------------------ | Branch (52288:3): [True: 0, False: 76.7M] ------------------ 52289| 0|#line 17117 "gram.y" 52290| 0| { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (3)].node)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52291| 0| break; 52292| | 52293| 0| case 2387: ------------------ | Branch (52293:3): [True: 0, False: 76.7M] ------------------ 52294| 0|#line 17119 "gram.y" 52295| 0| { (yyval.list) = list_make2((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node)); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52296| 0| break; 52297| | 52298| 0| case 2388: ------------------ | Branch (52298:3): [True: 0, False: 76.7M] ------------------ 52299| 0|#line 17121 "gram.y" 52300| 0| { (yyval.list) = list_make2(NULL, NULL); ;} ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52301| 0| break; 52302| | 52303| 0| case 2389: ------------------ | Branch (52303:3): [True: 0, False: 76.7M] ------------------ 52304| 0|#line 17126 "gram.y" 52305| 0| { (yyval.node) = (yyvsp[(1) - (3)].node); ;} 52306| 0| break; 52307| | 52308| 0| case 2390: ------------------ | Branch (52308:3): [True: 0, False: 76.7M] ------------------ 52309| 0|#line 17128 "gram.y" 52310| 0| { (yyval.node) = NULL; ;} 52311| 0| break; 52312| | 52313| 4.63k| case 2391: ------------------ | Branch (52313:3): [True: 4.63k, False: 76.7M] ------------------ 52314| 4.63k|#line 17133 "gram.y" 52315| 4.63k| { 52316| | /* formatted_expr will be set during parse-analysis. */ 52317| 4.63k| (yyval.node) = (Node *) makeJsonValueExpr((Expr *) (yyvsp[(1) - (2)].node), NULL, 52318| 4.63k| castNode(JsonFormat, (yyvsp[(2) - (2)].node))); ------------------ | | 182| 4.63k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 52319| 4.63k| ;} 52320| 4.63k| break; 52321| | 52322| 0| case 2392: ------------------ | Branch (52322:3): [True: 0, False: 76.7M] ------------------ 52323| 0|#line 17142 "gram.y" 52324| 0| { 52325| 0| int encoding; 52326| | 52327| 0| if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf8")) ------------------ | Branch (52327:10): [True: 0, False: 0] ------------------ 52328| 0| encoding = JS_ENC_UTF8; 52329| 0| else if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf16")) ------------------ | Branch (52329:15): [True: 0, False: 0] ------------------ 52330| 0| encoding = JS_ENC_UTF16; 52331| 0| else if (!pg_strcasecmp((yyvsp[(4) - (4)].str), "utf32")) ------------------ | Branch (52331:15): [True: 0, False: 0] ------------------ 52332| 0| encoding = JS_ENC_UTF32; 52333| 0| else 52334| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52335| 0| (errcode(ERRCODE_INVALID_PARAMETER_VALUE), 52336| 0| errmsg("unrecognized JSON encoding: %s", (yyvsp[(4) - (4)].str)), 52337| 0| parser_errposition((yylsp[(4) - (4)])))); 52338| | 52339| 0| (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, encoding, (yylsp[(1) - (4)])); 52340| 0| ;} 52341| 0| break; 52342| | 52343| 4.09k| case 2393: ------------------ | Branch (52343:3): [True: 4.09k, False: 76.7M] ------------------ 52344| 4.09k|#line 17160 "gram.y" 52345| 4.09k| { 52346| 4.09k| (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, (yylsp[(1) - (2)])); 52347| 4.09k| ;} 52348| 4.09k| break; 52349| | 52350| 4.09k| case 2394: ------------------ | Branch (52350:3): [True: 4.09k, False: 76.7M] ------------------ 52351| 4.09k|#line 17167 "gram.y" 52352| 4.09k| { 52353| 4.09k| (yyval.node) = (yyvsp[(1) - (1)].node); 52354| 4.09k| ;} 52355| 4.09k| break; 52356| | 52357| 542| case 2395: ------------------ | Branch (52357:3): [True: 542, False: 76.7M] ------------------ 52358| 542|#line 17171 "gram.y" 52359| 542| { 52360| 542| (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); 52361| 542| ;} 52362| 542| break; 52363| | 52364| 0| case 2396: ------------------ | Branch (52364:3): [True: 0, False: 76.7M] ------------------ 52365| 0|#line 17177 "gram.y" 52366| 0| { (yyval.ival) = JS_QUOTES_KEEP; ;} 52367| 0| break; 52368| | 52369| 0| case 2397: ------------------ | Branch (52369:3): [True: 0, False: 76.7M] ------------------ 52370| 0|#line 17178 "gram.y" 52371| 0| { (yyval.ival) = JS_QUOTES_KEEP; ;} 52372| 0| break; 52373| | 52374| 0| case 2398: ------------------ | Branch (52374:3): [True: 0, False: 76.7M] ------------------ 52375| 0|#line 17179 "gram.y" 52376| 0| { (yyval.ival) = JS_QUOTES_OMIT; ;} 52377| 0| break; 52378| | 52379| 0| case 2399: ------------------ | Branch (52379:3): [True: 0, False: 76.7M] ------------------ 52380| 0|#line 17180 "gram.y" 52381| 0| { (yyval.ival) = JS_QUOTES_OMIT; ;} 52382| 0| break; 52383| | 52384| 0| case 2400: ------------------ | Branch (52384:3): [True: 0, False: 76.7M] ------------------ 52385| 0|#line 17181 "gram.y" 52386| 0| { (yyval.ival) = JS_QUOTES_UNSPEC; ;} 52387| 0| break; 52388| | 52389| 0| case 2401: ------------------ | Branch (52389:3): [True: 0, False: 76.7M] ------------------ 52390| 0|#line 17186 "gram.y" 52391| 0| { 52392| 0| JsonOutput *n = makeNode(JsonOutput); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52393| | 52394| 0| n->typeName = (yyvsp[(2) - (3)].typnam); 52395| 0| n->returning = makeNode(JsonReturning); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52396| 0| n->returning->format = (JsonFormat *) (yyvsp[(3) - (3)].node); 52397| 0| (yyval.node) = (Node *) n; 52398| 0| ;} 52399| 0| break; 52400| | 52401| 0| case 2402: ------------------ | Branch (52401:3): [True: 0, False: 76.7M] ------------------ 52402| 0|#line 17194 "gram.y" 52403| 0| { (yyval.node) = NULL; ;} 52404| 0| break; 52405| | 52406| 786| case 2403: ------------------ | Branch (52406:3): [True: 786, False: 76.7M] ------------------ 52407| 786|#line 17208 "gram.y" 52408| 786| { (yyval.ival) = JS_TYPE_ANY; ;} 52409| 786| break; 52410| | 52411| 0| case 2404: ------------------ | Branch (52411:3): [True: 0, False: 76.7M] ------------------ 52412| 0|#line 17209 "gram.y" 52413| 0| { (yyval.ival) = JS_TYPE_ANY; ;} 52414| 0| break; 52415| | 52416| 1.54k| case 2405: ------------------ | Branch (52416:3): [True: 1.54k, False: 76.7M] ------------------ 52417| 1.54k|#line 17210 "gram.y" 52418| 1.54k| { (yyval.ival) = JS_TYPE_ARRAY; ;} 52419| 1.54k| break; 52420| | 52421| 0| case 2406: ------------------ | Branch (52421:3): [True: 0, False: 76.7M] ------------------ 52422| 0|#line 17211 "gram.y" 52423| 0| { (yyval.ival) = JS_TYPE_OBJECT; ;} 52424| 0| break; 52425| | 52426| 0| case 2407: ------------------ | Branch (52426:3): [True: 0, False: 76.7M] ------------------ 52427| 0|#line 17212 "gram.y" 52428| 0| { (yyval.ival) = JS_TYPE_SCALAR; ;} 52429| 0| break; 52430| | 52431| 0| case 2408: ------------------ | Branch (52431:3): [True: 0, False: 76.7M] ------------------ 52432| 0|#line 17221 "gram.y" 52433| 0| { (yyval.boolean) = true; ;} 52434| 0| break; 52435| | 52436| 0| case 2409: ------------------ | Branch (52436:3): [True: 0, False: 76.7M] ------------------ 52437| 0|#line 17222 "gram.y" 52438| 0| { (yyval.boolean) = true; ;} 52439| 0| break; 52440| | 52441| 0| case 2410: ------------------ | Branch (52441:3): [True: 0, False: 76.7M] ------------------ 52442| 0|#line 17223 "gram.y" 52443| 0| { (yyval.boolean) = false; ;} 52444| 0| break; 52445| | 52446| 0| case 2411: ------------------ | Branch (52446:3): [True: 0, False: 76.7M] ------------------ 52447| 0|#line 17224 "gram.y" 52448| 0| { (yyval.boolean) = false; ;} 52449| 0| break; 52450| | 52451| 6.96k| case 2412: ------------------ | Branch (52451:3): [True: 6.96k, False: 76.7M] ------------------ 52452| 6.96k|#line 17225 "gram.y" 52453| 6.96k| { (yyval.boolean) = false; ;} 52454| 6.96k| break; 52455| | 52456| 0| case 2413: ------------------ | Branch (52456:3): [True: 0, False: 76.7M] ------------------ 52457| 0|#line 17230 "gram.y" 52458| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52459| 0| break; 52460| | 52461| 0| case 2414: ------------------ | Branch (52461:3): [True: 0, False: 76.7M] ------------------ 52462| 0|#line 17232 "gram.y" 52463| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} 52464| 0| break; 52465| | 52466| 0| case 2415: ------------------ | Branch (52466:3): [True: 0, False: 76.7M] ------------------ 52467| 0|#line 17242 "gram.y" 52468| 0| { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} 52469| 0| break; 52470| | 52471| 0| case 2416: ------------------ | Branch (52471:3): [True: 0, False: 76.7M] ------------------ 52472| 0|#line 17245 "gram.y" 52473| 0| { (yyval.node) = makeJsonKeyValue((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} 52474| 0| break; 52475| | 52476| 0| case 2417: ------------------ | Branch (52476:3): [True: 0, False: 76.7M] ------------------ 52477| 0|#line 17250 "gram.y" 52478| 0| { (yyval.boolean) = false; ;} 52479| 0| break; 52480| | 52481| 0| case 2418: ------------------ | Branch (52481:3): [True: 0, False: 76.7M] ------------------ 52482| 0|#line 17251 "gram.y" 52483| 0| { (yyval.boolean) = true; ;} 52484| 0| break; 52485| | 52486| 0| case 2419: ------------------ | Branch (52486:3): [True: 0, False: 76.7M] ------------------ 52487| 0|#line 17252 "gram.y" 52488| 0| { (yyval.boolean) = false; ;} 52489| 0| break; 52490| | 52491| 0| case 2420: ------------------ | Branch (52491:3): [True: 0, False: 76.7M] ------------------ 52492| 0|#line 17256 "gram.y" 52493| 0| { (yyval.boolean) = false; ;} 52494| 0| break; 52495| | 52496| 0| case 2421: ------------------ | Branch (52496:3): [True: 0, False: 76.7M] ------------------ 52497| 0|#line 17257 "gram.y" 52498| 0| { (yyval.boolean) = true; ;} 52499| 0| break; 52500| | 52501| 0| case 2422: ------------------ | Branch (52501:3): [True: 0, False: 76.7M] ------------------ 52502| 0|#line 17258 "gram.y" 52503| 0| { (yyval.boolean) = true; ;} 52504| 0| break; 52505| | 52506| 0| case 2423: ------------------ | Branch (52506:3): [True: 0, False: 76.7M] ------------------ 52507| 0|#line 17262 "gram.y" 52508| 0| { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} ------------------ | | 213| 0| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52509| 0| break; 52510| | 52511| 0| case 2424: ------------------ | Branch (52511:3): [True: 0, False: 76.7M] ------------------ 52512| 0|#line 17263 "gram.y" 52513| 0| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));;} 52514| 0| break; 52515| | 52516| 0| case 2425: ------------------ | Branch (52516:3): [True: 0, False: 76.7M] ------------------ 52517| 0|#line 17273 "gram.y" 52518| 0| { 52519| 0| JsonObjectAgg *n = makeNode(JsonObjectAgg); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52520| | 52521| 0| n->arg = (JsonKeyValue *) (yyvsp[(3) - (7)].node); 52522| 0| n->absent_on_null = (yyvsp[(4) - (7)].boolean); 52523| 0| n->unique = (yyvsp[(5) - (7)].boolean); 52524| 0| n->constructor = makeNode(JsonAggConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52525| 0| n->constructor->output = (JsonOutput *) (yyvsp[(6) - (7)].node); 52526| 0| n->constructor->agg_order = NULL; 52527| 0| n->constructor->location = (yylsp[(1) - (7)]); 52528| 0| (yyval.node) = (Node *) n; 52529| 0| ;} 52530| 0| break; 52531| | 52532| 0| case 2426: ------------------ | Branch (52532:3): [True: 0, False: 76.7M] ------------------ 52533| 0|#line 17291 "gram.y" 52534| 0| { 52535| 0| JsonArrayAgg *n = makeNode(JsonArrayAgg); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52536| | 52537| 0| n->arg = (JsonValueExpr *) (yyvsp[(3) - (7)].node); 52538| 0| n->absent_on_null = (yyvsp[(5) - (7)].boolean); 52539| 0| n->constructor = makeNode(JsonAggConstructor); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52540| 0| n->constructor->agg_order = (yyvsp[(4) - (7)].list); 52541| 0| n->constructor->output = (JsonOutput *) (yyvsp[(6) - (7)].node); 52542| 0| n->constructor->location = (yylsp[(1) - (7)]); 52543| 0| (yyval.node) = (Node *) n; 52544| 0| ;} 52545| 0| break; 52546| | 52547| 0| case 2427: ------------------ | Branch (52547:3): [True: 0, False: 76.7M] ------------------ 52548| 0|#line 17305 "gram.y" 52549| 0| { (yyval.list) = (yyvsp[(3) - (3)].list); ;} 52550| 0| break; 52551| | 52552| 0| case 2428: ------------------ | Branch (52552:3): [True: 0, False: 76.7M] ------------------ 52553| 0|#line 17306 "gram.y" 52554| 0| { (yyval.list) = NIL; ;} ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 52555| 0| break; 52556| | 52557| 16.9k| case 2429: ------------------ | Branch (52557:3): [True: 16.9k, False: 76.7M] ------------------ 52558| 16.9k|#line 17315 "gram.y" 52559| 16.9k| { (yyval.list) = (yyvsp[(1) - (1)].list); ;} 52560| 16.9k| break; 52561| | 52562| 11.4k| case 2430: ------------------ | Branch (52562:3): [True: 11.4k, False: 76.7M] ------------------ 52563| 11.4k|#line 17316 "gram.y" 52564| 11.4k| { (yyval.list) = NIL; ;} ------------------ | | 68| 11.4k|#define NIL ((List *) NULL) ------------------ 52565| 11.4k| break; 52566| | 52567| 17.0k| case 2431: ------------------ | Branch (52567:3): [True: 17.0k, False: 76.7M] ------------------ 52568| 17.0k|#line 17320 "gram.y" 52569| 17.0k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} ------------------ | | 213| 17.0k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 17.0k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52570| 17.0k| break; 52571| | 52572| 512k| case 2432: ------------------ | Branch (52572:3): [True: 512k, False: 76.2M] ------------------ 52573| 512k|#line 17321 "gram.y" 52574| 512k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} 52575| 512k| break; 52576| | 52577| 6| case 2433: ------------------ | Branch (52577:3): [True: 6, False: 76.7M] ------------------ 52578| 6|#line 17325 "gram.y" 52579| 6| { 52580| 6| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 6|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52581| 6| (yyval.target)->name = (yyvsp[(3) - (3)].str); 52582| 6| (yyval.target)->indirection = NIL; ------------------ | | 68| 6|#define NIL ((List *) NULL) ------------------ 52583| 6| (yyval.target)->val = (Node *) (yyvsp[(1) - (3)].node); 52584| 6| (yyval.target)->location = (yylsp[(1) - (3)]); 52585| 6| ;} 52586| 6| break; 52587| | 52588| 4.32k| case 2434: ------------------ | Branch (52588:3): [True: 4.32k, False: 76.7M] ------------------ 52589| 4.32k|#line 17333 "gram.y" 52590| 4.32k| { 52591| 4.32k| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 4.32k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52592| 4.32k| (yyval.target)->name = (yyvsp[(2) - (2)].str); 52593| 4.32k| (yyval.target)->indirection = NIL; ------------------ | | 68| 4.32k|#define NIL ((List *) NULL) ------------------ 52594| 4.32k| (yyval.target)->val = (Node *) (yyvsp[(1) - (2)].node); 52595| 4.32k| (yyval.target)->location = (yylsp[(1) - (2)]); 52596| 4.32k| ;} 52597| 4.32k| break; 52598| | 52599| 522k| case 2435: ------------------ | Branch (52599:3): [True: 522k, False: 76.2M] ------------------ 52600| 522k|#line 17341 "gram.y" 52601| 522k| { 52602| 522k| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 522k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52603| 522k| (yyval.target)->name = NULL; 52604| 522k| (yyval.target)->indirection = NIL; ------------------ | | 68| 522k|#define NIL ((List *) NULL) ------------------ 52605| 522k| (yyval.target)->val = (Node *) (yyvsp[(1) - (1)].node); 52606| 522k| (yyval.target)->location = (yylsp[(1) - (1)]); 52607| 522k| ;} 52608| 522k| break; 52609| | 52610| 2.44k| case 2436: ------------------ | Branch (52610:3): [True: 2.44k, False: 76.7M] ------------------ 52611| 2.44k|#line 17349 "gram.y" 52612| 2.44k| { 52613| 2.44k| ColumnRef *n = makeNode(ColumnRef); ------------------ | | 161| 2.44k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52614| | 52615| 2.44k| n->fields = list_make1(makeNode(A_Star)); ------------------ | | 213| 2.44k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 2.44k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52616| 2.44k| n->location = (yylsp[(1) - (1)]); 52617| | 52618| 2.44k| (yyval.target) = makeNode(ResTarget); ------------------ | | 161| 2.44k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 52619| 2.44k| (yyval.target)->name = NULL; 52620| 2.44k| (yyval.target)->indirection = NIL; ------------------ | | 68| 2.44k|#define NIL ((List *) NULL) ------------------ 52621| 2.44k| (yyval.target)->val = (Node *) n; 52622| 2.44k| (yyval.target)->location = (yylsp[(1) - (1)]); 52623| 2.44k| ;} 52624| 2.44k| break; 52625| | 52626| 418| case 2437: ------------------ | Branch (52626:3): [True: 418, False: 76.7M] ------------------ 52627| 418|#line 17371 "gram.y" 52628| 418| { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} ------------------ | | 213| 418| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 418|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52629| 418| break; 52630| | 52631| 3.97k| case 2438: ------------------ | Branch (52631:3): [True: 3.97k, False: 76.7M] ------------------ 52632| 3.97k|#line 17372 "gram.y" 52633| 3.97k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} 52634| 3.97k| break; 52635| | 52636| 628k| case 2439: ------------------ | Branch (52636:3): [True: 628k, False: 76.1M] ------------------ 52637| 628k|#line 17384 "gram.y" 52638| 628k| { 52639| 628k| (yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 52640| 628k| ;} 52641| 628k| break; 52642| | 52643| 2.96k| case 2440: ------------------ | Branch (52643:3): [True: 2.96k, False: 76.7M] ------------------ 52644| 2.96k|#line 17388 "gram.y" 52645| 2.96k| { 52646| 2.96k| (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); 52647| 2.96k| ;} 52648| 2.96k| break; 52649| | 52650| 3.27k| case 2441: ------------------ | Branch (52650:3): [True: 3.27k, False: 76.7M] ------------------ 52651| 3.27k|#line 17394 "gram.y" 52652| 3.27k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 3.27k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 3.27k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52653| 3.27k| break; 52654| | 52655| 213| case 2442: ------------------ | Branch (52655:3): [True: 213, False: 76.7M] ------------------ 52656| 213|#line 17396 "gram.y" 52657| 213| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} 52658| 213| break; 52659| | 52660| 16.9k| case 2443: ------------------ | Branch (52660:3): [True: 16.9k, False: 76.7M] ------------------ 52661| 16.9k|#line 17400 "gram.y" 52662| 16.9k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 52663| 16.9k| break; 52664| | 52665| 2.85M| case 2444: ------------------ | Branch (52665:3): [True: 2.85M, False: 73.9M] ------------------ 52666| 2.85M|#line 17402 "gram.y" 52667| 2.85M| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 52668| 2.85M| break; 52669| | 52670| 5| case 2445: ------------------ | Branch (52670:3): [True: 5, False: 76.7M] ------------------ 52671| 5|#line 17404 "gram.y" 52672| 5| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 52673| 5| break; 52674| | 52675| 50.0k| case 2446: ------------------ | Branch (52675:3): [True: 50.0k, False: 76.7M] ------------------ 52676| 50.0k|#line 17415 "gram.y" 52677| 50.0k| { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} ------------------ | | 213| 50.0k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 50.0k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52678| 50.0k| break; 52679| | 52680| 783| case 2447: ------------------ | Branch (52680:3): [True: 783, False: 76.7M] ------------------ 52681| 783|#line 17417 "gram.y" 52682| 783| { 52683| 783| (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), 52684| 783| yyscanner); 52685| 783| ;} 52686| 783| break; 52687| | 52688| 56.8k| case 2448: ------------------ | Branch (52688:3): [True: 56.8k, False: 76.7M] ------------------ 52689| 56.8k|#line 17428 "gram.y" 52690| 56.8k| { 52691| 56.8k| (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); 52692| 56.8k| ;} 52693| 56.8k| break; 52694| | 52695| 665| case 2449: ------------------ | Branch (52695:3): [True: 665, False: 76.7M] ------------------ 52696| 665|#line 17432 "gram.y" 52697| 665| { 52698| 665| (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 52699| 665| ;} 52700| 665| break; 52701| | 52702| 420| case 2450: ------------------ | Branch (52702:3): [True: 420, False: 76.7M] ------------------ 52703| 420|#line 17436 "gram.y" 52704| 420| { 52705| 420| (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 52706| 420| ;} 52707| 420| break; 52708| | 52709| 14| case 2451: ------------------ | Branch (52709:3): [True: 14, False: 76.7M] ------------------ 52710| 14|#line 17440 "gram.y" 52711| 14| { 52712| 14| (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 52713| 14| ;} 52714| 14| break; 52715| | 52716| 10| case 2452: ------------------ | Branch (52716:3): [True: 10, False: 76.7M] ------------------ 52717| 10|#line 17444 "gram.y" 52718| 10| { 52719| | /* This is a bit constant per SQL99: 52720| | * Without Feature F511, "BIT data type", 52721| | * a shall not be a 52722| | * or a . 52723| | */ 52724| 10| (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); 52725| 10| ;} 52726| 10| break; 52727| | 52728| 7.99k| case 2453: ------------------ | Branch (52728:3): [True: 7.99k, False: 76.7M] ------------------ 52729| 7.99k|#line 17453 "gram.y" 52730| 7.99k| { 52731| | /* generic type 'literal' syntax */ 52732| 7.99k| TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); 52733| | 52734| 7.99k| t->location = (yylsp[(1) - (2)]); 52735| 7.99k| (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t); 52736| 7.99k| ;} 52737| 7.99k| break; 52738| | 52739| 16| case 2454: ------------------ | Branch (52739:3): [True: 16, False: 76.7M] ------------------ 52740| 16|#line 17461 "gram.y" 52741| 16| { 52742| | /* generic syntax with a type modifier */ 52743| 16| TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list)); 52744| 16| ListCell *lc; 52745| | 52746| | /* 52747| | * We must use func_arg_list and opt_sort_clause in the 52748| | * production to avoid reduce/reduce conflicts, but we 52749| | * don't actually wish to allow NamedArgExpr in this 52750| | * context, nor ORDER BY. 52751| | */ 52752| 16| foreach(lc, (yyvsp[(3) - (6)].list)) ------------------ | | 374| 16| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 34| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 68|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 18, False: 16] | | | Branch (375:5): [True: 34, False: 0] | | ------------------ | | 376| 34| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 18, False: 16] | | ------------------ | | 377| 34| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 34| (cell = NULL, false); \ | | 379| 18| cell##__state.i++) ------------------ 52753| 18| { 52754| 18| NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); ------------------ | | 172| 18|#define lfirst(lc) ((lc)->ptr_value) ------------------ 52755| | 52756| 18| if (IsA(arg, NamedArgExpr)) ------------------ | | 164| 18|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 18|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 18] | | ------------------ ------------------ 52757| 18| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52758| 18| (errcode(ERRCODE_SYNTAX_ERROR), 52759| 18| errmsg("type modifier cannot have parameter name"), 52760| 18| parser_errposition(arg->location))); 52761| 18| } 52762| 16| if ((yyvsp[(4) - (6)].list) != NIL) ------------------ | | 68| 16|#define NIL ((List *) NULL) ------------------ | Branch (52762:10): [True: 0, False: 16] ------------------ 52763| 16| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52764| 16| (errcode(ERRCODE_SYNTAX_ERROR), 52765| 16| errmsg("type modifier cannot have ORDER BY"), 52766| 16| parser_errposition((yylsp[(4) - (6)])))); 52767| | 52768| 16| t->typmods = (yyvsp[(3) - (6)].list); 52769| 16| t->location = (yylsp[(1) - (6)]); 52770| 16| (yyval.node) = makeStringConstCast((yyvsp[(6) - (6)].str), (yylsp[(6) - (6)]), t); 52771| 16| ;} 52772| 0| break; 52773| | 52774| 7.03k| case 2455: ------------------ | Branch (52774:3): [True: 7.03k, False: 76.7M] ------------------ 52775| 7.03k|#line 17493 "gram.y" 52776| 7.03k| { 52777| | /* generic type 'literal' syntax */ 52778| 7.03k| TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); 52779| 7.03k| t->location = (yylsp[(1) - (2)]); 52780| 7.03k| (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), t); 52781| 7.03k| ;} 52782| 7.03k| break; 52783| | 52784| 4| case 2456: ------------------ | Branch (52784:3): [True: 4, False: 76.7M] ------------------ 52785| 4|#line 17500 "gram.y" 52786| 4| { 52787| | /* generic syntax with a type modifier */ 52788| 4| TypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (6)].list)); 52789| 4| ListCell *lc; 52790| | 52791| | /* 52792| | * We must use func_arg_list and opt_sort_clause in the 52793| | * production to avoid reduce/reduce conflicts, but we 52794| | * don't actually wish to allow NamedArgExpr in this 52795| | * context, nor ORDER BY. 52796| | */ 52797| 4| foreach(lc, (yyvsp[(3) - (6)].list)) ------------------ | | 374| 4| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 8| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 16|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 4, False: 4] | | | Branch (375:5): [True: 8, False: 0] | | ------------------ | | 376| 8| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 4, False: 4] | | ------------------ | | 377| 8| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 8| (cell = NULL, false); \ | | 379| 4| cell##__state.i++) ------------------ 52798| 4| { 52799| 4| NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); ------------------ | | 172| 4|#define lfirst(lc) ((lc)->ptr_value) ------------------ 52800| | 52801| 4| if (IsA(arg, NamedArgExpr)) ------------------ | | 164| 4|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 4|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 0, False: 4] | | ------------------ ------------------ 52802| 4| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52803| 4| (errcode(ERRCODE_SYNTAX_ERROR), 52804| 4| errmsg("type modifier cannot have parameter name"), 52805| 4| parser_errposition(arg->location))); 52806| 4| } 52807| 4| if ((yyvsp[(4) - (6)].list) != NIL) ------------------ | | 68| 4|#define NIL ((List *) NULL) ------------------ | Branch (52807:10): [True: 0, False: 4] ------------------ 52808| 4| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52809| 4| (errcode(ERRCODE_SYNTAX_ERROR), 52810| 4| errmsg("type modifier cannot have ORDER BY"), 52811| 4| parser_errposition((yylsp[(4) - (6)])))); 52812| | 52813| 4| t->typmods = (yyvsp[(3) - (6)].list); 52814| 4| t->location = (yylsp[(1) - (6)]); 52815| 4| (yyval.node) = makeParamRefCast((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), t); 52816| 4| ;} 52817| 0| break; 52818| | 52819| 152| case 2457: ------------------ | Branch (52819:3): [True: 152, False: 76.7M] ------------------ 52820| 152|#line 17532 "gram.y" 52821| 152| { 52822| 152| (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); 52823| 152| ;} 52824| 152| break; 52825| | 52826| 0| case 2458: ------------------ | Branch (52826:3): [True: 0, False: 76.7M] ------------------ 52827| 0|#line 17536 "gram.y" 52828| 0| { 52829| 0| TypeName *t = (yyvsp[(1) - (3)].typnam); 52830| | 52831| 0| t->typmods = (yyvsp[(3) - (3)].list); 52832| 0| (yyval.node) = makeStringConstCast((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), t); 52833| 0| ;} 52834| 0| break; 52835| | 52836| 0| case 2459: ------------------ | Branch (52836:3): [True: 0, False: 76.7M] ------------------ 52837| 0|#line 17543 "gram.y" 52838| 0| { 52839| 0| TypeName *t = (yyvsp[(1) - (5)].typnam); 52840| | 52841| 0| t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52842| 0| makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); 52843| 0| (yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t); 52844| 0| ;} 52845| 0| break; 52846| | 52847| 9| case 2460: ------------------ | Branch (52847:3): [True: 9, False: 76.7M] ------------------ 52848| 9|#line 17551 "gram.y" 52849| 9| { 52850| 9| (yyval.node) = makeParamRefCast((yyvsp[(2) - (2)].ival), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); 52851| 9| ;} 52852| 9| break; 52853| | 52854| 2.26k| case 2461: ------------------ | Branch (52854:3): [True: 2.26k, False: 76.7M] ------------------ 52855| 2.26k|#line 17555 "gram.y" 52856| 2.26k| { 52857| 2.26k| TypeName *t = (yyvsp[(1) - (3)].typnam); 52858| 2.26k| t->typmods = (yyvsp[(3) - (3)].list); 52859| 2.26k| (yyval.node) = makeParamRefCast((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), t); 52860| 2.26k| ;} 52861| 2.26k| break; 52862| | 52863| 0| case 2462: ------------------ | Branch (52863:3): [True: 0, False: 76.7M] ------------------ 52864| 0|#line 17561 "gram.y" 52865| 0| { 52866| 0| TypeName *t = (yyvsp[(1) - (5)].typnam); 52867| 0| t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), ------------------ | | 215| 0| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 0|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 52868| 0| makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)]))); 52869| 0| (yyval.node) = makeParamRefCast((yyvsp[(5) - (5)].ival), (yylsp[(5) - (5)]), t); 52870| 0| ;} 52871| 0| break; 52872| | 52873| 4.62k| case 2463: ------------------ | Branch (52873:3): [True: 4.62k, False: 76.7M] ------------------ 52874| 4.62k|#line 17568 "gram.y" 52875| 4.62k| { 52876| 4.62k| (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); 52877| 4.62k| ;} 52878| 4.62k| break; 52879| | 52880| 2.48k| case 2464: ------------------ | Branch (52880:3): [True: 2.48k, False: 76.7M] ------------------ 52881| 2.48k|#line 17572 "gram.y" 52882| 2.48k| { 52883| 2.48k| (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); 52884| 2.48k| ;} 52885| 2.48k| break; 52886| | 52887| 6.14k| case 2465: ------------------ | Branch (52887:3): [True: 6.14k, False: 76.7M] ------------------ 52888| 6.14k|#line 17576 "gram.y" 52889| 6.14k| { 52890| 6.14k| (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); 52891| 6.14k| ;} 52892| 6.14k| break; 52893| | 52894| 61.4k| case 2466: ------------------ | Branch (52894:3): [True: 61.4k, False: 76.7M] ------------------ 52895| 61.4k|#line 17581 "gram.y" 52896| 61.4k| { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} 52897| 61.4k| break; 52898| | 52899| 13.1k| case 2467: ------------------ | Branch (52899:3): [True: 13.1k, False: 76.7M] ------------------ 52900| 13.1k|#line 17582 "gram.y" 52901| 13.1k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 52902| 13.1k| break; 52903| | 52904| 228| case 2468: ------------------ | Branch (52904:3): [True: 228, False: 76.7M] ------------------ 52905| 228|#line 17584 "gram.y" 52906| 228| { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} 52907| 228| break; 52908| | 52909| 0| case 2469: ------------------ | Branch (52909:3): [True: 0, False: 76.7M] ------------------ 52910| 0|#line 17585 "gram.y" 52911| 0| { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;} 52912| 0| break; 52913| | 52914| 89| case 2470: ------------------ | Branch (52914:3): [True: 89, False: 76.7M] ------------------ 52915| 89|#line 17586 "gram.y" 52916| 89| { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;} 52917| 89| break; 52918| | 52919| 1.00k| case 2471: ------------------ | Branch (52919:3): [True: 1.00k, False: 76.7M] ------------------ 52920| 1.00k|#line 17591 "gram.y" 52921| 1.00k| { 52922| 1.00k| RoleSpec *spc = (RoleSpec *) (yyvsp[(1) - (1)].rolespec); 52923| | 52924| 1.00k| switch (spc->roletype) ------------------ | Branch (52924:14): [True: 1.00k, False: 0] ------------------ 52925| 1.00k| { 52926| 1.00k| case ROLESPEC_CSTRING: ------------------ | Branch (52926:7): [True: 1.00k, False: 0] ------------------ 52927| 1.00k| (yyval.str) = spc->rolename; 52928| 1.00k| break; 52929| 0| case ROLESPEC_PUBLIC: ------------------ | Branch (52929:7): [True: 0, False: 1.00k] ------------------ 52930| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52931| 0| (errcode(ERRCODE_RESERVED_NAME), 52932| 0| errmsg("role name \"%s\" is reserved", 52933| 0| "public"), 52934| 0| parser_errposition((yylsp[(1) - (1)])))); 52935| 0| break; 52936| 0| case ROLESPEC_SESSION_USER: ------------------ | Branch (52936:7): [True: 0, False: 1.00k] ------------------ 52937| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52938| 0| (errcode(ERRCODE_RESERVED_NAME), 52939| 0| errmsg("%s cannot be used as a role name here", 52940| 0| "SESSION_USER"), 52941| 0| parser_errposition((yylsp[(1) - (1)])))); 52942| 0| break; 52943| 0| case ROLESPEC_CURRENT_USER: ------------------ | Branch (52943:7): [True: 0, False: 1.00k] ------------------ 52944| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52945| 0| (errcode(ERRCODE_RESERVED_NAME), 52946| 0| errmsg("%s cannot be used as a role name here", 52947| 0| "CURRENT_USER"), 52948| 0| parser_errposition((yylsp[(1) - (1)])))); 52949| 0| break; 52950| 0| case ROLESPEC_CURRENT_ROLE: ------------------ | Branch (52950:7): [True: 0, False: 1.00k] ------------------ 52951| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52952| 0| (errcode(ERRCODE_RESERVED_NAME), 52953| 0| errmsg("%s cannot be used as a role name here", 52954| 0| "CURRENT_ROLE"), 52955| 0| parser_errposition((yylsp[(1) - (1)])))); 52956| 0| break; 52957| 1.00k| } 52958| 1.00k| ;} 52959| 0| break; 52960| | 52961| 612k| case 2472: ------------------ | Branch (52961:3): [True: 612k, False: 76.1M] ------------------ 52962| 612k|#line 17632 "gram.y" 52963| 612k| { 52964| | /* 52965| | * "public" and "none" are not keywords, but they must 52966| | * be treated specially here. 52967| | */ 52968| 612k| RoleSpec *n; 52969| | 52970| 612k| if (strcmp((yyvsp[(1) - (1)].str), "public") == 0) ------------------ | Branch (52970:10): [True: 4, False: 612k] ------------------ 52971| 4| { 52972| 4| n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[(1) - (1)])); 52973| 4| n->roletype = ROLESPEC_PUBLIC; 52974| 4| } 52975| 612k| else if (strcmp((yyvsp[(1) - (1)].str), "none") == 0) ------------------ | Branch (52975:15): [True: 0, False: 612k] ------------------ 52976| 0| { 52977| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 52978| 0| (errcode(ERRCODE_RESERVED_NAME), 52979| 0| errmsg("role name \"%s\" is reserved", 52980| 0| "none"), 52981| 0| parser_errposition((yylsp[(1) - (1)])))); 52982| 0| } 52983| 612k| else 52984| 612k| { 52985| 612k| n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[(1) - (1)])); 52986| 612k| n->rolename = pstrdup((yyvsp[(1) - (1)].str)); 52987| 612k| } 52988| 612k| (yyval.rolespec) = n; 52989| 612k| ;} 52990| 0| break; 52991| | 52992| 1| case 2473: ------------------ | Branch (52992:3): [True: 1, False: 76.7M] ------------------ 52993| 1|#line 17660 "gram.y" 52994| 1| { 52995| 1| (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[(1) - (1)])); 52996| 1| ;} 52997| 1| break; 52998| | 52999| 29.3k| case 2474: ------------------ | Branch (52999:3): [True: 29.3k, False: 76.7M] ------------------ 53000| 29.3k|#line 17664 "gram.y" 53001| 29.3k| { 53002| 29.3k| (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[(1) - (1)])); 53003| 29.3k| ;} 53004| 29.3k| break; 53005| | 53006| 0| case 2475: ------------------ | Branch (53006:3): [True: 0, False: 76.7M] ------------------ 53007| 0|#line 17668 "gram.y" 53008| 0| { 53009| 0| (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[(1) - (1)])); 53010| 0| ;} 53011| 0| break; 53012| | 53013| 11.4k| case 2476: ------------------ | Branch (53013:3): [True: 11.4k, False: 76.7M] ------------------ 53014| 11.4k|#line 17674 "gram.y" 53015| 11.4k| { (yyval.list) = list_make1((yyvsp[(1) - (1)].rolespec)); ;} ------------------ | | 213| 11.4k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 11.4k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53016| 11.4k| break; 53017| | 53018| 590k| case 2477: ------------------ | Branch (53018:3): [True: 590k, False: 76.1M] ------------------ 53019| 590k|#line 17676 "gram.y" 53020| 590k| { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].rolespec)); ;} 53021| 590k| break; 53022| | 53023| 0| case 2478: ------------------ | Branch (53023:3): [True: 0, False: 76.7M] ------------------ 53024| 0|#line 17693 "gram.y" 53025| 0| { 53026| 0| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53027| | 53028| 0| n->distinctClause = (yyvsp[(1) - (10)].list); 53029| 0| n->targetList = (yyvsp[(2) - (10)].list); 53030| 0| n->fromClause = (yyvsp[(3) - (10)].list); 53031| 0| n->whereClause = (yyvsp[(4) - (10)].node); 53032| 0| n->groupClause = ((yyvsp[(5) - (10)].groupclause))->list; 53033| 0| n->groupDistinct = ((yyvsp[(5) - (10)].groupclause))->distinct; 53034| 0| n->havingClause = (yyvsp[(6) - (10)].node); 53035| 0| n->windowClause = (yyvsp[(7) - (10)].list); 53036| 0| n->sortClause = (yyvsp[(8) - (10)].list); 53037| 0| if ((yyvsp[(9) - (10)].selectlimit)) ------------------ | Branch (53037:10): [True: 0, False: 0] ------------------ 53038| 0| { 53039| 0| n->limitOffset = (yyvsp[(9) - (10)].selectlimit)->limitOffset; 53040| 0| n->limitCount = (yyvsp[(9) - (10)].selectlimit)->limitCount; 53041| 0| if (!n->sortClause && ------------------ | Branch (53041:11): [True: 0, False: 0] ------------------ 53042| 0| (yyvsp[(9) - (10)].selectlimit)->limitOption == LIMIT_OPTION_WITH_TIES) ------------------ | Branch (53042:8): [True: 0, False: 0] ------------------ 53043| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 53044| 0| (errcode(ERRCODE_SYNTAX_ERROR), 53045| 0| errmsg("WITH TIES cannot be specified without ORDER BY clause"), 53046| 0| parser_errposition((yyvsp[(9) - (10)].selectlimit)->optionLoc))); 53047| 0| n->limitOption = (yyvsp[(9) - (10)].selectlimit)->limitOption; 53048| 0| } 53049| 0| n->lockingClause = (yyvsp[(10) - (10)].list); 53050| 0| (yyval.node) = (Node *) n; 53051| 0| ;} 53052| 0| break; 53053| | 53054| 0| case 2479: ------------------ | Branch (53054:3): [True: 0, False: 76.7M] ------------------ 53055| 0|#line 17727 "gram.y" 53056| 0| { 53057| 0| PLAssignStmt *n = makeNode(PLAssignStmt); ------------------ | | 161| 0|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53058| | 53059| 0| n->name = (yyvsp[(1) - (4)].str); 53060| 0| n->indirection = check_indirection((yyvsp[(2) - (4)].list), yyscanner); 53061| | /* nnames will be filled by calling production */ 53062| 0| n->val = (SelectStmt *) (yyvsp[(4) - (4)].node); 53063| 0| n->location = (yylsp[(1) - (4)]); 53064| 0| (yyval.node) = (Node *) n; 53065| 0| ;} 53066| 0| break; 53067| | 53068| 0| case 2480: ------------------ | Branch (53068:3): [True: 0, False: 76.7M] ------------------ 53069| 0|#line 17739 "gram.y" 53070| 0| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53071| 0| break; 53072| | 53073| 0| case 2481: ------------------ | Branch (53073:3): [True: 0, False: 76.7M] ------------------ 53074| 0|#line 17740 "gram.y" 53075| 0| { (yyval.str) = psprintf("$%d", (yyvsp[(1) - (1)].ival)); ;} 53076| 0| break; 53077| | 53078| 8.30M| case 2484: ------------------ | Branch (53078:3): [True: 8.30M, False: 68.4M] ------------------ 53079| 8.30M|#line 17761 "gram.y" 53080| 8.30M| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53081| 8.30M| break; 53082| | 53083| 8.76k| case 2485: ------------------ | Branch (53083:3): [True: 8.76k, False: 76.7M] ------------------ 53084| 8.76k|#line 17762 "gram.y" 53085| 8.76k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53086| 8.76k| break; 53087| | 53088| 12.4k| case 2486: ------------------ | Branch (53088:3): [True: 12.4k, False: 76.7M] ------------------ 53089| 12.4k|#line 17763 "gram.y" 53090| 12.4k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53091| 12.4k| break; 53092| | 53093| 1.00M| case 2487: ------------------ | Branch (53093:3): [True: 1.00M, False: 75.7M] ------------------ 53094| 1.00M|#line 17768 "gram.y" 53095| 1.00M| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53096| 1.00M| break; 53097| | 53098| 226| case 2488: ------------------ | Branch (53098:3): [True: 226, False: 76.7M] ------------------ 53099| 226|#line 17769 "gram.y" 53100| 226| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53101| 226| break; 53102| | 53103| 83| case 2489: ------------------ | Branch (53103:3): [True: 83, False: 76.7M] ------------------ 53104| 83|#line 17770 "gram.y" 53105| 83| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53106| 83| break; 53107| | 53108| 748k| case 2490: ------------------ | Branch (53108:3): [True: 748k, False: 76.0M] ------------------ 53109| 748k|#line 17775 "gram.y" 53110| 748k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53111| 748k| break; 53112| | 53113| 5.45k| case 2491: ------------------ | Branch (53113:3): [True: 5.45k, False: 76.7M] ------------------ 53114| 5.45k|#line 17776 "gram.y" 53115| 5.45k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53116| 5.45k| break; 53117| | 53118| 2| case 2492: ------------------ | Branch (53118:3): [True: 2, False: 76.7M] ------------------ 53119| 2|#line 17777 "gram.y" 53120| 2| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53121| 2| break; 53122| | 53123| 0| case 2493: ------------------ | Branch (53123:3): [True: 0, False: 76.7M] ------------------ 53124| 0|#line 17778 "gram.y" 53125| 0| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53126| 0| break; 53127| | 53128| 5.20M| case 2494: ------------------ | Branch (53128:3): [True: 5.20M, False: 71.5M] ------------------ 53129| 5.20M|#line 17784 "gram.y" 53130| 5.20M| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53131| 5.20M| break; 53132| | 53133| 205| case 2495: ------------------ | Branch (53133:3): [True: 205, False: 76.7M] ------------------ 53134| 205|#line 17785 "gram.y" 53135| 205| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53136| 205| break; 53137| | 53138| 178| case 2496: ------------------ | Branch (53138:3): [True: 178, False: 76.7M] ------------------ 53139| 178|#line 17786 "gram.y" 53140| 178| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53141| 178| break; 53142| | 53143| 11.1k| case 2497: ------------------ | Branch (53143:3): [True: 11.1k, False: 76.7M] ------------------ 53144| 11.1k|#line 17787 "gram.y" 53145| 11.1k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53146| 11.1k| break; 53147| | 53148| 86.7k| case 2498: ------------------ | Branch (53148:3): [True: 86.7k, False: 76.6M] ------------------ 53149| 86.7k|#line 17788 "gram.y" 53150| 86.7k| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53151| 86.7k| break; 53152| | 53153| 3.57k| case 2499: ------------------ | Branch (53153:3): [True: 3.57k, False: 76.7M] ------------------ 53154| 3.57k|#line 17794 "gram.y" 53155| 3.57k| { (yyval.str) = (yyvsp[(1) - (1)].str); ;} 53156| 3.57k| break; 53157| | 53158| 751| case 2500: ------------------ | Branch (53158:3): [True: 751, False: 76.7M] ------------------ 53159| 751|#line 17795 "gram.y" 53160| 751| { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} 53161| 751| break; 53162| | 53163| | 53164| |/* Line 1267 of yacc.c. */ 53165| 0|#line 53106 "gram.c" 53166| 304k| default: break; ------------------ | Branch (53166:7): [True: 304k, False: 76.4M] ------------------ 53167| 76.7M| } 53168| 76.7M| YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 53169| | 53170| 76.7M| YYPOPSTACK (yylen); ------------------ | |32438| 76.7M|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) ------------------ 53171| 76.7M| yylen = 0; 53172| 76.7M| YY_STACK_PRINT (yyss, yyssp); 53173| | 53174| 76.7M| *++yyvsp = yyval; 53175| 76.7M| *++yylsp = yyloc; 53176| | 53177| | /* Now `shift' the result of the reduction. Determine what state 53178| | that goes to, based on the state we popped back to and the rule 53179| | number reduced by. */ 53180| | 53181| 76.7M| yyn = yyr1[yyn]; 53182| | 53183| 76.7M| yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; ------------------ | | 1725| 76.7M|#define YYNTOKENS 544 ------------------ 53184| 76.7M| if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) ------------------ | | 1722| 137M|#define YYLAST 124337 ------------------ | Branch (53184:7): [True: 60.5M, False: 16.2M] | Branch (53184:23): [True: 60.5M, False: 0] | Branch (53184:44): [True: 47.9M, False: 12.6M] ------------------ 53185| 47.9M| yystate = yytable[yystate]; 53186| 28.8M| else 53187| 28.8M| yystate = yydefgoto[yyn - YYNTOKENS]; ------------------ | | 1725| 28.8M|#define YYNTOKENS 544 ------------------ 53188| | 53189| 76.7M| goto yynewstate; 53190| | 53191| | 53192| |/*------------------------------------. 53193| || yyerrlab -- here on detecting error | 53194| |`------------------------------------*/ 53195| 143|yyerrlab: 53196| | /* If not already recovering from an error, report this error. */ 53197| 143| if (!yyerrstatus) ------------------ | Branch (53197:7): [True: 143, False: 0] ------------------ 53198| 143| { 53199| 143| ++yynerrs; ------------------ | | 128| 143|#define yynerrs base_yynerrs ------------------ 53200| 143|#if ! YYERROR_VERBOSE 53201| 143| yyerror (&yylloc, yyscanner, YY_("syntax error")); ------------------ | | 124| 143|#define yyerror base_yyerror ------------------ yyerror (&yylloc, yyscanner, YY_("syntax error")); ------------------ | | 129| 143|#define yylloc base_yylloc ------------------ yyerror (&yylloc, yyscanner, YY_("syntax error")); ------------------ | | 1562| 143|# define YY_(msgid) msgid ------------------ 53202| |#else 53203| | { 53204| | YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 53205| | if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 53206| | { 53207| | YYSIZE_T yyalloc = 2 * yysize; 53208| | if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 53209| | yyalloc = YYSTACK_ALLOC_MAXIMUM; 53210| | if (yymsg != yymsgbuf) 53211| | YYSTACK_FREE (yymsg); 53212| | yymsg = (char *) YYSTACK_ALLOC (yyalloc); 53213| | if (yymsg) 53214| | yymsg_alloc = yyalloc; 53215| | else 53216| | { 53217| | yymsg = yymsgbuf; 53218| | yymsg_alloc = sizeof yymsgbuf; 53219| | } 53220| | } 53221| | 53222| | if (0 < yysize && yysize <= yymsg_alloc) 53223| | { 53224| | (void) yysyntax_error (yymsg, yystate, yychar); 53225| | yyerror (&yylloc, yyscanner, yymsg); 53226| | } 53227| | else 53228| | { 53229| | yyerror (&yylloc, yyscanner, YY_("syntax error")); 53230| | if (yysize != 0) 53231| | goto yyexhaustedlab; 53232| | } 53233| | } 53234| |#endif 53235| 143| } 53236| | 53237| 143| yyerror_range[0] = yylloc; ------------------ | | 129| 143|#define yylloc base_yylloc ------------------ 53238| | 53239| 143| if (yyerrstatus == 3) ------------------ | Branch (53239:7): [True: 0, False: 143] ------------------ 53240| 0| { 53241| | /* If just tried and failed to reuse look-ahead token after an 53242| | error, discard it. */ 53243| | 53244| 0| if (yychar <= YYEOF) ------------------ | | 126| 0|#define yychar base_yychar ------------------ if (yychar <= YYEOF) ------------------ | |31818| 0|#define YYEOF 0 ------------------ | Branch (53244:11): [True: 0, False: 0] ------------------ 53245| 0| { 53246| | /* Return failure if at end of input. */ 53247| 0| if (yychar == YYEOF) ------------------ | | 126| 0|#define yychar base_yychar ------------------ if (yychar == YYEOF) ------------------ | |31818| 0|#define YYEOF 0 ------------------ | Branch (53247:8): [True: 0, False: 0] ------------------ 53248| 0| YYABORT; ------------------ | |31821| 0|#define YYABORT goto yyabortlab ------------------ 53249| 0| } 53250| 0| else 53251| 0| { 53252| 0| yydestruct ("Error: discarding", 53253| 0| yytoken, &yylval, &yylloc, yyscanner); ------------------ | | 125| 0|#define yylval base_yylval ------------------ yytoken, &yylval, &yylloc, yyscanner); ------------------ | | 129| 0|#define yylloc base_yylloc ------------------ 53254| 0| yychar = YYEMPTY; ------------------ | | 126| 0|#define yychar base_yychar ------------------ yychar = YYEMPTY; ------------------ | |31817| 0|#define YYEMPTY (-2) ------------------ 53255| 0| } 53256| 0| } 53257| | 53258| | /* Else will try to reuse look-ahead token after shifting the error 53259| | token. */ 53260| 143| goto yyerrlab1; 53261| | 53262| | 53263| |/*---------------------------------------------------. 53264| || yyerrorlab -- error raised explicitly by YYERROR. | 53265| |`---------------------------------------------------*/ 53266| 143|yyerrorlab: 53267| | 53268| | /* Pacify compilers like GCC when the user code never invokes 53269| | YYERROR and the label yyerrorlab therefore never appears in user 53270| | code. */ 53271| 0| if (/*CONSTCOND*/ 0) ------------------ | Branch (53271:21): [Folded, False: 0] ------------------ 53272| 0| goto yyerrorlab; 53273| | 53274| 0| yyerror_range[0] = yylsp[1-yylen]; 53275| | /* Do not reclaim the symbols of the rule which action triggered 53276| | this YYERROR. */ 53277| 0| YYPOPSTACK (yylen); ------------------ | |32438| 0|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) ------------------ 53278| 0| yylen = 0; 53279| 0| YY_STACK_PRINT (yyss, yyssp); 53280| 0| yystate = *yyssp; 53281| 0| goto yyerrlab1; 53282| | 53283| | 53284| |/*-------------------------------------------------------------. 53285| || yyerrlab1 -- common code for both syntax error and YYERROR. | 53286| |`-------------------------------------------------------------*/ 53287| 0|yyerrlab1: 53288| 0| yyerrstatus = 3; /* Each real token shifted decrements this. */ 53289| | 53290| 0| for (;;) 53291| 0| { 53292| 0| yyn = yypact[yystate]; 53293| 0| if (yyn != YYPACT_NINF) ------------------ | | 5540| 0|#define YYPACT_NINF -5909 ------------------ | Branch (53293:11): [True: 0, False: 0] ------------------ 53294| 0| { 53295| 0| yyn += YYTERROR; ------------------ | |31851| 0|#define YYTERROR 1 ------------------ 53296| 0| if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ------------------ | | 1722| 0|#define YYLAST 124337 ------------------ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ------------------ | |31851| 0|#define YYTERROR 1 ------------------ | Branch (53296:8): [True: 0, False: 0] | Branch (53296:20): [True: 0, False: 0] | Branch (53296:37): [True: 0, False: 0] ------------------ 53297| 0| { 53298| 0| yyn = yytable[yyn]; 53299| 0| if (0 < yyn) ------------------ | Branch (53299:12): [True: 0, False: 0] ------------------ 53300| 0| break; 53301| 0| } 53302| 0| } 53303| | 53304| | /* Pop the current state because it cannot handle the error token. */ 53305| 0| if (yyssp == yyss) ------------------ | Branch (53305:11): [True: 0, False: 0] ------------------ 53306| 0| YYABORT; ------------------ | |31821| 0|#define YYABORT goto yyabortlab ------------------ 53307| | 53308| 0| yyerror_range[0] = *yylsp; 53309| 0| yydestruct ("Error: popping", 53310| 0| yystos[yystate], yyvsp, yylsp, yyscanner); 53311| 0| YYPOPSTACK (1); ------------------ | |32438| 0|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) ------------------ 53312| 0| yystate = *yyssp; 53313| 0| YY_STACK_PRINT (yyss, yyssp); 53314| 0| } 53315| | 53316| 0| if (yyn == YYFINAL) ------------------ | | 1720| 0|#define YYFINAL 932 ------------------ | Branch (53316:7): [True: 0, False: 0] ------------------ 53317| 0| YYACCEPT; ------------------ | |31820| 0|#define YYACCEPT goto yyacceptlab ------------------ 53318| | 53319| 0| *++yyvsp = yylval; ------------------ | | 125| 0|#define yylval base_yylval ------------------ 53320| | 53321| 0| yyerror_range[1] = yylloc; ------------------ | | 129| 0|#define yylloc base_yylloc ------------------ 53322| | /* Using YYLLOC is tempting, but would change the location of 53323| | the look-ahead. YYLOC is available though. */ 53324| 0| YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); ------------------ | | 1266| 0| do { \ | | 1267| 0| (Current) = (-1); \ | | 1268| 0| for (int _i = 1; _i <= (N); _i++) \ | | ------------------ | | | Branch (1268:20): [True: 0, False: 0] | | ------------------ | | 1269| 0| { \ | | 1270| 0| if ((Rhs)[_i] >= 0) \ | | ------------------ | | | Branch (1270:8): [True: 0, False: 0] | | ------------------ | | 1271| 0| { \ | | 1272| 0| (Current) = (Rhs)[_i]; \ | | 1273| 0| break; \ | | 1274| 0| } \ | | 1275| 0| } \ | | 1276| 0| } while (0) | | ------------------ | | | Branch (1276:11): [Folded, False: 0] | | ------------------ ------------------ 53325| 0| *++yylsp = yyloc; 53326| | 53327| | /* Shift the error token. */ 53328| 0| YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 53329| | 53330| 0| yystate = yyn; 53331| 0| goto yynewstate; 53332| | 53333| | 53334| |/*-------------------------------------. 53335| || yyacceptlab -- YYACCEPT comes here. | 53336| |`-------------------------------------*/ 53337| 504|yyacceptlab: 53338| 504| yyresult = 0; 53339| 504| goto yyreturn; 53340| | 53341| |/*-----------------------------------. 53342| || yyabortlab -- YYABORT comes here. | 53343| |`-----------------------------------*/ 53344| 0|yyabortlab: 53345| 0| yyresult = 1; 53346| 0| goto yyreturn; 53347| | 53348| 0|#ifndef yyoverflow 53349| |/*-------------------------------------------------. 53350| || yyexhaustedlab -- memory exhaustion comes here. | 53351| |`-------------------------------------------------*/ 53352| 4|yyexhaustedlab: 53353| 4| yyerror (&yylloc, yyscanner, YY_("memory exhausted")); ------------------ | | 124| 4|#define yyerror base_yyerror ------------------ yyerror (&yylloc, yyscanner, YY_("memory exhausted")); ------------------ | | 129| 4|#define yylloc base_yylloc ------------------ yyerror (&yylloc, yyscanner, YY_("memory exhausted")); ------------------ | | 1562| 4|# define YY_(msgid) msgid ------------------ 53354| 4| yyresult = 2; 53355| | /* Fall through. */ 53356| 4|#endif 53357| | 53358| 504|yyreturn: 53359| 504| if (yychar != YYEOF && yychar != YYEMPTY) ------------------ | | 126| 504|#define yychar base_yychar ------------------ if (yychar != YYEOF && yychar != YYEMPTY) ------------------ | |31818| 1.00k|#define YYEOF 0 ------------------ if (yychar != YYEOF && yychar != YYEMPTY) ------------------ | | 126| 0|#define yychar base_yychar ------------------ if (yychar != YYEOF && yychar != YYEMPTY) ------------------ | |31817| 0|#define YYEMPTY (-2) ------------------ | Branch (53359:7): [True: 0, False: 504] | Branch (53359:26): [True: 0, False: 0] ------------------ 53360| 0| yydestruct ("Cleanup: discarding lookahead", 53361| 0| yytoken, &yylval, &yylloc, yyscanner); ------------------ | | 125| 0|#define yylval base_yylval ------------------ yytoken, &yylval, &yylloc, yyscanner); ------------------ | | 129| 0|#define yylloc base_yylloc ------------------ 53362| | /* Do not reclaim the symbols of the rule which action triggered 53363| | this YYABORT or YYACCEPT. */ 53364| 504| YYPOPSTACK (yylen); ------------------ | |32438| 504|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) ------------------ 53365| 504| YY_STACK_PRINT (yyss, yyssp); 53366| 1.00k| while (yyssp != yyss) ------------------ | Branch (53366:10): [True: 504, False: 504] ------------------ 53367| 504| { 53368| 504| yydestruct ("Cleanup: popping", 53369| 504| yystos[*yyssp], yyvsp, yylsp, yyscanner); 53370| 504| YYPOPSTACK (1); ------------------ | |32438| 504|#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) ------------------ 53371| 504| } 53372| 504|#ifndef yyoverflow 53373| 504| if (yyss != yyssa) ------------------ | Branch (53373:7): [True: 30, False: 474] ------------------ 53374| 30| YYSTACK_FREE (yyss); ------------------ | | 1631| 30|# define YYSTACK_FREE YYFREE | | ------------------ | | | | 1284| 30|#define YYFREE pfree | | ------------------ ------------------ 53375| 504|#endif 53376| |#if YYERROR_VERBOSE 53377| | if (yymsg != yymsgbuf) 53378| | YYSTACK_FREE (yymsg); 53379| |#endif 53380| | /* Make sure YYID is used. */ 53381| 504| return YYID (yyresult); ------------------ | | 1575| 504|# define YYID(n) (n) ------------------ 53382| 4|} SystemFuncName: 53842| 309|{ 53843| 309| return list_make2(makeString("pg_catalog"), makeString(name)); ------------------ | | 215| 309| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 309|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 309|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53844| 309|} SystemTypeName: 53854| 8.14k|{ 53855| 8.14k| return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"), ------------------ | | 215| 8.14k| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 8.14k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 8.14k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53856| 8.14k| makeString(name))); 53857| 8.14k|} parser_init: 54446| 1.07k|{ 54447| | yyext->parsetree = NIL; /* in case grammar forgets to set it */ ------------------ | | 68| 1.07k|#define NIL ((List *) NULL) ------------------ 54448| 1.07k|} src_backend_parser_gram.c:yydestruct: 32323| 504|{ 32324| 504| YYUSE (yyvaluep); ------------------ | | 1568| 504|# define YYUSE(e) ((void) (e)) ------------------ 32325| 504| YYUSE (yylocationp); ------------------ | | 1568| 504|# define YYUSE(e) ((void) (e)) ------------------ 32326| 504| YYUSE (yyscanner); ------------------ | | 1568| 504|# define YYUSE(e) ((void) (e)) ------------------ 32327| | 32328| 504| if (!yymsg) ------------------ | Branch (32328:7): [True: 0, False: 504] ------------------ 32329| 0| yymsg = "Deleting"; 32330| 504| YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 32331| | 32332| 504| switch (yytype) 32333| 504| { 32334| | 32335| 504| default: ------------------ | Branch (32335:7): [True: 504, False: 0] ------------------ 32336| 504| break; 32337| 504| } 32338| 504|} src_backend_parser_gram.c:base_yyerror: 53395| 147|{ 53396| 147| parser_yyerror(msg); ------------------ | | 1343| 147|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 53397| 147|} src_backend_parser_gram.c:makeRawStmt: 53401| 41.2k|{ 53402| 41.2k| RawStmt *rs = makeNode(RawStmt); ------------------ | | 161| 41.2k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53403| | 53404| 41.2k| rs->stmt = stmt; 53405| 41.2k| rs->stmt_location = stmt_location; 53406| 41.2k| rs->stmt_len = 0; /* might get changed later */ 53407| 41.2k| return rs; 53408| 41.2k|} src_backend_parser_gram.c:updateRawStmtEnd: 53413| 61.4k|{ 53414| | /* 53415| | * If we already set the length, don't change it. This is for situations 53416| | * like "select foo ;; select bar" where the same statement will be last 53417| | * in the string for more than one semicolon. 53418| | */ 53419| 61.4k| if (rs->stmt_len > 0) ------------------ | Branch (53419:6): [True: 20.7k, False: 40.7k] ------------------ 53420| 20.7k| return; 53421| | 53422| | /* OK, update length of RawStmt */ 53423| 40.7k| rs->stmt_len = end_location - rs->stmt_location; 53424| 40.7k|} src_backend_parser_gram.c:makeColumnRef: 53429| 3.96M|{ 53430| | /* 53431| | * Generate a ColumnRef node, with an A_Indirection node added if there is 53432| | * any subscripting in the specified indirection list. However, any field 53433| | * selection at the start of the indirection list must be transposed into 53434| | * the "fields" part of the ColumnRef node. 53435| | */ 53436| 3.96M| ColumnRef *c = makeNode(ColumnRef); ------------------ | | 161| 3.96M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53437| 3.96M| int nfields = 0; 53438| 3.96M| ListCell *l; 53439| | 53440| 3.96M| c->location = location; 53441| 3.96M| foreach(l, indirection) ------------------ | | 374| 3.96M| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 4.50M| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 9.01M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 547k, False: 3.95M] | | | Branch (375:5): [True: 564k, False: 3.94M] | | ------------------ | | 376| 4.50M| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 547k, False: 17.0k] | | ------------------ | | 377| 4.50M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 4.50M| (cell = NULL, false); \ | | 379| 3.96M| cell##__state.i++) ------------------ 53442| 547k| { 53443| 547k| if (IsA(lfirst(l), A_Indices)) ------------------ | | 164| 547k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 547k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 1.08k, False: 546k] | | ------------------ ------------------ 53444| 1.08k| { 53445| 1.08k| A_Indirection *i = makeNode(A_Indirection); ------------------ | | 161| 1.08k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53446| | 53447| 1.08k| if (nfields == 0) ------------------ | Branch (53447:8): [True: 933, False: 153] ------------------ 53448| 933| { 53449| | /* easy case - all indirection goes to A_Indirection */ 53450| 933| c->fields = list_make1(makeString(colname)); ------------------ | | 213| 933| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 933|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53451| 933| i->indirection = check_indirection(indirection, yyscanner); 53452| 933| } 53453| 153| else 53454| 153| { 53455| | /* got to split the list in two */ 53456| 153| i->indirection = check_indirection(list_copy_tail(indirection, 53457| 153| nfields), 53458| 153| yyscanner); 53459| 153| indirection = list_truncate(indirection, nfields); 53460| 153| c->fields = lcons(makeString(colname), indirection); 53461| 153| } 53462| 1.08k| i->arg = (Node *) c; 53463| 1.08k| return (Node *) i; 53464| 1.08k| } 53465| 546k| else if (IsA(lfirst(l), A_Star)) ------------------ | | 164| 546k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 546k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 138, False: 546k] | | ------------------ ------------------ 53466| 138| { 53467| | /* We only allow '*' at the end of a ColumnRef */ 53468| 138| if (lnext(indirection, l) != NULL) ------------------ | Branch (53468:8): [True: 0, False: 138] ------------------ 53469| 0| parser_yyerror("improper use of \"*\""); ------------------ | | 1343| 0|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 53470| 138| } 53471| 546k| nfields++; 53472| 546k| } 53473| | /* No subscripting, so all indirection gets added to field list */ 53474| 3.95M| c->fields = lcons(makeString(colname), indirection); 53475| 3.95M| return (Node *) c; 53476| 3.96M|} src_backend_parser_gram.c:makeTypeCast: 53480| 37.2k|{ 53481| 37.2k| TypeCast *n = makeNode(TypeCast); ------------------ | | 161| 37.2k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53482| | 53483| 37.2k| n->arg = arg; 53484| 37.2k| n->typeName = typename; 53485| 37.2k| n->location = location; 53486| 37.2k| return (Node *) n; 53487| 37.2k|} src_backend_parser_gram.c:makeStringConstCast: 53491| 8.16k|{ 53492| 8.16k| Node *s = makeStringConst(str, location); 53493| | 53494| 8.16k| return makeTypeCast(s, typename, -1); 53495| 8.16k|} src_backend_parser_gram.c:makeIntConst: 53499| 61.5k|{ 53500| 61.5k| A_Const *n = makeNode(A_Const); ------------------ | | 161| 61.5k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53501| | 53502| 61.5k| n->val.ival.type = T_Integer; 53503| 61.5k| n->val.ival.ival = val; 53504| 61.5k| n->location = location; 53505| | 53506| 61.5k| return (Node *) n; 53507| 61.5k|} src_backend_parser_gram.c:makeFloatConst: 53511| 696|{ 53512| 696| A_Const *n = makeNode(A_Const); ------------------ | | 161| 696|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53513| | 53514| 696| n->val.fval.type = T_Float; 53515| 696| n->val.fval.fval = str; 53516| 696| n->location = location; 53517| | 53518| 696| return (Node *) n; 53519| 696|} src_backend_parser_gram.c:makeBoolAConst: 53523| 7.10k|{ 53524| 7.10k| A_Const *n = makeNode(A_Const); ------------------ | | 161| 7.10k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53525| | 53526| 7.10k| n->val.boolval.type = T_Boolean; 53527| 7.10k| n->val.boolval.boolval = state; 53528| 7.10k| n->location = location; 53529| | 53530| 7.10k| return (Node *) n; 53531| 7.10k|} src_backend_parser_gram.c:makeBitStringConst: 53535| 24|{ 53536| 24| A_Const *n = makeNode(A_Const); ------------------ | | 161| 24|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53537| | 53538| 24| n->val.bsval.type = T_BitString; 53539| 24| n->val.bsval.bsval = str; 53540| 24| n->location = location; 53541| | 53542| 24| return (Node *) n; 53543| 24|} src_backend_parser_gram.c:makeNullAConst: 53547| 6.14k|{ 53548| 6.14k| A_Const *n = makeNode(A_Const); ------------------ | | 161| 6.14k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53549| | 53550| 6.14k| n->isnull = true; 53551| 6.14k| n->location = location; 53552| | 53553| 6.14k| return (Node *) n; 53554| 6.14k|} src_backend_parser_gram.c:makeAConst: 53558| 3|{ 53559| 3| Node *n; 53560| | 53561| 3| switch (v->type) 53562| 3| { 53563| 3| case T_Float: ------------------ | Branch (53563:3): [True: 3, False: 0] ------------------ 53564| 3| n = makeFloatConst(castNode(Float, v)->fval, location); ------------------ | | 182| 3|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 53565| 3| break; 53566| | 53567| 0| case T_Integer: ------------------ | Branch (53567:3): [True: 0, False: 3] ------------------ 53568| 0| n = makeIntConst(castNode(Integer, v)->ival, location); ------------------ | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) ------------------ 53569| 0| break; 53570| | 53571| 0| default: ------------------ | Branch (53571:3): [True: 0, False: 3] ------------------ 53572| | /* currently not used */ 53573| 0| Assert(false); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 53574| 0| n = NULL; 53575| 3| } 53576| | 53577| 3| return n; 53578| 3|} src_backend_parser_gram.c:makeParamRef: 53584| 10.1k|{ 53585| 10.1k| ParamRef *p = makeNode(ParamRef); ------------------ | | 161| 10.1k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53586| 10.1k| p->number = number; 53587| 10.1k| p->location = location; 53588| 10.1k| return (Node *) p; 53589| 10.1k|} src_backend_parser_gram.c:makeParamRefCast: 53593| 9.31k|{ 53594| 9.31k| Node *p = makeParamRef(number, location); 53595| 9.31k| return makeTypeCast(p, typename, -1); 53596| 9.31k|} src_backend_parser_gram.c:makeRoleSpec: 53603| 641k|{ 53604| 641k| RoleSpec *spec = makeNode(RoleSpec); ------------------ | | 161| 641k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53605| | 53606| 641k| spec->roletype = type; 53607| 641k| spec->location = location; 53608| | 53609| 641k| return spec; 53610| 641k|} src_backend_parser_gram.c:check_func_name: 53636| 837|{ 53637| 837| ListCell *i; 53638| | 53639| 837| foreach(i, names) ------------------ | | 374| 837| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 234k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 468k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 233k, False: 837] | | | Branch (375:5): [True: 234k, False: 0] | | ------------------ | | 376| 234k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 233k, False: 837] | | ------------------ | | 377| 234k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 234k| (cell = NULL, false); \ | | 379| 233k| cell##__state.i++) ------------------ 53640| 233k| { 53641| 233k| if (!IsA(lfirst(i), String)) ------------------ | | 164| 233k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 233k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ ------------------ | Branch (53641:7): [True: 0, False: 233k] ------------------ 53642| 0| parser_yyerror("syntax error"); ------------------ | | 1343| 0|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 53643| 233k| } 53644| 837| return names; 53645| 837|} src_backend_parser_gram.c:check_indirection: 53654| 792k|{ 53655| 792k| ListCell *l; 53656| | 53657| 792k| foreach(l, indirection) ------------------ | | 374| 792k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 1.17M| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 2.35M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 385k, False: 792k] | | | Branch (375:5): [True: 388k, False: 789k] | | ------------------ | | 376| 1.17M| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 385k, False: 3.55k] | | ------------------ | | 377| 1.17M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 1.17M| (cell = NULL, false); \ | | 379| 792k| cell##__state.i++) ------------------ 53658| 385k| { 53659| 385k| if (IsA(lfirst(l), A_Star)) ------------------ | | 164| 385k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 385k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 24, False: 385k] | | ------------------ ------------------ 53660| 24| { 53661| 24| if (lnext(indirection, l) != NULL) ------------------ | Branch (53661:8): [True: 24, False: 0] ------------------ 53662| 24| parser_yyerror("improper use of \"*\""); ------------------ | | 1343| 24|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 53663| 24| } 53664| 385k| } 53665| 792k| return indirection; 53666| 792k|} src_backend_parser_gram.c:extractArgTypes: 53676| 2.26k|{ 53677| 2.26k| List *result = NIL; ------------------ | | 68| 2.26k|#define NIL ((List *) NULL) ------------------ 53678| 2.26k| ListCell *i; 53679| | 53680| 2.26k| foreach(i, parameters) ------------------ | | 374| 2.26k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 899k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 1.79M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 896k, False: 2.26k] | | | Branch (375:5): [True: 898k, False: 199] | | ------------------ | | 376| 899k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 896k, False: 2.06k] | | ------------------ | | 377| 899k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 899k| (cell = NULL, false); \ | | 379| 896k| cell##__state.i++) ------------------ 53681| 896k| { 53682| 896k| FunctionParameter *p = (FunctionParameter *) lfirst(i); ------------------ | | 172| 896k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 53683| | 53684| 896k| if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE) ------------------ | Branch (53684:7): [True: 896k, False: 0] | Branch (53684:36): [True: 896k, False: 0] ------------------ 53685| 896k| result = lappend(result, p->argType); 53686| 896k| } 53687| 2.26k| return result; 53688| 2.26k|} src_backend_parser_gram.c:insertSelectOptions: 53751| 4.85k|{ 53752| 4.85k| Assert(IsA(stmt, SelectStmt)); ------------------ | | 844| 4.85k|#define Assert(condition) ((void)true) ------------------ 53753| | 53754| | /* 53755| | * Tests here are to reject constructs like 53756| | * (SELECT foo ORDER BY bar) ORDER BY baz 53757| | */ 53758| 4.85k| if (sortClause) ------------------ | Branch (53758:6): [True: 1.77k, False: 3.08k] ------------------ 53759| 1.77k| { 53760| 1.77k| if (stmt->sortClause) ------------------ | Branch (53760:7): [True: 128, False: 1.64k] ------------------ 53761| 1.77k| ereport(ERROR, ------------------ | | 164| 128| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 128| do { \ | | | | 143| 128| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 128|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 128| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 128|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 128, Folded] | | | | | Branch (144:7): [True: 128, False: 0] | | | | | Branch (144:39): [True: 128, Folded] | | | | ------------------ | | | | 145| 128| errstart_cold(elevel, domain) : \ | | | | 146| 128| errstart(elevel, domain)) \ | | | | 147| 128| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 128| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 128| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 128| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 128] | | | | ------------------ | | ------------------ ------------------ 53762| 1.77k| (errcode(ERRCODE_SYNTAX_ERROR), 53763| 1.77k| errmsg("multiple ORDER BY clauses not allowed"), 53764| 1.77k| parser_errposition(exprLocation((Node *) sortClause)))); 53765| 1.77k| stmt->sortClause = sortClause; 53766| 1.77k| } 53767| | /* We can handle multiple locking clauses, though */ 53768| 4.85k| stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause); 53769| 4.85k| if (limitClause && limitClause->limitOffset) ------------------ | Branch (53769:6): [True: 578, False: 4.27k] | Branch (53769:21): [True: 70, False: 508] ------------------ 53770| 70| { 53771| 70| if (stmt->limitOffset) ------------------ | Branch (53771:7): [True: 0, False: 70] ------------------ 53772| 70| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 53773| 70| (errcode(ERRCODE_SYNTAX_ERROR), 53774| 70| errmsg("multiple OFFSET clauses not allowed"), 53775| 70| parser_errposition(limitClause->offsetLoc))); 53776| 70| stmt->limitOffset = limitClause->limitOffset; 53777| 70| } 53778| 4.85k| if (limitClause && limitClause->limitCount) ------------------ | Branch (53778:6): [True: 578, False: 4.27k] | Branch (53778:21): [True: 508, False: 70] ------------------ 53779| 508| { 53780| 508| if (stmt->limitCount) ------------------ | Branch (53780:7): [True: 3, False: 505] ------------------ 53781| 508| ereport(ERROR, ------------------ | | 164| 3| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 3| do { \ | | | | 143| 3| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 3|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 3| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 3|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 3, Folded] | | | | | Branch (144:7): [True: 3, False: 0] | | | | | Branch (144:39): [True: 3, Folded] | | | | ------------------ | | | | 145| 3| errstart_cold(elevel, domain) : \ | | | | 146| 3| errstart(elevel, domain)) \ | | | | 147| 3| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 3| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 3| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 3| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 3] | | | | ------------------ | | ------------------ ------------------ 53782| 508| (errcode(ERRCODE_SYNTAX_ERROR), 53783| 508| errmsg("multiple LIMIT clauses not allowed"), 53784| 508| parser_errposition(limitClause->countLoc))); 53785| 508| stmt->limitCount = limitClause->limitCount; 53786| 508| } 53787| 4.85k| if (limitClause) ------------------ | Branch (53787:6): [True: 575, False: 4.28k] ------------------ 53788| 575| { 53789| | /* If there was a conflict, we must have detected it above */ 53790| 575| Assert(!stmt->limitOption); ------------------ | | 844| 575|#define Assert(condition) ((void)true) ------------------ 53791| 575| if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES) ------------------ | Branch (53791:7): [True: 405, False: 170] | Branch (53791:28): [True: 0, False: 405] ------------------ 53792| 575| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 53793| 575| (errcode(ERRCODE_SYNTAX_ERROR), 53794| 575| errmsg("WITH TIES cannot be specified without ORDER BY clause"), 53795| 575| parser_errposition(limitClause->optionLoc))); 53796| 575| if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause) ------------------ | Branch (53796:7): [True: 0, False: 575] | Branch (53796:61): [True: 0, False: 0] ------------------ 53797| 0| { 53798| 0| ListCell *lc; 53799| | 53800| 0| foreach(lc, stmt->lockingClause) ------------------ | | 374| 0| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 0| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 0|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 0, False: 0] | | | Branch (375:5): [True: 0, False: 0] | | ------------------ | | 376| 0| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 0, False: 0] | | ------------------ | | 377| 0| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 0| (cell = NULL, false); \ | | 379| 0| cell##__state.i++) ------------------ 53801| 0| { 53802| 0| LockingClause *lock = lfirst_node(LockingClause, lc); ------------------ | | 176| 0|#define lfirst_node(type,lc) castNode(type, lfirst(lc)) | | ------------------ | | | | 182| 0|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 53803| | 53804| 0| if (lock->waitPolicy == LockWaitSkip) ------------------ | Branch (53804:9): [True: 0, False: 0] ------------------ 53805| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 53806| 0| (errcode(ERRCODE_SYNTAX_ERROR), 53807| 0| errmsg("%s and %s options cannot be used together", 53808| 0| "SKIP LOCKED", "WITH TIES"), 53809| 0| parser_errposition(limitClause->optionLoc))); 53810| 0| } 53811| 0| } 53812| 575| stmt->limitOption = limitClause->limitOption; 53813| 575| } 53814| 4.85k| if (withClause) ------------------ | Branch (53814:6): [True: 3.48k, False: 1.37k] ------------------ 53815| 3.48k| { 53816| 3.48k| if (stmt->withClause) ------------------ | Branch (53816:7): [True: 0, False: 3.48k] ------------------ 53817| 3.48k| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 53818| 3.48k| (errcode(ERRCODE_SYNTAX_ERROR), 53819| 3.48k| errmsg("multiple WITH clauses not allowed"), 53820| 3.48k| parser_errposition(exprLocation((Node *) withClause)))); 53821| 3.48k| stmt->withClause = withClause; 53822| 3.48k| } 53823| 4.85k|} src_backend_parser_gram.c:makeSetOp: 53827| 18|{ 53828| 18| SelectStmt *n = makeNode(SelectStmt); ------------------ | | 161| 18|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53829| | 53830| 18| n->op = op; 53831| 18| n->all = all; 53832| 18| n->larg = (SelectStmt *) larg; 53833| 18| n->rarg = (SelectStmt *) rarg; 53834| 18| return (Node *) n; 53835| 18|} src_backend_parser_gram.c:doNegate: 53874| 34.2k|{ 53875| 34.2k| if (IsA(n, A_Const)) ------------------ | | 164| 34.2k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 34.2k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 5.20k, False: 29.0k] | | ------------------ ------------------ 53876| 5.20k| { 53877| 5.20k| A_Const *con = (A_Const *) n; 53878| | 53879| | /* report the constant's location as that of the '-' sign */ 53880| 5.20k| con->location = location; 53881| | 53882| 5.20k| if (IsA(&con->val, Integer)) ------------------ | | 164| 5.20k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 5.20k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 2.56k, False: 2.64k] | | ------------------ ------------------ 53883| 2.56k| { 53884| 2.56k| con->val.ival.ival = -con->val.ival.ival; 53885| 2.56k| return n; 53886| 2.56k| } 53887| 2.64k| if (IsA(&con->val, Float)) ------------------ | | 164| 2.64k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 2.64k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 2.62k, False: 20] | | ------------------ ------------------ 53888| 2.62k| { 53889| 2.62k| doNegateFloat(&con->val.fval); 53890| 2.62k| return n; 53891| 2.62k| } 53892| 2.64k| } 53893| | 53894| 29.0k| return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location); 53895| 34.2k|} src_backend_parser_gram.c:doNegateFloat: 53899| 2.65k|{ 53900| 2.65k| char *oldval = v->fval; 53901| | 53902| 2.65k| if (*oldval == '+') ------------------ | Branch (53902:6): [True: 0, False: 2.65k] ------------------ 53903| 0| oldval++; 53904| 2.65k| if (*oldval == '-') ------------------ | Branch (53904:6): [True: 1.29k, False: 1.36k] ------------------ 53905| 1.29k| v->fval = oldval + 1; /* just strip the '-' */ 53906| 1.36k| else 53907| 1.36k| v->fval = psprintf("-%s", oldval); 53908| 2.65k|} src_backend_parser_gram.c:makeAndExpr: 53912| 586|{ 53913| | /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */ 53914| 586| if (IsA(lexpr, BoolExpr)) ------------------ | | 164| 586|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 586|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 310, False: 276] | | ------------------ ------------------ 53915| 310| { 53916| 310| BoolExpr *blexpr = (BoolExpr *) lexpr; 53917| | 53918| 310| if (blexpr->boolop == AND_EXPR) ------------------ | Branch (53918:7): [True: 310, False: 0] ------------------ 53919| 310| { 53920| 310| blexpr->args = lappend(blexpr->args, rexpr); 53921| 310| return (Node *) blexpr; 53922| 310| } 53923| 310| } 53924| 276| return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location); ------------------ | | 215| 276| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 276|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 276|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53925| 586|} src_backend_parser_gram.c:makeOrExpr: 53929| 250|{ 53930| | /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */ 53931| 250| if (IsA(lexpr, BoolExpr)) ------------------ | | 164| 250|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 250|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 34, False: 216] | | ------------------ ------------------ 53932| 34| { 53933| 34| BoolExpr *blexpr = (BoolExpr *) lexpr; 53934| | 53935| 34| if (blexpr->boolop == OR_EXPR) ------------------ | Branch (53935:7): [True: 34, False: 0] ------------------ 53936| 34| { 53937| 34| blexpr->args = lappend(blexpr->args, rexpr); 53938| 34| return (Node *) blexpr; 53939| 34| } 53940| 34| } 53941| 216| return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location); ------------------ | | 215| 216| list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 216|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ | | list_make2_impl(T_List, list_make_ptr_cell(x1), list_make_ptr_cell(x2)) | | ------------------ | | | | 207| 216|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53942| 250|} src_backend_parser_gram.c:makeNotExpr: 53946| 4.87k|{ 53947| 4.87k| return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location); ------------------ | | 213| 4.87k| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 4.87k|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 53948| 4.87k|} src_backend_parser_gram.c:makeAArrayExpr: 53952| 3.34k|{ 53953| 3.34k| A_ArrayExpr *n = makeNode(A_ArrayExpr); ------------------ | | 161| 3.34k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53954| | 53955| 3.34k| n->elements = elements; 53956| 3.34k| n->location = location; 53957| 3.34k| n->list_start = location; 53958| 3.34k| n->list_end = location_end; 53959| 3.34k| return (Node *) n; 53960| 3.34k|} src_backend_parser_gram.c:makeSQLValueFunction: 53964| 192k|{ 53965| 192k| SQLValueFunction *svf = makeNode(SQLValueFunction); ------------------ | | 161| 192k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 53966| | 53967| 192k| svf->op = op; 53968| | /* svf->type will be filled during parse analysis */ 53969| 192k| svf->typmod = typmod; 53970| 192k| svf->location = location; 53971| 192k| return (Node *) svf; 53972| 192k|} src_backend_parser_gram.c:makeRangeVarFromAnyName: 54052| 1.54k|{ 54053| 1.54k| RangeVar *r = makeNode(RangeVar); ------------------ | | 161| 1.54k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54054| | 54055| 1.54k| switch (list_length(names)) 54056| 1.54k| { 54057| 981| case 1: ------------------ | Branch (54057:3): [True: 981, False: 562] ------------------ 54058| 981| r->catalogname = NULL; 54059| 981| r->schemaname = NULL; 54060| 981| r->relname = strVal(linitial(names)); ------------------ | | 82| 981|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 981|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54061| 981| break; 54062| 356| case 2: ------------------ | Branch (54062:3): [True: 356, False: 1.18k] ------------------ 54063| 356| r->catalogname = NULL; 54064| 356| r->schemaname = strVal(linitial(names)); ------------------ | | 82| 356|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 356|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54065| 356| r->relname = strVal(lsecond(names)); ------------------ | | 82| 356|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 356|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54066| 356| break; 54067| 206| case 3: ------------------ | Branch (54067:3): [True: 206, False: 1.33k] ------------------ 54068| 206| r->catalogname = strVal(linitial(names)); ------------------ | | 82| 206|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 206|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54069| 206| r->schemaname = strVal(lsecond(names)); ------------------ | | 82| 206|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 206|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54070| 206| r->relname = strVal(lthird(names)); ------------------ | | 82| 206|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 206|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54071| 206| break; 54072| 0| default: ------------------ | Branch (54072:3): [True: 0, False: 1.54k] ------------------ 54073| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54074| 0| (errcode(ERRCODE_SYNTAX_ERROR), 54075| 0| errmsg("improper qualified name (too many dotted names): %s", 54076| 0| NameListToString(names)), 54077| 0| parser_errposition(position))); 54078| 0| break; 54079| 1.54k| } 54080| | 54081| 1.54k| r->relpersistence = RELPERSISTENCE_PERMANENT; ------------------ | | 80| 1.54k|#define RELPERSISTENCE_PERMANENT 'p' /* regular table */ ------------------ 54082| 1.54k| r->location = position; 54083| | 54084| 1.54k| return r; 54085| 1.54k|} src_backend_parser_gram.c:makeRangeVarFromQualifiedName: 54094| 6.17k|{ 54095| 6.17k| RangeVar *r; 54096| | 54097| 6.17k| check_qualified_name(namelist, yyscanner); 54098| 6.17k| r = makeRangeVar(NULL, NULL, location); 54099| | 54100| 6.17k| switch (list_length(namelist)) 54101| 6.17k| { 54102| 6.02k| case 1: ------------------ | Branch (54102:3): [True: 6.02k, False: 146] ------------------ 54103| 6.02k| r->catalogname = NULL; 54104| 6.02k| r->schemaname = name; 54105| 6.02k| r->relname = strVal(linitial(namelist)); ------------------ | | 82| 6.02k|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 6.02k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54106| 6.02k| break; 54107| 135| case 2: ------------------ | Branch (54107:3): [True: 135, False: 6.03k] ------------------ 54108| 135| r->catalogname = name; 54109| 135| r->schemaname = strVal(linitial(namelist)); ------------------ | | 82| 135|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 135|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54110| 135| r->relname = strVal(lsecond(namelist)); ------------------ | | 82| 135|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 135|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ 54111| 135| break; 54112| 11| default: ------------------ | Branch (54112:3): [True: 11, False: 6.16k] ------------------ 54113| 11| ereport(ERROR, ------------------ | | 164| 11| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 11| do { \ | | | | 143| 11| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 11|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 11| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 11|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 11, Folded] | | | | | Branch (144:7): [True: 11, False: 0] | | | | | Branch (144:39): [True: 11, Folded] | | | | ------------------ | | | | 145| 11| errstart_cold(elevel, domain) : \ | | | | 146| 11| errstart(elevel, domain)) \ | | | | 147| 11| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 11| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 11| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 11| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 11] | | | | ------------------ | | ------------------ ------------------ 54114| 11| errcode(ERRCODE_SYNTAX_ERROR), 54115| 11| errmsg("improper qualified name (too many dotted names): %s", 54116| 11| NameListToString(lcons(makeString(name), namelist))), 54117| 11| parser_errposition(location)); 54118| 11| break; 54119| 6.17k| } 54120| | 54121| 6.16k| return r; 54122| 6.17k|} src_backend_parser_gram.c:check_qualified_name: 53619| 6.17k|{ 53620| 6.17k| ListCell *i; 53621| | 53622| 6.17k| foreach(i, names) ------------------ | | 374| 6.17k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 358k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 717k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 352k, False: 6.17k] | | | Branch (375:5): [True: 358k, False: 0] | | ------------------ | | 376| 358k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 352k, False: 6.17k] | | ------------------ | | 377| 358k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 358k| (cell = NULL, false); \ | | 379| 352k| cell##__state.i++) ------------------ 53623| 352k| { 53624| 352k| if (!IsA(lfirst(i), String)) ------------------ | | 164| 352k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 352k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ ------------------ | Branch (53624:7): [True: 0, False: 352k] ------------------ 53625| 0| parser_yyerror("syntax error"); ------------------ | | 1343| 0|#define parser_yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 53626| 352k| } 53627| 6.17k|} src_backend_parser_gram.c:SplitColQualList: 54129| 4.09k|{ 54130| 4.09k| ListCell *cell; 54131| | 54132| 4.09k| *collClause = NULL; 54133| 4.09k| foreach(cell, qualList) ------------------ | | 374| 4.09k| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 26.9k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 53.8k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 22.8k, False: 4.09k] | | | Branch (375:5): [True: 23.3k, False: 3.53k] | | ------------------ | | 376| 26.9k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 22.8k, False: 565] | | ------------------ | | 377| 26.9k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 26.9k| (cell = NULL, false); \ | | 379| 22.8k| cell##__state.i++) ------------------ 54134| 22.8k| { 54135| 22.8k| Node *n = (Node *) lfirst(cell); ------------------ | | 172| 22.8k|#define lfirst(lc) ((lc)->ptr_value) ------------------ 54136| | 54137| 22.8k| if (IsA(n, Constraint)) ------------------ | | 164| 22.8k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 22.8k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 22.6k, False: 131] | | ------------------ ------------------ 54138| 22.6k| { 54139| | /* keep it in list */ 54140| 22.6k| continue; 54141| 22.6k| } 54142| 131| if (IsA(n, CollateClause)) ------------------ | | 164| 131|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 131|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ | | | Branch (164:30): [True: 131, False: 0] | | ------------------ ------------------ 54143| 131| { 54144| 131| CollateClause *c = (CollateClause *) n; 54145| | 54146| 131| if (*collClause) ------------------ | Branch (54146:8): [True: 0, False: 131] ------------------ 54147| 131| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54148| 131| (errcode(ERRCODE_SYNTAX_ERROR), 54149| 131| errmsg("multiple COLLATE clauses not allowed"), 54150| 131| parser_errposition(c->location))); 54151| 131| *collClause = c; 54152| 131| } 54153| 0| else 54154| 131| elog(ERROR, "unexpected node type %d", (int) n->type); ------------------ | | 240| 131| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 54155| | /* remove non-Constraint nodes from qualList */ 54156| 131| qualList = foreach_delete_current(qualList, cell); ------------------ | | 392| 131| ((List *) (var_or_cell##__state.l = list_delete_nth_cell(lst, var_or_cell##__state.i--))) ------------------ 54157| 131| } 54158| 4.09k| *constraintList = qualList; 54159| 4.09k|} src_backend_parser_gram.c:processCASbits: 54170| 1.14k|{ 54171| | /* defaults */ 54172| 1.14k| if (deferrable) ------------------ | Branch (54172:6): [True: 871, False: 276] ------------------ 54173| 871| *deferrable = false; 54174| 1.14k| if (initdeferred) ------------------ | Branch (54174:6): [True: 871, False: 276] ------------------ 54175| 871| *initdeferred = false; 54176| 1.14k| if (not_valid) ------------------ | Branch (54176:6): [True: 276, False: 871] ------------------ 54177| 276| *not_valid = false; 54178| 1.14k| if (is_enforced) ------------------ | Branch (54178:6): [True: 276, False: 871] ------------------ 54179| 276| *is_enforced = true; 54180| | 54181| 1.14k| if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1334| 1.14k|#define CAS_DEFERRABLE 0x02 ------------------ if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED)) ------------------ | | 1336| 1.14k|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ | Branch (54181:6): [True: 260, False: 887] ------------------ 54182| 260| { 54183| 260| if (deferrable) ------------------ | Branch (54183:7): [True: 260, False: 0] ------------------ 54184| 260| *deferrable = true; 54185| 0| else 54186| 260| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54187| 260| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54188| | /* translator: %s is CHECK, UNIQUE, or similar */ 54189| 260| errmsg("%s constraints cannot be marked DEFERRABLE", 54190| 260| constrType), 54191| 260| parser_errposition(location))); 54192| 260| } 54193| | 54194| 1.14k| if (cas_bits & CAS_INITIALLY_DEFERRED) ------------------ | | 1336| 1.14k|#define CAS_INITIALLY_DEFERRED 0x08 ------------------ | Branch (54194:6): [True: 0, False: 1.14k] ------------------ 54195| 0| { 54196| 0| if (initdeferred) ------------------ | Branch (54196:7): [True: 0, False: 0] ------------------ 54197| 0| *initdeferred = true; 54198| 0| else 54199| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54200| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54201| | /* translator: %s is CHECK, UNIQUE, or similar */ 54202| 0| errmsg("%s constraints cannot be marked DEFERRABLE", 54203| 0| constrType), 54204| 0| parser_errposition(location))); 54205| 0| } 54206| | 54207| 1.14k| if (cas_bits & CAS_NOT_VALID) ------------------ | | 1337| 1.14k|#define CAS_NOT_VALID 0x10 ------------------ | Branch (54207:6): [True: 0, False: 1.14k] ------------------ 54208| 0| { 54209| 0| if (not_valid) ------------------ | Branch (54209:7): [True: 0, False: 0] ------------------ 54210| 0| *not_valid = true; 54211| 0| else 54212| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54213| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54214| | /* translator: %s is CHECK, UNIQUE, or similar */ 54215| 0| errmsg("%s constraints cannot be marked NOT VALID", 54216| 0| constrType), 54217| 0| parser_errposition(location))); 54218| 0| } 54219| | 54220| 1.14k| if (cas_bits & CAS_NO_INHERIT) ------------------ | | 1338| 1.14k|#define CAS_NO_INHERIT 0x20 ------------------ | Branch (54220:6): [True: 146, False: 1.00k] ------------------ 54221| 146| { 54222| 146| if (no_inherit) ------------------ | Branch (54222:7): [True: 146, False: 0] ------------------ 54223| 146| *no_inherit = true; 54224| 0| else 54225| 146| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54226| 146| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54227| | /* translator: %s is CHECK, UNIQUE, or similar */ 54228| 146| errmsg("%s constraints cannot be marked NO INHERIT", 54229| 146| constrType), 54230| 146| parser_errposition(location))); 54231| 146| } 54232| | 54233| 1.14k| if (cas_bits & CAS_NOT_ENFORCED) ------------------ | | 1339| 1.14k|#define CAS_NOT_ENFORCED 0x40 ------------------ | Branch (54233:6): [True: 0, False: 1.14k] ------------------ 54234| 0| { 54235| 0| if (is_enforced) ------------------ | Branch (54235:7): [True: 0, False: 0] ------------------ 54236| 0| *is_enforced = false; 54237| 0| else 54238| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54239| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54240| | /* translator: %s is CHECK, UNIQUE, or similar */ 54241| 0| errmsg("%s constraints cannot be marked NOT ENFORCED", 54242| 0| constrType), 54243| 0| parser_errposition(location))); 54244| | 54245| | /* 54246| | * NB: The validated status is irrelevant when the constraint is set to 54247| | * NOT ENFORCED, but for consistency, it should be set accordingly. 54248| | * This ensures that if the constraint is later changed to ENFORCED, it 54249| | * will automatically be in the correct NOT VALIDATED state. 54250| | */ 54251| 0| if (not_valid) ------------------ | Branch (54251:7): [True: 0, False: 0] ------------------ 54252| 0| *not_valid = true; 54253| 0| } 54254| | 54255| 1.14k| if (cas_bits & CAS_ENFORCED) ------------------ | | 1340| 1.14k|#define CAS_ENFORCED 0x80 ------------------ | Branch (54255:6): [True: 0, False: 1.14k] ------------------ 54256| 0| { 54257| 0| if (is_enforced) ------------------ | Branch (54257:7): [True: 0, False: 0] ------------------ 54258| 0| *is_enforced = true; 54259| 0| else 54260| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54261| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 54262| | /* translator: %s is CHECK, UNIQUE, or similar */ 54263| 0| errmsg("%s constraints cannot be marked ENFORCED", 54264| 0| constrType), 54265| 0| parser_errposition(location))); 54266| 0| } 54267| 1.14k|} src_backend_parser_gram.c:preprocess_pubobj_list: 54297| 409|{ 54298| 409| ListCell *cell; 54299| 409| PublicationObjSpec *pubobj; 54300| 409| PublicationObjSpecType prevobjtype = PUBLICATIONOBJ_CONTINUATION; 54301| | 54302| 409| if (!pubobjspec_list) ------------------ | Branch (54302:6): [True: 0, False: 409] ------------------ 54303| 0| return; 54304| | 54305| 409| pubobj = (PublicationObjSpec *) linitial(pubobjspec_list); ------------------ | | 178| 409|#define linitial(l) lfirst(list_nth_cell(l, 0)) | | ------------------ | | | | 172| 409|#define lfirst(lc) ((lc)->ptr_value) | | ------------------ ------------------ 54306| 409| if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION) ------------------ | Branch (54306:6): [True: 0, False: 409] ------------------ 54307| 409| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54308| 409| errcode(ERRCODE_SYNTAX_ERROR), 54309| 409| errmsg("invalid publication object list"), 54310| 409| errdetail("One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name."), 54311| 409| parser_errposition(pubobj->location)); 54312| | 54313| 409| foreach(cell, pubobjspec_list) ------------------ | | 374| 409| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 2.18M| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 4.36M|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 2.18M, False: 409] | | | Branch (375:5): [True: 2.18M, False: 0] | | ------------------ | | 376| 2.18M| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 2.18M, False: 409] | | ------------------ | | 377| 2.18M| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 2.18M| (cell = NULL, false); \ | | 379| 2.18M| cell##__state.i++) ------------------ 54314| 2.18M| { 54315| 2.18M| pubobj = (PublicationObjSpec *) lfirst(cell); ------------------ | | 172| 2.18M|#define lfirst(lc) ((lc)->ptr_value) ------------------ 54316| | 54317| 2.18M| if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION) ------------------ | Branch (54317:7): [True: 2.18M, False: 409] ------------------ 54318| 2.18M| pubobj->pubobjtype = prevobjtype; 54319| | 54320| 2.18M| if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE) ------------------ | Branch (54320:7): [True: 2.18M, False: 0] ------------------ 54321| 2.18M| { 54322| | /* relation name or pubtable must be set for this type of object */ 54323| 2.18M| if (!pubobj->name && !pubobj->pubtable) ------------------ | Branch (54323:8): [True: 4.83k, False: 2.17M] | Branch (54323:25): [True: 0, False: 4.83k] ------------------ 54324| 2.18M| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54325| 2.18M| errcode(ERRCODE_SYNTAX_ERROR), 54326| 2.18M| errmsg("invalid table name"), 54327| 2.18M| parser_errposition(pubobj->location)); 54328| | 54329| 2.18M| if (pubobj->name) ------------------ | Branch (54329:8): [True: 2.17M, False: 4.83k] ------------------ 54330| 2.17M| { 54331| | /* convert it to PublicationTable */ 54332| 2.17M| PublicationTable *pubtable = makeNode(PublicationTable); ------------------ | | 161| 2.17M|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54333| | 54334| 2.17M| pubtable->relation = 54335| 2.17M| makeRangeVar(NULL, pubobj->name, pubobj->location); 54336| 2.17M| pubobj->pubtable = pubtable; 54337| 2.17M| pubobj->name = NULL; 54338| 2.17M| } 54339| 2.18M| } 54340| 0| else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_SCHEMA || ------------------ | Branch (54340:12): [True: 0, False: 0] ------------------ 54341| 0| pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA) ------------------ | Branch (54341:6): [True: 0, False: 0] ------------------ 54342| 0| { 54343| | /* WHERE clause is not allowed on a schema object */ 54344| 0| if (pubobj->pubtable && pubobj->pubtable->whereClause) ------------------ | Branch (54344:8): [True: 0, False: 0] | Branch (54344:28): [True: 0, False: 0] ------------------ 54345| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54346| 0| errcode(ERRCODE_SYNTAX_ERROR), 54347| 0| errmsg("WHERE clause not allowed for schema"), 54348| 0| parser_errposition(pubobj->location)); 54349| | 54350| | /* Column list is not allowed on a schema object */ 54351| 0| if (pubobj->pubtable && pubobj->pubtable->columns) ------------------ | Branch (54351:8): [True: 0, False: 0] | Branch (54351:28): [True: 0, False: 0] ------------------ 54352| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54353| 0| errcode(ERRCODE_SYNTAX_ERROR), 54354| 0| errmsg("column specification not allowed for schema"), 54355| 0| parser_errposition(pubobj->location)); 54356| | 54357| | /* 54358| | * We can distinguish between the different type of schema objects 54359| | * based on whether name and pubtable is set. 54360| | */ 54361| 0| if (pubobj->name) ------------------ | Branch (54361:8): [True: 0, False: 0] ------------------ 54362| 0| pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA; 54363| 0| else if (!pubobj->name && !pubobj->pubtable) ------------------ | Branch (54363:13): [True: 0, False: 0] | Branch (54363:30): [True: 0, False: 0] ------------------ 54364| 0| pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA; 54365| 0| else 54366| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 54367| 0| errcode(ERRCODE_SYNTAX_ERROR), 54368| 0| errmsg("invalid schema name"), 54369| 0| parser_errposition(pubobj->location)); 54370| 0| } 54371| | 54372| 2.18M| prevobjtype = pubobj->pubobjtype; 54373| 2.18M| } 54374| 409|} src_backend_parser_gram.c:makeRecursiveViewSelect: 54395| 428|{ 54396| 428| SelectStmt *s = makeNode(SelectStmt); ------------------ | | 161| 428|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54397| 428| WithClause *w = makeNode(WithClause); ------------------ | | 161| 428|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54398| 428| CommonTableExpr *cte = makeNode(CommonTableExpr); ------------------ | | 161| 428|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54399| 428| List *tl = NIL; ------------------ | | 68| 428|#define NIL ((List *) NULL) ------------------ 54400| 428| ListCell *lc; 54401| | 54402| | /* create common table expression */ 54403| 428| cte->ctename = relname; 54404| 428| cte->aliascolnames = aliases; 54405| 428| cte->ctematerialized = CTEMaterializeDefault; 54406| 428| cte->ctequery = query; 54407| 428| cte->location = -1; 54408| | 54409| | /* create WITH clause and attach CTE */ 54410| 428| w->recursive = true; 54411| 428| w->ctes = list_make1(cte); ------------------ | | 213| 428| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 428|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 54412| 428| w->location = -1; 54413| | 54414| | /* 54415| | * create target list for the new SELECT from the alias list of the 54416| | * recursive view specification 54417| | */ 54418| 428| foreach(lc, aliases) ------------------ | | 374| 428| for (ForEachState cell##__state = {(lst), 0}; \ | | 375| 41.5k| (cell##__state.l != NIL && \ | | ------------------ | | | | 68| 83.1k|#define NIL ((List *) NULL) | | ------------------ | | | Branch (375:4): [True: 41.1k, False: 428] | | | Branch (375:5): [True: 41.5k, False: 0] | | ------------------ | | 376| 41.5k| cell##__state.i < cell##__state.l->length) ? \ | | ------------------ | | | Branch (376:5): [True: 41.1k, False: 428] | | ------------------ | | 377| 41.5k| (cell = &cell##__state.l->elements[cell##__state.i], true) : \ | | 378| 41.5k| (cell = NULL, false); \ | | 379| 41.1k| cell##__state.i++) ------------------ 54419| 41.1k| { 54420| 41.1k| ResTarget *rt = makeNode(ResTarget); ------------------ | | 161| 41.1k|#define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) ------------------ 54421| | 54422| 41.1k| rt->name = NULL; 54423| 41.1k| rt->indirection = NIL; ------------------ | | 68| 41.1k|#define NIL ((List *) NULL) ------------------ 54424| 41.1k| rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); ------------------ | | 82| 41.1k|#define strVal(v) (castNode(String, v)->sval) | | ------------------ | | | | 182| 41.1k|#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr)) | | ------------------ ------------------ rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0); ------------------ | | 68| 41.1k|#define NIL ((List *) NULL) ------------------ 54425| 41.1k| rt->location = -1; 54426| | 54427| 41.1k| tl = lappend(tl, rt); 54428| 41.1k| } 54429| | 54430| | /* 54431| | * create new SELECT combining WITH clause, target list, and fake FROM 54432| | * clause 54433| | */ 54434| 428| s->withClause = w; 54435| 428| s->targetList = tl; 54436| 428| s->fromClause = list_make1(makeRangeVar(NULL, relname, -1)); ------------------ | | 213| 428| list_make1_impl(T_List, list_make_ptr_cell(x1)) | | ------------------ | | | | 207| 428|#define list_make_ptr_cell(v) ((ListCell) {.ptr_value = (v)}) | | ------------------ ------------------ 54437| | 54438| 428| return (Node *) s; 54439| 428|} raw_parser: 55| 1.07k|{ 56| 1.07k| core_yyscan_t yyscanner; 57| 1.07k| base_yy_extra_type yyextra; 58| 1.07k| int yyresult; 59| | 60| | /* initialize the flex scanner */ 61| 1.07k| yyscanner = scanner_init(str, &yyextra.core_yy_extra, 62| 1.07k| &ScanKeywords, ScanKeywordTokens); 63| | 64| | /* base_yylex() only needs us to initialize the lookahead token, if any */ 65| 1.07k| if (mode == RAW_PARSE_DEFAULT) ------------------ | Branch (65:6): [True: 1.07k, False: 0] ------------------ 66| 1.07k| yyextra.have_lookahead = false; 67| 0| else 68| 0| { 69| | /* this array is indexed by RawParseMode enum */ 70| 0| static const int mode_token[] = { 71| 0| [RAW_PARSE_DEFAULT] = 0, 72| 0| [RAW_PARSE_TYPE_NAME] = MODE_TYPE_NAME, ------------------ | | 1087| 0|#define MODE_TYPE_NAME 776 ------------------ 73| 0| [RAW_PARSE_PLPGSQL_EXPR] = MODE_PLPGSQL_EXPR, ------------------ | | 1088| 0|#define MODE_PLPGSQL_EXPR 777 ------------------ 74| 0| [RAW_PARSE_PLPGSQL_ASSIGN1] = MODE_PLPGSQL_ASSIGN1, ------------------ | | 1089| 0|#define MODE_PLPGSQL_ASSIGN1 778 ------------------ 75| 0| [RAW_PARSE_PLPGSQL_ASSIGN2] = MODE_PLPGSQL_ASSIGN2, ------------------ | | 1090| 0|#define MODE_PLPGSQL_ASSIGN2 779 ------------------ 76| 0| [RAW_PARSE_PLPGSQL_ASSIGN3] = MODE_PLPGSQL_ASSIGN3, ------------------ | | 1091| 0|#define MODE_PLPGSQL_ASSIGN3 780 ------------------ 77| 0| }; 78| | 79| 0| yyextra.have_lookahead = true; 80| 0| yyextra.lookahead_token = mode_token[mode]; 81| 0| yyextra.lookahead_yylloc = 0; 82| 0| yyextra.lookahead_end = NULL; 83| 0| } 84| | 85| | /* initialize the bison parser */ 86| 1.07k| parser_init(&yyextra); 87| | 88| | /* Parse! */ 89| 1.07k| yyresult = base_yyparse(yyscanner); 90| | 91| | /* Clean up (release memory) */ 92| 1.07k| scanner_finish(yyscanner); 93| | 94| 1.07k| if (yyresult) /* error */ ------------------ | Branch (94:6): [True: 0, False: 1.07k] ------------------ 95| 0| return NIL; ------------------ | | 68| 0|#define NIL ((List *) NULL) ------------------ 96| | 97| 1.07k| return yyextra.parsetree; 98| 1.07k|} base_yylex: 124| 33.2M|{ 125| 33.2M| base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); ------------------ | | 64| 33.2M|#define pg_yyget_extra(yyscanner) (*((base_yy_extra_type **) (yyscanner))) ------------------ 126| 33.2M| int cur_token; 127| 33.2M| int next_token; 128| 33.2M| int cur_token_length; 129| 33.2M| YYLTYPE cur_yylloc; ------------------ | | 44| 33.2M|#define YYLTYPE int ------------------ 130| | 131| | /* Get next token --- we might already have it */ 132| 33.2M| if (yyextra->have_lookahead) ------------------ | Branch (132:6): [True: 23.0k, False: 33.2M] ------------------ 133| 23.0k| { 134| 23.0k| cur_token = yyextra->lookahead_token; 135| 23.0k| lvalp->core_yystype = yyextra->lookahead_yylval; 136| 23.0k| *llocp = yyextra->lookahead_yylloc; 137| 23.0k| if (yyextra->lookahead_end) ------------------ | Branch (137:7): [True: 23.0k, False: 0] ------------------ 138| 23.0k| *(yyextra->lookahead_end) = yyextra->lookahead_hold_char; 139| 23.0k| yyextra->have_lookahead = false; 140| 23.0k| } 141| 33.2M| else 142| 33.2M| cur_token = core_yylex(&(lvalp->core_yystype), llocp, yyscanner); 143| | 144| | /* 145| | * If this token isn't one that requires lookahead, just return it. If it 146| | * does, determine the token length. (We could get that via strlen(), but 147| | * since we have such a small set of possibilities, hardwiring seems 148| | * feasible and more efficient --- at least for the fixed-length cases.) 149| | */ 150| 33.2M| switch (cur_token) 151| 33.2M| { 152| 4.09k| case FORMAT: ------------------ | | 743| 4.09k|#define FORMAT 432 ------------------ | Branch (152:3): [True: 4.09k, False: 33.2M] ------------------ 153| 4.09k| cur_token_length = 6; 154| 4.09k| break; 155| 7.18k| case NOT: ------------------ | | 861| 7.18k|#define NOT 550 ------------------ | Branch (155:3): [True: 7.18k, False: 33.2M] ------------------ 156| 7.18k| cur_token_length = 3; 157| 7.18k| break; 158| 5.92k| case NULLS_P: ------------------ | | 868| 5.92k|#define NULLS_P 557 ------------------ | Branch (158:3): [True: 5.92k, False: 33.2M] ------------------ 159| 5.92k| cur_token_length = 5; 160| 5.92k| break; 161| 4.69k| case WITH: ------------------ | | 1061| 4.69k|#define WITH 750 ------------------ | Branch (161:3): [True: 4.69k, False: 33.2M] ------------------ 162| 4.69k| cur_token_length = 4; 163| 4.69k| break; 164| 35| case UIDENT: ------------------ | | 570| 35|#define UIDENT 259 ------------------ | Branch (164:3): [True: 35, False: 33.2M] ------------------ 165| 56| case USCONST: ------------------ | | 573| 56|#define USCONST 262 ------------------ | Branch (165:3): [True: 21, False: 33.2M] ------------------ 166| 56| cur_token_length = strlen(yyextra->core_yy_extra.scanbuf + *llocp); 167| 56| break; 168| 1.16k| case WITHOUT: ------------------ | | 1063| 1.16k|#define WITHOUT 752 ------------------ | Branch (168:3): [True: 1.16k, False: 33.2M] ------------------ 169| 1.16k| cur_token_length = 7; 170| 1.16k| break; 171| 33.2M| default: ------------------ | Branch (171:3): [True: 33.2M, False: 23.3k] ------------------ 172| 33.2M| return cur_token; 173| 33.2M| } 174| | 175| | /* 176| | * Identify end+1 of current token. core_yylex() has temporarily stored a 177| | * '\0' here, and will undo that when we call it again. We need to redo 178| | * it to fully revert the lookahead call for error reporting purposes. 179| | */ 180| 23.1k| yyextra->lookahead_end = yyextra->core_yy_extra.scanbuf + 181| 23.1k| *llocp + cur_token_length; 182| 23.1k| Assert(*(yyextra->lookahead_end) == '\0'); ------------------ | | 844| 23.1k|#define Assert(condition) ((void)true) ------------------ 183| | 184| | /* 185| | * Save and restore *llocp around the call. It might look like we could 186| | * avoid this by just passing &lookahead_yylloc to core_yylex(), but that 187| | * does not work because flex actually holds onto the last-passed pointer 188| | * internally, and will use that for error reporting. We need any error 189| | * reports to point to the current token, not the next one. 190| | */ 191| 23.1k| cur_yylloc = *llocp; 192| | 193| | /* Get next token, saving outputs into lookahead variables */ 194| 23.1k| next_token = core_yylex(&(yyextra->lookahead_yylval), llocp, yyscanner); 195| 23.1k| yyextra->lookahead_token = next_token; 196| 23.1k| yyextra->lookahead_yylloc = *llocp; 197| | 198| 23.1k| *llocp = cur_yylloc; 199| | 200| | /* Now revert the un-truncation of the current token */ 201| 23.1k| yyextra->lookahead_hold_char = *(yyextra->lookahead_end); 202| 23.1k| *(yyextra->lookahead_end) = '\0'; 203| | 204| 23.1k| yyextra->have_lookahead = true; 205| | 206| | /* Replace cur_token if needed, based on lookahead */ 207| 23.1k| switch (cur_token) ------------------ | Branch (207:10): [True: 23.1k, False: 0] ------------------ 208| 23.1k| { 209| 4.09k| case FORMAT: ------------------ | | 743| 4.09k|#define FORMAT 432 ------------------ | Branch (209:3): [True: 4.09k, False: 19.0k] ------------------ 210| | /* Replace FORMAT by FORMAT_LA if it's followed by JSON */ 211| 4.09k| switch (next_token) ------------------ | Branch (211:12): [True: 4.09k, False: 0] ------------------ 212| 4.09k| { 213| 4.09k| case JSON: ------------------ | | 797| 4.09k|#define JSON 486 ------------------ | Branch (213:5): [True: 4.09k, False: 0] ------------------ 214| 4.09k| cur_token = FORMAT_LA; ------------------ | | 1082| 4.09k|#define FORMAT_LA 771 ------------------ 215| 4.09k| break; 216| 4.09k| } 217| 4.09k| break; 218| | 219| 7.18k| case NOT: ------------------ | | 861| 7.18k|#define NOT 550 ------------------ | Branch (219:3): [True: 7.18k, False: 15.9k] ------------------ 220| | /* Replace NOT by NOT_LA if it's followed by BETWEEN, IN, etc */ 221| 7.18k| switch (next_token) ------------------ | Branch (221:12): [True: 2.96k, False: 4.22k] ------------------ 222| 7.18k| { 223| 514| case BETWEEN: ------------------ | | 620| 514|#define BETWEEN 309 ------------------ | Branch (223:5): [True: 514, False: 6.67k] ------------------ 224| 2.91k| case IN_P: ------------------ | | 770| 2.91k|#define IN_P 459 ------------------ | Branch (224:5): [True: 2.40k, False: 4.78k] ------------------ 225| 2.91k| case LIKE: ------------------ | | 821| 2.91k|#define LIKE 510 ------------------ | Branch (225:5): [True: 3, False: 7.18k] ------------------ 226| 2.96k| case ILIKE: ------------------ | | 765| 2.96k|#define ILIKE 454 ------------------ | Branch (226:5): [True: 46, False: 7.14k] ------------------ 227| 2.96k| case SIMILAR: ------------------ | | 976| 2.96k|#define SIMILAR 665 ------------------ | Branch (227:5): [True: 0, False: 7.18k] ------------------ 228| 2.96k| cur_token = NOT_LA; ------------------ | | 1083| 2.96k|#define NOT_LA 772 ------------------ 229| 2.96k| break; 230| 7.18k| } 231| 7.18k| break; 232| | 233| 7.18k| case NULLS_P: ------------------ | | 868| 5.92k|#define NULLS_P 557 ------------------ | Branch (233:3): [True: 5.92k, False: 17.1k] ------------------ 234| | /* Replace NULLS_P by NULLS_LA if it's followed by FIRST or LAST */ 235| 5.92k| switch (next_token) ------------------ | Branch (235:12): [True: 2, False: 5.92k] ------------------ 236| 5.92k| { 237| 0| case FIRST_P: ------------------ | | 737| 0|#define FIRST_P 426 ------------------ | Branch (237:5): [True: 0, False: 5.92k] ------------------ 238| 2| case LAST_P: ------------------ | | 814| 2|#define LAST_P 503 ------------------ | Branch (238:5): [True: 2, False: 5.92k] ------------------ 239| 2| cur_token = NULLS_LA; ------------------ | | 1084| 2|#define NULLS_LA 773 ------------------ 240| 2| break; 241| 5.92k| } 242| 5.92k| break; 243| | 244| 5.92k| case WITH: ------------------ | | 1061| 4.69k|#define WITH 750 ------------------ | Branch (244:3): [True: 4.69k, False: 18.4k] ------------------ 245| | /* Replace WITH by WITH_LA if it's followed by TIME or ORDINALITY */ 246| 4.69k| switch (next_token) ------------------ | Branch (246:12): [True: 0, False: 4.69k] ------------------ 247| 4.69k| { 248| 0| case TIME: ------------------ | | 1014| 0|#define TIME 703 ------------------ | Branch (248:5): [True: 0, False: 4.69k] ------------------ 249| 0| case ORDINALITY: ------------------ | | 885| 0|#define ORDINALITY 574 ------------------ | Branch (249:5): [True: 0, False: 4.69k] ------------------ 250| 0| cur_token = WITH_LA; ------------------ | | 1085| 0|#define WITH_LA 774 ------------------ 251| 0| break; 252| 4.69k| } 253| 4.69k| break; 254| | 255| 4.69k| case WITHOUT: ------------------ | | 1063| 1.16k|#define WITHOUT 752 ------------------ | Branch (255:3): [True: 1.16k, False: 21.9k] ------------------ 256| | /* Replace WITHOUT by WITHOUT_LA if it's followed by TIME */ 257| 1.16k| switch (next_token) ------------------ | Branch (257:12): [True: 0, False: 1.16k] ------------------ 258| 1.16k| { 259| 0| case TIME: ------------------ | | 1014| 0|#define TIME 703 ------------------ | Branch (259:5): [True: 0, False: 1.16k] ------------------ 260| 0| cur_token = WITHOUT_LA; ------------------ | | 1086| 0|#define WITHOUT_LA 775 ------------------ 261| 0| break; 262| 1.16k| } 263| 1.16k| break; 264| | 265| 1.16k| case UIDENT: ------------------ | | 570| 35|#define UIDENT 259 ------------------ | Branch (265:3): [True: 35, False: 23.0k] ------------------ 266| 56| case USCONST: ------------------ | | 573| 56|#define USCONST 262 ------------------ | Branch (266:3): [True: 21, False: 23.1k] ------------------ 267| | /* Look ahead for UESCAPE */ 268| 56| if (next_token == UESCAPE) ------------------ | | 1028| 56|#define UESCAPE 717 ------------------ | Branch (268:8): [True: 14, False: 42] ------------------ 269| 14| { 270| | /* Yup, so get third token, which had better be SCONST */ 271| 14| const char *escstr; 272| | 273| | /* Again save and restore *llocp */ 274| 14| cur_yylloc = *llocp; 275| | 276| | /* Un-truncate current token so errors point to third token */ 277| 14| *(yyextra->lookahead_end) = yyextra->lookahead_hold_char; 278| | 279| | /* Get third token */ 280| 14| next_token = core_yylex(&(yyextra->lookahead_yylval), 281| 14| llocp, yyscanner); 282| | 283| | /* If we throw error here, it will point to third token */ 284| 14| if (next_token != SCONST) ------------------ | | 572| 14|#define SCONST 261 ------------------ | Branch (284:9): [True: 0, False: 14] ------------------ 285| 0| scanner_yyerror("UESCAPE must be followed by a simple string literal", 286| 0| yyscanner); 287| | 288| 14| escstr = yyextra->lookahead_yylval.str; 289| 14| if (strlen(escstr) != 1 || !check_uescapechar(escstr[0])) ------------------ | Branch (289:9): [True: 6, False: 8] | Branch (289:32): [True: 0, False: 8] ------------------ 290| 6| scanner_yyerror("invalid Unicode escape character", 291| 6| yyscanner); 292| | 293| | /* Now restore *llocp; errors will point to first token */ 294| 14| *llocp = cur_yylloc; 295| | 296| | /* Apply Unicode conversion */ 297| 14| lvalp->core_yystype.str = 298| 14| str_udeescape(lvalp->core_yystype.str, 299| 14| escstr[0], 300| 14| *llocp, 301| 14| yyscanner); 302| | 303| | /* 304| | * We don't need to revert the un-truncation of UESCAPE. What 305| | * we do want to do is clear have_lookahead, thereby consuming 306| | * all three tokens. 307| | */ 308| 14| yyextra->have_lookahead = false; 309| 14| } 310| 42| else 311| 42| { 312| | /* No UESCAPE, so convert using default escape character */ 313| 42| lvalp->core_yystype.str = 314| 42| str_udeescape(lvalp->core_yystype.str, 315| 42| '\\', 316| 42| *llocp, 317| 42| yyscanner); 318| 42| } 319| | 320| 56| if (cur_token == UIDENT) ------------------ | | 570| 56|#define UIDENT 259 ------------------ | Branch (320:8): [True: 24, False: 32] ------------------ 321| 24| { 322| | /* It's an identifier, so truncate as appropriate */ 323| 24| truncate_identifier(lvalp->core_yystype.str, 324| 24| strlen(lvalp->core_yystype.str), 325| 24| true); 326| 24| cur_token = IDENT; ------------------ | | 569| 24|#define IDENT 258 ------------------ 327| 24| } 328| 32| else if (cur_token == USCONST) ------------------ | | 573| 32|#define USCONST 262 ------------------ | Branch (328:13): [True: 11, False: 21] ------------------ 329| 11| { 330| 11| cur_token = SCONST; ------------------ | | 572| 11|#define SCONST 261 ------------------ 331| 11| } 332| 56| break; 333| 23.1k| } 334| | 335| 23.1k| return cur_token; 336| 23.1k|} src_backend_parser_parser.c:check_uescapechar: 365| 8|{ 366| 8| if (isxdigit(escape) ------------------ | Branch (366:6): [True: 0, False: 8] ------------------ 367| 8| || escape == '+' ------------------ | Branch (367:6): [True: 0, False: 8] ------------------ 368| 8| || escape == '\'' ------------------ | Branch (368:6): [True: 0, False: 8] ------------------ 369| 8| || escape == '"' ------------------ | Branch (369:6): [True: 0, False: 8] ------------------ 370| 8| || scanner_isspace(escape)) ------------------ | Branch (370:6): [True: 0, False: 8] ------------------ 371| 0| return false; 372| 8| else 373| 8| return true; 374| 8|} src_backend_parser_parser.c:str_udeescape: 386| 50|{ 387| 50| const char *in; 388| 50| char *new, 389| 50| *out; 390| 50| size_t new_len; 391| 50| pg_wchar pair_first = 0; 392| 50| ScannerCallbackState scbstate; 393| | 394| | /* 395| | * Guesstimate that result will be no longer than input, but allow enough 396| | * padding for Unicode conversion. 397| | */ 398| 50| new_len = strlen(str) + MAX_UNICODE_EQUIVALENT_STRING + 1; ------------------ | | 345| 50|#define MAX_UNICODE_EQUIVALENT_STRING 16 ------------------ 399| 50| new = palloc(new_len); 400| | 401| 50| in = str; 402| 50| out = new; 403| 5.55M| while (*in) ------------------ | Branch (403:9): [True: 5.55M, False: 49] ------------------ 404| 5.55M| { 405| | /* Enlarge string if needed */ 406| 5.55M| size_t out_dist = out - new; 407| | 408| 5.55M| if (out_dist > new_len - (MAX_UNICODE_EQUIVALENT_STRING + 1)) ------------------ | | 345| 5.55M|#define MAX_UNICODE_EQUIVALENT_STRING 16 ------------------ | Branch (408:7): [True: 0, False: 5.55M] ------------------ 409| 0| { 410| 0| new_len *= 2; 411| 0| new = repalloc(new, new_len); 412| 0| out = new + out_dist; 413| 0| } 414| | 415| 5.55M| if (in[0] == escape) ------------------ | Branch (415:7): [True: 428, False: 5.55M] ------------------ 416| 428| { 417| | /* 418| | * Any errors reported while processing this escape sequence will 419| | * have an error cursor pointing at the escape. 420| | */ 421| 428| setup_scanner_errposition_callback(&scbstate, yyscanner, 422| 428| in - str + position + 3); /* 3 for U&" */ 423| 428| if (in[1] == escape) ------------------ | Branch (423:8): [True: 4, False: 424] ------------------ 424| 4| { 425| 4| if (pair_first) ------------------ | Branch (425:9): [True: 0, False: 4] ------------------ 426| 0| goto invalid_pair; 427| 4| *out++ = escape; 428| 4| in += 2; 429| 4| } 430| 424| else if (isxdigit((unsigned char) in[1]) && ------------------ | Branch (430:13): [True: 336, False: 88] ------------------ 431| 424| isxdigit((unsigned char) in[2]) && ------------------ | Branch (431:7): [True: 332, False: 4] ------------------ 432| 424| isxdigit((unsigned char) in[3]) && ------------------ | Branch (432:7): [True: 329, False: 3] ------------------ 433| 424| isxdigit((unsigned char) in[4])) ------------------ | Branch (433:7): [True: 329, False: 0] ------------------ 434| 329| { 435| 329| pg_wchar unicode; 436| | 437| 329| unicode = (hexval(in[1]) << 12) + 438| 329| (hexval(in[2]) << 8) + 439| 329| (hexval(in[3]) << 4) + 440| 329| hexval(in[4]); 441| 329| check_unicode_value(unicode); 442| 329| if (pair_first) ------------------ | Branch (442:9): [True: 2, False: 327] ------------------ 443| 2| { 444| 2| if (is_utf16_surrogate_second(unicode)) ------------------ | Branch (444:10): [True: 1, False: 1] ------------------ 445| 1| { 446| 1| unicode = surrogate_pair_to_codepoint(pair_first, unicode); 447| 1| pair_first = 0; 448| 1| } 449| 1| else 450| 1| goto invalid_pair; 451| 2| } 452| 327| else if (is_utf16_surrogate_second(unicode)) ------------------ | Branch (452:14): [True: 0, False: 327] ------------------ 453| 0| goto invalid_pair; 454| | 455| 328| if (is_utf16_surrogate_first(unicode)) ------------------ | Branch (455:9): [True: 0, False: 328] ------------------ 456| 0| pair_first = unicode; 457| 328| else 458| 328| { 459| 328| pg_unicode_to_server(unicode, (unsigned char *) out); 460| 328| out += strlen(out); 461| 328| } 462| 328| in += 5; 463| 328| } 464| 95| else if (in[1] == '+' && ------------------ | Branch (464:13): [True: 86, False: 9] ------------------ 465| 95| isxdigit((unsigned char) in[2]) && ------------------ | Branch (465:7): [True: 86, False: 0] ------------------ 466| 95| isxdigit((unsigned char) in[3]) && ------------------ | Branch (466:7): [True: 85, False: 1] ------------------ 467| 95| isxdigit((unsigned char) in[4]) && ------------------ | Branch (467:7): [True: 85, False: 0] ------------------ 468| 95| isxdigit((unsigned char) in[5]) && ------------------ | Branch (468:7): [True: 85, False: 0] ------------------ 469| 95| isxdigit((unsigned char) in[6]) && ------------------ | Branch (469:7): [True: 85, False: 0] ------------------ 470| 95| isxdigit((unsigned char) in[7])) ------------------ | Branch (470:7): [True: 85, False: 0] ------------------ 471| 85| { 472| 85| pg_wchar unicode; 473| | 474| 85| unicode = (hexval(in[2]) << 20) + 475| 85| (hexval(in[3]) << 16) + 476| 85| (hexval(in[4]) << 12) + 477| 85| (hexval(in[5]) << 8) + 478| 85| (hexval(in[6]) << 4) + 479| 85| hexval(in[7]); 480| 85| check_unicode_value(unicode); 481| 85| if (pair_first) ------------------ | Branch (481:9): [True: 30, False: 55] ------------------ 482| 30| { 483| 30| if (is_utf16_surrogate_second(unicode)) ------------------ | Branch (483:10): [True: 30, False: 0] ------------------ 484| 30| { 485| 30| unicode = surrogate_pair_to_codepoint(pair_first, unicode); 486| 30| pair_first = 0; 487| 30| } 488| 0| else 489| 0| goto invalid_pair; 490| 30| } 491| 55| else if (is_utf16_surrogate_second(unicode)) ------------------ | Branch (491:14): [True: 0, False: 55] ------------------ 492| 0| goto invalid_pair; 493| | 494| 85| if (is_utf16_surrogate_first(unicode)) ------------------ | Branch (494:9): [True: 32, False: 53] ------------------ 495| 32| pair_first = unicode; 496| 53| else 497| 53| { 498| 53| pg_unicode_to_server(unicode, (unsigned char *) out); 499| 53| out += strlen(out); 500| 53| } 501| 85| in += 8; 502| 85| } 503| 10| else 504| 10| ereport(ERROR, ------------------ | | 164| 10| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 10| do { \ | | | | 143| 10| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 10|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 10| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 10|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 10, Folded] | | | | | Branch (144:7): [True: 10, False: 0] | | | | | Branch (144:39): [True: 10, Folded] | | | | ------------------ | | | | 145| 10| errstart_cold(elevel, domain) : \ | | | | 146| 10| errstart(elevel, domain)) \ | | | | 147| 10| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 10| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 10| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 10| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 10] | | | | ------------------ | | ------------------ ------------------ 505| 427| (errcode(ERRCODE_SYNTAX_ERROR), 506| 427| errmsg("invalid Unicode escape"), 507| 427| errhint("Unicode escapes must be \\XXXX or \\+XXXXXX."))); 508| | 509| 427| cancel_scanner_errposition_callback(&scbstate); 510| 427| } 511| 5.55M| else 512| 5.55M| { 513| 5.55M| if (pair_first) ------------------ | Branch (513:8): [True: 0, False: 5.55M] ------------------ 514| 0| goto invalid_pair; 515| | 516| 5.55M| *out++ = *in++; 517| 5.55M| } 518| 5.55M| } 519| | 520| | /* unfinished surrogate pair? */ 521| 49| if (pair_first) ------------------ | Branch (521:6): [True: 0, False: 49] ------------------ 522| 0| goto invalid_pair; 523| | 524| 49| *out = '\0'; 525| 49| return new; 526| | 527| | /* 528| | * We might get here with the error callback active, or not. Call 529| | * scanner_errposition to make sure an error cursor appears; if the 530| | * callback is active, this is duplicative but harmless. 531| | */ 532| 1|invalid_pair: 533| 1| ereport(ERROR, ------------------ | | 164| 1| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 1| do { \ | | | | 143| 1| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 1|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 1|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 1, Folded] | | | | | Branch (144:7): [True: 1, False: 0] | | | | | Branch (144:39): [True: 1, Folded] | | | | ------------------ | | | | 145| 1| errstart_cold(elevel, domain) : \ | | | | 146| 1| errstart(elevel, domain)) \ | | | | 147| 1| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 1| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 1| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 1] | | | | ------------------ | | ------------------ ------------------ 534| 1| (errcode(ERRCODE_SYNTAX_ERROR), 535| 1| errmsg("invalid Unicode surrogate pair"), 536| 1| scanner_errposition(in - str + position + 3, /* 3 for U&" */ 537| 1| yyscanner))); 538| 1| return NULL; /* keep compiler quiet */ 539| 1|} src_backend_parser_parser.c:hexval: 341| 1.82k|{ 342| 1.82k| if (c >= '0' && c <= '9') ------------------ | Branch (342:6): [True: 1.82k, False: 0] | Branch (342:18): [True: 588, False: 1.23k] ------------------ 343| 588| return c - '0'; 344| 1.23k| if (c >= 'a' && c <= 'f') ------------------ | Branch (344:6): [True: 1.14k, False: 97] | Branch (344:18): [True: 1.14k, False: 0] ------------------ 345| 1.14k| return c - 'a' + 0xA; 346| 97| if (c >= 'A' && c <= 'F') ------------------ | Branch (346:6): [True: 97, False: 0] | Branch (346:18): [True: 97, False: 0] ------------------ 347| 97| return c - 'A' + 0xA; 348| 0| elog(ERROR, "invalid hexadecimal digit"); ------------------ | | 240| 0| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 349| 0| return 0; /* not reached */ 350| 0|} src_backend_parser_parser.c:check_unicode_value: 355| 414|{ 356| 414| if (!is_valid_unicode_codepoint(c)) ------------------ | Branch (356:6): [True: 4, False: 410] ------------------ 357| 414| ereport(ERROR, ------------------ | | 164| 4| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 4| do { \ | | | | 143| 4| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 4|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 4| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 4|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 4, Folded] | | | | | Branch (144:7): [True: 4, False: 0] | | | | | Branch (144:39): [True: 4, Folded] | | | | ------------------ | | | | 145| 4| errstart_cold(elevel, domain) : \ | | | | 146| 4| errstart(elevel, domain)) \ | | | | 147| 4| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 4| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 4| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 4| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 4] | | | | ------------------ | | ------------------ ------------------ 358| 414| (errcode(ERRCODE_SYNTAX_ERROR), 359| 414| errmsg("invalid Unicode escape value"))); 360| 414|} core_yylex: 9181| 33.2M|{ 9182| 33.2M| yy_state_type yy_current_state; 9183| 33.2M| char *yy_cp, *yy_bp; 9184| 33.2M| int yy_act; 9185| 33.2M| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 9186| | 9187| 33.2M| yylval = yylval_param; ------------------ | | 8994| 33.2M| # define yylval yyg->yylval_r ------------------ 9188| | 9189| 33.2M| yylloc = yylloc_param; ------------------ | | 8996| 33.2M| # define yylloc yyg->yylloc_r ------------------ 9190| | 9191| 33.2M| if ( !yyg->yy_init ) ------------------ | Branch (9191:7): [True: 1.07k, False: 33.2M] ------------------ 9192| 1.07k| { 9193| 1.07k| yyg->yy_init = 1; 9194| | 9195| |#ifdef YY_USER_INIT 9196| | YY_USER_INIT; 9197| |#endif 9198| | 9199| 1.07k| if ( ! yyg->yy_start ) ------------------ | Branch (9199:8): [True: 1.07k, False: 0] ------------------ 9200| 1.07k| yyg->yy_start = 1; /* first start state */ 9201| | 9202| 1.07k| if ( ! yyin ) ------------------ | | 446| 1.07k|#define yyin yyg->yyin_r ------------------ | Branch (9202:8): [True: 1.07k, False: 0] ------------------ 9203| 1.07k| yyin = stdin; ------------------ | | 446| 1.07k|#define yyin yyg->yyin_r ------------------ 9204| | 9205| 1.07k| if ( ! yyout ) ------------------ | | 447| 1.07k|#define yyout yyg->yyout_r ------------------ | Branch (9205:8): [True: 1.07k, False: 0] ------------------ 9206| 1.07k| yyout = stdout; ------------------ | | 447| 1.07k|#define yyout yyg->yyout_r ------------------ 9207| | 9208| 1.07k| if ( ! YY_CURRENT_BUFFER ) { ------------------ | | 592| 1.07k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ | | ------------------ | | | Branch (592:29): [True: 1.07k, False: 0] | | ------------------ | | 593| 1.07k| ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ | | 594| 1.07k| : NULL) ------------------ | Branch (9208:8): [True: 0, False: 1.07k] ------------------ 9209| 0| yyensure_buffer_stack (yyscanner); ------------------ | | 175| 0|#define yyensure_buffer_stack core_yyensure_buffer_stack ------------------ 9210| 0| YY_CURRENT_BUFFER_LVALUE = ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 9211| 0| yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); ------------------ | | 109| 0|#define yy_create_buffer core_yy_create_buffer ------------------ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); ------------------ | | 446| 0|#define yyin yyg->yyin_r ------------------ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); ------------------ | | 481| 0|#define YY_BUF_SIZE 16384 ------------------ 9212| 0| } 9213| | 9214| 1.07k| yy_load_buffer_state( yyscanner ); ------------------ | | 151| 1.07k|#define yy_load_buffer_state core_yy_load_buffer_state ------------------ 9215| 1.07k| } 9216| | 9217| 33.2M| { 9218| 33.2M|#line 440 "scan.l" 9219| | 9220| | 9221| 33.2M|#line 9172 "scan.c" 9222| | 9223| 34.4M| while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ ------------------ | Branch (9223:23): [True: 34.4M, Folded] ------------------ 9224| 34.4M| { 9225| 34.4M| yy_cp = yyg->yy_c_buf_p; 9226| | 9227| | /* Support of yytext. */ 9228| 34.4M| *yy_cp = yyg->yy_hold_char; 9229| | 9230| | /* yy_bp points to the position in yy_ch_buf of the start of 9231| | * the current run. 9232| | */ 9233| 34.4M| yy_bp = yy_cp; 9234| | 9235| 34.4M| yy_current_state = yy_start_state_list[yyg->yy_start]; 9236| 34.4M|yy_match: 9237| 34.4M| { 9238| 34.4M| const struct yy_trans_info *yy_trans_info; 9239| | 9240| 34.4M| YY_CHAR yy_c; 9241| | 9242| 34.4M| for ( yy_c = YY_SC_TO_UI(*yy_cp); ------------------ | | 436| 34.4M|#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) ------------------ 9243| 3.72G| (yy_trans_info = &yy_current_state[yy_c])-> ------------------ | Branch (9243:9): [True: 3.69G, False: 34.4M] ------------------ 9244| 3.72G| yy_verify == yy_c; 9245| 3.69G| yy_c = YY_SC_TO_UI(*++yy_cp) ) ------------------ | | 436| 3.69G|#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) ------------------ 9246| 3.69G| yy_current_state += yy_trans_info->yy_nxt; 9247| 34.4M| } 9248| | 9249| 34.4M|yy_find_action: 9250| 34.4M| yy_act = yy_current_state[-1].yy_nxt; 9251| | 9252| 34.4M| YY_DO_BEFORE_ACTION; ------------------ | | 661| 34.4M| yyg->yytext_ptr = yy_bp; \ | | ------------------ | | | | 650| 34.4M|#define yytext_ptr yytext_r | | ------------------ | | 662| 34.4M| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | ------------------ | | | | 449| 34.4M|#define yyleng yyg->yyleng_r | | ------------------ | | 663| 34.4M| yyg->yy_hold_char = *yy_cp; \ | | 664| 34.4M| *yy_cp = '\0'; \ | | 665| 34.4M| yyg->yy_c_buf_p = yy_cp; ------------------ 9253| | 9254| 34.4M|do_action: /* This label is used only to access EOF actions. */ 9255| | 9256| 34.4M| switch ( yy_act ) 9257| 34.4M| { /* beginning of action switch */ 9258| 341k|case 1: ------------------ | Branch (9258:1): [True: 341k, False: 34.1M] ------------------ 9259| |/* rule 1 can match eol */ 9260| 341k|YY_RULE_SETUP 9261| 341k|#line 442 "scan.l" 9262| 341k|{ 9263| | /* ignore */ 9264| 341k| } 9265| 341k| YY_BREAK ------------------ | | 9172| 341k|#define YY_BREAK /*LINTED*/break; ------------------ 9266| 17.0k|case 2: ------------------ | Branch (9266:1): [True: 17.0k, False: 34.4M] ------------------ 9267| 17.0k|YY_RULE_SETUP 9268| 17.0k|#line 446 "scan.l" 9269| 17.0k|{ 9270| | /* ignore, unless comments were requested as tokens */ 9271| 17.0k| if (yyextra->return_comments) ------------------ | | 448| 17.0k|#define yyextra yyg->yyextra_r ------------------ | Branch (9271:10): [True: 0, False: 17.0k] ------------------ 9272| 0| { 9273| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9274| 0| return SQL_COMMENT; ------------------ | | 586| 0|#define SQL_COMMENT 275 ------------------ 9275| 0| } 9276| 17.0k| } 9277| 17.0k| YY_BREAK ------------------ | | 9172| 17.0k|#define YY_BREAK /*LINTED*/break; ------------------ 9278| 17.0k|case 3: ------------------ | Branch (9278:1): [True: 40, False: 34.4M] ------------------ 9279| 40|YY_RULE_SETUP 9280| 40|#line 455 "scan.l" 9281| 40|{ 9282| | /* Set location in case of syntax error in comment */ 9283| 40| SET_YYLLOC(); ------------------ | | 8725| 40|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 40| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 40|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 40|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9284| 40| yyextra->xcdepth = 0; ------------------ | | 448| 40|#define yyextra yyg->yyextra_r ------------------ 9285| 40| BEGIN(xc); ------------------ | | 459| 40|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xc); ------------------ | | 8931| 40|#define xc 2 ------------------ 9286| | /* Put back any characters past slash-star; see above */ 9287| 40| yyless(2); ------------------ | | 508| 40| do \ | | 509| 40| { \ | | 510| 40| /* Undo effects of setting up yytext. */ \ | | 511| 40| int yyless_macro_arg = (n); \ | | 512| 40| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 40| *yy_cp = yyg->yy_hold_char; \ | | 514| 40| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 40| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 40|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 40| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 40| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 40|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 40| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 40|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 40| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 40| *yy_cp = '\0'; \ | | | | 665| 40| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 40| } \ | | 518| 40| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 40] | | ------------------ ------------------ 9288| 40| } 9289| 40| YY_BREAK ------------------ | | 9172| 40|#define YY_BREAK /*LINTED*/break; ------------------ 9290| | 9291| 5|case 4: ------------------ | Branch (9291:1): [True: 5, False: 34.4M] ------------------ 9292| 5|YY_RULE_SETUP 9293| 5|#line 465 "scan.l" 9294| 5|{ 9295| 5| (yyextra->xcdepth)++; ------------------ | | 448| 5|#define yyextra yyg->yyextra_r ------------------ 9296| | /* Put back any characters past slash-star; see above */ 9297| 5| yyless(2); ------------------ | | 508| 5| do \ | | 509| 5| { \ | | 510| 5| /* Undo effects of setting up yytext. */ \ | | 511| 5| int yyless_macro_arg = (n); \ | | 512| 5| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 5| *yy_cp = yyg->yy_hold_char; \ | | 514| 5| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 5| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 5|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 5| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 5| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 5|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 5| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 5|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 5| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 5| *yy_cp = '\0'; \ | | | | 665| 5| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 5| } \ | | 518| 5| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 5] | | ------------------ ------------------ 9298| 5| } 9299| 5| YY_BREAK ------------------ | | 9172| 5|#define YY_BREAK /*LINTED*/break; ------------------ 9300| 39|case 5: ------------------ | Branch (9300:1): [True: 39, False: 34.4M] ------------------ 9301| 39|YY_RULE_SETUP 9302| 39|#line 471 "scan.l" 9303| 39|{ 9304| 39| if (yyextra->xcdepth <= 0) ------------------ | | 448| 39|#define yyextra yyg->yyextra_r ------------------ | Branch (9304:10): [True: 39, False: 0] ------------------ 9305| 39| { 9306| 39| BEGIN(INITIAL); ------------------ | | 459| 39|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(INITIAL); ------------------ | | 8929| 39|#define INITIAL 0 ------------------ 9307| 39| if (yyextra->return_comments) ------------------ | | 448| 39|#define yyextra yyg->yyextra_r ------------------ | Branch (9307:11): [True: 0, False: 39] ------------------ 9308| 0| { 9309| 0| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 0|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 0|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 0|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 0|#define yyleng yyg->yyleng_r ------------------ 9310| 0| return C_COMMENT; ------------------ | | 587| 0|#define C_COMMENT 276 ------------------ 9311| 0| } 9312| 39| } 9313| 0| else 9314| 0| (yyextra->xcdepth)--; ------------------ | | 448| 0|#define yyextra yyg->yyextra_r ------------------ 9315| 39| } 9316| 39| YY_BREAK ------------------ | | 9172| 39|#define YY_BREAK /*LINTED*/break; ------------------ 9317| 39|case 6: ------------------ | Branch (9317:1): [True: 24, False: 34.4M] ------------------ 9318| |/* rule 6 can match eol */ 9319| 24|YY_RULE_SETUP 9320| 24|#line 485 "scan.l" 9321| 24|{ 9322| | /* ignore */ 9323| 24| } 9324| 24| YY_BREAK ------------------ | | 9172| 24|#define YY_BREAK /*LINTED*/break; ------------------ 9325| 7|case 7: ------------------ | Branch (9325:1): [True: 7, False: 34.4M] ------------------ 9326| 7|YY_RULE_SETUP 9327| 7|#line 489 "scan.l" 9328| 7|{ 9329| | /* ignore */ 9330| 7| } 9331| 7| YY_BREAK ------------------ | | 9172| 7|#define YY_BREAK /*LINTED*/break; ------------------ 9332| 0|case 8: ------------------ | Branch (9332:1): [True: 0, False: 34.4M] ------------------ 9333| 0|YY_RULE_SETUP 9334| 0|#line 493 "scan.l" 9335| 0|{ 9336| | /* ignore */ 9337| 0| } 9338| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9339| 1|case YY_STATE_EOF(xc): ------------------ | | 467| 1|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 1|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9339:1): [True: 1, False: 34.4M] ------------------ 9340| 1|#line 497 "scan.l" 9341| 1|{ 9342| 1| yyerror("unterminated /* comment"); ------------------ | | 8752| 1|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9343| 1| } 9344| 1| YY_BREAK ------------------ | | 9172| 1|#define YY_BREAK /*LINTED*/break; ------------------ 9345| |/* */ 9346| 22|case 9: ------------------ | Branch (9346:1): [True: 22, False: 34.4M] ------------------ 9347| 22|YY_RULE_SETUP 9348| 22|#line 502 "scan.l" 9349| 22|{ 9350| | /* Binary bit type. 9351| | * At some point we should simply pass the string 9352| | * forward to the parser and label it there. 9353| | * In the meantime, place a leading "b" on the string 9354| | * to mark it for the input routine as a binary string. 9355| | */ 9356| 22| SET_YYLLOC(); ------------------ | | 8725| 22|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 22| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 22|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 22|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9357| 22| BEGIN(xb); ------------------ | | 459| 22|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xb); ------------------ | | 8930| 22|#define xb 1 ------------------ 9358| 22| startlit(); ------------------ | | 8744| 22|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 22|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9359| 22| addlitchar('b', yyscanner); 9360| 22| } 9361| 22| YY_BREAK ------------------ | | 9172| 22|#define YY_BREAK /*LINTED*/break; ------------------ 9362| 379|case 10: ------------------ | Branch (9362:1): [True: 379, False: 34.4M] ------------------ 9363| |/* rule 10 can match eol */ 9364| 379|#line 515 "scan.l" 9365| 486|case 11: ------------------ | Branch (9365:1): [True: 107, False: 34.4M] ------------------ 9366| |/* rule 11 can match eol */ 9367| 486|YY_RULE_SETUP 9368| 486|#line 515 "scan.l" 9369| 486|{ 9370| 486| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 486|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 486|#define yyleng yyg->yyleng_r ------------------ 9371| 486| } 9372| 486| YY_BREAK ------------------ | | 9172| 486|#define YY_BREAK /*LINTED*/break; ------------------ 9373| 8|case YY_STATE_EOF(xb): ------------------ | | 467| 8|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 8|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9373:1): [True: 8, False: 34.4M] ------------------ 9374| 8|#line 518 "scan.l" 9375| 8|{ yyerror("unterminated bit string literal"); } ------------------ | | 8752| 8|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9376| 8| YY_BREAK ------------------ | | 9172| 8|#define YY_BREAK /*LINTED*/break; ------------------ 9377| 20|case 12: ------------------ | Branch (9377:1): [True: 20, False: 34.4M] ------------------ 9378| 20|YY_RULE_SETUP 9379| 20|#line 520 "scan.l" 9380| 20|{ 9381| | /* Hexadecimal bit type. 9382| | * At some point we should simply pass the string 9383| | * forward to the parser and label it there. 9384| | * In the meantime, place a leading "x" on the string 9385| | * to mark it for the input routine as a hex string. 9386| | */ 9387| 20| SET_YYLLOC(); ------------------ | | 8725| 20|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 20| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 20|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 20|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9388| 20| BEGIN(xh); ------------------ | | 459| 20|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xh); ------------------ | | 8933| 20|#define xh 4 ------------------ 9389| 20| startlit(); ------------------ | | 8744| 20|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 20|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9390| 20| addlitchar('x', yyscanner); 9391| 20| } 9392| 20| YY_BREAK ------------------ | | 9172| 20|#define YY_BREAK /*LINTED*/break; ------------------ 9393| 10|case YY_STATE_EOF(xh): ------------------ | | 467| 10|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 10|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9393:1): [True: 10, False: 34.4M] ------------------ 9394| 10|#line 532 "scan.l" 9395| 10|{ yyerror("unterminated hexadecimal string literal"); } ------------------ | | 8752| 10|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9396| 10| YY_BREAK ------------------ | | 9172| 10|#define YY_BREAK /*LINTED*/break; ------------------ 9397| 6|case 13: ------------------ | Branch (9397:1): [True: 6, False: 34.4M] ------------------ 9398| 6|YY_RULE_SETUP 9399| 6|#line 534 "scan.l" 9400| 6|{ 9401| | /* National character. 9402| | * We will pass this along as a normal character string, 9403| | * but preceded with an internally-generated "NCHAR". 9404| | */ 9405| 6| int kwnum; 9406| | 9407| 6| SET_YYLLOC(); ------------------ | | 8725| 6|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 6| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 6|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 6|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9408| 6| yyless(1); /* eat only 'n' this time */ ------------------ | | 508| 6| do \ | | 509| 6| { \ | | 510| 6| /* Undo effects of setting up yytext. */ \ | | 511| 6| int yyless_macro_arg = (n); \ | | 512| 6| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 6| *yy_cp = yyg->yy_hold_char; \ | | 514| 6| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 6| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 6|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 6| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 6| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 6|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 6| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 6|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 6| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 6| *yy_cp = '\0'; \ | | | | 665| 6| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 6| } \ | | 518| 6| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 6] | | ------------------ ------------------ 9409| | 9410| 6| kwnum = ScanKeywordLookup("nchar", 9411| 6| yyextra->keywordlist); ------------------ | | 448| 6|#define yyextra yyg->yyextra_r ------------------ 9412| 6| if (kwnum >= 0) ------------------ | Branch (9412:10): [True: 6, False: 0] ------------------ 9413| 6| { 9414| 6| yylval->keyword = GetScanKeyword(kwnum, ------------------ | | 8994| 6| # define yylval yyg->yylval_r ------------------ 9415| 6| yyextra->keywordlist); ------------------ | | 448| 6|#define yyextra yyg->yyextra_r ------------------ 9416| 6| return yyextra->keyword_tokens[kwnum]; ------------------ | | 448| 6|#define yyextra yyg->yyextra_r ------------------ 9417| 6| } 9418| 0| else 9419| 0| { 9420| | /* If NCHAR isn't a keyword, just return "n" */ 9421| 0| yylval->str = pstrdup("n"); ------------------ | | 8994| 0| # define yylval yyg->yylval_r ------------------ 9422| 0| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 0|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 0|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 0|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 0|#define yyleng yyg->yyleng_r ------------------ 9423| 0| return IDENT; ------------------ | | 569| 0|#define IDENT 258 ------------------ 9424| 0| } 9425| 6| } 9426| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9427| 11.5k|case 14: ------------------ | Branch (9427:1): [True: 11.5k, False: 34.4M] ------------------ 9428| 11.5k|YY_RULE_SETUP 9429| 11.5k|#line 561 "scan.l" 9430| 11.5k|{ 9431| 11.5k| yyextra->warn_on_first_escape = true; ------------------ | | 448| 11.5k|#define yyextra yyg->yyextra_r ------------------ 9432| 11.5k| yyextra->saw_non_ascii = false; ------------------ | | 448| 11.5k|#define yyextra yyg->yyextra_r ------------------ 9433| 11.5k| SET_YYLLOC(); ------------------ | | 8725| 11.5k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 11.5k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 11.5k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 11.5k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9434| 11.5k| if (yyextra->standard_conforming_strings) ------------------ | | 448| 11.5k|#define yyextra yyg->yyextra_r ------------------ | Branch (9434:10): [True: 11.5k, False: 0] ------------------ 9435| 11.5k| BEGIN(xq); ------------------ | | 459| 11.5k|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xq); ------------------ | | 8934| 11.5k|#define xq 5 ------------------ 9436| 0| else 9437| 0| BEGIN(xe); ------------------ | | 459| 0|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xe); ------------------ | | 8936| 0|#define xe 7 ------------------ 9438| 11.5k| startlit(); ------------------ | | 8744| 11.5k|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 11.5k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9439| 11.5k| } 9440| 11.5k| YY_BREAK ------------------ | | 9172| 11.5k|#define YY_BREAK /*LINTED*/break; ------------------ 9441| 1.23k|case 15: ------------------ | Branch (9441:1): [True: 1.23k, False: 34.4M] ------------------ 9442| 1.23k|YY_RULE_SETUP 9443| 1.23k|#line 571 "scan.l" 9444| 1.23k|{ 9445| 1.23k| yyextra->warn_on_first_escape = false; ------------------ | | 448| 1.23k|#define yyextra yyg->yyextra_r ------------------ 9446| 1.23k| yyextra->saw_non_ascii = false; ------------------ | | 448| 1.23k|#define yyextra yyg->yyextra_r ------------------ 9447| 1.23k| SET_YYLLOC(); ------------------ | | 8725| 1.23k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1.23k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1.23k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1.23k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9448| 1.23k| BEGIN(xe); ------------------ | | 459| 1.23k|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xe); ------------------ | | 8936| 1.23k|#define xe 7 ------------------ 9449| 1.23k| startlit(); ------------------ | | 8744| 1.23k|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 1.23k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9450| 1.23k| } 9451| 1.23k| YY_BREAK ------------------ | | 9172| 1.23k|#define YY_BREAK /*LINTED*/break; ------------------ 9452| 22|case 16: ------------------ | Branch (9452:1): [True: 22, False: 34.4M] ------------------ 9453| 22|YY_RULE_SETUP 9454| 22|#line 578 "scan.l" 9455| 22|{ 9456| 22| SET_YYLLOC(); ------------------ | | 8725| 22|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 22| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 22|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 22|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9457| 22| if (!yyextra->standard_conforming_strings) ------------------ | | 448| 22|#define yyextra yyg->yyextra_r ------------------ | Branch (9457:10): [True: 0, False: 22] ------------------ 9458| 22| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 9459| 22| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 9460| 22| errmsg("unsafe use of string constant with Unicode escapes"), 9461| 22| errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), 9462| 22| lexer_errposition())); 9463| 22| BEGIN(xus); ------------------ | | 459| 22|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xus); ------------------ | | 8939| 22|#define xus 10 ------------------ 9464| 22| startlit(); ------------------ | | 8744| 22|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 22|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9465| 22| } 9466| 22| YY_BREAK ------------------ | | 9172| 22|#define YY_BREAK /*LINTED*/break; ------------------ 9467| 13.3k|case 17: ------------------ | Branch (9467:1): [True: 13.3k, False: 34.4M] ------------------ 9468| 13.3k|YY_RULE_SETUP 9469| 13.3k|#line 590 "scan.l" 9470| 13.3k|{ 9471| | /* 9472| | * When we are scanning a quoted string and see an end 9473| | * quote, we must look ahead for a possible continuation. 9474| | * If we don't see one, we know the end quote was in fact 9475| | * the end of the string. To reduce the lexer table size, 9476| | * we use a single "xqs" state to do the lookahead for all 9477| | * types of strings. 9478| | */ 9479| 13.3k| yyextra->state_before_str_stop = YYSTATE; ------------------ | | 448| 13.3k|#define yyextra yyg->yyextra_r ------------------ yyextra->state_before_str_stop = YYSTATE; ------------------ | | 465| 13.3k|#define YYSTATE YY_START | | ------------------ | | | | 464| 13.3k|#define YY_START ((yyg->yy_start - 1) / 2) | | ------------------ ------------------ 9480| 13.3k| BEGIN(xqs); ------------------ | | 459| 13.3k|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xqs); ------------------ | | 8935| 13.3k|#define xqs 6 ------------------ 9481| 13.3k| } 9482| 13.3k| YY_BREAK ------------------ | | 9172| 13.3k|#define YY_BREAK /*LINTED*/break; ------------------ 9483| 603|case 18: ------------------ | Branch (9483:1): [True: 603, False: 34.4M] ------------------ 9484| |/* rule 18 can match eol */ 9485| 603|YY_RULE_SETUP 9486| 603|#line 602 "scan.l" 9487| 603|{ 9488| | /* 9489| | * Found a quote continuation, so return to the in-quote 9490| | * state and continue scanning the literal. Nothing is 9491| | * added to the literal's contents. 9492| | */ 9493| 603| BEGIN(yyextra->state_before_str_stop); ------------------ | | 459| 603|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(yyextra->state_before_str_stop); ------------------ | | 448| 603|#define yyextra yyg->yyextra_r ------------------ 9494| 603| } 9495| 603| YY_BREAK ------------------ | | 9172| 603|#define YY_BREAK /*LINTED*/break; ------------------ 9496| 2.38k|case 19: ------------------ | Branch (9496:1): [True: 2.38k, False: 34.4M] ------------------ 9497| |/* rule 19 can match eol */ 9498| 2.38k|#line 611 "scan.l" 9499| 12.7k|case 20: ------------------ | Branch (9499:1): [True: 10.3k, False: 34.4M] ------------------ 9500| |/* rule 20 can match eol */ 9501| 12.7k|#line 612 "scan.l" 9502| 12.7k|YY_RULE_SETUP 9503| 12.7k|case YY_STATE_EOF(xqs): ------------------ | | 467| 12.7k|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 12.7k|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9503:1): [True: 51, False: 34.4M] ------------------ 9504| 12.7k|#line 612 "scan.l" 9505| 12.7k|{ 9506| | /* 9507| | * Failed to see a quote continuation. Throw back 9508| | * everything after the end quote, and handle the string 9509| | * according to the state we were in previously. 9510| | */ 9511| 12.7k| yyless(0); ------------------ | | 508| 12.7k| do \ | | 509| 12.7k| { \ | | 510| 12.7k| /* Undo effects of setting up yytext. */ \ | | 511| 12.7k| int yyless_macro_arg = (n); \ | | 512| 12.7k| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 12.7k| *yy_cp = yyg->yy_hold_char; \ | | 514| 12.7k| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 12.7k| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 12.7k|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 12.7k| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 12.7k| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 12.7k|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 12.7k| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 12.7k|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 12.7k| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 12.7k| *yy_cp = '\0'; \ | | | | 665| 12.7k| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 12.7k| } \ | | 518| 12.7k| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 12.7k] | | ------------------ ------------------ 9512| 12.7k| BEGIN(INITIAL); ------------------ | | 459| 12.7k|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(INITIAL); ------------------ | | 8929| 12.7k|#define INITIAL 0 ------------------ 9513| | 9514| 12.7k| switch (yyextra->state_before_str_stop) ------------------ | | 448| 12.7k|#define yyextra yyg->yyextra_r ------------------ 9515| 12.7k| { 9516| 14| case xb: ------------------ | | 8930| 14|#define xb 1 ------------------ | Branch (9516:7): [True: 14, False: 12.7k] ------------------ 9517| 14| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 14| # define yylval yyg->yylval_r ------------------ 9518| 14| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 14|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 14|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 14|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 14|#define yyleng yyg->yyleng_r ------------------ 9519| 14| return BCONST; ------------------ | | 574| 14|#define BCONST 263 ------------------ 9520| 10| case xh: ------------------ | | 8933| 10|#define xh 4 ------------------ | Branch (9520:7): [True: 10, False: 12.7k] ------------------ 9521| 10| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 10| # define yylval yyg->yylval_r ------------------ 9522| 10| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 10|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 10|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 10|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 10|#define yyleng yyg->yyleng_r ------------------ 9523| 10| return XCONST; ------------------ | | 575| 10|#define XCONST 264 ------------------ 9524| 11.5k| case xq: ------------------ | | 8934| 11.5k|#define xq 5 ------------------ | Branch (9524:7): [True: 11.5k, False: 1.23k] ------------------ 9525| 12.7k| case xe: ------------------ | | 8936| 12.7k|#define xe 7 ------------------ | Branch (9525:7): [True: 1.19k, False: 11.5k] ------------------ 9526| | /* 9527| | * Check that the data remains valid, if it might 9528| | * have been made invalid by unescaping any chars. 9529| | */ 9530| 12.7k| if (yyextra->saw_non_ascii) ------------------ | | 448| 12.7k|#define yyextra yyg->yyextra_r ------------------ | Branch (9530:12): [True: 962, False: 11.7k] ------------------ 9531| 962| pg_verifymbstr(yyextra->literalbuf, ------------------ | | 448| 962|#define yyextra yyg->yyextra_r ------------------ 9532| 962| yyextra->literallen, ------------------ | | 448| 962|#define yyextra yyg->yyextra_r ------------------ 9533| 962| false); 9534| 12.7k| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 12.7k| # define yylval yyg->yylval_r ------------------ 9535| 12.7k| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 12.7k|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 12.7k|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 12.7k|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 12.7k|#define yyleng yyg->yyleng_r ------------------ 9536| 12.7k| return SCONST; ------------------ | | 572| 12.7k|#define SCONST 261 ------------------ 9537| 21| case xus: ------------------ | | 8939| 21|#define xus 10 ------------------ | Branch (9537:7): [True: 21, False: 12.7k] ------------------ 9538| 21| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 21| # define yylval yyg->yylval_r ------------------ 9539| 21| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 21|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 21|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 21|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 21|#define yyleng yyg->yyleng_r ------------------ 9540| 21| return USCONST; ------------------ | | 573| 21|#define USCONST 262 ------------------ 9541| 0| default: ------------------ | Branch (9541:7): [True: 0, False: 12.7k] ------------------ 9542| 0| yyerror("unhandled previous state in xqs"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9543| 12.7k| } 9544| 12.7k| } 9545| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9546| 146k|case 21: ------------------ | Branch (9546:1): [True: 146k, False: 34.3M] ------------------ 9547| 146k|YY_RULE_SETUP 9548| 146k|#line 653 "scan.l" 9549| 146k|{ 9550| 146k| addlitchar('\'', yyscanner); 9551| 146k| } 9552| 146k| YY_BREAK ------------------ | | 9172| 146k|#define YY_BREAK /*LINTED*/break; ------------------ 9553| 10.4k|case 22: ------------------ | Branch (9553:1): [True: 10.4k, False: 34.4M] ------------------ 9554| |/* rule 22 can match eol */ 9555| 10.4k|YY_RULE_SETUP 9556| 10.4k|#line 656 "scan.l" 9557| 10.4k|{ 9558| 10.4k| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 10.4k|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 10.4k|#define yyleng yyg->yyleng_r ------------------ 9559| 10.4k| } 9560| 10.4k| YY_BREAK ------------------ | | 9172| 10.4k|#define YY_BREAK /*LINTED*/break; ------------------ 9561| 48.6k|case 23: ------------------ | Branch (9561:1): [True: 48.6k, False: 34.4M] ------------------ 9562| |/* rule 23 can match eol */ 9563| 48.6k|YY_RULE_SETUP 9564| 48.6k|#line 659 "scan.l" 9565| 48.6k|{ 9566| 48.6k| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 48.6k|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 48.6k|#define yyleng yyg->yyleng_r ------------------ 9567| 48.6k| } 9568| 48.6k| YY_BREAK ------------------ | | 9172| 48.6k|#define YY_BREAK /*LINTED*/break; ------------------ 9569| 506|case 24: ------------------ | Branch (9569:1): [True: 506, False: 34.4M] ------------------ 9570| 506|YY_RULE_SETUP 9571| 506|#line 662 "scan.l" 9572| 506|{ 9573| 506| pg_wchar c = strtoul(yytext + 2, NULL, 16); ------------------ | | 450| 506|#define yytext yyg->yytext_r ------------------ 9574| | 9575| | /* 9576| | * For consistency with other productions, issue any 9577| | * escape warning with cursor pointing to start of string. 9578| | * We might want to change that, someday. 9579| | */ 9580| 506| check_escape_warning(yyscanner); 9581| | 9582| | /* Remember start of overall string token ... */ 9583| 506| PUSH_YYLLOC(); ------------------ | | 8741| 506|#define PUSH_YYLLOC() (yyextra->save_yylloc = *(yylloc)) | | ------------------ | | | | 448| 506|#define yyextra yyg->yyextra_r | | ------------------ | | #define PUSH_YYLLOC() (yyextra->save_yylloc = *(yylloc)) | | ------------------ | | | | 8996| 506| # define yylloc yyg->yylloc_r | | ------------------ ------------------ 9584| | /* ... and set the error cursor to point at this esc seq */ 9585| 506| SET_YYLLOC(); ------------------ | | 8725| 506|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 506| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 506|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 506|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9586| | 9587| 506| if (is_utf16_surrogate_first(c)) ------------------ | Branch (9587:10): [True: 1, False: 505] ------------------ 9588| 1| { 9589| 1| yyextra->utf16_first_part = c; ------------------ | | 448| 1|#define yyextra yyg->yyextra_r ------------------ 9590| 1| BEGIN(xeu); ------------------ | | 459| 1|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xeu); ------------------ | | 8940| 1|#define xeu 11 ------------------ 9591| 1| } 9592| 505| else if (is_utf16_surrogate_second(c)) ------------------ | Branch (9592:15): [True: 0, False: 505] ------------------ 9593| 0| yyerror("invalid Unicode surrogate pair"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9594| 505| else 9595| 505| addunicode(c, yyscanner); 9596| | 9597| | /* Restore yylloc to be start of string token */ 9598| 506| POP_YYLLOC(); ------------------ | | 8742| 506|#define POP_YYLLOC() (*(yylloc) = yyextra->save_yylloc) | | ------------------ | | | | 8996| 506| # define yylloc yyg->yylloc_r | | ------------------ | | #define POP_YYLLOC() (*(yylloc) = yyextra->save_yylloc) | | ------------------ | | | | 448| 506|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9599| 506| } 9600| 506| YY_BREAK ------------------ | | 9172| 506|#define YY_BREAK /*LINTED*/break; ------------------ 9601| 1|case 25: ------------------ | Branch (9601:1): [True: 1, False: 34.4M] ------------------ 9602| 1|YY_RULE_SETUP 9603| 1|#line 690 "scan.l" 9604| 1|{ 9605| 1| pg_wchar c = strtoul(yytext + 2, NULL, 16); ------------------ | | 450| 1|#define yytext yyg->yytext_r ------------------ 9606| | 9607| | /* Remember start of overall string token ... */ 9608| 1| PUSH_YYLLOC(); ------------------ | | 8741| 1|#define PUSH_YYLLOC() (yyextra->save_yylloc = *(yylloc)) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ | | #define PUSH_YYLLOC() (yyextra->save_yylloc = *(yylloc)) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ ------------------ 9609| | /* ... and set the error cursor to point at this esc seq */ 9610| 1| SET_YYLLOC(); ------------------ | | 8725| 1|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9611| | 9612| 1| if (!is_utf16_surrogate_second(c)) ------------------ | Branch (9612:10): [True: 0, False: 1] ------------------ 9613| 0| yyerror("invalid Unicode surrogate pair"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9614| | 9615| 1| c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); ------------------ | | 448| 1|#define yyextra yyg->yyextra_r ------------------ 9616| | 9617| 1| addunicode(c, yyscanner); 9618| | 9619| | /* Restore yylloc to be start of string token */ 9620| 1| POP_YYLLOC(); ------------------ | | 8742| 1|#define POP_YYLLOC() (*(yylloc) = yyextra->save_yylloc) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ | | #define POP_YYLLOC() (*(yylloc) = yyextra->save_yylloc) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9621| | 9622| 1| BEGIN(xe); ------------------ | | 459| 1|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xe); ------------------ | | 8936| 1|#define xe 7 ------------------ 9623| 1| } 9624| 1| YY_BREAK ------------------ | | 9172| 1|#define YY_BREAK /*LINTED*/break; ------------------ 9625| 0|case 26: ------------------ | Branch (9625:1): [True: 0, False: 34.4M] ------------------ 9626| 0|#line 711 "scan.l" 9627| 0|case 27: ------------------ | Branch (9627:1): [True: 0, False: 34.4M] ------------------ 9628| |/* rule 27 can match eol */ 9629| 0|#line 712 "scan.l" 9630| 0|YY_RULE_SETUP 9631| 0|case YY_STATE_EOF(xeu): ------------------ | | 467| 0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 0|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9631:1): [True: 0, False: 34.4M] ------------------ 9632| 0|#line 712 "scan.l" 9633| 0|{ 9634| | /* Set the error cursor to point at missing esc seq */ 9635| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9636| 0| yyerror("invalid Unicode surrogate pair"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9637| 0| } 9638| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9639| 1|case 28: ------------------ | Branch (9639:1): [True: 1, False: 34.4M] ------------------ 9640| 1|YY_RULE_SETUP 9641| 1|#line 717 "scan.l" 9642| 1|{ 9643| | /* Set the error cursor to point at malformed esc seq */ 9644| 1| SET_YYLLOC(); ------------------ | | 8725| 1|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9645| 1| ereport(ERROR, ------------------ | | 164| 1| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 1| do { \ | | | | 143| 1| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 1|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 1|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 1, Folded] | | | | | Branch (144:7): [True: 1, False: 0] | | | | | Branch (144:39): [True: 1, Folded] | | | | ------------------ | | | | 145| 1| errstart_cold(elevel, domain) : \ | | | | 146| 1| errstart(elevel, domain)) \ | | | | 147| 1| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 1| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 1| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 1| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 1] | | | | ------------------ | | ------------------ ------------------ 9646| 1| (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), 9647| 1| errmsg("invalid Unicode escape"), 9648| 1| errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), 9649| 1| lexer_errposition())); 9650| 1| } 9651| 1| YY_BREAK ------------------ | | 9172| 1|#define YY_BREAK /*LINTED*/break; ------------------ 9652| 33.0k|case 29: ------------------ | Branch (9652:1): [True: 33.0k, False: 34.4M] ------------------ 9653| |/* rule 29 can match eol */ 9654| 33.0k|YY_RULE_SETUP 9655| 33.0k|#line 726 "scan.l" 9656| 33.0k|{ 9657| 33.0k| if (yytext[1] == '\'') ------------------ | | 450| 33.0k|#define yytext yyg->yytext_r ------------------ | Branch (9657:10): [True: 176, False: 32.8k] ------------------ 9658| 176| { 9659| 176| if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || ------------------ | | 448| 176|#define yyextra yyg->yyextra_r ------------------ | Branch (9659:11): [True: 0, False: 176] ------------------ 9660| 176| (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && ------------------ | | 448| 176|#define yyextra yyg->yyextra_r ------------------ | Branch (9660:9): [True: 176, False: 0] ------------------ 9661| 176| PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) ------------------ | | 301| 176| ((_enc) > PG_ENCODING_BE_LAST && (_enc) < _PG_LAST_ENCODING_) | | ------------------ | | | | 291| 352|#define PG_ENCODING_BE_LAST PG_KOI8U | | ------------------ | | | Branch (301:4): [True: 0, False: 176] | | | Branch (301:36): [True: 0, False: 0] | | ------------------ ------------------ 9662| 176| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 9663| 176| (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), 9664| 176| errmsg("unsafe use of \\' in a string literal"), 9665| 176| errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), 9666| 176| lexer_errposition())); 9667| 176| } 9668| 33.0k| check_string_escape_warning(yytext[1], yyscanner); ------------------ | | 450| 33.0k|#define yytext yyg->yytext_r ------------------ 9669| 33.0k| addlitchar(unescape_single_char(yytext[1], yyscanner), ------------------ | | 450| 33.0k|#define yytext yyg->yytext_r ------------------ 9670| 33.0k| yyscanner); 9671| 33.0k| } 9672| 33.0k| YY_BREAK ------------------ | | 9172| 33.0k|#define YY_BREAK /*LINTED*/break; ------------------ 9673| 53.1k|case 30: ------------------ | Branch (9673:1): [True: 53.1k, False: 34.4M] ------------------ 9674| 53.1k|YY_RULE_SETUP 9675| 53.1k|#line 742 "scan.l" 9676| 53.1k|{ 9677| 53.1k| unsigned char c = strtoul(yytext + 1, NULL, 8); ------------------ | | 450| 53.1k|#define yytext yyg->yytext_r ------------------ 9678| | 9679| 53.1k| check_escape_warning(yyscanner); 9680| 53.1k| addlitchar(c, yyscanner); 9681| 53.1k| if (c == '\0' || IS_HIGHBIT_SET(c)) ------------------ | | 1144| 18.0k|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 18.0k|#define HIGHBIT (0x80) | | ------------------ | | | Branch (1144:29): [True: 115, False: 17.9k] | | ------------------ ------------------ | Branch (9681:10): [True: 35.1k, False: 18.0k] ------------------ 9682| 35.2k| yyextra->saw_non_ascii = true; ------------------ | | 448| 35.2k|#define yyextra yyg->yyextra_r ------------------ 9683| 53.1k| } 9684| 53.1k| YY_BREAK ------------------ | | 9172| 53.1k|#define YY_BREAK /*LINTED*/break; ------------------ 9685| 13.0k|case 31: ------------------ | Branch (9685:1): [True: 13.0k, False: 34.4M] ------------------ 9686| 13.0k|YY_RULE_SETUP 9687| 13.0k|#line 750 "scan.l" 9688| 13.0k|{ 9689| 13.0k| unsigned char c = strtoul(yytext + 2, NULL, 16); ------------------ | | 450| 13.0k|#define yytext yyg->yytext_r ------------------ 9690| | 9691| 13.0k| check_escape_warning(yyscanner); 9692| 13.0k| addlitchar(c, yyscanner); 9693| 13.0k| if (c == '\0' || IS_HIGHBIT_SET(c)) ------------------ | | 1144| 8.37k|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 8.37k|#define HIGHBIT (0x80) | | ------------------ | | | Branch (1144:29): [True: 6.82k, False: 1.55k] | | ------------------ ------------------ | Branch (9693:10): [True: 4.68k, False: 8.37k] ------------------ 9694| 11.5k| yyextra->saw_non_ascii = true; ------------------ | | 448| 11.5k|#define yyextra yyg->yyextra_r ------------------ 9695| 13.0k| } 9696| 13.0k| YY_BREAK ------------------ | | 9172| 13.0k|#define YY_BREAK /*LINTED*/break; ------------------ 9697| 11|case 32: ------------------ | Branch (9697:1): [True: 11, False: 34.4M] ------------------ 9698| 11|YY_RULE_SETUP 9699| 11|#line 758 "scan.l" 9700| 11|{ 9701| | /* This is only needed for \ just before EOF */ 9702| 11| addlitchar(yytext[0], yyscanner); ------------------ | | 450| 11|#define yytext yyg->yytext_r ------------------ 9703| 11| } 9704| 11| YY_BREAK ------------------ | | 9172| 11|#define YY_BREAK /*LINTED*/break; ------------------ 9705| 8|case YY_STATE_EOF(xq): ------------------ | | 467| 8|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 8|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9705:1): [True: 8, False: 34.4M] ------------------ 9706| 46|case YY_STATE_EOF(xe): ------------------ | | 467| 46|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 46|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9706:1): [True: 38, False: 34.4M] ------------------ 9707| 47|case YY_STATE_EOF(xus): ------------------ | | 467| 47|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 47|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9707:1): [True: 1, False: 34.4M] ------------------ 9708| 47|#line 762 "scan.l" 9709| 47|{ yyerror("unterminated quoted string"); } ------------------ | | 8752| 47|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9710| 47| YY_BREAK ------------------ | | 9172| 47|#define YY_BREAK /*LINTED*/break; ------------------ 9711| 600|case 33: ------------------ | Branch (9711:1): [True: 600, False: 34.4M] ------------------ 9712| 600|YY_RULE_SETUP 9713| 600|#line 764 "scan.l" 9714| 600|{ 9715| 600| SET_YYLLOC(); ------------------ | | 8725| 600|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 600| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 600|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 600|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9716| 600| yyextra->dolqstart = pstrdup(yytext); ------------------ | | 448| 600|#define yyextra yyg->yyextra_r ------------------ yyextra->dolqstart = pstrdup(yytext); ------------------ | | 450| 600|#define yytext yyg->yytext_r ------------------ 9717| 600| BEGIN(xdolq); ------------------ | | 459| 600|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xdolq); ------------------ | | 8937| 600|#define xdolq 8 ------------------ 9718| 600| startlit(); ------------------ | | 8744| 600|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 600|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9719| 600| } 9720| 600| YY_BREAK ------------------ | | 9172| 600|#define YY_BREAK /*LINTED*/break; ------------------ 9721| 1|case 34: ------------------ | Branch (9721:1): [True: 1, False: 34.4M] ------------------ 9722| 1|YY_RULE_SETUP 9723| 1|#line 770 "scan.l" 9724| 1|{ 9725| 1| SET_YYLLOC(); ------------------ | | 8725| 1|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9726| | /* throw back all but the initial "$" */ 9727| 1| yyless(1); ------------------ | | 508| 1| do \ | | 509| 1| { \ | | 510| 1| /* Undo effects of setting up yytext. */ \ | | 511| 1| int yyless_macro_arg = (n); \ | | 512| 1| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 1| *yy_cp = yyg->yy_hold_char; \ | | 514| 1| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 1| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 1|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 1| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 1| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 1|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 1| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 1|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 1| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 1| *yy_cp = '\0'; \ | | | | 665| 1| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 1| } \ | | 518| 1| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 1] | | ------------------ ------------------ 9728| | /* and treat it as {other} */ 9729| 1| return yytext[0]; ------------------ | | 450| 1|#define yytext yyg->yytext_r ------------------ 9730| 46| } 9731| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9732| 28.3k|case 35: ------------------ | Branch (9732:1): [True: 28.3k, False: 34.4M] ------------------ 9733| 28.3k|YY_RULE_SETUP 9734| 28.3k|#line 777 "scan.l" 9735| 28.3k|{ 9736| 28.3k| if (strcmp(yytext, yyextra->dolqstart) == 0) ------------------ | | 450| 28.3k|#define yytext yyg->yytext_r ------------------ if (strcmp(yytext, yyextra->dolqstart) == 0) ------------------ | | 448| 28.3k|#define yyextra yyg->yyextra_r ------------------ | Branch (9736:10): [True: 522, False: 27.8k] ------------------ 9737| 522| { 9738| 522| pfree(yyextra->dolqstart); ------------------ | | 448| 522|#define yyextra yyg->yyextra_r ------------------ 9739| 522| yyextra->dolqstart = NULL; ------------------ | | 448| 522|#define yyextra yyg->yyextra_r ------------------ 9740| 522| BEGIN(INITIAL); ------------------ | | 459| 522|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(INITIAL); ------------------ | | 8929| 522|#define INITIAL 0 ------------------ 9741| 522| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 522| # define yylval yyg->yylval_r ------------------ 9742| 522| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 522|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 522|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 522|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 522|#define yyleng yyg->yyleng_r ------------------ 9743| 522| return SCONST; ------------------ | | 572| 522|#define SCONST 261 ------------------ 9744| 522| } 9745| 27.8k| else 9746| 27.8k| { 9747| | /* 9748| | * When we fail to match $...$ to dolqstart, transfer 9749| | * the $... part to the output, but put back the final 9750| | * $ for rescanning. Consider $delim$...$junk$delim$ 9751| | */ 9752| 27.8k| addlit(yytext, yyleng - 1, yyscanner); ------------------ | | 450| 27.8k|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng - 1, yyscanner); ------------------ | | 449| 27.8k|#define yyleng yyg->yyleng_r ------------------ 9753| 27.8k| yyless(yyleng - 1); ------------------ | | 508| 27.8k| do \ | | 509| 27.8k| { \ | | 510| 27.8k| /* Undo effects of setting up yytext. */ \ | | 511| 27.8k| int yyless_macro_arg = (n); \ | | 512| 27.8k| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 27.8k| *yy_cp = yyg->yy_hold_char; \ | | 514| 27.8k| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 27.8k| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 27.8k|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 27.8k| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 27.8k| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 27.8k|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 27.8k| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 27.8k|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 27.8k| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 27.8k| *yy_cp = '\0'; \ | | | | 665| 27.8k| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 27.8k| } \ | | 518| 27.8k| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 27.8k] | | ------------------ ------------------ 9754| 27.8k| } 9755| 28.3k| } 9756| 27.8k| YY_BREAK ------------------ | | 9172| 27.8k|#define YY_BREAK /*LINTED*/break; ------------------ 9757| 236k|case 36: ------------------ | Branch (9757:1): [True: 236k, False: 34.2M] ------------------ 9758| |/* rule 36 can match eol */ 9759| 236k|YY_RULE_SETUP 9760| 236k|#line 798 "scan.l" 9761| 236k|{ 9762| 236k| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 236k|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 236k|#define yyleng yyg->yyleng_r ------------------ 9763| 236k| } 9764| 236k| YY_BREAK ------------------ | | 9172| 236k|#define YY_BREAK /*LINTED*/break; ------------------ 9765| 226k|case 37: ------------------ | Branch (9765:1): [True: 226k, False: 34.2M] ------------------ 9766| 226k|YY_RULE_SETUP 9767| 226k|#line 801 "scan.l" 9768| 226k|{ 9769| 226k| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 226k|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 226k|#define yyleng yyg->yyleng_r ------------------ 9770| 226k| } 9771| 226k| YY_BREAK ------------------ | | 9172| 226k|#define YY_BREAK /*LINTED*/break; ------------------ 9772| 10.2k|case 38: ------------------ | Branch (9772:1): [True: 10.2k, False: 34.4M] ------------------ 9773| 10.2k|YY_RULE_SETUP 9774| 10.2k|#line 804 "scan.l" 9775| 10.2k|{ 9776| | /* This is only needed for $ inside the quoted text */ 9777| 10.2k| addlitchar(yytext[0], yyscanner); ------------------ | | 450| 10.2k|#define yytext yyg->yytext_r ------------------ 9778| 10.2k| } 9779| 10.2k| YY_BREAK ------------------ | | 9172| 10.2k|#define YY_BREAK /*LINTED*/break; ------------------ 9780| 78|case YY_STATE_EOF(xdolq): ------------------ | | 467| 78|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 78|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9780:1): [True: 78, False: 34.4M] ------------------ 9781| 78|#line 808 "scan.l" 9782| 78|{ yyerror("unterminated dollar-quoted string"); } ------------------ | | 8752| 78|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9783| 78| YY_BREAK ------------------ | | 9172| 78|#define YY_BREAK /*LINTED*/break; ------------------ 9784| 444|case 39: ------------------ | Branch (9784:1): [True: 444, False: 34.4M] ------------------ 9785| 444|YY_RULE_SETUP 9786| 444|#line 810 "scan.l" 9787| 444|{ 9788| 444| SET_YYLLOC(); ------------------ | | 8725| 444|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 444| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 444|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 444|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9789| 444| BEGIN(xd); ------------------ | | 459| 444|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xd); ------------------ | | 8932| 444|#define xd 3 ------------------ 9790| 444| startlit(); ------------------ | | 8744| 444|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 444|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9791| 444| } 9792| 444| YY_BREAK ------------------ | | 9172| 444|#define YY_BREAK /*LINTED*/break; ------------------ 9793| 40|case 40: ------------------ | Branch (9793:1): [True: 40, False: 34.4M] ------------------ 9794| 40|YY_RULE_SETUP 9795| 40|#line 815 "scan.l" 9796| 40|{ 9797| 40| SET_YYLLOC(); ------------------ | | 8725| 40|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 40| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 40|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 40|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9798| 40| BEGIN(xui); ------------------ | | 459| 40|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(xui); ------------------ | | 8938| 40|#define xui 9 ------------------ 9799| 40| startlit(); ------------------ | | 8744| 40|#define startlit() ( yyextra->literallen = 0 ) | | ------------------ | | | | 448| 40|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9800| 40| } 9801| 40| YY_BREAK ------------------ | | 9172| 40|#define YY_BREAK /*LINTED*/break; ------------------ 9802| 435|case 41: ------------------ | Branch (9802:1): [True: 435, False: 34.4M] ------------------ 9803| 435|YY_RULE_SETUP 9804| 435|#line 820 "scan.l" 9805| 435|{ 9806| 435| char *ident; 9807| | 9808| 435| BEGIN(INITIAL); ------------------ | | 459| 435|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(INITIAL); ------------------ | | 8929| 435|#define INITIAL 0 ------------------ 9809| 435| if (yyextra->literallen == 0) ------------------ | | 448| 435|#define yyextra yyg->yyextra_r ------------------ | Branch (9809:10): [True: 1, False: 434] ------------------ 9810| 1| yyerror("zero-length delimited identifier"); ------------------ | | 8752| 1|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9811| 435| ident = litbufdup(yyscanner); 9812| 435| if (yyextra->literallen >= NAMEDATALEN) ------------------ | | 448| 435|#define yyextra yyg->yyextra_r ------------------ if (yyextra->literallen >= NAMEDATALEN) ------------------ | | 30| 435|#define NAMEDATALEN 64 ------------------ | Branch (9812:10): [True: 313, False: 122] ------------------ 9813| 313| truncate_identifier(ident, yyextra->literallen, true); ------------------ | | 448| 313|#define yyextra yyg->yyextra_r ------------------ 9814| 435| yylval->str = ident; ------------------ | | 8994| 435| # define yylval yyg->yylval_r ------------------ 9815| 435| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 435|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 435|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 435|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 435|#define yyleng yyg->yyleng_r ------------------ 9816| 435| return IDENT; ------------------ | | 569| 435|#define IDENT 258 ------------------ 9817| 28.3k| } 9818| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9819| 35|case 42: ------------------ | Branch (9819:1): [True: 35, False: 34.4M] ------------------ 9820| 35|YY_RULE_SETUP 9821| 35|#line 833 "scan.l" 9822| 35|{ 9823| 35| BEGIN(INITIAL); ------------------ | | 459| 35|#define BEGIN yyg->yy_start = 1 + 2 * ------------------ BEGIN(INITIAL); ------------------ | | 8929| 35|#define INITIAL 0 ------------------ 9824| 35| if (yyextra->literallen == 0) ------------------ | | 448| 35|#define yyextra yyg->yyextra_r ------------------ | Branch (9824:10): [True: 0, False: 35] ------------------ 9825| 0| yyerror("zero-length delimited identifier"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9826| | /* can't truncate till after we de-escape the ident */ 9827| 35| yylval->str = litbufdup(yyscanner); ------------------ | | 8994| 35| # define yylval yyg->yylval_r ------------------ 9828| 35| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 35|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 35|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 35|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 35|#define yyleng yyg->yyleng_r ------------------ 9829| 35| return UIDENT; ------------------ | | 570| 35|#define UIDENT 259 ------------------ 9830| 28.3k| } 9831| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9832| 4.95k|case 43: ------------------ | Branch (9832:1): [True: 4.95k, False: 34.4M] ------------------ 9833| 4.95k|YY_RULE_SETUP 9834| 4.95k|#line 842 "scan.l" 9835| 4.95k|{ 9836| 4.95k| addlitchar('"', yyscanner); 9837| 4.95k| } 9838| 4.95k| YY_BREAK ------------------ | | 9172| 4.95k|#define YY_BREAK /*LINTED*/break; ------------------ 9839| 651|case 44: ------------------ | Branch (9839:1): [True: 651, False: 34.4M] ------------------ 9840| |/* rule 44 can match eol */ 9841| 651|YY_RULE_SETUP 9842| 651|#line 845 "scan.l" 9843| 651|{ 9844| 651| addlit(yytext, yyleng, yyscanner); ------------------ | | 450| 651|#define yytext yyg->yytext_r ------------------ addlit(yytext, yyleng, yyscanner); ------------------ | | 449| 651|#define yyleng yyg->yyleng_r ------------------ 9845| 651| } 9846| 651| YY_BREAK ------------------ | | 9172| 651|#define YY_BREAK /*LINTED*/break; ------------------ 9847| 9|case YY_STATE_EOF(xd): ------------------ | | 467| 9|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 9|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9847:1): [True: 9, False: 34.4M] ------------------ 9848| 14|case YY_STATE_EOF(xui): ------------------ | | 467| 14|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 14|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (9848:1): [True: 5, False: 34.4M] ------------------ 9849| 14|#line 848 "scan.l" 9850| 14|{ yyerror("unterminated quoted identifier"); } ------------------ | | 8752| 14|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 9851| 14| YY_BREAK ------------------ | | 9172| 14|#define YY_BREAK /*LINTED*/break; ------------------ 9852| 65|case 45: ------------------ | Branch (9852:1): [True: 65, False: 34.4M] ------------------ 9853| 65|YY_RULE_SETUP 9854| 65|#line 850 "scan.l" 9855| 65|{ 9856| 65| char *ident; 9857| | 9858| 65| SET_YYLLOC(); ------------------ | | 8725| 65|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 65| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 65|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 65|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9859| | /* throw back all but the initial u/U */ 9860| 65| yyless(1); ------------------ | | 508| 65| do \ | | 509| 65| { \ | | 510| 65| /* Undo effects of setting up yytext. */ \ | | 511| 65| int yyless_macro_arg = (n); \ | | 512| 65| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 65| *yy_cp = yyg->yy_hold_char; \ | | 514| 65| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 65| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 65|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 65| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 65| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 65|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 65| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 65|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 65| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 65| *yy_cp = '\0'; \ | | | | 665| 65| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 65| } \ | | 518| 65| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 65] | | ------------------ ------------------ 9861| | /* and treat it as {identifier} */ 9862| 65| ident = downcase_truncate_identifier(yytext, yyleng, true); ------------------ | | 450| 65|#define yytext yyg->yytext_r ------------------ ident = downcase_truncate_identifier(yytext, yyleng, true); ------------------ | | 449| 65|#define yyleng yyg->yyleng_r ------------------ 9863| 65| yylval->str = ident; ------------------ | | 8994| 65| # define yylval yyg->yylval_r ------------------ 9864| 65| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 65|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 65|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 65|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 65|#define yyleng yyg->yyleng_r ------------------ 9865| 65| return IDENT; ------------------ | | 569| 65|#define IDENT 258 ------------------ 9866| 9| } 9867| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9868| 19.7k|case 46: ------------------ | Branch (9868:1): [True: 19.7k, False: 34.4M] ------------------ 9869| 19.7k|YY_RULE_SETUP 9870| 19.7k|#line 863 "scan.l" 9871| 19.7k|{ 9872| 19.7k| SET_YYLLOC(); ------------------ | | 8725| 19.7k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 19.7k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 19.7k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 19.7k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9873| 19.7k| return TYPECAST; ------------------ | | 579| 19.7k|#define TYPECAST 268 ------------------ 9874| 9| } 9875| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9876| 8|case 47: ------------------ | Branch (9876:1): [True: 8, False: 34.4M] ------------------ 9877| 8|YY_RULE_SETUP 9878| 8|#line 868 "scan.l" 9879| 8|{ 9880| 8| SET_YYLLOC(); ------------------ | | 8725| 8|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 8| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 8|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 8|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9881| 8| return DOT_DOT; ------------------ | | 580| 8|#define DOT_DOT 269 ------------------ 9882| 9| } 9883| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9884| 85|case 48: ------------------ | Branch (9884:1): [True: 85, False: 34.4M] ------------------ 9885| 85|YY_RULE_SETUP 9886| 85|#line 873 "scan.l" 9887| 85|{ 9888| 85| SET_YYLLOC(); ------------------ | | 8725| 85|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 85| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 85|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 85|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9889| 85| return COLON_EQUALS; ------------------ | | 581| 85|#define COLON_EQUALS 270 ------------------ 9890| 9| } 9891| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9892| 306|case 49: ------------------ | Branch (9892:1): [True: 306, False: 34.4M] ------------------ 9893| 306|YY_RULE_SETUP 9894| 306|#line 878 "scan.l" 9895| 306|{ 9896| 306| SET_YYLLOC(); ------------------ | | 8725| 306|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 306| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 306|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 306|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9897| 306| return EQUALS_GREATER; ------------------ | | 582| 306|#define EQUALS_GREATER 271 ------------------ 9898| 9| } 9899| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9900| 0|case 50: ------------------ | Branch (9900:1): [True: 0, False: 34.4M] ------------------ 9901| 0|YY_RULE_SETUP 9902| 0|#line 883 "scan.l" 9903| 0|{ 9904| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9905| 0| return LESS_EQUALS; ------------------ | | 583| 0|#define LESS_EQUALS 272 ------------------ 9906| 9| } 9907| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9908| 1|case 51: ------------------ | Branch (9908:1): [True: 1, False: 34.4M] ------------------ 9909| 1|YY_RULE_SETUP 9910| 1|#line 888 "scan.l" 9911| 1|{ 9912| 1| SET_YYLLOC(); ------------------ | | 8725| 1|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9913| 1| return GREATER_EQUALS; ------------------ | | 584| 1|#define GREATER_EQUALS 273 ------------------ 9914| 9| } 9915| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9916| 1.37k|case 52: ------------------ | Branch (9916:1): [True: 1.37k, False: 34.4M] ------------------ 9917| 1.37k|YY_RULE_SETUP 9918| 1.37k|#line 893 "scan.l" 9919| 1.37k|{ 9920| | /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ 9921| 1.37k| SET_YYLLOC(); ------------------ | | 8725| 1.37k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1.37k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1.37k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1.37k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9922| 1.37k| return NOT_EQUALS; ------------------ | | 585| 1.37k|#define NOT_EQUALS 274 ------------------ 9923| 9| } 9924| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9925| 0|case 53: ------------------ | Branch (9925:1): [True: 0, False: 34.4M] ------------------ 9926| 0|YY_RULE_SETUP 9927| 0|#line 899 "scan.l" 9928| 0|{ 9929| | /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ 9930| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9931| 0| return NOT_EQUALS; ------------------ | | 585| 0|#define NOT_EQUALS 274 ------------------ 9932| 9| } 9933| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9934| 15.4M|case 54: ------------------ | Branch (9934:1): [True: 15.4M, False: 19.0M] ------------------ 9935| 15.4M|YY_RULE_SETUP 9936| 15.4M|#line 905 "scan.l" 9937| 15.4M|{ 9938| 15.4M| SET_YYLLOC(); ------------------ | | 8725| 15.4M|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 15.4M| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 15.4M|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 15.4M|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 9939| 15.4M| return yytext[0]; ------------------ | | 450| 15.4M|#define yytext yyg->yytext_r ------------------ 9940| 9| } 9941| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 9942| 1.79M|case 55: ------------------ | Branch (9942:1): [True: 1.79M, False: 32.6M] ------------------ 9943| 1.79M|YY_RULE_SETUP 9944| 1.79M|#line 910 "scan.l" 9945| 1.79M|{ 9946| | /* 9947| | * Check for embedded slash-star or dash-dash; those 9948| | * are comment starts, so operator must stop there. 9949| | * Note that slash-star or dash-dash at the first 9950| | * character will match a prior rule, not this one. 9951| | */ 9952| 1.79M| int nchars = yyleng; ------------------ | | 449| 1.79M|#define yyleng yyg->yyleng_r ------------------ 9953| 1.79M| char *slashstar = strstr(yytext, "/*"); ------------------ | | 450| 1.79M|#define yytext yyg->yytext_r ------------------ 9954| 1.79M| char *dashdash = strstr(yytext, "--"); ------------------ | | 450| 1.79M|#define yytext yyg->yytext_r ------------------ 9955| | 9956| 1.79M| if (slashstar && dashdash) ------------------ | Branch (9956:10): [True: 7.58k, False: 1.78M] | Branch (9956:23): [True: 0, False: 7.58k] ------------------ 9957| 0| { 9958| | /* if both appear, take the first one */ 9959| 0| if (slashstar > dashdash) ------------------ | Branch (9959:11): [True: 0, False: 0] ------------------ 9960| 0| slashstar = dashdash; 9961| 0| } 9962| 1.79M| else if (!slashstar) ------------------ | Branch (9962:15): [True: 1.78M, False: 7.58k] ------------------ 9963| 1.78M| slashstar = dashdash; 9964| 1.79M| if (slashstar) ------------------ | Branch (9964:10): [True: 18.4k, False: 1.77M] ------------------ 9965| 18.4k| nchars = slashstar - yytext; ------------------ | | 450| 18.4k|#define yytext yyg->yytext_r ------------------ 9966| | 9967| | /* 9968| | * For SQL compatibility, '+' and '-' cannot be the 9969| | * last char of a multi-char operator unless the operator 9970| | * contains chars that are not in SQL operators. 9971| | * The idea is to lex '=-' as two operators, but not 9972| | * to forbid operator names like '?-' that could not be 9973| | * sequences of SQL operators. 9974| | */ 9975| 1.79M| if (nchars > 1 && ------------------ | Branch (9975:10): [True: 1.43M, False: 358k] ------------------ 9976| 1.43M| (yytext[nchars - 1] == '+' || ------------------ | | 450| 1.43M|#define yytext yyg->yytext_r ------------------ | Branch (9976:8): [True: 1.33M, False: 105k] ------------------ 9977| 105k| yytext[nchars - 1] == '-')) ------------------ | | 450| 105k|#define yytext yyg->yytext_r ------------------ | Branch (9977:8): [True: 54.3k, False: 51.2k] ------------------ 9978| 1.38M| { 9979| 1.38M| int ic; 9980| | 9981| 3.47G| for (ic = nchars - 2; ic >= 0; ic--) ------------------ | Branch (9981:29): [True: 3.47G, False: 1.37M] ------------------ 9982| 3.47G| { 9983| 3.47G| char c = yytext[ic]; ------------------ | | 450| 3.47G|#define yytext yyg->yytext_r ------------------ 9984| 3.47G| if (c == '~' || c == '!' || c == '@' || ------------------ | Branch (9984:12): [True: 566, False: 3.47G] | Branch (9984:24): [True: 2.69k, False: 3.47G] | Branch (9984:36): [True: 557, False: 3.47G] ------------------ 9985| 3.47G| c == '#' || c == '^' || c == '&' || ------------------ | Branch (9985:9): [True: 2.21k, False: 3.47G] | Branch (9985:21): [True: 5.20k, False: 3.47G] | Branch (9985:33): [True: 692, False: 3.47G] ------------------ 9986| 3.47G| c == '|' || c == '`' || c == '?' || ------------------ | Branch (9986:9): [True: 430, False: 3.47G] | Branch (9986:21): [True: 1.06k, False: 3.47G] | Branch (9986:33): [True: 1.01k, False: 3.47G] ------------------ 9987| 3.47G| c == '%') ------------------ | Branch (9987:9): [True: 3.26k, False: 3.47G] ------------------ 9988| 17.6k| break; 9989| 3.47G| } 9990| 1.38M| if (ic < 0) ------------------ | Branch (9990:11): [True: 1.37M, False: 17.6k] ------------------ 9991| 1.37M| { 9992| | /* 9993| | * didn't find a qualifying character, so remove 9994| | * all trailing [+-] 9995| | */ 9996| 3.46G| do { 9997| 3.46G| nchars--; 9998| 3.46G| } while (nchars > 1 && ------------------ | Branch (9998:17): [True: 3.46G, False: 1.35M] ------------------ 9999| 3.46G| (yytext[nchars - 1] == '+' || ------------------ | | 450| 3.46G|#define yytext yyg->yytext_r ------------------ | Branch (9999:11): [True: 3.40G, False: 63.3M] ------------------ 10000| 63.3M| yytext[nchars - 1] == '-')); ------------------ | | 450| 63.3M|#define yytext yyg->yytext_r ------------------ | Branch (10000:11): [True: 63.3M, False: 16.8k] ------------------ 10001| 1.37M| } 10002| 1.38M| } 10003| | 10004| 1.79M| SET_YYLLOC(); ------------------ | | 8725| 1.79M|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 1.79M| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 1.79M|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 1.79M|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10005| | 10006| 1.79M| if (nchars < yyleng) ------------------ | | 449| 1.79M|#define yyleng yyg->yyleng_r ------------------ | Branch (10006:10): [True: 1.38M, False: 416k] ------------------ 10007| 1.38M| { 10008| | /* Strip the unwanted chars from the token */ 10009| 1.38M| yyless(nchars); ------------------ | | 508| 1.38M| do \ | | 509| 1.38M| { \ | | 510| 1.38M| /* Undo effects of setting up yytext. */ \ | | 511| 1.38M| int yyless_macro_arg = (n); \ | | 512| 1.38M| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 1.38M| *yy_cp = yyg->yy_hold_char; \ | | 514| 1.38M| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 1.38M| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 1.38M|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 1.38M| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 1.38M| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 1.38M|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 1.38M| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 1.38M|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 1.38M| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 1.38M| *yy_cp = '\0'; \ | | | | 665| 1.38M| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 1.38M| } \ | | 518| 1.38M| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 1.38M] | | ------------------ ------------------ 10010| | /* 10011| | * If what we have left is only one char, and it's 10012| | * one of the characters matching "self", then 10013| | * return it as a character token the same way 10014| | * that the "self" rule would have. 10015| | */ 10016| 1.38M| if (nchars == 1 && ------------------ | Branch (10016:11): [True: 1.36M, False: 17.8k] ------------------ 10017| 1.36M| strchr(",()[].;:+-*/%^<>=", yytext[0])) ------------------ | | 450| 1.36M|#define yytext yyg->yytext_r ------------------ | Branch (10017:8): [True: 1.35M, False: 9.84k] ------------------ 10018| 1.35M| return yytext[0]; ------------------ | | 450| 1.35M|#define yytext yyg->yytext_r ------------------ 10019| | /* 10020| | * Likewise, if what we have left is two chars, and 10021| | * those match the tokens ">=", "<=", "=>", "<>" or 10022| | * "!=", then we must return the appropriate token 10023| | * rather than the generic Op. 10024| | */ 10025| 27.7k| if (nchars == 2) ------------------ | Branch (10025:11): [True: 12.9k, False: 14.7k] ------------------ 10026| 12.9k| { 10027| 12.9k| if (yytext[0] == '=' && yytext[1] == '>') ------------------ | | 450| 12.9k|#define yytext yyg->yytext_r ------------------ if (yytext[0] == '=' && yytext[1] == '>') ------------------ | | 450| 626|#define yytext yyg->yytext_r ------------------ | Branch (10027:12): [True: 626, False: 12.3k] | Branch (10027:32): [True: 0, False: 626] ------------------ 10028| 0| return EQUALS_GREATER; ------------------ | | 582| 0|#define EQUALS_GREATER 271 ------------------ 10029| 12.9k| if (yytext[0] == '>' && yytext[1] == '=') ------------------ | | 450| 12.9k|#define yytext yyg->yytext_r ------------------ if (yytext[0] == '>' && yytext[1] == '=') ------------------ | | 450| 4.57k|#define yytext yyg->yytext_r ------------------ | Branch (10029:12): [True: 4.57k, False: 8.41k] | Branch (10029:32): [True: 385, False: 4.18k] ------------------ 10030| 385| return GREATER_EQUALS; ------------------ | | 584| 385|#define GREATER_EQUALS 273 ------------------ 10031| 12.6k| if (yytext[0] == '<' && yytext[1] == '=') ------------------ | | 450| 12.6k|#define yytext yyg->yytext_r ------------------ if (yytext[0] == '<' && yytext[1] == '=') ------------------ | | 450| 6.11k|#define yytext yyg->yytext_r ------------------ | Branch (10031:12): [True: 6.11k, False: 6.49k] | Branch (10031:32): [True: 13, False: 6.09k] ------------------ 10032| 13| return LESS_EQUALS; ------------------ | | 583| 13|#define LESS_EQUALS 272 ------------------ 10033| 12.5k| if (yytext[0] == '<' && yytext[1] == '>') ------------------ | | 450| 12.5k|#define yytext yyg->yytext_r ------------------ if (yytext[0] == '<' && yytext[1] == '>') ------------------ | | 450| 6.09k|#define yytext yyg->yytext_r ------------------ | Branch (10033:12): [True: 6.09k, False: 6.49k] | Branch (10033:32): [True: 5.48k, False: 617] ------------------ 10034| 5.48k| return NOT_EQUALS; ------------------ | | 585| 5.48k|#define NOT_EQUALS 274 ------------------ 10035| 7.11k| if (yytext[0] == '!' && yytext[1] == '=') ------------------ | | 450| 7.11k|#define yytext yyg->yytext_r ------------------ if (yytext[0] == '!' && yytext[1] == '=') ------------------ | | 450| 887|#define yytext yyg->yytext_r ------------------ | Branch (10035:12): [True: 887, False: 6.22k] | Branch (10035:32): [True: 0, False: 887] ------------------ 10036| 0| return NOT_EQUALS; ------------------ | | 585| 0|#define NOT_EQUALS 274 ------------------ 10037| 7.11k| } 10038| 27.7k| } 10039| | 10040| | /* 10041| | * Complain if operator is too long. Unlike the case 10042| | * for identifiers, we make this an error not a notice- 10043| | * and-truncate, because the odds are we are looking at 10044| | * a syntactic mistake anyway. 10045| | */ 10046| 438k| if (nchars >= NAMEDATALEN) ------------------ | | 30| 438k|#define NAMEDATALEN 64 ------------------ | Branch (10046:10): [True: 23, False: 438k] ------------------ 10047| 23| yyerror("operator too long"); ------------------ | | 8752| 23|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10048| | 10049| 438k| yylval->str = pstrdup(yytext); ------------------ | | 8994| 438k| # define yylval yyg->yylval_r ------------------ yylval->str = pstrdup(yytext); ------------------ | | 450| 438k|#define yytext yyg->yytext_r ------------------ 10050| 438k| return Op; ------------------ | | 576| 438k|#define Op 265 ------------------ 10051| 1.79M| } 10052| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10053| 12.5k|case 56: ------------------ | Branch (10053:1): [True: 12.5k, False: 34.4M] ------------------ 10054| 12.5k|YY_RULE_SETUP 10055| 12.5k|#line 1018 "scan.l" 10056| 12.5k|{ 10057| 12.5k| ErrorSaveContext escontext = {T_ErrorSaveContext}; 10058| 12.5k| int32 val; 10059| | 10060| 12.5k| SET_YYLLOC(); ------------------ | | 8725| 12.5k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 12.5k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 12.5k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 12.5k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10061| 12.5k| val = pg_strtoint32_safe(yytext + 1, (Node *) &escontext); ------------------ | | 450| 12.5k|#define yytext yyg->yytext_r ------------------ 10062| 12.5k| if (escontext.error_occurred) ------------------ | Branch (10062:10): [True: 0, False: 12.5k] ------------------ 10063| 0| yyerror("parameter number too large"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10064| 12.5k| yylval->ival = val; ------------------ | | 8994| 12.5k| # define yylval yyg->yylval_r ------------------ 10065| 12.5k| return PARAM; ------------------ | | 578| 12.5k|#define PARAM 267 ------------------ 10066| 1.79M| } 10067| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10068| 61.5k|case 57: ------------------ | Branch (10068:1): [True: 61.5k, False: 34.4M] ------------------ 10069| 61.5k|YY_RULE_SETUP 10070| 61.5k|#line 1030 "scan.l" 10071| 61.5k|{ 10072| 61.5k| SET_YYLLOC(); ------------------ | | 8725| 61.5k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 61.5k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 61.5k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 61.5k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10073| 61.5k| return process_integer_literal(yytext, yylval, 10); ------------------ | | 450| 61.5k|#define yytext yyg->yytext_r ------------------ return process_integer_literal(yytext, yylval, 10); ------------------ | | 8994| 61.5k| # define yylval yyg->yylval_r ------------------ 10074| 1.79M| } 10075| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10076| 360|case 58: ------------------ | Branch (10076:1): [True: 360, False: 34.4M] ------------------ 10077| 360|YY_RULE_SETUP 10078| 360|#line 1034 "scan.l" 10079| 360|{ 10080| 360| SET_YYLLOC(); ------------------ | | 8725| 360|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 360| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 360|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 360|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10081| 360| return process_integer_literal(yytext, yylval, 16); ------------------ | | 450| 360|#define yytext yyg->yytext_r ------------------ return process_integer_literal(yytext, yylval, 16); ------------------ | | 8994| 360| # define yylval yyg->yylval_r ------------------ 10082| 1.79M| } 10083| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10084| 0|case 59: ------------------ | Branch (10084:1): [True: 0, False: 34.4M] ------------------ 10085| 0|YY_RULE_SETUP 10086| 0|#line 1038 "scan.l" 10087| 0|{ 10088| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10089| 0| return process_integer_literal(yytext, yylval, 8); ------------------ | | 450| 0|#define yytext yyg->yytext_r ------------------ return process_integer_literal(yytext, yylval, 8); ------------------ | | 8994| 0| # define yylval yyg->yylval_r ------------------ 10090| 1.79M| } 10091| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10092| 136|case 60: ------------------ | Branch (10092:1): [True: 136, False: 34.4M] ------------------ 10093| 136|YY_RULE_SETUP 10094| 136|#line 1042 "scan.l" 10095| 136|{ 10096| 136| SET_YYLLOC(); ------------------ | | 8725| 136|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 136| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 136|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 136|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10097| 136| return process_integer_literal(yytext, yylval, 2); ------------------ | | 450| 136|#define yytext yyg->yytext_r ------------------ return process_integer_literal(yytext, yylval, 2); ------------------ | | 8994| 136| # define yylval yyg->yylval_r ------------------ 10098| 1.79M| } 10099| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10100| 0|case 61: ------------------ | Branch (10100:1): [True: 0, False: 34.4M] ------------------ 10101| 0|YY_RULE_SETUP 10102| 0|#line 1046 "scan.l" 10103| 0|{ 10104| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10105| 0| yyerror("invalid hexadecimal integer"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10106| 0| } 10107| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10108| 0|case 62: ------------------ | Branch (10108:1): [True: 0, False: 34.4M] ------------------ 10109| 0|YY_RULE_SETUP 10110| 0|#line 1050 "scan.l" 10111| 0|{ 10112| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10113| 0| yyerror("invalid octal integer"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10114| 0| } 10115| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10116| 0|case 63: ------------------ | Branch (10116:1): [True: 0, False: 34.4M] ------------------ 10117| 0|YY_RULE_SETUP 10118| 0|#line 1054 "scan.l" 10119| 0|{ 10120| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10121| 0| yyerror("invalid binary integer"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10122| 0| } 10123| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10124| 5.20k|case 64: ------------------ | Branch (10124:1): [True: 5.20k, False: 34.4M] ------------------ 10125| 5.20k|YY_RULE_SETUP 10126| 5.20k|#line 1058 "scan.l" 10127| 5.20k|{ 10128| 5.20k| SET_YYLLOC(); ------------------ | | 8725| 5.20k|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 5.20k| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 5.20k|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 5.20k|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10129| 5.20k| yylval->str = pstrdup(yytext); ------------------ | | 8994| 5.20k| # define yylval yyg->yylval_r ------------------ yylval->str = pstrdup(yytext); ------------------ | | 450| 5.20k|#define yytext yyg->yytext_r ------------------ 10130| 5.20k| return FCONST; ------------------ | | 571| 5.20k|#define FCONST 260 ------------------ 10131| 1.79M| } 10132| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10133| 0|case 65: ------------------ | Branch (10133:1): [True: 0, False: 34.4M] ------------------ 10134| 0|YY_RULE_SETUP 10135| 0|#line 1063 "scan.l" 10136| 0|{ 10137| | /* throw back the .., and treat as integer */ 10138| 0| yyless(yyleng - 2); ------------------ | | 508| 0| do \ | | 509| 0| { \ | | 510| 0| /* Undo effects of setting up yytext. */ \ | | 511| 0| int yyless_macro_arg = (n); \ | | 512| 0| YY_LESS_LINENO(yyless_macro_arg);\ | | 513| 0| *yy_cp = yyg->yy_hold_char; \ | | 514| 0| YY_RESTORE_YY_MORE_OFFSET \ | | 515| 0| yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | | ------------------ | | | | 8667| 0|#define YY_MORE_ADJ 0 | | ------------------ | | 516| 0| YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | | ------------------ | | | | 661| 0| yyg->yytext_ptr = yy_bp; \ | | | | ------------------ | | | | | | 650| 0|#define yytext_ptr yytext_r | | | | ------------------ | | | | 662| 0| yyleng = (yy_size_t) (yy_cp - yy_bp); \ | | | | ------------------ | | | | | | 449| 0|#define yyleng yyg->yyleng_r | | | | ------------------ | | | | 663| 0| yyg->yy_hold_char = *yy_cp; \ | | | | 664| 0| *yy_cp = '\0'; \ | | | | 665| 0| yyg->yy_c_buf_p = yy_cp; | | ------------------ | | 517| 0| } \ | | 518| 0| while ( 0 ) | | ------------------ | | | Branch (518:10): [Folded, False: 0] | | ------------------ ------------------ 10139| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10140| 0| return process_integer_literal(yytext, yylval, 10); ------------------ | | 450| 0|#define yytext yyg->yytext_r ------------------ return process_integer_literal(yytext, yylval, 10); ------------------ | | 8994| 0| # define yylval yyg->yylval_r ------------------ 10141| 1.79M| } 10142| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10143| 54|case 66: ------------------ | Branch (10143:1): [True: 54, False: 34.4M] ------------------ 10144| 54|YY_RULE_SETUP 10145| 54|#line 1069 "scan.l" 10146| 54|{ 10147| 54| SET_YYLLOC(); ------------------ | | 8725| 54|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 54| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 54|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 54|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10148| 54| yylval->str = pstrdup(yytext); ------------------ | | 8994| 54| # define yylval yyg->yylval_r ------------------ yylval->str = pstrdup(yytext); ------------------ | | 450| 54|#define yytext yyg->yytext_r ------------------ 10149| 54| return FCONST; ------------------ | | 571| 54|#define FCONST 260 ------------------ 10150| 1.79M| } 10151| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10152| 0|case 67: ------------------ | Branch (10152:1): [True: 0, False: 34.4M] ------------------ 10153| 0|YY_RULE_SETUP 10154| 0|#line 1074 "scan.l" 10155| 0|{ 10156| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10157| 0| yyerror("trailing junk after numeric literal"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10158| 0| } 10159| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10160| 4|case 68: ------------------ | Branch (10160:1): [True: 4, False: 34.4M] ------------------ 10161| 4|YY_RULE_SETUP 10162| 4|#line 1078 "scan.l" 10163| 4|{ 10164| 4| SET_YYLLOC(); ------------------ | | 8725| 4|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 4| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 4|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 4|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10165| 4| yyerror("trailing junk after numeric literal"); ------------------ | | 8752| 4|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10166| 4| } 10167| 4| YY_BREAK ------------------ | | 9172| 4|#define YY_BREAK /*LINTED*/break; ------------------ 10168| 0|case 69: ------------------ | Branch (10168:1): [True: 0, False: 34.4M] ------------------ 10169| 0|YY_RULE_SETUP 10170| 0|#line 1082 "scan.l" 10171| 0|{ 10172| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10173| 0| yyerror("trailing junk after numeric literal"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10174| 0| } 10175| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10176| 0|case 70: ------------------ | Branch (10176:1): [True: 0, False: 34.4M] ------------------ 10177| 0|YY_RULE_SETUP 10178| 0|#line 1086 "scan.l" 10179| 0|{ 10180| 0| SET_YYLLOC(); ------------------ | | 8725| 0|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 0| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 0|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 0|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10181| 0| yyerror("trailing junk after numeric literal"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 10182| 0| } 10183| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10184| 15.9M|case 71: ------------------ | Branch (10184:1): [True: 15.9M, False: 18.5M] ------------------ 10185| 15.9M|YY_RULE_SETUP 10186| 15.9M|#line 1092 "scan.l" 10187| 15.9M|{ 10188| 15.9M| int kwnum; 10189| 15.9M| char *ident; 10190| | 10191| 15.9M| SET_YYLLOC(); ------------------ | | 8725| 15.9M|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 15.9M| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 15.9M|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 15.9M|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10192| | 10193| | /* Is it a keyword? */ 10194| 15.9M| kwnum = ScanKeywordLookup(yytext, ------------------ | | 450| 15.9M|#define yytext yyg->yytext_r ------------------ 10195| 15.9M| yyextra->keywordlist); ------------------ | | 448| 15.9M|#define yyextra yyg->yyextra_r ------------------ 10196| 15.9M| if (kwnum >= 0) ------------------ | Branch (10196:10): [True: 651k, False: 15.2M] ------------------ 10197| 651k| { 10198| 651k| yylval->keyword = GetScanKeyword(kwnum, ------------------ | | 8994| 651k| # define yylval yyg->yylval_r ------------------ 10199| 651k| yyextra->keywordlist); ------------------ | | 448| 651k|#define yyextra yyg->yyextra_r ------------------ 10200| 651k| return yyextra->keyword_tokens[kwnum]; ------------------ | | 448| 651k|#define yyextra yyg->yyextra_r ------------------ 10201| 651k| } 10202| | 10203| | /* 10204| | * No. Convert the identifier to lower case, and truncate 10205| | * if necessary. 10206| | */ 10207| 15.2M| ident = downcase_truncate_identifier(yytext, yyleng, true); ------------------ | | 450| 15.2M|#define yytext yyg->yytext_r ------------------ ident = downcase_truncate_identifier(yytext, yyleng, true); ------------------ | | 449| 15.2M|#define yyleng yyg->yyleng_r ------------------ 10208| 15.2M| yylval->str = ident; ------------------ | | 8994| 15.2M| # define yylval yyg->yylval_r ------------------ 10209| 15.2M| yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 15.2M|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 450| 15.2M|#define yytext yyg->yytext_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 448| 15.2M|#define yyextra yyg->yyextra_r ------------------ yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ------------------ | | 449| 15.2M|#define yyleng yyg->yyleng_r ------------------ 10210| 15.2M| return IDENT; ------------------ | | 569| 15.2M|#define IDENT 258 ------------------ 10211| 15.9M| } 10212| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10213| 17|case 72: ------------------ | Branch (10213:1): [True: 17, False: 34.4M] ------------------ 10214| 17|YY_RULE_SETUP 10215| 17|#line 1118 "scan.l" 10216| 17|{ 10217| 17| SET_YYLLOC(); ------------------ | | 8725| 17|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 17| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 17|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 17|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10218| 17| return yytext[0]; ------------------ | | 450| 17|#define yytext yyg->yytext_r ------------------ 10219| 15.9M| } 10220| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10221| 627|case YY_STATE_EOF(INITIAL): ------------------ | | 467| 627|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 627|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ | Branch (10221:1): [True: 627, False: 34.4M] ------------------ 10222| 627|#line 1123 "scan.l" 10223| 627|{ 10224| 627| SET_YYLLOC(); ------------------ | | 8725| 627|#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 8996| 627| # define yylloc yyg->yylloc_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 450| 627|#define yytext yyg->yytext_r | | ------------------ | | #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) | | ------------------ | | | | 448| 627|#define yyextra yyg->yyextra_r | | ------------------ ------------------ 10225| 627| yyterminate(); ------------------ | | 9135| 627|#define yyterminate() return YY_NULL | | ------------------ | | | | 431| 627|#define YY_NULL 0 | | ------------------ ------------------ 10226| 15.9M| } 10227| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10228| 0|case 73: ------------------ | Branch (10228:1): [True: 0, False: 34.4M] ------------------ 10229| 0|YY_RULE_SETUP 10230| 0|#line 1128 "scan.l" 10231| 0|YY_FATAL_ERROR( "flex scanner jammed" ); ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10232| 0| YY_BREAK ------------------ | | 9172| 0|#define YY_BREAK /*LINTED*/break; ------------------ 10233| 0|#line 10184 "scan.c" 10234| | 10235| 18.1k| case YY_END_OF_BUFFER: ------------------ | | 667| 18.1k|#define YY_END_OF_BUFFER 74 ------------------ | Branch (10235:2): [True: 18.1k, False: 34.4M] ------------------ 10236| 18.1k| { 10237| | /* Amount of text matched not including the EOB char. */ 10238| 18.1k| int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; ------------------ | | 650| 18.1k|#define yytext_ptr yytext_r ------------------ 10239| | 10240| | /* Undo the effects of YY_DO_BEFORE_ACTION. */ 10241| 18.1k| *yy_cp = yyg->yy_hold_char; 10242| 18.1k| YY_RESTORE_YY_MORE_OFFSET 10243| | 10244| 18.1k| if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) ------------------ | | 598| 18.1k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) ------------------ | | 569| 18.1k|#define YY_BUFFER_NEW 0 ------------------ | Branch (10244:8): [True: 860, False: 17.2k] ------------------ 10245| 860| { 10246| | /* We're scanning a new file or input source. It's 10247| | * possible that this happened because the user 10248| | * just pointed yyin at a new source and called 10249| | * yylex(). If so, then we have to assure 10250| | * consistency between YY_CURRENT_BUFFER and our 10251| | * globals. Here is the right place to do so, because 10252| | * this is the first action (other than possibly a 10253| | * back-up) that will match for the new input source. 10254| | */ 10255| 860| yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ------------------ | | 598| 860|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10256| 860| YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; ------------------ | | 598| 860|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; ------------------ | | 446| 860|#define yyin yyg->yyin_r ------------------ 10257| 860| YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; ------------------ | | 598| 860|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; ------------------ | | 570| 860|#define YY_BUFFER_NORMAL 1 ------------------ 10258| 860| } 10259| | 10260| | /* Note that here we test for yy_c_buf_p "<=" to the position 10261| | * of the first EOB in the buffer, since yy_c_buf_p will 10262| | * already have been incremented past the NUL character 10263| | * (since all states make transitions on EOB to the 10264| | * end-of-buffer state). Contrast this with the test 10265| | * in input(). 10266| | */ 10267| 18.1k| if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) ------------------ | | 598| 18.1k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ | Branch (10267:8): [True: 0, False: 18.1k] ------------------ 10268| 0| { /* This was really a NUL. */ 10269| 0| yy_state_type yy_next_state; 10270| | 10271| 0| yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ 10272| | 10273| 0| yy_current_state = yy_get_previous_state( yyscanner ); 10274| | 10275| | /* Okay, we're now positioned to make the NUL 10276| | * transition. We couldn't have 10277| | * yy_get_previous_state() go ahead and do it 10278| | * for us because it doesn't know how to deal 10279| | * with the possibility of jamming (and we don't 10280| | * want to build jamming into it because then it 10281| | * will run more slowly). 10282| | */ 10283| | 10284| 0| yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); 10285| | 10286| 0| yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 8667| 0|#define YY_MORE_ADJ 0 ------------------ 10287| | 10288| 0| if ( yy_next_state ) ------------------ | Branch (10288:9): [True: 0, False: 0] ------------------ 10289| 0| { 10290| | /* Consume the NUL. */ 10291| 0| yy_cp = ++yyg->yy_c_buf_p; 10292| 0| yy_current_state = yy_next_state; 10293| 0| goto yy_match; 10294| 0| } 10295| | 10296| 0| else 10297| 0| { 10298| 0| yy_cp = yyg->yy_c_buf_p; 10299| 0| goto yy_find_action; 10300| 0| } 10301| 0| } 10302| | 10303| 18.1k| else switch ( yy_get_next_buffer( yyscanner ) ) ------------------ | Branch (10303:17): [True: 18.1k, False: 0] ------------------ 10304| 18.1k| { 10305| 836| case EOB_ACT_END_OF_FILE: ------------------ | | 500| 836|#define EOB_ACT_END_OF_FILE 1 ------------------ | Branch (10305:4): [True: 836, False: 17.2k] ------------------ 10306| 836| { 10307| 836| yyg->yy_did_buffer_switch_on_eof = 0; 10308| | 10309| 836| if ( yywrap( yyscanner ) ) ------------------ | | 295| 836|#define yywrap core_yywrap | | ------------------ | | | | 644| 836|#define core_yywrap(yyscanner) (/*CONSTCOND*/1) | | | | ------------------ | | | | | Branch (644:32): [True: 836, Folded] | | | | ------------------ | | ------------------ ------------------ 10310| 836| { 10311| | /* Note: because we've taken care in 10312| | * yy_get_next_buffer() to have set up 10313| | * yytext, we can now set up 10314| | * yy_c_buf_p so that if some total 10315| | * hoser (like flex itself) wants to 10316| | * call the scanner after we return the 10317| | * YY_NULL, it'll still work - another 10318| | * YY_NULL will get returned. 10319| | */ 10320| 836| yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 650| 836|#define yytext_ptr yytext_r ------------------ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 8667| 836|#define YY_MORE_ADJ 0 ------------------ 10321| | 10322| 836| yy_act = YY_STATE_EOF(YY_START); ------------------ | | 467| 836|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | | ------------------ | | | | 667| 836|#define YY_END_OF_BUFFER 74 | | ------------------ ------------------ 10323| 836| goto do_action; 10324| 836| } 10325| | 10326| 0| else 10327| 0| { 10328| 0| if ( ! yyg->yy_did_buffer_switch_on_eof ) ------------------ | Branch (10328:11): [True: 0, False: 0] ------------------ 10329| 0| YY_NEW_FILE; ------------------ | | 469| 0|#define YY_NEW_FILE yyrestart( yyin , yyscanner ) | | ------------------ | | | | 187| 0|#define yyrestart core_yyrestart | | ------------------ | | #define YY_NEW_FILE yyrestart( yyin , yyscanner ) | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ ------------------ 10330| 0| } 10331| 0| break; 10332| 836| } 10333| | 10334| 0| case EOB_ACT_CONTINUE_SCAN: ------------------ | | 499| 0|#define EOB_ACT_CONTINUE_SCAN 0 ------------------ | Branch (10334:4): [True: 0, False: 18.1k] ------------------ 10335| 0| yyg->yy_c_buf_p = 10336| 0| yyg->yytext_ptr + yy_amount_of_matched_text; ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ 10337| | 10338| 0| yy_current_state = yy_get_previous_state( yyscanner ); 10339| | 10340| 0| yy_cp = yyg->yy_c_buf_p; 10341| 0| yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 8667| 0|#define YY_MORE_ADJ 0 ------------------ 10342| 0| goto yy_match; 10343| | 10344| 17.2k| case EOB_ACT_LAST_MATCH: ------------------ | | 501| 17.2k|#define EOB_ACT_LAST_MATCH 2 ------------------ | Branch (10344:4): [True: 17.2k, False: 836] ------------------ 10345| 17.2k| yyg->yy_c_buf_p = 10346| 17.2k| &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; ------------------ | | 598| 17.2k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10347| | 10348| 17.2k| yy_current_state = yy_get_previous_state( yyscanner ); 10349| | 10350| 17.2k| yy_cp = yyg->yy_c_buf_p; 10351| 17.2k| yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 650| 17.2k|#define yytext_ptr yytext_r ------------------ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; ------------------ | | 8667| 17.2k|#define YY_MORE_ADJ 0 ------------------ 10352| 17.2k| goto yy_find_action; 10353| 18.1k| } 10354| 0| break; 10355| 18.1k| } 10356| | 10357| 0| default: ------------------ | Branch (10357:2): [True: 0, False: 34.4M] ------------------ 10358| 0| YY_FATAL_ERROR( ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10359| 34.4M| "fatal flex scanner internal error--no action found" ); 10360| 34.4M| } /* end of action switch */ 10361| 34.4M| } /* end of scanning one token */ 10362| 33.2M| } /* end of user's declarations */ 10363| 33.2M|} /* end of yylex */ core_yy_switch_to_buffer: 10651| 1.07k|{ 10652| 1.07k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10653| | 10654| | /* TODO. We should be able to replace this entire function body 10655| | * with 10656| | * yypop_buffer_state(); 10657| | * yypush_buffer_state(new_buffer); 10658| | */ 10659| 1.07k| yyensure_buffer_stack (yyscanner); ------------------ | | 175| 1.07k|#define yyensure_buffer_stack core_yyensure_buffer_stack ------------------ 10660| 1.07k| if ( YY_CURRENT_BUFFER == new_buffer ) ------------------ | | 592| 1.07k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ | | ------------------ | | | Branch (592:29): [True: 1.07k, False: 0] | | ------------------ | | 593| 1.07k| ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ | | 594| 1.07k| : NULL) ------------------ | Branch (10660:7): [True: 0, False: 1.07k] ------------------ 10661| 0| return; 10662| | 10663| 1.07k| if ( YY_CURRENT_BUFFER ) ------------------ | | 592| 1.07k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ | | ------------------ | | | Branch (592:27): [True: 0, False: 1.07k] | | | Branch (592:29): [True: 1.07k, False: 0] | | ------------------ | | 593| 1.07k| ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ | | 594| 1.07k| : NULL) ------------------ 10664| 0| { 10665| | /* Flush out information for old buffer. */ 10666| 0| *yyg->yy_c_buf_p = yyg->yy_hold_char; 10667| 0| YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10668| 0| YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10669| 0| } 10670| | 10671| 1.07k| YY_CURRENT_BUFFER_LVALUE = new_buffer; ------------------ | | 598| 1.07k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10672| 1.07k| yy_load_buffer_state( yyscanner ); ------------------ | | 151| 1.07k|#define yy_load_buffer_state core_yy_load_buffer_state ------------------ 10673| | 10674| | /* We don't actually know whether we did this switch during 10675| | * EOF (yywrap()) processing, but the only time this flag 10676| | * is looked at is after yywrap() is called, so it's safe 10677| | * to go ahead and always set it. 10678| | */ 10679| 1.07k| yyg->yy_did_buffer_switch_on_eof = 1; 10680| 1.07k|} core_yy_scan_buffer: 10853| 1.07k|{ 10854| 1.07k| YY_BUFFER_STATE b; 10855| | 10856| 1.07k| if ( size < 2 || ------------------ | Branch (10856:7): [True: 0, False: 1.07k] ------------------ 10857| 1.07k| base[size-2] != YY_END_OF_BUFFER_CHAR || ------------------ | | 470| 2.15k|#define YY_END_OF_BUFFER_CHAR 0 ------------------ | Branch (10857:7): [True: 0, False: 1.07k] ------------------ 10858| 1.07k| base[size-1] != YY_END_OF_BUFFER_CHAR ) ------------------ | | 470| 1.07k|#define YY_END_OF_BUFFER_CHAR 0 ------------------ | Branch (10858:7): [True: 0, False: 1.07k] ------------------ 10859| | /* They forgot to leave room for the EOB's. */ 10860| 0| return NULL; 10861| | 10862| 1.07k| b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); ------------------ | | 325| 1.07k|#define yyalloc core_yyalloc ------------------ 10863| 1.07k| if ( ! b ) ------------------ | Branch (10863:7): [True: 0, False: 1.07k] ------------------ 10864| 0| YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10865| | 10866| 1.07k| b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ 10867| 1.07k| b->yy_buf_pos = b->yy_ch_buf = base; 10868| 1.07k| b->yy_is_our_buffer = 0; 10869| 1.07k| b->yy_input_file = NULL; 10870| 1.07k| b->yy_n_chars = b->yy_buf_size; 10871| 1.07k| b->yy_is_interactive = 0; 10872| 1.07k| b->yy_at_bol = 1; 10873| 1.07k| b->yy_fill_buffer = 0; 10874| 1.07k| b->yy_buffer_status = YY_BUFFER_NEW; ------------------ | | 569| 1.07k|#define YY_BUFFER_NEW 0 ------------------ 10875| | 10876| 1.07k| yy_switch_to_buffer( b , yyscanner ); ------------------ | | 157| 1.07k|#define yy_switch_to_buffer core_yy_switch_to_buffer ------------------ 10877| | 10878| 1.07k| return b; 10879| 1.07k|} core_yyset_extra: 10972| 1.07k|{ 10973| 1.07k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10974| 1.07k| yyextra = user_defined ; ------------------ | | 448| 1.07k|#define yyextra yyg->yyextra_r ------------------ 10975| 1.07k|} core_yylex_init: 11020| 1.07k|{ 11021| 1.07k| if (ptr_yy_globals == NULL){ ------------------ | Branch (11021:9): [True: 0, False: 1.07k] ------------------ 11022| 0| errno = EINVAL; 11023| 0| return 1; 11024| 0| } 11025| | 11026| 1.07k| *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); ------------------ | | 325| 1.07k|#define yyalloc core_yyalloc ------------------ 11027| | 11028| 1.07k| if (*ptr_yy_globals == NULL){ ------------------ | Branch (11028:9): [True: 0, False: 1.07k] ------------------ 11029| 0| errno = ENOMEM; 11030| 0| return 1; 11031| 0| } 11032| | 11033| | /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ 11034| 1.07k| memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); 11035| | 11036| 1.07k| return yy_init_globals ( *ptr_yy_globals ); 11037| 1.07k|} scanner_errposition: 11148| 525|{ 11149| 525| int pos; 11150| | 11151| 525| if (location < 0) ------------------ | Branch (11151:6): [True: 0, False: 525] ------------------ 11152| 0| return 0; /* no-op if location is unknown */ 11153| | 11154| | /* Convert byte offset to character number */ 11155| 525| pos = pg_mbstrlen_with_len(yyextra->scanbuf, location) + 1; ------------------ | |11125| 525|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11156| | /* And pass it to the ereport mechanism */ 11157| 525| return errposition(pos); 11158| 525|} setup_scanner_errposition_callback: 11196| 934|{ 11197| | /* Setup error traceback support for ereport() */ 11198| 934| scbstate->yyscanner = yyscanner; 11199| 934| scbstate->location = location; 11200| 934| scbstate->errcallback.callback = scb_error_callback; 11201| 934| scbstate->errcallback.arg = scbstate; 11202| 934| scbstate->errcallback.previous = error_context_stack; 11203| 934| error_context_stack = &scbstate->errcallback; 11204| 934|} cancel_scanner_errposition_callback: 11211| 919|{ 11212| | /* Pop the error context stack */ 11213| 919| error_context_stack = scbstate->errcallback.previous; 11214| 919|} scanner_yyerror: 11230| 363|{ 11231| 363| const char *loc = yyextra->scanbuf + *yylloc; ------------------ | |11125| 363|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ const char *loc = yyextra->scanbuf + *yylloc; ------------------ | |11129| 363|#define yylloc (((struct yyguts_t *) yyscanner)->yylloc_r) ------------------ 11232| | 11233| 363| if (*loc == YY_END_OF_BUFFER_CHAR) ------------------ | | 470| 363|#define YY_END_OF_BUFFER_CHAR 0 ------------------ | Branch (11233:6): [True: 35, False: 328] ------------------ 11234| 35| { 11235| 35| ereport(ERROR, ------------------ | | 164| 35| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 35| do { \ | | | | 143| 35| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 35|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 35| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 35|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 35, Folded] | | | | | Branch (144:7): [True: 35, False: 0] | | | | | Branch (144:39): [True: 35, Folded] | | | | ------------------ | | | | 145| 35| errstart_cold(elevel, domain) : \ | | | | 146| 35| errstart(elevel, domain)) \ | | | | 147| 35| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 35| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 35| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 35| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 35] | | | | ------------------ | | ------------------ ------------------ 11236| 35| (errcode(ERRCODE_SYNTAX_ERROR), 11237| | /* translator: %s is typically the translation of "syntax error" */ 11238| 35| errmsg("%s at end of input", _(message)), 11239| 35| lexer_errposition())); 11240| 35| } 11241| 328| else 11242| 328| { 11243| 328| ereport(ERROR, ------------------ | | 164| 328| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 328| do { \ | | | | 143| 328| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 328|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 328| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 328|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 328, Folded] | | | | | Branch (144:7): [True: 328, False: 0] | | | | | Branch (144:39): [True: 328, Folded] | | | | ------------------ | | | | 145| 328| errstart_cold(elevel, domain) : \ | | | | 146| 328| errstart(elevel, domain)) \ | | | | 147| 328| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 328| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 328| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 328| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 328] | | | | ------------------ | | ------------------ ------------------ 11244| 328| (errcode(ERRCODE_SYNTAX_ERROR), 11245| | /* translator: first %s is typically the translation of "syntax error" */ 11246| 328| errmsg("%s at or near \"%s\"", _(message), loc), 11247| 328| lexer_errposition())); 11248| 328| } 11249| 363|} scanner_init: 11260| 1.07k|{ 11261| 1.07k| Size slen = strlen(str); 11262| 1.07k| yyscan_t scanner; 11263| | 11264| 1.07k| if (yylex_init(&scanner) != 0) ------------------ | | 193| 1.07k|#define yylex_init core_yylex_init ------------------ | Branch (11264:6): [True: 0, False: 1.07k] ------------------ 11265| 1.07k| elog(ERROR, "yylex_init() failed: %m"); ------------------ | | 240| 1.07k| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 11266| | 11267| 1.07k| core_yyset_extra(yyext, scanner); 11268| | 11269| 1.07k| yyext->keywordlist = keywordlist; 11270| 1.07k| yyext->keyword_tokens = keyword_tokens; 11271| | 11272| 1.07k| yyext->backslash_quote = backslash_quote; 11273| 1.07k| yyext->escape_string_warning = escape_string_warning; 11274| 1.07k| yyext->standard_conforming_strings = standard_conforming_strings; 11275| 1.07k| yyext->return_comments = false; 11276| | 11277| | /* 11278| | * Make a scan buffer with special termination needed by flex. 11279| | */ 11280| 1.07k| yyext->scanbuf = (char *) palloc(slen + 2); 11281| 1.07k| yyext->scanbuflen = slen; 11282| 1.07k| memcpy(yyext->scanbuf, str, slen); 11283| 1.07k| yyext->scanbuf[slen] = yyext->scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; ------------------ | | 470| 1.07k|#define YY_END_OF_BUFFER_CHAR 0 ------------------ 11284| 1.07k| yy_scan_buffer(yyext->scanbuf, slen + 2, scanner); ------------------ | | 121| 1.07k|#define yy_scan_buffer core_yy_scan_buffer ------------------ 11285| | 11286| | /* initialize literal buffer to a reasonable but expansible size */ 11287| 1.07k| yyext->literalalloc = 1024; 11288| 1.07k| yyext->literalbuf = (char *) palloc(yyext->literalalloc); 11289| 1.07k| yyext->literallen = 0; 11290| | 11291| 1.07k| return scanner; 11292| 1.07k|} scanner_finish: 11300| 504|{ 11301| | /* 11302| | * We don't bother to call yylex_destroy(), because all it would do is 11303| | * pfree a small amount of control storage. It's cheaper to leak the 11304| | * storage until the parsing context is destroyed. The amount of space 11305| | * involved is usually negligible compared to the output parse tree 11306| | * anyway. 11307| | * 11308| | * We do bother to pfree the scanbuf and literal buffer, but only if they 11309| | * represent a nontrivial amount of space. The 8K cutoff is arbitrary. 11310| | */ 11311| 504| if (yyextra->scanbuflen >= 8192) ------------------ | |11125| 504|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11311:6): [True: 452, False: 52] ------------------ 11312| 452| pfree(yyextra->scanbuf); ------------------ | |11125| 452|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11313| 504| if (yyextra->literalalloc >= 8192) ------------------ | |11125| 504|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11313:6): [True: 53, False: 451] ------------------ 11314| 53| pfree(yyextra->literalbuf); ------------------ | |11125| 53|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11315| 504|} core_yyalloc: 11477| 3.23k|{ 11478| 3.23k| return palloc(bytes); 11479| 3.23k|} src_backend_parser_scan.c:yy_get_next_buffer: 10373| 18.1k|{ 10374| 18.1k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10375| 18.1k| char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; ------------------ | | 598| 18.1k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10376| 18.1k| char *source = yyg->yytext_ptr; ------------------ | | 650| 18.1k|#define yytext_ptr yytext_r ------------------ 10377| 18.1k| int number_to_move, i; 10378| 18.1k| int ret_val; 10379| | 10380| 18.1k| if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) ------------------ | | 598| 18.1k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ | Branch (10380:7): [True: 0, False: 18.1k] ------------------ 10381| 0| YY_FATAL_ERROR( ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10382| 18.1k| "fatal flex scanner internal error--end of buffer missed" ); 10383| | 10384| 18.1k| if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) ------------------ | | 598| 18.1k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ | Branch (10384:7): [True: 18.1k, False: 0] ------------------ 10385| 18.1k| { /* Don't try to fill the buffer, so this is an EOF. */ 10386| 18.1k| if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) ------------------ | | 650| 18.1k|#define yytext_ptr yytext_r ------------------ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) ------------------ | | 8667| 18.1k|#define YY_MORE_ADJ 0 ------------------ | Branch (10386:8): [True: 836, False: 17.2k] ------------------ 10387| 836| { 10388| | /* We matched a single character, the EOB, so 10389| | * treat this as a final EOF. 10390| | */ 10391| 836| return EOB_ACT_END_OF_FILE; ------------------ | | 500| 836|#define EOB_ACT_END_OF_FILE 1 ------------------ 10392| 836| } 10393| | 10394| 17.2k| else 10395| 17.2k| { 10396| | /* We matched some text prior to the EOB, first 10397| | * process it. 10398| | */ 10399| 17.2k| return EOB_ACT_LAST_MATCH; ------------------ | | 501| 17.2k|#define EOB_ACT_LAST_MATCH 2 ------------------ 10400| 17.2k| } 10401| 18.1k| } 10402| | 10403| | /* Try to read more data. */ 10404| | 10405| | /* First move last chars to start of buffer. */ 10406| 0| number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1); ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ 10407| | 10408| 0| for ( i = 0; i < number_to_move; ++i ) ------------------ | Branch (10408:15): [True: 0, False: 0] ------------------ 10409| 0| *(dest++) = *(source++); 10410| | 10411| 0| if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) ------------------ | | 581| 0|#define YY_BUFFER_EOF_PENDING 2 ------------------ | Branch (10411:7): [True: 0, False: 0] ------------------ 10412| | /* don't do the read, it's not guaranteed to return an EOF, 10413| | * just force an EOF 10414| | */ 10415| 0| YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10416| | 10417| 0| else 10418| 0| { 10419| 0| yy_size_t num_to_read = 10420| 0| YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10421| | 10422| 0| while ( num_to_read <= 0 ) ------------------ | Branch (10422:11): [True: 0, False: 0] ------------------ 10423| 0| { /* Not enough room in the buffer - grow it. */ 10424| | 10425| | /* just a shorter name for the current buffer */ 10426| 0| YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10427| | 10428| 0| int yy_c_buf_p_offset = 10429| 0| (int) (yyg->yy_c_buf_p - b->yy_ch_buf); 10430| | 10431| 0| if ( b->yy_is_our_buffer ) ------------------ | Branch (10431:9): [True: 0, False: 0] ------------------ 10432| 0| { 10433| 0| yy_size_t new_size = b->yy_buf_size * 2; 10434| | 10435| 0| if ( new_size <= 0 ) ------------------ | Branch (10435:10): [True: 0, False: 0] ------------------ 10436| 0| b->yy_buf_size += b->yy_buf_size / 8; 10437| 0| else 10438| 0| b->yy_buf_size *= 2; 10439| | 10440| 0| b->yy_ch_buf = (char *) 10441| | /* Include room in for 2 EOB chars. */ 10442| 0| yyrealloc( (void *) b->yy_ch_buf, ------------------ | | 331| 0|#define yyrealloc core_yyrealloc ------------------ 10443| 0| (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); 10444| 0| } 10445| 0| else 10446| | /* Can't grow it, we don't own it. */ 10447| 0| b->yy_ch_buf = NULL; 10448| | 10449| 0| if ( ! b->yy_ch_buf ) ------------------ | Branch (10449:9): [True: 0, False: 0] ------------------ 10450| 0| YY_FATAL_ERROR( ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10451| 0| "fatal error - scanner input buffer overflow" ); 10452| | 10453| 0| yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 10454| | 10455| 0| num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10456| 0| number_to_move - 1; 10457| | 10458| 0| } 10459| | 10460| 0| if ( num_to_read > YY_READ_BUF_SIZE ) ------------------ | | 9082| 0|#define YY_READ_BUF_SIZE 8192 ------------------ | Branch (10460:8): [True: 0, False: 0] ------------------ 10461| 0| num_to_read = YY_READ_BUF_SIZE; ------------------ | | 9082| 0|#define YY_READ_BUF_SIZE 8192 ------------------ 10462| | 10463| | /* Read in more data. */ 10464| 0| YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), ------------------ | | 9099| 0| if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ | | ------------------ | | | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] | | ------------------ | | | Branch (9099:7): [True: 0, False: 0] | | ------------------ | | 9100| 0| { \ | | 9101| 0| int c = '*'; \ | | 9102| 0| yy_size_t n; \ | | 9103| 0| for ( n = 0; n < max_size && \ | | ------------------ | | | Branch (9103:16): [True: 0, False: 0] | | ------------------ | | 9104| 0| (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ | | | Branch (9104:9): [True: 0, False: 0] | | | Branch (9104:38): [True: 0, False: 0] | | ------------------ | | 9105| 0| buf[n] = (char) c; \ | | 9106| 0| if ( c == '\n' ) \ | | ------------------ | | | Branch (9106:8): [True: 0, False: 0] | | ------------------ | | 9107| 0| buf[n++] = (char) c; \ | | 9108| 0| if ( c == EOF && ferror( yyin ) ) \ | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ | | | Branch (9108:8): [True: 0, False: 0] | | | Branch (9108:20): [True: 0, False: 0] | | ------------------ | | 9109| 0| YY_FATAL_ERROR( "input in flex scanner failed" ); \ | | ------------------ | | | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) | | ------------------ | | 9110| 0| result = n; \ | | 9111| 0| } \ | | 9112| 0| else \ | | 9113| 0| { \ | | 9114| 0| errno=0; \ | | 9115| 0| while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ | | while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ | | | Branch (9115:11): [True: 0, False: 0] | | | Branch (9115:78): [True: 0, False: 0] | | ------------------ | | 9116| 0| { \ | | 9117| 0| if( errno != EINTR) \ | | ------------------ | | | Branch (9117:8): [True: 0, False: 0] | | ------------------ | | 9118| 0| { \ | | 9119| 0| YY_FATAL_ERROR( "input in flex scanner failed" ); \ | | ------------------ | | | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) | | ------------------ | | 9120| 0| break; \ | | 9121| 0| } \ | | 9122| 0| errno=0; \ | | 9123| 0| clearerr(yyin); \ | | ------------------ | | | | 446| 0|#define yyin yyg->yyin_r | | ------------------ | | 9124| 0| } \ | | 9125| 0| }\ ------------------ 10465| 0| yyg->yy_n_chars, num_to_read ); 10466| | 10467| 0| YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10468| 0| } 10469| | 10470| 0| if ( yyg->yy_n_chars == 0 ) ------------------ | Branch (10470:7): [True: 0, False: 0] ------------------ 10471| 0| { 10472| 0| if ( number_to_move == YY_MORE_ADJ ) ------------------ | | 8667| 0|#define YY_MORE_ADJ 0 ------------------ | Branch (10472:8): [True: 0, False: 0] ------------------ 10473| 0| { 10474| 0| ret_val = EOB_ACT_END_OF_FILE; ------------------ | | 500| 0|#define EOB_ACT_END_OF_FILE 1 ------------------ 10475| 0| yyrestart( yyin , yyscanner); ------------------ | | 187| 0|#define yyrestart core_yyrestart ------------------ yyrestart( yyin , yyscanner); ------------------ | | 446| 0|#define yyin yyg->yyin_r ------------------ 10476| 0| } 10477| | 10478| 0| else 10479| 0| { 10480| 0| ret_val = EOB_ACT_LAST_MATCH; ------------------ | | 501| 0|#define EOB_ACT_LAST_MATCH 2 ------------------ 10481| 0| YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10482| 0| YY_BUFFER_EOF_PENDING; ------------------ | | 581| 0|#define YY_BUFFER_EOF_PENDING 2 ------------------ 10483| 0| } 10484| 0| } 10485| | 10486| 0| else 10487| 0| ret_val = EOB_ACT_CONTINUE_SCAN; ------------------ | | 499| 0|#define EOB_ACT_CONTINUE_SCAN 0 ------------------ 10488| | 10489| 0| if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ | Branch (10489:6): [True: 0, False: 0] ------------------ 10490| | /* Extend the array by 50%, plus the number we really need. */ 10491| 0| yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); 10492| 0| YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( ------------------ | | 331| 0|#define yyrealloc core_yyrealloc ------------------ 10493| 0| (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10494| 0| if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ | Branch (10494:8): [True: 0, False: 0] ------------------ 10495| 0| YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10496| | /* "- 2" to take care of EOB's */ 10497| 0| YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10498| 0| } 10499| | 10500| 0| yyg->yy_n_chars += number_to_move; 10501| 0| YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; ------------------ | | 470| 0|#define YY_END_OF_BUFFER_CHAR 0 ------------------ 10502| 0| YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; ------------------ | | 470| 0|#define YY_END_OF_BUFFER_CHAR 0 ------------------ 10503| | 10504| 0| yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; ------------------ | | 650| 0|#define yytext_ptr yytext_r ------------------ yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; ------------------ | | 598| 0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10505| | 10506| 0| return ret_val; 10507| 0|} src_backend_parser_scan.c:yy_get_previous_state: 10512| 17.2k|{ 10513| 17.2k| yy_state_type yy_current_state; 10514| 17.2k| char *yy_cp; 10515| 17.2k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10516| | 10517| 17.2k| yy_current_state = yy_start_state_list[yyg->yy_start]; 10518| | 10519| 905M| for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) ------------------ | | 650| 17.2k|#define yytext_ptr yytext_r ------------------ for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) ------------------ | | 8667| 17.2k|#define YY_MORE_ADJ 0 ------------------ | Branch (10519:47): [True: 905M, False: 17.2k] ------------------ 10520| 905M| { 10521| 905M| yy_current_state += yy_current_state[(*yy_cp ? YY_SC_TO_UI(*yy_cp) : 256)].yy_nxt; ------------------ | | 436| 905M|#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) ------------------ | Branch (10521:41): [True: 905M, False: 0] ------------------ 10522| 905M| } 10523| | 10524| 17.2k| return yy_current_state; 10525| 17.2k|} src_backend_parser_scan.c:core_yy_load_buffer_state: 10683| 2.15k|{ 10684| 2.15k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10685| 2.15k| yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ------------------ | | 598| 2.15k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10686| 2.15k| yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; ------------------ | | 650| 2.15k|#define yytext_ptr yytext_r ------------------ yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; ------------------ | | 598| 2.15k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10687| 2.15k| yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; ------------------ | | 446| 2.15k|#define yyin yyg->yyin_r ------------------ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; ------------------ | | 598| 2.15k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] ------------------ 10688| 2.15k| yyg->yy_hold_char = *yyg->yy_c_buf_p; 10689| 2.15k|} src_backend_parser_scan.c:core_yyensure_buffer_stack: 10803| 1.07k|{ 10804| 1.07k| yy_size_t num_to_alloc; 10805| 1.07k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 10806| | 10807| 1.07k| if (!yyg->yy_buffer_stack) { ------------------ | Branch (10807:6): [True: 1.07k, False: 0] ------------------ 10808| | 10809| | /* First allocation is just for 2 elements, since we don't know if this 10810| | * scanner will even need a stack. We use 2 instead of 1 to avoid an 10811| | * immediate realloc on the next call. 10812| | */ 10813| 1.07k| num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ 10814| 1.07k| yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc ------------------ | | 325| 1.07k|#define yyalloc core_yyalloc ------------------ 10815| 1.07k| (num_to_alloc * sizeof(struct yy_buffer_state*) 10816| 1.07k| , yyscanner); 10817| 1.07k| if ( ! yyg->yy_buffer_stack ) ------------------ | Branch (10817:8): [True: 0, False: 1.07k] ------------------ 10818| 0| YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10819| | 10820| 1.07k| memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 10821| | 10822| 1.07k| yyg->yy_buffer_stack_max = num_to_alloc; 10823| 1.07k| yyg->yy_buffer_stack_top = 0; 10824| 1.07k| return; 10825| 1.07k| } 10826| | 10827| 0| if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ ------------------ | Branch (10827:6): [True: 0, False: 0] ------------------ 10828| | 10829| | /* Increase the buffer to prepare for a possible push. */ 10830| 0| yy_size_t grow_size = 8 /* arbitrary grow size */; 10831| | 10832| 0| num_to_alloc = yyg->yy_buffer_stack_max + grow_size; 10833| 0| yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc ------------------ | | 331| 0|#define yyrealloc core_yyrealloc ------------------ 10834| 0| (yyg->yy_buffer_stack, 10835| 0| num_to_alloc * sizeof(struct yy_buffer_state*) 10836| 0| , yyscanner); 10837| 0| if ( ! yyg->yy_buffer_stack ) ------------------ | Branch (10837:8): [True: 0, False: 0] ------------------ 10838| 0| YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ------------------ | | 9145| 0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) ------------------ 10839| | 10840| | /* zero only the new slots.*/ 10841| 0| memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); 10842| 0| yyg->yy_buffer_stack_max = num_to_alloc; 10843| 0| } 10844| 0|} src_backend_parser_scan.c:yy_init_globals: 11049| 1.07k|{ 11050| 1.07k| struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 11051| | /* Initialization is the same as for the non-reentrant scanner. 11052| | * This function is called from yylex_destroy(), so don't allocate here. 11053| | */ 11054| | 11055| 1.07k| yyg->yy_buffer_stack = NULL; 11056| 1.07k| yyg->yy_buffer_stack_top = 0; 11057| 1.07k| yyg->yy_buffer_stack_max = 0; 11058| 1.07k| yyg->yy_c_buf_p = NULL; 11059| 1.07k| yyg->yy_init = 0; 11060| 1.07k| yyg->yy_start = 0; 11061| | 11062| 1.07k| yyg->yy_start_stack_ptr = 0; 11063| 1.07k| yyg->yy_start_stack_depth = 0; 11064| 1.07k| yyg->yy_start_stack = NULL; 11065| | 11066| |/* Defined in main.c */ 11067| |#ifdef YY_STDINIT 11068| | yyin = stdin; 11069| | yyout = stdout; 11070| |#else 11071| 1.07k| yyin = NULL; ------------------ | | 446| 1.07k|#define yyin yyg->yyin_r ------------------ 11072| 1.07k| yyout = NULL; ------------------ | | 447| 1.07k|#define yyout yyg->yyout_r ------------------ 11073| 1.07k|#endif 11074| | 11075| | /* For future reference: Set errno on error, since we are called by 11076| | * yylex_init() 11077| | */ 11078| 1.07k| return 0; 11079| 1.07k|} src_backend_parser_scan.c:scb_error_callback: 11169| 18|{ 11170| 18| ScannerCallbackState *scbstate = (ScannerCallbackState *) arg; 11171| | 11172| 18| if (geterrcode() != ERRCODE_QUERY_CANCELED) ------------------ | | 299| 18|#define ERRCODE_QUERY_CANCELED MAKE_SQLSTATE('5','7','0','1','4') | | ------------------ | | | | 71| 18| (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 18|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 18|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 18|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | 72| 18| (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 18|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 18|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | ------------------ ------------------ | Branch (11172:6): [True: 18, False: 0] ------------------ 11173| 18| (void) scanner_errposition(scbstate->location, scbstate->yyscanner); 11174| 18|} src_backend_parser_scan.c:addlit: 11320| 551k|{ 11321| | /* enlarge buffer if needed */ 11322| 551k| if ((yyextra->literallen + yleng) >= yyextra->literalalloc) ------------------ | |11125| 551k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ if ((yyextra->literallen + yleng) >= yyextra->literalalloc) ------------------ | |11125| 551k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11322:6): [True: 765, False: 550k] ------------------ 11323| 765| { 11324| 765| yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); ------------------ | |11125| 765|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); ------------------ | |11125| 765|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11325| 765| yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, ------------------ | |11125| 765|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, ------------------ | |11125| 765|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11326| 765| yyextra->literalalloc); ------------------ | |11125| 765|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11327| 765| } 11328| | /* append new data */ 11329| 551k| memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); ------------------ | |11125| 551k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); ------------------ | |11125| 551k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11330| 551k| yyextra->literallen += yleng; ------------------ | |11125| 551k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11331| 551k|} src_backend_parser_scan.c:addlitchar: 11336| 260k|{ 11337| | /* enlarge buffer if needed */ 11338| 260k| if ((yyextra->literallen + 1) >= yyextra->literalalloc) ------------------ | |11125| 260k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ if ((yyextra->literallen + 1) >= yyextra->literalalloc) ------------------ | |11125| 260k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11338:6): [True: 61, False: 260k] ------------------ 11339| 61| { 11340| 61| yyextra->literalalloc *= 2; ------------------ | |11125| 61|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11341| 61| yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, ------------------ | |11125| 61|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, ------------------ | |11125| 61|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11342| 61| yyextra->literalalloc); ------------------ | |11125| 61|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11343| 61| } 11344| | /* append new data */ 11345| 260k| yyextra->literalbuf[yyextra->literallen] = ychar; ------------------ | |11125| 260k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ yyextra->literalbuf[yyextra->literallen] = ychar; ------------------ | |11125| 260k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11346| 260k| yyextra->literallen += 1; ------------------ | |11125| 260k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11347| 260k|} src_backend_parser_scan.c:litbufdup: 11355| 13.6k|{ 11356| 13.6k| int llen = yyextra->literallen; ------------------ | |11125| 13.6k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11357| 13.6k| char *new; 11358| | 11359| 13.6k| new = palloc(llen + 1); 11360| 13.6k| memcpy(new, yyextra->literalbuf, llen); ------------------ | |11125| 13.6k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11361| 13.6k| new[llen] = '\0'; 11362| 13.6k| return new; 11363| 13.6k|} src_backend_parser_scan.c:process_integer_literal: 11371| 62.0k|{ 11372| 62.0k| ErrorSaveContext escontext = {T_ErrorSaveContext}; 11373| 62.0k| int32 val; 11374| | 11375| 62.0k| val = pg_strtoint32_safe(token, (Node *) &escontext); 11376| 62.0k| if (escontext.error_occurred) ------------------ | Branch (11376:6): [True: 599, False: 61.4k] ------------------ 11377| 599| { 11378| | /* integer too large (or contains decimal pt), treat it as a float */ 11379| 599| lval->str = pstrdup(token); 11380| 599| return FCONST; ------------------ | | 571| 599|#define FCONST 260 ------------------ 11381| 599| } 11382| 61.4k| lval->ival = val; 11383| 61.4k| return ICONST; ------------------ | | 577| 61.4k|#define ICONST 266 ------------------ 11384| 62.0k|} src_backend_parser_scan.c:addunicode: 11388| 506|{ 11389| 506| ScannerCallbackState scbstate; 11390| 506| char buf[MAX_UNICODE_EQUIVALENT_STRING + 1]; 11391| | 11392| 506| if (!is_valid_unicode_codepoint(c)) ------------------ | Branch (11392:6): [True: 0, False: 506] ------------------ 11393| 0| yyerror("invalid Unicode escape value"); ------------------ | | 8752| 0|#define yyerror(msg) scanner_yyerror(msg, yyscanner) ------------------ 11394| | 11395| | /* 11396| | * We expect that pg_unicode_to_server() will complain about any 11397| | * unconvertible code point, so we don't have to set saw_non_ascii. 11398| | */ 11399| 506| setup_scanner_errposition_callback(&scbstate, yyscanner, *(yylloc)); ------------------ | |11129| 506|#define yylloc (((struct yyguts_t *) yyscanner)->yylloc_r) ------------------ 11400| 506| pg_unicode_to_server(c, (unsigned char *) buf); 11401| 506| cancel_scanner_errposition_callback(&scbstate); 11402| 506| addlit(buf, strlen(buf), yyscanner); 11403| 506|} src_backend_parser_scan.c:unescape_single_char: 11407| 33.0k|{ 11408| 33.0k| switch (c) 11409| 33.0k| { 11410| 523| case 'b': ------------------ | Branch (11410:3): [True: 523, False: 32.5k] ------------------ 11411| 523| return '\b'; 11412| 15| case 'f': ------------------ | Branch (11412:3): [True: 15, False: 33.0k] ------------------ 11413| 15| return '\f'; 11414| 269| case 'n': ------------------ | Branch (11414:3): [True: 269, False: 32.7k] ------------------ 11415| 269| return '\n'; 11416| 50| case 'r': ------------------ | Branch (11416:3): [True: 50, False: 32.9k] ------------------ 11417| 50| return '\r'; 11418| 85| case 't': ------------------ | Branch (11418:3): [True: 85, False: 32.9k] ------------------ 11419| 85| return '\t'; 11420| 36| case 'v': ------------------ | Branch (11420:3): [True: 36, False: 32.9k] ------------------ 11421| 36| return '\v'; 11422| 32.0k| default: ------------------ | Branch (11422:3): [True: 32.0k, False: 978] ------------------ 11423| | /* check for backslash followed by non-7-bit-ASCII */ 11424| 32.0k| if (c == '\0' || IS_HIGHBIT_SET(c)) ------------------ | | 1144| 32.0k|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 32.0k|#define HIGHBIT (0x80) | | ------------------ | | | Branch (1144:29): [True: 4.04k, False: 27.9k] | | ------------------ ------------------ | Branch (11424:8): [True: 0, False: 32.0k] ------------------ 11425| 4.04k| yyextra->saw_non_ascii = true; ------------------ | |11125| 4.04k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11426| | 11427| 32.0k| return c; 11428| 33.0k| } 11429| 33.0k|} src_backend_parser_scan.c:check_string_escape_warning: 11433| 33.0k|{ 11434| 33.0k| if (ychar == '\'') ------------------ | Branch (11434:6): [True: 176, False: 32.8k] ------------------ 11435| 176| { 11436| 176| if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 176|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 0|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11436:7): [True: 0, False: 176] | Branch (11436:40): [True: 0, False: 0] ------------------ 11437| 176| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 11438| 176| (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), 11439| 176| errmsg("nonstandard use of \\' in a string literal"), 11440| 176| errhint("Use '' to write quotes in strings, or use the escape string syntax (E'...')."), 11441| 176| lexer_errposition())); 11442| 176| yyextra->warn_on_first_escape = false; /* warn only once per string */ ------------------ | |11125| 176|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11443| 176| } 11444| 32.8k| else if (ychar == '\\') ------------------ | Branch (11444:11): [True: 5.00k, False: 27.8k] ------------------ 11445| 5.00k| { 11446| 5.00k| if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 5.00k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 0|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11446:7): [True: 0, False: 5.00k] | Branch (11446:40): [True: 0, False: 0] ------------------ 11447| 5.00k| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 11448| 5.00k| (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), 11449| 5.00k| errmsg("nonstandard use of \\\\ in a string literal"), 11450| 5.00k| errhint("Use the escape string syntax for backslashes, e.g., E'\\\\'."), 11451| 5.00k| lexer_errposition())); 11452| 5.00k| yyextra->warn_on_first_escape = false; /* warn only once per string */ ------------------ | |11125| 5.00k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11453| 5.00k| } 11454| 27.8k| else 11455| 27.8k| check_escape_warning(yyscanner); 11456| 33.0k|} src_backend_parser_scan.c:check_escape_warning: 11460| 94.5k|{ 11461| 94.5k| if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 94.5k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) ------------------ | |11125| 0|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ | Branch (11461:6): [True: 0, False: 94.5k] | Branch (11461:39): [True: 0, False: 0] ------------------ 11462| 94.5k| ereport(WARNING, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [Folded, False: 0] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 11463| 94.5k| (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), 11464| 94.5k| errmsg("nonstandard use of escape in a string literal"), 11465| 94.5k| errhint("Use the escape string syntax for escapes, e.g., E'\\r\\n'."), 11466| 94.5k| lexer_errposition())); 11467| 94.5k| yyextra->warn_on_first_escape = false; /* warn only once per string */ ------------------ | |11125| 94.5k|#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) ------------------ 11468| 94.5k|} downcase_truncate_identifier: 47| 15.2M|{ 48| | return downcase_identifier(ident, len, warn, true); 49| 15.2M|} downcase_identifier: 56| 15.2M|{ 57| 15.2M| char *result; 58| 15.2M| int i; 59| 15.2M| bool enc_is_single_byte; 60| | 61| 15.2M| result = palloc(len + 1); 62| 15.2M| enc_is_single_byte = pg_database_encoding_max_length() == 1; 63| | 64| | /* 65| | * SQL99 specifies Unicode-aware case normalization, which we don't yet 66| | * have the infrastructure for. Instead we use tolower() to provide a 67| | * locale-aware translation. However, there are some locales where this 68| | * is not right either (eg, Turkish may do strange things with 'i' and 69| | * 'I'). Our current compromise is to use tolower() for characters with 70| | * the high bit set, as long as they aren't part of a multi-byte 71| | * character, and use an ASCII-only downcasing for 7-bit characters. 72| | */ 73| 66.2M| for (i = 0; i < len; i++) ------------------ | Branch (73:14): [True: 51.0M, False: 15.2M] ------------------ 74| 51.0M| { 75| 51.0M| unsigned char ch = (unsigned char) ident[i]; 76| | 77| 51.0M| if (ch >= 'A' && ch <= 'Z') ------------------ | Branch (77:7): [True: 49.1M, False: 1.90M] | Branch (77:20): [True: 16.1M, False: 32.9M] ------------------ 78| 16.1M| ch += 'a' - 'A'; 79| 34.9M| else if (enc_is_single_byte && IS_HIGHBIT_SET(ch) && isupper(ch)) ------------------ | | 1144| 34.9M|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 0|#define HIGHBIT (0x80) | | ------------------ | | | Branch (1144:29): [True: 0, False: 0] | | ------------------ ------------------ | Branch (79:12): [True: 0, False: 34.9M] | Branch (79:56): [True: 0, False: 0] ------------------ 80| 0| ch = tolower(ch); ------------------ | Branch (80:9): [True: 0, False: 0] | Branch (80:9): [True: 0, False: 0] | Branch (80:9): [Folded, False: 0] ------------------ 81| 51.0M| result[i] = (char) ch; 82| 51.0M| } 83| 15.2M| result[i] = '\0'; 84| | 85| 15.2M| if (i >= NAMEDATALEN && truncate) ------------------ | | 30| 30.5M|#define NAMEDATALEN 64 ------------------ | Branch (85:6): [True: 48.9k, False: 15.2M] | Branch (85:26): [True: 48.9k, False: 0] ------------------ 86| 48.9k| truncate_identifier(result, i, warn); 87| | 88| 15.2M| return result; 89| 15.2M|} truncate_identifier: 103| 49.3k|{ 104| 49.3k| if (len >= NAMEDATALEN) ------------------ | | 30| 49.3k|#define NAMEDATALEN 64 ------------------ | Branch (104:6): [True: 49.3k, False: 7] ------------------ 105| 49.3k| { 106| 49.3k| len = pg_mbcliplen(ident, len, NAMEDATALEN - 1); ------------------ | | 30| 49.3k|#define NAMEDATALEN 64 ------------------ 107| 49.3k| if (warn) ------------------ | Branch (107:7): [True: 49.3k, False: 0] ------------------ 108| 49.3k| ereport(NOTICE, ------------------ | | 164| 49.3k| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 49.3k| do { \ | | | | 143| 49.3k| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 49.3k|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 49.3k| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 49.3k|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 49.3k, Folded] | | | | | Branch (144:7): [True: 0, False: 49.3k] | | | | | Branch (144:39): [Folded, False: 49.3k] | | | | ------------------ | | | | 145| 49.3k| errstart_cold(elevel, domain) : \ | | | | 146| 49.3k| errstart(elevel, domain)) \ | | | | 147| 49.3k| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 49.3k| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [Folded, False: 0] | | | | ------------------ | | | | 149| 49.3k| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 49.3k| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 49.3k] | | | | ------------------ | | ------------------ ------------------ 109| 49.3k| (errcode(ERRCODE_NAME_TOO_LONG), 110| 49.3k| errmsg("identifier \"%s\" will be truncated to \"%.*s\"", 111| 49.3k| ident, len, ident))); 112| 49.3k| ident[len] = '\0'; 113| 49.3k| } 114| 49.3k|} scanner_isspace: 127| 8|{ 128| | /* This must match scan.l's list of {space} characters */ 129| 8| if (ch == ' ' || ------------------ | Branch (129:6): [True: 0, False: 8] ------------------ 130| 8| ch == '\t' || ------------------ | Branch (130:3): [True: 0, False: 8] ------------------ 131| 8| ch == '\n' || ------------------ | Branch (131:3): [True: 0, False: 8] ------------------ 132| 8| ch == '\r' || ------------------ | Branch (132:3): [True: 0, False: 8] ------------------ 133| 8| ch == '\v' || ------------------ | Branch (133:3): [True: 0, False: 8] ------------------ 134| 8| ch == '\f') ------------------ | Branch (134:3): [True: 0, False: 8] ------------------ 135| 0| return true; 136| 8| return false; 137| 8|} pg_strtoint32_safe: 108| 74.6k|{ 109| 74.6k| const char *ptr = s; 110| 74.6k| const char *firstdigit; 111| 74.6k| uint32 tmp = 0; 112| 74.6k| bool neg = false; 113| 74.6k| unsigned char digit; 114| 74.6k| int32 result; 115| | 116| | /* 117| | * The majority of cases are likely to be base-10 digits without any 118| | * underscore separator characters. We'll first try to parse the string 119| | * with the assumption that's the case and only fallback on a slower 120| | * implementation which handles hex, octal and binary strings and 121| | * underscores if the fastpath version cannot parse the string. 122| | */ 123| | 124| | /* leave it up to the slow path to look for leading spaces */ 125| | 126| 74.6k| if (*ptr == '-') ------------------ | Branch (126:6): [True: 0, False: 74.6k] ------------------ 127| 0| { 128| 0| ptr++; 129| 0| neg = true; 130| 0| } 131| | 132| | /* a leading '+' is uncommon so leave that for the slow path */ 133| | 134| | /* process the first digit */ 135| 74.6k| digit = (*ptr - '0'); 136| | 137| | /* 138| | * Exploit unsigned arithmetic to save having to check both the upper and 139| | * lower bounds of the digit. 140| | */ 141| 74.6k| if (likely(digit < 10)) ------------------ | | 360| 74.6k|#define likely(x) __builtin_expect((x) != 0, 1) | | ------------------ | | | Branch (360:19): [True: 74.6k, False: 0] | | ------------------ ------------------ 142| 74.6k| { 143| 74.6k| ptr++; 144| 74.6k| tmp = digit; 145| 74.6k| } 146| 0| else 147| 0| { 148| | /* we need at least one digit */ 149| 0| goto slow; 150| 0| } 151| | 152| | /* process remaining digits */ 153| 74.6k| for (;;) 154| 105k| { 155| 105k| digit = (*ptr - '0'); 156| | 157| 105k| if (digit >= 10) ------------------ | Branch (157:7): [True: 74.4k, False: 31.3k] ------------------ 158| 74.4k| break; 159| | 160| 31.3k| ptr++; 161| | 162| 31.3k| if (unlikely(tmp > -(PG_INT32_MIN / 10))) ------------------ | | 361| 31.3k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 174, False: 31.1k] | | ------------------ ------------------ 163| 174| goto out_of_range; 164| | 165| 31.1k| tmp = tmp * 10 + digit; 166| 31.1k| } 167| | 168| | /* when the string does not end in a digit, let the slow path handle it */ 169| 74.4k| if (unlikely(*ptr != '\0')) ------------------ | | 361| 74.4k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 497, False: 73.9k] | | ------------------ ------------------ 170| 497| goto slow; 171| | 172| 73.9k| if (neg) ------------------ | Branch (172:6): [True: 0, False: 73.9k] ------------------ 173| 0| { 174| 0| if (unlikely(pg_neg_u32_overflow(tmp, &result))) ------------------ | | 361| 0|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 0] | | ------------------ ------------------ 175| 0| goto out_of_range; 176| 0| return result; 177| 0| } 178| | 179| 73.9k| if (unlikely(tmp > PG_INT32_MAX)) ------------------ | | 361| 73.9k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 27, False: 73.9k] | | ------------------ ------------------ 180| 27| goto out_of_range; 181| | 182| 73.9k| return (int32) tmp; 183| | 184| 497|slow: 185| 497| tmp = 0; 186| 497| ptr = s; 187| | /* no need to reset neg */ 188| | 189| | /* skip leading spaces */ 190| 497| while (isspace((unsigned char) *ptr)) ------------------ | Branch (190:9): [True: 0, False: 497] ------------------ 191| 0| ptr++; 192| | 193| | /* handle sign */ 194| 497| if (*ptr == '-') ------------------ | Branch (194:6): [True: 0, False: 497] ------------------ 195| 0| { 196| 0| ptr++; 197| 0| neg = true; 198| 0| } 199| 497| else if (*ptr == '+') ------------------ | Branch (199:11): [True: 0, False: 497] ------------------ 200| 0| ptr++; 201| | 202| | /* process digits */ 203| 497| if (ptr[0] == '0' && (ptr[1] == 'x' || ptr[1] == 'X')) ------------------ | Branch (203:6): [True: 496, False: 1] | Branch (203:24): [True: 0, False: 496] | Branch (203:41): [True: 360, False: 136] ------------------ 204| 360| { 205| 360| firstdigit = ptr += 2; 206| | 207| 360| for (;;) 208| 2.88k| { 209| 2.88k| if (isxdigit((unsigned char) *ptr)) ------------------ | Branch (209:8): [True: 2.61k, False: 270] ------------------ 210| 2.61k| { 211| 2.61k| if (unlikely(tmp > -(PG_INT32_MIN / 16))) ------------------ | | 361| 2.61k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 90, False: 2.52k] | | ------------------ ------------------ 212| 90| goto out_of_range; 213| | 214| 2.52k| tmp = tmp * 16 + hexlookup[(unsigned char) *ptr++]; 215| 2.52k| } 216| 270| else if (*ptr == '_') ------------------ | Branch (216:13): [True: 0, False: 270] ------------------ 217| 0| { 218| | /* underscore must be followed by more digits */ 219| 0| ptr++; 220| 0| if (*ptr == '\0' || !isxdigit((unsigned char) *ptr)) ------------------ | Branch (220:9): [True: 0, False: 0] | Branch (220:25): [True: 0, False: 0] ------------------ 221| 0| goto invalid_syntax; 222| 0| } 223| 270| else 224| 270| break; 225| 2.88k| } 226| 360| } 227| 137| else if (ptr[0] == '0' && (ptr[1] == 'o' || ptr[1] == 'O')) ------------------ | Branch (227:11): [True: 136, False: 1] | Branch (227:29): [True: 0, False: 136] | Branch (227:46): [True: 0, False: 136] ------------------ 228| 0| { 229| 0| firstdigit = ptr += 2; 230| | 231| 0| for (;;) 232| 0| { 233| 0| if (*ptr >= '0' && *ptr <= '7') ------------------ | Branch (233:8): [True: 0, False: 0] | Branch (233:23): [True: 0, False: 0] ------------------ 234| 0| { 235| 0| if (unlikely(tmp > -(PG_INT32_MIN / 8))) ------------------ | | 361| 0|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 0] | | ------------------ ------------------ 236| 0| goto out_of_range; 237| | 238| 0| tmp = tmp * 8 + (*ptr++ - '0'); 239| 0| } 240| 0| else if (*ptr == '_') ------------------ | Branch (240:13): [True: 0, False: 0] ------------------ 241| 0| { 242| | /* underscore must be followed by more digits */ 243| 0| ptr++; 244| 0| if (*ptr == '\0' || *ptr < '0' || *ptr > '7') ------------------ | Branch (244:9): [True: 0, False: 0] | Branch (244:25): [True: 0, False: 0] | Branch (244:39): [True: 0, False: 0] ------------------ 245| 0| goto invalid_syntax; 246| 0| } 247| 0| else 248| 0| break; 249| 0| } 250| 0| } 251| 137| else if (ptr[0] == '0' && (ptr[1] == 'b' || ptr[1] == 'B')) ------------------ | Branch (251:11): [True: 136, False: 1] | Branch (251:29): [True: 0, False: 136] | Branch (251:46): [True: 136, False: 0] ------------------ 252| 136| { 253| 136| firstdigit = ptr += 2; 254| | 255| 136| for (;;) 256| 4.16k| { 257| 4.16k| if (*ptr >= '0' && *ptr <= '1') ------------------ | Branch (257:8): [True: 4.15k, False: 8] | Branch (257:23): [True: 4.14k, False: 7] ------------------ 258| 4.14k| { 259| 4.14k| if (unlikely(tmp > -(PG_INT32_MIN / 2))) ------------------ | | 361| 4.14k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 128, False: 4.02k] | | ------------------ ------------------ 260| 128| goto out_of_range; 261| | 262| 4.02k| tmp = tmp * 2 + (*ptr++ - '0'); 263| 4.02k| } 264| 15| else if (*ptr == '_') ------------------ | Branch (264:13): [True: 7, False: 8] ------------------ 265| 7| { 266| | /* underscore must be followed by more digits */ 267| 7| ptr++; 268| 7| if (*ptr == '\0' || *ptr < '0' || *ptr > '1') ------------------ | Branch (268:9): [True: 0, False: 7] | Branch (268:25): [True: 0, False: 7] | Branch (268:39): [True: 0, False: 7] ------------------ 269| 0| goto invalid_syntax; 270| 7| } 271| 8| else 272| 8| break; 273| 4.16k| } 274| 136| } 275| 1| else 276| 1| { 277| 1| firstdigit = ptr; 278| | 279| 1| for (;;) 280| 4| { 281| 4| if (*ptr >= '0' && *ptr <= '9') ------------------ | Branch (281:8): [True: 3, False: 1] | Branch (281:23): [True: 2, False: 1] ------------------ 282| 2| { 283| 2| if (unlikely(tmp > -(PG_INT32_MIN / 10))) ------------------ | | 361| 2|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 2] | | ------------------ ------------------ 284| 0| goto out_of_range; 285| | 286| 2| tmp = tmp * 10 + (*ptr++ - '0'); 287| 2| } 288| 2| else if (*ptr == '_') ------------------ | Branch (288:13): [True: 1, False: 1] ------------------ 289| 1| { 290| | /* underscore may not be first */ 291| 1| if (unlikely(ptr == firstdigit)) ------------------ | | 361| 1|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 1] | | ------------------ ------------------ 292| 0| goto invalid_syntax; 293| | /* and it must be followed by more digits */ 294| 1| ptr++; 295| 1| if (*ptr == '\0' || !isdigit((unsigned char) *ptr)) ------------------ | Branch (295:9): [True: 0, False: 1] | Branch (295:25): [True: 0, False: 1] ------------------ 296| 0| goto invalid_syntax; 297| 1| } 298| 1| else 299| 1| break; 300| 4| } 301| 1| } 302| | 303| | /* require at least one digit */ 304| 279| if (unlikely(ptr == firstdigit)) ------------------ | | 361| 279|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 279] | | ------------------ ------------------ 305| 0| goto invalid_syntax; 306| | 307| | /* allow trailing whitespace, but not other trailing chars */ 308| 279| while (isspace((unsigned char) *ptr)) ------------------ | Branch (308:9): [True: 0, False: 279] ------------------ 309| 0| ptr++; 310| | 311| 279| if (unlikely(*ptr != '\0')) ------------------ | | 361| 279|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 279] | | ------------------ ------------------ 312| 0| goto invalid_syntax; 313| | 314| 279| if (neg) ------------------ | Branch (314:6): [True: 0, False: 279] ------------------ 315| 0| { 316| 0| if (unlikely(pg_neg_u32_overflow(tmp, &result))) ------------------ | | 361| 0|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 0] | | ------------------ ------------------ 317| 0| goto out_of_range; 318| 0| return result; 319| 0| } 320| | 321| 279| if (tmp > PG_INT32_MAX) ------------------ | | 575| 279|#define PG_INT32_MAX INT32_MAX ------------------ | Branch (321:6): [True: 180, False: 99] ------------------ 322| 180| goto out_of_range; 323| | 324| 99| return (int32) tmp; 325| | 326| 599|out_of_range: 327| 599| ereturn(escontext, 0, ------------------ | | 292| 599| ereturn_domain(context, dummy_value, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 286| 599| do { \ | | | | 287| 599| errsave_domain(context, domain, __VA_ARGS__); \ | | | | ------------------ | | | | | | 268| 599| do { \ | | | | | | 269| 599| struct Node *context_ = (context); \ | | | | | | 270| 599| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 599|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 271| 599| if (errsave_start(context_, domain)) \ | | | | | | ------------------ | | | | | | | Branch (271:7): [True: 0, False: 599] | | | | | | ------------------ | | | | | | 272| 599| __VA_ARGS__, errsave_finish(context_, __FILE__, __LINE__, __func__); \ | | | | | | 273| 599| } while(0) | | | | | | ------------------ | | | | | | | Branch (273:10): [Folded, False: 599] | | | | | | ------------------ | | | | ------------------ | | | | 288| 599| return dummy_value; \ | | | | 289| 599| } while(0) | | | | ------------------ | | | | | Branch (289:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 328| 0| (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), 329| 0| errmsg("value \"%s\" is out of range for type %s", 330| 0| s, "integer"))); 331| | 332| 0|invalid_syntax: 333| 0| ereturn(escontext, 0, ------------------ | | 292| 0| ereturn_domain(context, dummy_value, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 286| 0| do { \ | | | | 287| 0| errsave_domain(context, domain, __VA_ARGS__); \ | | | | ------------------ | | | | | | 268| 0| do { \ | | | | | | 269| 0| struct Node *context_ = (context); \ | | | | | | 270| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 271| 0| if (errsave_start(context_, domain)) \ | | | | | | ------------------ | | | | | | | Branch (271:7): [True: 0, False: 0] | | | | | | ------------------ | | | | | | 272| 0| __VA_ARGS__, errsave_finish(context_, __FILE__, __LINE__, __func__); \ | | | | | | 273| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (273:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | | | 288| 0| return dummy_value; \ | | | | 289| 0| } while(0) | | | | ------------------ | | | | | Branch (289:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 334| 0| (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), 335| 0| errmsg("invalid input syntax for type %s: \"%s\"", 336| 0| "integer", s))); 337| 0|} in_error_recursion_trouble: 335| 626|{ 336| | /* Pull the plug if recurse more than once */ 337| 626| return (recursion_depth > 2); 338| 626|} errstart_cold: 359| 598|{ 360| 598| return errstart(elevel, domain); 361| 598|} errstart: 375| 49.9k|{ 376| 49.9k| ErrorData *edata; 377| 49.9k| bool output_to_server; 378| 49.9k| bool output_to_client = false; 379| 49.9k| int i; 380| | 381| | /* 382| | * Check some cases in which we want to promote an error into a more 383| | * severe error. None of this logic applies for non-error messages. 384| | */ 385| 49.9k| if (elevel >= ERROR) ------------------ | | 52| 49.9k|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (385:6): [True: 598, False: 49.3k] ------------------ 386| 598| { 387| | /* 388| | * If we are inside a critical section, all errors become PANIC 389| | * errors. See miscadmin.h. 390| | */ 391| 598| if (CritSectionCount > 0) ------------------ | Branch (391:7): [True: 0, False: 598] ------------------ 392| 0| elevel = PANIC; ------------------ | | 56| 0|#define PANIC 23 /* take down the other backends with me */ ------------------ 393| | 394| | /* 395| | * Check reasons for treating ERROR as FATAL: 396| | * 397| | * 1. we have no handler to pass the error to (implies we are in the 398| | * postmaster or in backend startup). 399| | * 400| | * 2. ExitOnAnyError mode switch is set (initdb uses this). 401| | * 402| | * 3. the error occurred after proc_exit has begun to run. (It's 403| | * proc_exit's responsibility to see that this doesn't turn into 404| | * infinite recursion!) 405| | */ 406| 598| if (elevel == ERROR) ------------------ | | 52| 598|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (406:7): [True: 598, False: 0] ------------------ 407| 598| { 408| 598| if (PG_exception_stack == NULL || ------------------ | Branch (408:8): [True: 0, False: 598] ------------------ 409| 598| ExitOnAnyError || ------------------ | Branch (409:5): [True: 0, False: 598] ------------------ 410| 598| proc_exit_inprogress) ------------------ | Branch (410:5): [True: 0, False: 598] ------------------ 411| 0| elevel = FATAL; ------------------ | | 55| 0|#define FATAL 22 /* fatal error - abort process */ ------------------ 412| 598| } 413| | 414| | /* 415| | * If the error level is ERROR or more, errfinish is not going to 416| | * return to caller; therefore, if there is any stacked error already 417| | * in progress it will be lost. This is more or less okay, except we 418| | * do not want to have a FATAL or PANIC error downgraded because the 419| | * reporting process was interrupted by a lower-grade error. So check 420| | * the stack and make sure we panic if panic is warranted. 421| | */ 422| 615| for (i = 0; i <= errordata_stack_depth; i++) ------------------ | Branch (422:15): [True: 17, False: 598] ------------------ 423| 17| elevel = Max(elevel, errordata[i].elevel); ------------------ | | 984| 17|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 0, False: 17] | | ------------------ ------------------ 424| 598| } 425| | 426| | /* 427| | * Now decide whether we need to process this report at all; if it's 428| | * warning or less and not enabled for logging, just return false without 429| | * starting up any error logging machinery. 430| | */ 431| 49.9k| output_to_server = should_output_to_server(elevel); 432| 49.9k| output_to_client = should_output_to_client(elevel); 433| 49.9k| if (elevel < ERROR && !output_to_server && !output_to_client) ------------------ | | 52| 99.8k|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (433:6): [True: 49.3k, False: 598] | Branch (433:24): [True: 49.3k, False: 0] | Branch (433:45): [True: 49.3k, False: 0] ------------------ 434| 49.3k| return false; 435| | 436| | /* 437| | * We need to do some actual work. Make sure that memory context 438| | * initialization has finished, else we can't do anything useful. 439| | */ 440| 598| if (ErrorContext == NULL) ------------------ | Branch (440:6): [True: 0, False: 598] ------------------ 441| 0| { 442| | /* Oops, hard crash time; very little we can do safely here */ 443| 0| write_stderr("error occurred before error message processing is available\n"); 444| 0| exit(2); 445| 0| } 446| | 447| | /* 448| | * Okay, crank up a stack entry to store the info in. 449| | */ 450| | 451| 598| if (recursion_depth++ > 0 && elevel >= ERROR) ------------------ | | 52| 6|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (451:6): [True: 6, False: 592] | Branch (451:31): [True: 6, False: 0] ------------------ 452| 6| { 453| | /* 454| | * Oops, error during error processing. Clear ErrorContext as 455| | * discussed at top of file. We will not return to the original 456| | * error's reporter or handler, so we don't need it. 457| | */ 458| 6| MemoryContextReset(ErrorContext); 459| | 460| | /* 461| | * Infinite error recursion might be due to something broken in a 462| | * context traceback routine. Abandon them too. We also abandon 463| | * attempting to print the error statement (which, if long, could 464| | * itself be the source of the recursive failure). 465| | */ 466| 6| if (in_error_recursion_trouble()) ------------------ | Branch (466:7): [True: 3, False: 3] ------------------ 467| 3| { 468| 3| error_context_stack = NULL; 469| 3| debug_query_string = NULL; 470| 3| } 471| 6| } 472| | 473| | /* Initialize data for this error frame */ 474| 598| edata = get_error_stack_entry(); 475| 598| edata->elevel = elevel; 476| 598| edata->output_to_server = output_to_server; 477| 598| edata->output_to_client = output_to_client; 478| 598| set_stack_entry_domain(edata, domain); 479| | /* Select default errcode based on elevel */ 480| 598| if (elevel >= ERROR) ------------------ | | 52| 598|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (480:6): [True: 598, False: 0] ------------------ 481| 598| edata->sqlerrcode = ERRCODE_INTERNAL_ERROR; ------------------ | | 354| 598|#define ERRCODE_INTERNAL_ERROR MAKE_SQLSTATE('X','X','0','0','0') | | ------------------ | | | | 71| 598| (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 598|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 598|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 598|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | 72| 598| (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 598|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 598|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | ------------------ ------------------ 482| 0| else if (elevel >= WARNING) ------------------ | | 46| 0|#define WARNING 19 /* Warnings. NOTICE is for expected messages ------------------ | Branch (482:11): [True: 0, False: 0] ------------------ 483| 0| edata->sqlerrcode = ERRCODE_WARNING; ------------------ | | 8| 0|#define ERRCODE_WARNING MAKE_SQLSTATE('0','1','0','0','0') | | ------------------ | | | | 71| 0| (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | 72| 0| (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | ------------------ ------------------ 484| 0| else 485| 0| edata->sqlerrcode = ERRCODE_SUCCESSFUL_COMPLETION; ------------------ | | 5| 0|#define ERRCODE_SUCCESSFUL_COMPLETION MAKE_SQLSTATE('0','0','0','0','0') | | ------------------ | | | | 71| 0| (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | 72| 0| (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | ------------------ ------------------ 486| | 487| | /* 488| | * Any allocations for this error state level should go into ErrorContext 489| | */ 490| 598| edata->assoc_context = ErrorContext; 491| | 492| 598| recursion_depth--; 493| | return true; 494| 598|} errfinish: 506| 590|{ 507| 590| ErrorData *edata = &errordata[errordata_stack_depth]; 508| 590| int elevel; 509| 590| MemoryContext oldcontext; 510| 590| ErrorContextCallback *econtext; 511| | 512| 590| recursion_depth++; 513| 590| CHECK_STACK_DEPTH(); ------------------ | | 230| 590| do { \ | | 231| 590| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 590] | | ------------------ | | 232| 590| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 590| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 590] | | ------------------ ------------------ 514| | 515| | /* Save the last few bits of error state into the stack entry */ 516| 590| set_stack_entry_location(edata, filename, lineno, funcname); 517| | 518| 590| elevel = edata->elevel; 519| | 520| | /* 521| | * Do processing in ErrorContext, which we hope has enough reserved space 522| | * to report an error. 523| | */ 524| 590| oldcontext = MemoryContextSwitchTo(ErrorContext); 525| | 526| | /* Collect backtrace, if enabled and we didn't already */ 527| 590| if (!edata->backtrace && ------------------ | Branch (527:6): [True: 590, False: 0] ------------------ 528| 590| edata->funcname && ------------------ | Branch (528:3): [True: 590, False: 0] ------------------ 529| 590| backtrace_functions && ------------------ | Branch (529:3): [True: 0, False: 590] ------------------ 530| 0| matches_backtrace_functions(edata->funcname)) ------------------ | Branch (530:3): [True: 0, False: 0] ------------------ 531| 0| set_backtrace(edata, 2); 532| | 533| | /* 534| | * Call any context callback functions. Errors occurring in callback 535| | * functions will be treated as recursive errors --- this ensures we will 536| | * avoid infinite recursion (see errstart). 537| | */ 538| 590| for (econtext = error_context_stack; 539| 608| econtext != NULL; ------------------ | Branch (539:4): [True: 18, False: 590] ------------------ 540| 590| econtext = econtext->previous) 541| 18| econtext->callback(econtext->arg); 542| | 543| | /* 544| | * If ERROR (not more nor less) we pass it off to the current handler. 545| | * Printing it and popping the stack is the responsibility of the handler. 546| | */ 547| 590| if (elevel == ERROR) ------------------ | | 52| 590|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (547:6): [True: 584, False: 6] ------------------ 548| 584| { 549| | /* 550| | * We do some minimal cleanup before longjmp'ing so that handlers can 551| | * execute in a reasonably sane state. 552| | * 553| | * Reset InterruptHoldoffCount in case we ereport'd from inside an 554| | * interrupt holdoff section. (We assume here that no handler will 555| | * itself be inside a holdoff section. If necessary, such a handler 556| | * could save and restore InterruptHoldoffCount for itself, but this 557| | * should make life easier for most.) 558| | */ 559| 584| InterruptHoldoffCount = 0; 560| 584| QueryCancelHoldoffCount = 0; 561| | 562| 584| CritSectionCount = 0; /* should be unnecessary, but... */ 563| | 564| | /* 565| | * Note that we leave CurrentMemoryContext set to ErrorContext. The 566| | * handler should reset it to something else soon. 567| | */ 568| | 569| 584| recursion_depth--; 570| 584| PG_RE_THROW(); ------------------ | | 419| 584| pg_re_throw() ------------------ 571| 584| } 572| | 573| | /* Emit the message to the right places */ 574| 590| EmitErrorReport(); 575| | 576| | /* Now free up subsidiary data attached to stack entry, and release it */ 577| 590| FreeErrorDataContents(edata); 578| 590| errordata_stack_depth--; 579| | 580| | /* Exit error-handling context */ 581| 590| MemoryContextSwitchTo(oldcontext); 582| 590| recursion_depth--; 583| | 584| | /* 585| | * Perform error recovery action as specified by elevel. 586| | */ 587| 590| if (elevel == FATAL) ------------------ | | 55| 590|#define FATAL 22 /* fatal error - abort process */ ------------------ | Branch (587:6): [True: 0, False: 590] ------------------ 588| 0| { 589| | /* 590| | * For a FATAL error, we let proc_exit clean up and exit. 591| | * 592| | * If we just reported a startup failure, the client will disconnect 593| | * on receiving it, so don't send any more to the client. 594| | */ 595| 0| if (PG_exception_stack == NULL && whereToSendOutput == DestRemote) ------------------ | Branch (595:7): [True: 0, False: 0] | Branch (595:37): [True: 0, False: 0] ------------------ 596| 0| whereToSendOutput = DestNone; 597| | 598| | /* 599| | * fflush here is just to improve the odds that we get to see the 600| | * error message, in case things are so hosed that proc_exit crashes. 601| | * Any other code you might be tempted to add here should probably be 602| | * in an on_proc_exit or on_shmem_exit callback instead. 603| | */ 604| 0| fflush(NULL); 605| | 606| | /* 607| | * Let the cumulative stats system know. Only mark the session as 608| | * terminated by fatal error if there is no other known cause. 609| | */ 610| 0| if (pgStatSessionEndCause == DISCONNECT_NORMAL) ------------------ | Branch (610:7): [True: 0, False: 0] ------------------ 611| 0| pgStatSessionEndCause = DISCONNECT_FATAL; 612| | 613| | /* 614| | * Do normal process-exit cleanup, then return exit code 1 to indicate 615| | * FATAL termination. The postmaster may or may not consider this 616| | * worthy of panic, depending on which subprocess returns it. 617| | */ 618| 0| proc_exit(1); 619| 0| } 620| | 621| 590| if (elevel >= PANIC) ------------------ | | 56| 590|#define PANIC 23 /* take down the other backends with me */ ------------------ | Branch (621:6): [True: 0, False: 590] ------------------ 622| 0| { 623| | /* 624| | * Serious crash time. Postmaster will observe SIGABRT process exit 625| | * status and kill the other backends too. 626| | * 627| | * XXX: what if we are *in* the postmaster? abort() won't kill our 628| | * children... 629| | */ 630| 0| fflush(NULL); 631| 0| abort(); 632| 0| } 633| | 634| | /* 635| | * Check for cancel/die interrupt first --- this is so that the user can 636| | * stop a query emitting tons of notice or warning messages, even if it's 637| | * in a loop that otherwise fails to check for interrupts. 638| | */ 639| 590| CHECK_FOR_INTERRUPTS(); ------------------ | | 123| 590|#define CHECK_FOR_INTERRUPTS() \ | | 124| 590|do { \ | | 125| 590| if (INTERRUPTS_PENDING_CONDITION()) \ | | ------------------ | | | | 114| 590| (unlikely(InterruptPending)) | | | | ------------------ | | | | | | 361| 590|#define unlikely(x) __builtin_expect((x) != 0, 0) | | | | ------------------ | | | | | Branch (114:2): [True: 0, False: 590] | | | | ------------------ | | ------------------ | | 126| 590| ProcessInterrupts(); \ | | 127| 590|} while(0) | | ------------------ | | | Branch (127:9): [Folded, False: 590] | | ------------------ ------------------ 640| 590|} errsave_start: 662| 599|{ 663| 599| ErrorSaveContext *escontext; 664| 599| ErrorData *edata; 665| | 666| | /* 667| | * Do we have a context for soft error reporting? If not, just punt to 668| | * errstart(). 669| | */ 670| 599| if (context == NULL || !IsA(context, ErrorSaveContext)) ------------------ | | 164| 599|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | ------------------ | | | | 139| 599|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | ------------------ ------------------ | Branch (670:6): [True: 0, False: 599] | Branch (670:25): [True: 0, False: 599] ------------------ 671| 0| return errstart(ERROR, domain); ------------------ | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to ------------------ 672| | 673| | /* Report that a soft error was detected */ 674| 599| escontext = (ErrorSaveContext *) context; 675| 599| escontext->error_occurred = true; 676| | 677| | /* Nothing else to do if caller wants no further details */ 678| 599| if (!escontext->details_wanted) ------------------ | Branch (678:6): [True: 599, False: 0] ------------------ 679| 599| return false; 680| | 681| | /* 682| | * Okay, crank up a stack entry to store the info in. 683| | */ 684| | 685| 0| recursion_depth++; 686| | 687| | /* Initialize data for this error frame */ 688| 0| edata = get_error_stack_entry(); 689| 0| edata->elevel = LOG; /* signal all is well to errsave_finish */ ------------------ | | 32| 0|#define LOG 15 /* Server operational messages; sent only to ------------------ 690| 0| set_stack_entry_domain(edata, domain); 691| | /* Select default errcode based on the assumed elevel of ERROR */ 692| 0| edata->sqlerrcode = ERRCODE_INTERNAL_ERROR; ------------------ | | 354| 0|#define ERRCODE_INTERNAL_ERROR MAKE_SQLSTATE('X','X','0','0','0') | | ------------------ | | | | 71| 0| (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch1) + (PGSIXBIT(ch2) << 6) + (PGSIXBIT(ch3) << 12) + \ | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | 72| 0| (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | | | (PGSIXBIT(ch4) << 18) + (PGSIXBIT(ch5) << 24)) | | | | ------------------ | | | | | | 67| 0|#define PGSIXBIT(ch) (((ch) - '0') & 0x3F) | | | | ------------------ | | ------------------ ------------------ 693| | 694| | /* 695| | * Any allocations for this error state level should go into the caller's 696| | * context. We don't need to pollute ErrorContext, or even require it to 697| | * exist, in this code path. 698| | */ 699| 0| edata->assoc_context = CurrentMemoryContext; 700| | 701| 0| recursion_depth--; 702| | return true; 703| 599|} errcode: 886| 598|{ 887| 598| ErrorData *edata = &errordata[errordata_stack_depth]; 888| | 889| | /* we don't bother incrementing recursion_depth */ 890| 598| CHECK_STACK_DEPTH(); ------------------ | | 230| 598| do { \ | | 231| 598| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 598] | | ------------------ | | 232| 598| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 598| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 598] | | ------------------ ------------------ 891| | 892| 598| edata->sqlerrcode = sqlerrcode; 893| | 894| 598| return 0; /* return value does not matter */ 895| 598|} errmsg: 1016| 598|{ 1017| 598| ErrorData *edata = &errordata[errordata_stack_depth]; 1018| 598| MemoryContext oldcontext; 1019| | 1020| 598| recursion_depth++; 1021| 598| CHECK_STACK_DEPTH(); ------------------ | | 230| 598| do { \ | | 231| 598| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 598] | | ------------------ | | 232| 598| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 598| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 598] | | ------------------ ------------------ 1022| 598| oldcontext = MemoryContextSwitchTo(edata->assoc_context); 1023| | 1024| 598| edata->message_id = fmt; 1025| 598| EVALUATE_MESSAGE(edata->domain, message, false, true); ------------------ | | 935| 598| { \ | | 936| 598| StringInfoData buf; \ | | 937| 598| /* Internationalize the error format string */ \ | | 938| 598| if ((translateit) && !in_error_recursion_trouble()) \ | | ------------------ | | | Branch (938:7): [True: 598, Folded] | | | Branch (938:24): [True: 595, False: 3] | | ------------------ | | 939| 598| fmt = dgettext((domain), fmt); \ | | ------------------ | | | | 1169| 595|#define dgettext(d,x) (x) | | ------------------ | | 940| 598| initStringInfo(&buf); \ | | 941| 598| if ((appendval) && edata->targetfield) { \ | | ------------------ | | | Branch (941:7): [Folded, False: 598] | | | Branch (941:22): [True: 0, False: 0] | | ------------------ | | 942| 0| appendStringInfoString(&buf, edata->targetfield); \ | | 943| 0| appendStringInfoChar(&buf, '\n'); \ | | 944| 0| } \ | | 945| 598| /* Generate actual output --- have to use appendStringInfoVA */ \ | | 946| 598| for (;;) \ | | 947| 828| { \ | | 948| 828| va_list args; \ | | 949| 828| int needed; \ | | 950| 828| errno = edata->saved_errno; \ | | 951| 828| va_start(args, fmt); \ | | 952| 828| needed = appendStringInfoVA(&buf, fmt, args); \ | | 953| 828| va_end(args); \ | | 954| 828| if (needed == 0) \ | | ------------------ | | | Branch (954:8): [True: 598, False: 230] | | ------------------ | | 955| 828| break; \ | | 956| 828| enlargeStringInfo(&buf, needed); \ | | 957| 230| } \ | | 958| 598| /* Save the completed message into the stack item */ \ | | 959| 598| if (edata->targetfield) \ | | ------------------ | | | Branch (959:7): [True: 0, False: 598] | | ------------------ | | 960| 598| pfree(edata->targetfield); \ | | 961| 598| edata->targetfield = pstrdup(buf.data); \ | | 962| 598| pfree(buf.data); \ | | 963| 598| } ------------------ 1026| | 1027| 598| MemoryContextSwitchTo(oldcontext); 1028| 598| recursion_depth--; 1029| 598| return 0; /* return value does not matter */ 1030| 598|} errdetail: 1116| 2|{ 1117| 2| ErrorData *edata = &errordata[errordata_stack_depth]; 1118| 2| MemoryContext oldcontext; 1119| | 1120| 2| recursion_depth++; 1121| 2| CHECK_STACK_DEPTH(); ------------------ | | 230| 2| do { \ | | 231| 2| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 2] | | ------------------ | | 232| 2| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 2| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 2] | | ------------------ ------------------ 1122| 2| oldcontext = MemoryContextSwitchTo(edata->assoc_context); 1123| | 1124| 2| EVALUATE_MESSAGE(edata->domain, detail, false, true); ------------------ | | 935| 2| { \ | | 936| 2| StringInfoData buf; \ | | 937| 2| /* Internationalize the error format string */ \ | | 938| 2| if ((translateit) && !in_error_recursion_trouble()) \ | | ------------------ | | | Branch (938:7): [True: 2, Folded] | | | Branch (938:24): [True: 2, False: 0] | | ------------------ | | 939| 2| fmt = dgettext((domain), fmt); \ | | ------------------ | | | | 1169| 2|#define dgettext(d,x) (x) | | ------------------ | | 940| 2| initStringInfo(&buf); \ | | 941| 2| if ((appendval) && edata->targetfield) { \ | | ------------------ | | | Branch (941:7): [Folded, False: 2] | | | Branch (941:22): [True: 0, False: 0] | | ------------------ | | 942| 0| appendStringInfoString(&buf, edata->targetfield); \ | | 943| 0| appendStringInfoChar(&buf, '\n'); \ | | 944| 0| } \ | | 945| 2| /* Generate actual output --- have to use appendStringInfoVA */ \ | | 946| 2| for (;;) \ | | 947| 2| { \ | | 948| 2| va_list args; \ | | 949| 2| int needed; \ | | 950| 2| errno = edata->saved_errno; \ | | 951| 2| va_start(args, fmt); \ | | 952| 2| needed = appendStringInfoVA(&buf, fmt, args); \ | | 953| 2| va_end(args); \ | | 954| 2| if (needed == 0) \ | | ------------------ | | | Branch (954:8): [True: 2, False: 0] | | ------------------ | | 955| 2| break; \ | | 956| 2| enlargeStringInfo(&buf, needed); \ | | 957| 0| } \ | | 958| 2| /* Save the completed message into the stack item */ \ | | 959| 2| if (edata->targetfield) \ | | ------------------ | | | Branch (959:7): [True: 0, False: 2] | | ------------------ | | 960| 2| pfree(edata->targetfield); \ | | 961| 2| edata->targetfield = pstrdup(buf.data); \ | | 962| 2| pfree(buf.data); \ | | 963| 2| } ------------------ 1125| | 1126| 2| MemoryContextSwitchTo(oldcontext); 1127| 2| recursion_depth--; 1128| 2| return 0; /* return value does not matter */ 1129| 2|} errhint: 1168| 20|{ 1169| 20| ErrorData *edata = &errordata[errordata_stack_depth]; 1170| 20| MemoryContext oldcontext; 1171| | 1172| 20| recursion_depth++; 1173| 20| CHECK_STACK_DEPTH(); ------------------ | | 230| 20| do { \ | | 231| 20| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 20] | | ------------------ | | 232| 20| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 20| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 20] | | ------------------ ------------------ 1174| 20| oldcontext = MemoryContextSwitchTo(edata->assoc_context); 1175| | 1176| 20| EVALUATE_MESSAGE(edata->domain, hint, false, true); ------------------ | | 935| 20| { \ | | 936| 20| StringInfoData buf; \ | | 937| 20| /* Internationalize the error format string */ \ | | 938| 20| if ((translateit) && !in_error_recursion_trouble()) \ | | ------------------ | | | Branch (938:7): [True: 20, Folded] | | | Branch (938:24): [True: 20, False: 0] | | ------------------ | | 939| 20| fmt = dgettext((domain), fmt); \ | | ------------------ | | | | 1169| 20|#define dgettext(d,x) (x) | | ------------------ | | 940| 20| initStringInfo(&buf); \ | | 941| 20| if ((appendval) && edata->targetfield) { \ | | ------------------ | | | Branch (941:7): [Folded, False: 20] | | | Branch (941:22): [True: 0, False: 0] | | ------------------ | | 942| 0| appendStringInfoString(&buf, edata->targetfield); \ | | 943| 0| appendStringInfoChar(&buf, '\n'); \ | | 944| 0| } \ | | 945| 20| /* Generate actual output --- have to use appendStringInfoVA */ \ | | 946| 20| for (;;) \ | | 947| 20| { \ | | 948| 20| va_list args; \ | | 949| 20| int needed; \ | | 950| 20| errno = edata->saved_errno; \ | | 951| 20| va_start(args, fmt); \ | | 952| 20| needed = appendStringInfoVA(&buf, fmt, args); \ | | 953| 20| va_end(args); \ | | 954| 20| if (needed == 0) \ | | ------------------ | | | Branch (954:8): [True: 20, False: 0] | | ------------------ | | 955| 20| break; \ | | 956| 20| enlargeStringInfo(&buf, needed); \ | | 957| 0| } \ | | 958| 20| /* Save the completed message into the stack item */ \ | | 959| 20| if (edata->targetfield) \ | | ------------------ | | | Branch (959:7): [True: 0, False: 20] | | ------------------ | | 960| 20| pfree(edata->targetfield); \ | | 961| 20| edata->targetfield = pstrdup(buf.data); \ | | 962| 20| pfree(buf.data); \ | | 963| 20| } ------------------ 1177| | 1178| 20| MemoryContextSwitchTo(oldcontext); 1179| 20| recursion_depth--; 1180| 20| return 0; /* return value does not matter */ 1181| 20|} errposition: 1287| 512|{ 1288| 512| ErrorData *edata = &errordata[errordata_stack_depth]; 1289| | 1290| | /* we don't bother incrementing recursion_depth */ 1291| 512| CHECK_STACK_DEPTH(); ------------------ | | 230| 512| do { \ | | 231| 512| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 512] | | ------------------ | | 232| 512| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 512| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 512] | | ------------------ ------------------ 1292| | 1293| 512| edata->cursorpos = cursorpos; 1294| | 1295| 512| return 0; /* return value does not matter */ 1296| 512|} geterrcode: 1366| 18|{ 1367| 18| ErrorData *edata = &errordata[errordata_stack_depth]; 1368| | 1369| | /* we don't bother incrementing recursion_depth */ 1370| 18| CHECK_STACK_DEPTH(); ------------------ | | 230| 18| do { \ | | 231| 18| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 18] | | ------------------ | | 232| 18| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 18| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 18] | | ------------------ ------------------ 1371| | 1372| 18| return edata->sqlerrcode; 1373| 18|} CopyErrorData: 1504| 584|{ 1505| 584| ErrorData *edata = &errordata[errordata_stack_depth]; 1506| 584| ErrorData *newedata; 1507| | 1508| | /* 1509| | * we don't increment recursion_depth because out-of-memory here does not 1510| | * indicate a problem within the error subsystem. 1511| | */ 1512| 584| CHECK_STACK_DEPTH(); ------------------ | | 230| 584| do { \ | | 231| 584| if (errordata_stack_depth < 0) \ | | ------------------ | | | Branch (231:7): [True: 0, False: 584] | | ------------------ | | 232| 584| { \ | | 233| 0| errordata_stack_depth = -1; \ | | 234| 0| ereport(ERROR, (errmsg_internal("errstart was not called"))); \ | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ | | 235| 0| } \ | | 236| 584| } while (0) | | ------------------ | | | Branch (236:11): [Folded, False: 584] | | ------------------ ------------------ 1513| | 1514| 584| Assert(CurrentMemoryContext != ErrorContext); ------------------ | | 844| 584|#define Assert(condition) ((void)true) ------------------ 1515| | 1516| | /* Copy the struct itself */ 1517| 584| newedata = (ErrorData *) palloc(sizeof(ErrorData)); 1518| 584| memcpy(newedata, edata, sizeof(ErrorData)); 1519| | 1520| | /* 1521| | * Make copies of separately-allocated strings. Note that we copy even 1522| | * theoretically-constant strings such as filename. This is because those 1523| | * could point into JIT-created code segments that might get unloaded at 1524| | * transaction cleanup. In some cases we need the copied ErrorData to 1525| | * survive transaction boundaries, so we'd better copy those strings too. 1526| | */ 1527| 584| if (newedata->filename) ------------------ | Branch (1527:6): [True: 584, False: 0] ------------------ 1528| 584| newedata->filename = pstrdup(newedata->filename); 1529| 584| if (newedata->funcname) ------------------ | Branch (1529:6): [True: 584, False: 0] ------------------ 1530| 584| newedata->funcname = pstrdup(newedata->funcname); 1531| 584| if (newedata->domain) ------------------ | Branch (1531:6): [True: 584, False: 0] ------------------ 1532| 584| newedata->domain = pstrdup(newedata->domain); 1533| 584| if (newedata->context_domain) ------------------ | Branch (1533:6): [True: 584, False: 0] ------------------ 1534| 584| newedata->context_domain = pstrdup(newedata->context_domain); 1535| 584| if (newedata->message) ------------------ | Branch (1535:6): [True: 584, False: 0] ------------------ 1536| 584| newedata->message = pstrdup(newedata->message); 1537| 584| if (newedata->detail) ------------------ | Branch (1537:6): [True: 2, False: 582] ------------------ 1538| 2| newedata->detail = pstrdup(newedata->detail); 1539| 584| if (newedata->detail_log) ------------------ | Branch (1539:6): [True: 0, False: 584] ------------------ 1540| 0| newedata->detail_log = pstrdup(newedata->detail_log); 1541| 584| if (newedata->hint) ------------------ | Branch (1541:6): [True: 18, False: 566] ------------------ 1542| 18| newedata->hint = pstrdup(newedata->hint); 1543| 584| if (newedata->context) ------------------ | Branch (1543:6): [True: 0, False: 584] ------------------ 1544| 0| newedata->context = pstrdup(newedata->context); 1545| 584| if (newedata->backtrace) ------------------ | Branch (1545:6): [True: 0, False: 584] ------------------ 1546| 0| newedata->backtrace = pstrdup(newedata->backtrace); 1547| 584| if (newedata->message_id) ------------------ | Branch (1547:6): [True: 584, False: 0] ------------------ 1548| 584| newedata->message_id = pstrdup(newedata->message_id); 1549| 584| if (newedata->schema_name) ------------------ | Branch (1549:6): [True: 0, False: 584] ------------------ 1550| 0| newedata->schema_name = pstrdup(newedata->schema_name); 1551| 584| if (newedata->table_name) ------------------ | Branch (1551:6): [True: 0, False: 584] ------------------ 1552| 0| newedata->table_name = pstrdup(newedata->table_name); 1553| 584| if (newedata->column_name) ------------------ | Branch (1553:6): [True: 0, False: 584] ------------------ 1554| 0| newedata->column_name = pstrdup(newedata->column_name); 1555| 584| if (newedata->datatype_name) ------------------ | Branch (1555:6): [True: 0, False: 584] ------------------ 1556| 0| newedata->datatype_name = pstrdup(newedata->datatype_name); 1557| 584| if (newedata->constraint_name) ------------------ | Branch (1557:6): [True: 0, False: 584] ------------------ 1558| 0| newedata->constraint_name = pstrdup(newedata->constraint_name); 1559| 584| if (newedata->internalquery) ------------------ | Branch (1559:6): [True: 0, False: 584] ------------------ 1560| 0| newedata->internalquery = pstrdup(newedata->internalquery); 1561| | 1562| | /* Use the calling context for string allocation */ 1563| 584| newedata->assoc_context = CurrentMemoryContext; 1564| | 1565| 584| return newedata; 1566| 584|} FlushErrorState: 1620| 584|{ 1621| | /* 1622| | * Reset stack to empty. The only case where it would be more than one 1623| | * deep is if we serviced an error that interrupted construction of 1624| | * another message. We assume control escaped out of that message 1625| | * construction and won't ever go back. 1626| | */ 1627| 584| errordata_stack_depth = -1; 1628| 584| recursion_depth = 0; 1629| | /* Delete all data in ErrorContext */ 1630| 584| MemoryContextReset(ErrorContext); 1631| 584|} pg_re_throw: 1663| 584|{ 1664| | /* If possible, throw the error to the next outer setjmp handler */ 1665| 584| if (PG_exception_stack != NULL) ------------------ | Branch (1665:6): [True: 584, False: 0] ------------------ 1666| 584| siglongjmp(*PG_exception_stack, 1); 1667| 0| else 1668| 0| { 1669| | /* 1670| | * If we get here, elog(ERROR) was thrown inside a PG_TRY block, which 1671| | * we have now exited only to discover that there is no outer setjmp 1672| | * handler to pass the error to. Had the error been thrown outside 1673| | * the block to begin with, we'd have promoted the error to FATAL, so 1674| | * the correct behavior is to make it FATAL now; that is, emit it and 1675| | * then call proc_exit. 1676| | */ 1677| 0| ErrorData *edata = &errordata[errordata_stack_depth]; 1678| | 1679| 0| Assert(errordata_stack_depth >= 0); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 1680| 0| Assert(edata->elevel == ERROR); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 1681| 0| edata->elevel = FATAL; ------------------ | | 55| 0|#define FATAL 22 /* fatal error - abort process */ ------------------ 1682| | 1683| | /* 1684| | * At least in principle, the increase in severity could have changed 1685| | * where-to-output decisions, so recalculate. 1686| | */ 1687| 0| edata->output_to_server = should_output_to_server(FATAL); ------------------ | | 55| 0|#define FATAL 22 /* fatal error - abort process */ ------------------ 1688| 0| edata->output_to_client = should_output_to_client(FATAL); ------------------ | | 55| 0|#define FATAL 22 /* fatal error - abort process */ ------------------ 1689| | 1690| | /* 1691| | * We can use errfinish() for the rest, but we don't want it to call 1692| | * any error context routines a second time. Since we know we are 1693| | * about to exit, it should be OK to just clear the context stack. 1694| | */ 1695| 0| error_context_stack = NULL; 1696| | 1697| 0| errfinish(edata->filename, edata->lineno, edata->funcname); 1698| 0| } 1699| | 1700| | /* Doesn't return ... */ 1701| 0| ExceptionalCondition("pg_re_throw tried to return", __FILE__, __LINE__); 1702| 0|} src_backend_utils_error_elog.c:should_output_to_server: 301| 49.9k|{ 302| 49.9k| return is_log_level_output(elevel, log_min_messages); 303| 49.9k|} src_backend_utils_error_elog.c:is_log_level_output: 267| 49.9k|{ 268| 49.9k| if (elevel == LOG || elevel == LOG_SERVER_ONLY) ------------------ | | 32| 99.8k|#define LOG 15 /* Server operational messages; sent only to ------------------ if (elevel == LOG || elevel == LOG_SERVER_ONLY) ------------------ | | 34| 49.9k|#define LOG_SERVER_ONLY 16 /* Same as LOG for server reporting, but never ------------------ | Branch (268:6): [True: 0, False: 49.9k] | Branch (268:23): [True: 0, False: 49.9k] ------------------ 269| 0| { 270| 0| if (log_min_level == LOG || log_min_level <= ERROR) ------------------ | | 32| 0|#define LOG 15 /* Server operational messages; sent only to ------------------ if (log_min_level == LOG || log_min_level <= ERROR) ------------------ | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to ------------------ | Branch (270:7): [True: 0, False: 0] | Branch (270:31): [True: 0, False: 0] ------------------ 271| 0| return true; 272| 0| } 273| 49.9k| else if (elevel == WARNING_CLIENT_ONLY) ------------------ | | 50| 49.9k|#define WARNING_CLIENT_ONLY 20 /* Warnings to be sent to client as usual, but ------------------ | Branch (273:11): [True: 0, False: 49.9k] ------------------ 274| 0| { 275| | /* never sent to log, regardless of log_min_level */ 276| 0| return false; 277| 0| } 278| 49.9k| else if (log_min_level == LOG) ------------------ | | 32| 49.9k|#define LOG 15 /* Server operational messages; sent only to ------------------ | Branch (278:11): [True: 0, False: 49.9k] ------------------ 279| 0| { 280| | /* elevel != LOG */ 281| 0| if (elevel >= FATAL) ------------------ | | 55| 0|#define FATAL 22 /* fatal error - abort process */ ------------------ | Branch (281:7): [True: 0, False: 0] ------------------ 282| 0| return true; 283| 0| } 284| | /* Neither is LOG */ 285| 49.9k| else if (elevel >= log_min_level) ------------------ | Branch (285:11): [True: 598, False: 49.3k] ------------------ 286| 598| return true; 287| | 288| 49.3k| return false; 289| 49.9k|} src_backend_utils_error_elog.c:should_output_to_client: 311| 49.9k|{ 312| |return false;} src_backend_utils_error_elog.c:get_error_stack_entry: 784| 598|{ 785| 598| ErrorData *edata; 786| | 787| | /* Allocate error frame */ 788| 598| errordata_stack_depth++; 789| 598| if (unlikely(errordata_stack_depth >= ERRORDATA_STACK_SIZE)) ------------------ | | 361| 598|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 598] | | ------------------ ------------------ 790| 0| { 791| | /* Wups, stack not big enough */ 792| 0| errordata_stack_depth = -1; /* make room on stack */ 793| 0| ereport(PANIC, (errmsg_internal("ERRORDATA_STACK_SIZE exceeded"))); ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 794| 0| } 795| | 796| | /* Initialize error frame to all zeroes/NULLs */ 797| 598| edata = &errordata[errordata_stack_depth]; 798| 598| memset(edata, 0, sizeof(ErrorData)); 799| | 800| | /* Save errno immediately to ensure error parameter eval can't change it */ 801| 598| edata->saved_errno = errno; 802| | 803| 598| return edata; 804| 598|} src_backend_utils_error_elog.c:set_stack_entry_domain: 811| 598|{ 812| | /* the default text domain is the backend's */ 813| 598| edata->domain = domain ? domain : PG_TEXTDOMAIN("postgres"); ------------------ | | 1203| 1.19k|#define PG_TEXTDOMAIN(domain) (domain "-" PG_MAJORVERSION) | | ------------------ | | | | 613| 598|#define PG_MAJORVERSION "18" | | ------------------ ------------------ | Branch (813:18): [True: 0, False: 598] ------------------ 814| | /* initialize context_domain the same way (see set_errcontext_domain()) */ 815| 598| edata->context_domain = edata->domain; 816| 598|} src_backend_utils_error_elog.c:set_stack_entry_location: 830| 590|{ 831| 590| if (filename) ------------------ | Branch (831:6): [True: 590, False: 0] ------------------ 832| 590| { 833| 590| const char *slash; 834| | 835| | /* keep only base name, useful especially for vpath builds */ 836| 590| slash = strrchr(filename, '/'); 837| 590| if (slash) ------------------ | Branch (837:7): [True: 91, False: 499] ------------------ 838| 91| filename = slash + 1; 839| | /* Some Windows compilers use backslashes in __FILE__ strings */ 840| 590| slash = strrchr(filename, '\\'); 841| 590| if (slash) ------------------ | Branch (841:7): [True: 0, False: 590] ------------------ 842| 0| filename = slash + 1; 843| 590| } 844| | 845| 590| edata->filename = filename; 846| 590| edata->lineno = lineno; 847| 590| edata->funcname = funcname; 848| 590|} pg_get_client_encoding: 173| 176|{ 174| 176| return ClientEncoding->encoding; 175| 176|} pg_unicode_to_server: 312| 883|{ 313| 883| unsigned char c_as_utf8[MAX_MULTIBYTE_CHAR_LEN + 1]; 314| 883| int c_as_utf8_len; 315| 883| int server_encoding; 316| | 317| | /* 318| | * Complain if invalid Unicode code point. The choice of errcode here is 319| | * debatable, but really our caller should have checked this anyway. 320| | */ 321| 883| if (!is_valid_unicode_codepoint(c)) ------------------ | Branch (321:6): [True: 0, False: 883] ------------------ 322| 883| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 323| 883| (errcode(ERRCODE_SYNTAX_ERROR), 324| 883| errmsg("invalid Unicode code point"))); 325| | 326| | /* Otherwise, if it's in ASCII range, conversion is trivial */ 327| 883| if (c <= 0x7F) ------------------ | Branch (327:6): [True: 14, False: 869] ------------------ 328| 14| { 329| 14| s[0] = (unsigned char) c; 330| 14| s[1] = '\0'; 331| 14| return; 332| 14| } 333| | 334| | /* If the server encoding is UTF-8, we just need to reformat the code */ 335| 869| server_encoding = GetDatabaseEncoding(); 336| 869| if (server_encoding == PG_UTF8) ------------------ | Branch (336:6): [True: 869, False: 0] ------------------ 337| 869| { 338| 869| unicode_to_utf8(c, s); 339| 869| s[pg_utf_mblen(s)] = '\0'; ------------------ | | 649| 869|#define pg_utf_mblen pg_utf_mblen_private ------------------ 340| 869| return; 341| 869| } 342| | 343| | /* For all other cases, we must have a conversion function available */ 344| 0| if (Utf8ToServerConvProc == NULL) ------------------ | Branch (344:6): [True: 0, False: 0] ------------------ 345| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 346| 0| (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), 347| 0| errmsg("conversion between %s and %s is not supported", 348| 0| pg_enc2name_tbl[PG_UTF8].name, 349| 0| GetDatabaseEncodingName()))); 350| | 351| | /* Construct UTF-8 source string */ 352| 0| unicode_to_utf8(c, c_as_utf8); 353| 0| c_as_utf8_len = pg_utf_mblen(c_as_utf8); ------------------ | | 649| 0|#define pg_utf_mblen pg_utf_mblen_private ------------------ 354| 0| c_as_utf8[c_as_utf8_len] = '\0'; 355| | 356| | /* Convert, or throw error if we can't */ 357| 0| FunctionCall6(Utf8ToServerConvProc, ------------------ | | 711| 0| FunctionCall6Coll(flinfo, InvalidOid, arg1, arg2, arg3, arg4, arg5, arg6) | | ------------------ | | | | 37| 0|#define InvalidOid ((Oid) 0) | | ------------------ ------------------ 358| 0| Int32GetDatum(PG_UTF8), 359| 0| Int32GetDatum(server_encoding), 360| 0| CStringGetDatum((char *) c_as_utf8), 361| 0| CStringGetDatum((char *) s), 362| 0| Int32GetDatum(c_as_utf8_len), 363| 0| BoolGetDatum(false)); 364| 0|} pg_mblen_with_len: 470| 20.7M|{ 471| 20.7M| int length = pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); 472| | 473| 20.7M| Assert(limit >= 1); ------------------ | | 844| 20.7M|#define Assert(condition) ((void)true) ------------------ 474| | 475| 20.7M| if (unlikely(length > limit)) ------------------ | | 361| 20.7M|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 13, False: 20.7M] | | ------------------ ------------------ 476| 13| report_invalid_encoding_db(mbstr, length, limit); 477| | 478| |#ifdef VALGRIND_EXPENSIVE 479| | VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, limit); 480| |#else 481| 20.7M| VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, length); ------------------ | | 23| 20.7M|#define VALGRIND_CHECK_MEM_IS_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (23:66): [Folded, False: 20.7M] | | ------------------ ------------------ 482| 20.7M|#endif 483| | 484| 20.7M| return length; 485| 20.7M|} pg_mbstrlen_with_len: 531| 525|{ 532| 525| int len = 0; 533| | 534| | /* optimization for single byte encoding */ 535| 525| if (pg_database_encoding_max_length() == 1) ------------------ | Branch (535:6): [True: 0, False: 525] ------------------ 536| 0| return limit; 537| | 538| 20.7M| while (limit > 0 && *mbstr) ------------------ | Branch (538:9): [True: 20.7M, False: 525] | Branch (538:22): [True: 20.7M, False: 0] ------------------ 539| 20.7M| { 540| 20.7M| int l = pg_mblen_with_len(mbstr, limit); 541| | 542| 20.7M| limit -= l; 543| 20.7M| mbstr += l; 544| 20.7M| len++; 545| 20.7M| } 546| 525| return len; 547| 525|} pg_mbcliplen: 557| 49.3k|{ 558| 49.3k| return pg_encoding_mbcliplen(DatabaseEncoding->encoding, mbstr, 559| 49.3k| len, limit); 560| 49.3k|} pg_encoding_mbcliplen: 568| 49.3k|{ 569| 49.3k| mblen_converter mblen_fn; 570| 49.3k| int clen = 0; 571| 49.3k| int l; 572| | 573| | /* optimization for single byte encoding */ 574| 49.3k| if (pg_encoding_max_length(encoding) == 1) ------------------ | Branch (574:6): [True: 0, False: 49.3k] ------------------ 575| 0| return cliplen(mbstr, len, limit); 576| | 577| 49.3k| mblen_fn = pg_wchar_table[encoding].mblen; 578| | 579| 2.91M| while (len > 0 && *mbstr) ------------------ | Branch (579:9): [True: 2.91M, False: 0] | Branch (579:20): [True: 2.91M, False: 0] ------------------ 580| 2.91M| { 581| 2.91M| l = (*mblen_fn) ((const unsigned char *) mbstr); 582| 2.91M| if ((clen + l) > limit) ------------------ | Branch (582:7): [True: 3.54k, False: 2.91M] ------------------ 583| 3.54k| break; 584| 2.91M| clen += l; 585| 2.91M| if (clen == limit) ------------------ | Branch (585:7): [True: 45.7k, False: 2.86M] ------------------ 586| 45.7k| break; 587| 2.86M| len -= l; 588| 2.86M| mbstr += l; 589| 2.86M| } 590| 49.3k| return clen; 591| 49.3k|} SetDatabaseEncoding: 635| 1|{ 636| 1| if (!PG_VALID_BE_ENCODING(encoding)) ------------------ | | 298| 1| ((_enc) >= 0 && (_enc) <= PG_ENCODING_BE_LAST) | | ------------------ | | | | 291| 1|#define PG_ENCODING_BE_LAST PG_KOI8U | | ------------------ | | | Branch (298:4): [True: 1, False: 0] | | | Branch (298:19): [True: 1, False: 0] | | ------------------ ------------------ 637| 1| elog(ERROR, "invalid database encoding: %d", encoding); ------------------ | | 240| 1| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 638| | 639| 1| DatabaseEncoding = &pg_enc2name_tbl[encoding]; 640| | Assert(DatabaseEncoding->encoding == encoding); ------------------ | | 844| 1|#define Assert(condition) ((void)true) ------------------ 641| 1|} GetDatabaseEncoding: 727| 15.2M|{ 728| 15.2M| return DatabaseEncoding->encoding; 729| 15.2M|} pg_database_encoding_max_length: 819| 15.2M|{ 820| 15.2M| return pg_wchar_table[GetDatabaseEncoding()].maxmblen; 821| 15.2M|} pg_verifymbstr: 829| 962|{ 830| 962| return pg_verify_mbstr(GetDatabaseEncoding(), mbstr, len, noError); 831| 962|} pg_verify_mbstr: 839| 962|{ 840| 962| int oklen; 841| | 842| 962| Assert(PG_VALID_ENCODING(encoding)); ------------------ | | 844| 962|#define Assert(condition) ((void)true) ------------------ 843| | 844| 962| oklen = pg_wchar_table[encoding].mbverifystr((const unsigned char *) mbstr, len); 845| 962| if (oklen != len) ------------------ | Branch (845:6): [True: 52, False: 910] ------------------ 846| 52| { 847| 52| if (noError) ------------------ | Branch (847:7): [True: 0, False: 52] ------------------ 848| 0| return false; 849| 52| report_invalid_encoding(encoding, mbstr + oklen, len - oklen); 850| 52| } 851| 962| return true; 852| 962|} report_invalid_encoding: 890| 52|{ 891| 52| int l = pg_encoding_mblen_or_incomplete(encoding, mbstr, len); 892| | 893| 52| report_invalid_encoding_int(encoding, mbstr, l, len); 894| 52|} src_backend_utils_mb_mbutils.c:report_invalid_encoding_int: 898| 65|{ 899| 65| char buf[8 * 5 + 1]; 900| 65| char *p = buf; 901| 65| int j, 902| 65| jlimit; 903| | 904| 65| jlimit = Min(mblen, len); ------------------ | | 990| 65|#define Min(x, y) ((x) < (y) ? (x) : (y)) | | ------------------ | | | Branch (990:21): [True: 51, False: 14] | | ------------------ ------------------ 905| 65| jlimit = Min(jlimit, 8); /* prevent buffer overrun */ ------------------ | | 990| 65|#define Min(x, y) ((x) < (y) ? (x) : (y)) | | ------------------ | | | Branch (990:21): [True: 65, False: 0] | | ------------------ ------------------ 906| | 907| 192| for (j = 0; j < jlimit; j++) ------------------ | Branch (907:14): [True: 127, False: 65] ------------------ 908| 127| { 909| 127| p += sprintf(p, "0x%02x", (unsigned char) mbstr[j]); ------------------ | | 242| 127|#define sprintf pg_sprintf ------------------ 910| 127| if (j < jlimit - 1) ------------------ | Branch (910:7): [True: 62, False: 65] ------------------ 911| 62| p += sprintf(p, " "); ------------------ | | 242| 62|#define sprintf pg_sprintf ------------------ 912| 127| } 913| | 914| 65| ereport(ERROR, ------------------ | | 164| 65| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 65| do { \ | | | | 143| 65| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 65|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 65| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 65|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 65, Folded] | | | | | Branch (144:7): [True: 65, False: 0] | | | | | Branch (144:39): [True: 65, Folded] | | | | ------------------ | | | | 145| 65| errstart_cold(elevel, domain) : \ | | | | 146| 65| errstart(elevel, domain)) \ | | | | 147| 65| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 65| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 65| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 65| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 65] | | | | ------------------ | | ------------------ ------------------ 915| 65| (errcode(ERRCODE_CHARACTER_NOT_IN_REPERTOIRE), 916| 65| errmsg("invalid byte sequence for encoding \"%s\": %s", 917| 65| pg_enc2name_tbl[encoding].name, 918| 65| buf))); 919| 65|} src_backend_utils_mb_mbutils.c:report_invalid_encoding_db: 923| 13|{ 924| 13| report_invalid_encoding_int(GetDatabaseEncoding(), mbstr, mblen, len); 925| 13|} set_stack_base: 61| 1.07k|{ 62| |#ifndef HAVE__BUILTIN_FRAME_ADDRESS 63| | char stack_base; 64| |#endif 65| 1.07k| pg_stack_base_t old; 66| | 67| 1.07k| old = stack_base_ptr; 68| | 69| | /* 70| | * Set up reference point for stack depth checking. On recent gcc we use 71| | * __builtin_frame_address() to avoid a warning about storing a local 72| | * variable's address in a long-lived variable. This is also important 73| | * with address sanitizer, see comment in stack_is_too_deep(). 74| | */ 75| 1.07k|#ifdef HAVE__BUILTIN_FRAME_ADDRESS 76| 1.07k| stack_base_ptr = __builtin_frame_address(0); 77| |#else 78| | stack_base_ptr = &stack_base; 79| |#endif 80| | 81| 1.07k| return old; 82| 1.07k|} restore_stack_base: 95| 1.07k|{ 96| 1.07k| stack_base_ptr = base; 97| 1.07k|} check_stack_depth: 113| 67.4M|{ 114| 67.4M| if (stack_is_too_deep()) ------------------ | Branch (114:6): [True: 9, False: 67.4M] ------------------ 115| 9| { 116| 9| ereport(ERROR, ------------------ | | 164| 9| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 9| do { \ | | | | 143| 9| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 9|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 9| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 9|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 9, Folded] | | | | | Branch (144:7): [True: 9, False: 0] | | | | | Branch (144:39): [True: 9, Folded] | | | | ------------------ | | | | 145| 9| errstart_cold(elevel, domain) : \ | | | | 146| 9| errstart(elevel, domain)) \ | | | | 147| 9| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 9| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 9| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 9| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 9] | | | | ------------------ | | ------------------ ------------------ 117| 9| (errcode(ERRCODE_STATEMENT_TOO_COMPLEX), 118| 9| errmsg("stack depth limit exceeded"), 119| 9| errhint("Increase the configuration parameter \"max_stack_depth\" (currently %dkB), " 120| 9| "after ensuring the platform's stack depth limit is adequate.", 121| 9| max_stack_depth))); 122| 9| } 123| 67.4M|} stack_is_too_deep: 127| 67.4M|{ 128| |#ifndef HAVE__BUILTIN_FRAME_ADDRESS 129| | char stack_top_loc; 130| |#endif 131| 67.4M| ssize_t stack_depth; 132| 67.4M| char *stack_address; 133| | 134| | /* 135| | * With address sanitizer's stack-use-after-return check, stack variables 136| | * are moved to heap allocations, to allow to detect references to the 137| | * memory at a later time. That would break our stack-depth check. Luckily 138| | * __builtin_frame_address() works correctly, even under asan. 139| | */ 140| |#ifndef HAVE__BUILTIN_FRAME_ADDRESS 141| | stack_address = &stack_top_loc; 142| |#else 143| 67.4M| stack_address = (char *) __builtin_frame_address(0); 144| 67.4M|#endif 145| | 146| | /* 147| | * Compute distance from reference point to my stack frame. 148| | */ 149| 67.4M| stack_depth = (ssize_t) (stack_base_ptr - stack_address); 150| | 151| | /* 152| | * Take abs value, since stacks grow up on some machines, down on others 153| | */ 154| 67.4M| if (stack_depth < 0) ------------------ | Branch (154:6): [True: 0, False: 67.4M] ------------------ 155| 0| stack_depth = -stack_depth; 156| | 157| | /* 158| | * Trouble? 159| | * 160| | * The test on stack_base_ptr prevents us from erroring out if called 161| | * before that's been set. Logically it should be done first, but putting 162| | * it last avoids wasting cycles during normal cases. 163| | */ 164| 67.4M| if (stack_depth > max_stack_depth_bytes && ------------------ | Branch (164:6): [True: 9, False: 67.4M] ------------------ 165| 9| stack_base_ptr != NULL) ------------------ | Branch (165:3): [True: 9, False: 0] ------------------ 166| 9| return true; 167| | 168| 67.4M| return false; 169| 67.4M|} assign_max_stack_depth: 178| 1.07k|{ 179| 1.07k| ssize_t newval_bytes = newval * (ssize_t) 1024; 180| | 181| 1.07k| max_stack_depth_bytes = newval_bytes; 182| 1.07k|} AllocSetContextCreateInternal: 375| 1.08k|{ 376| 1.08k| int freeListIndex; 377| 1.08k| Size firstBlockSize; 378| 1.08k| AllocSet set; 379| 1.08k| AllocBlock block; 380| | 381| | /* ensure MemoryChunk's size is properly maxaligned */ 382| 1.08k| StaticAssertDecl(ALLOC_CHUNKHDRSZ == MAXALIGN(ALLOC_CHUNKHDRSZ), 383| 1.08k| "sizeof(MemoryChunk) is not maxaligned"); 384| | /* check we have enough space to store the freelist link */ 385| 1.08k| StaticAssertDecl(sizeof(AllocFreeListLink) <= (1 << ALLOC_MINBITS), 386| 1.08k| "sizeof(AllocFreeListLink) larger than minimum allocation size"); 387| | 388| | /* 389| | * First, validate allocation parameters. Once these were regular runtime 390| | * tests and elog's, but in practice Asserts seem sufficient because 391| | * nobody varies their parameters at runtime. We somewhat arbitrarily 392| | * enforce a minimum 1K block size. We restrict the maximum block size to 393| | * MEMORYCHUNK_MAX_BLOCKOFFSET as MemoryChunks are limited to this in 394| | * regards to addressing the offset between the chunk and the block that 395| | * the chunk is stored on. We would be unable to store the offset between 396| | * the chunk and block for any chunks that were beyond 397| | * MEMORYCHUNK_MAX_BLOCKOFFSET bytes into the block if the block was to be 398| | * larger than this. 399| | */ 400| 1.08k| Assert(initBlockSize == MAXALIGN(initBlockSize) && ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 401| 1.08k| initBlockSize >= 1024); 402| 1.08k| Assert(maxBlockSize == MAXALIGN(maxBlockSize) && ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 403| 1.08k| maxBlockSize >= initBlockSize && 404| 1.08k| AllocHugeSizeIsValid(maxBlockSize)); /* must be safe to double */ 405| 1.08k| Assert(minContextSize == 0 || ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 406| 1.08k| (minContextSize == MAXALIGN(minContextSize) && 407| 1.08k| minContextSize >= 1024 && 408| 1.08k| minContextSize <= maxBlockSize)); 409| 1.08k| Assert(maxBlockSize <= MEMORYCHUNK_MAX_BLOCKOFFSET); ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 410| | 411| | /* 412| | * Check whether the parameters match either available freelist. We do 413| | * not need to demand a match of maxBlockSize. 414| | */ 415| 1.08k| if (minContextSize == ALLOCSET_DEFAULT_MINSIZE && ------------------ | | 158| 2.16k|#define ALLOCSET_DEFAULT_MINSIZE 0 ------------------ | Branch (415:6): [True: 1.07k, False: 1] ------------------ 416| 1.07k| initBlockSize == ALLOCSET_DEFAULT_INITSIZE) ------------------ | | 159| 1.07k|#define ALLOCSET_DEFAULT_INITSIZE (8 * 1024) ------------------ | Branch (416:3): [True: 1.07k, False: 0] ------------------ 417| 1.07k| freeListIndex = 0; 418| 1| else if (minContextSize == ALLOCSET_SMALL_MINSIZE && ------------------ | | 168| 2|#define ALLOCSET_SMALL_MINSIZE 0 ------------------ | Branch (418:11): [True: 0, False: 1] ------------------ 419| 0| initBlockSize == ALLOCSET_SMALL_INITSIZE) ------------------ | | 169| 0|#define ALLOCSET_SMALL_INITSIZE (1 * 1024) ------------------ | Branch (419:5): [True: 0, False: 0] ------------------ 420| 0| freeListIndex = 1; 421| 1| else 422| 1| freeListIndex = -1; 423| | 424| | /* 425| | * If a suitable freelist entry exists, just recycle that context. 426| | */ 427| 1.08k| if (freeListIndex >= 0) ------------------ | Branch (427:6): [True: 1.07k, False: 1] ------------------ 428| 1.07k| { 429| 1.07k| AllocSetFreeList *freelist = &context_freelists[freeListIndex]; 430| | 431| 1.07k| if (freelist->first_free != NULL) ------------------ | Branch (431:7): [True: 1.07k, False: 2] ------------------ 432| 1.07k| { 433| | /* Remove entry from freelist */ 434| 1.07k| set = freelist->first_free; 435| 1.07k| freelist->first_free = (AllocSet) set->header.nextchild; 436| 1.07k| freelist->num_free--; 437| | 438| | /* Update its maxBlockSize; everything else should be OK */ 439| 1.07k| set->maxBlockSize = maxBlockSize; 440| | 441| | /* Reinitialize its header, installing correct name and parent */ 442| 1.07k| MemoryContextCreate((MemoryContext) set, 443| 1.07k| T_AllocSetContext, 444| 1.07k| MCTX_ASET_ID, 445| 1.07k| parent, 446| 1.07k| name); 447| | 448| 1.07k| ((MemoryContext) set)->mem_allocated = 449| 1.07k| KeeperBlock(set)->endptr - ((char *) set); ------------------ | | 267| 1.07k| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | ------------------ | | | | 797| 1.07k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 1.07k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 450| | 451| 1.07k| return (MemoryContext) set; 452| 1.07k| } 453| 1.07k| } 454| | 455| | /* Determine size of initial block */ 456| 3| firstBlockSize = MAXALIGN(sizeof(AllocSetContext)) + ------------------ | | 797| 3|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | ------------------ | | | | 791| 3| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | ------------------ ------------------ 457| 3| ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 126| 3|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 3|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 3| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 127| 3|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 458| 3| if (minContextSize != 0) ------------------ | Branch (458:6): [True: 1, False: 2] ------------------ 459| 1| firstBlockSize = Max(firstBlockSize, minContextSize); ------------------ | | 984| 1|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 0, False: 1] | | ------------------ ------------------ 460| 2| else 461| 2| firstBlockSize = Max(firstBlockSize, initBlockSize); ------------------ | | 984| 2|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 0, False: 2] | | ------------------ ------------------ 462| | 463| | /* 464| | * Allocate the initial block. Unlike other aset.c blocks, it starts with 465| | * the context header and its block header follows that. 466| | */ 467| 3| set = (AllocSet) malloc(firstBlockSize); 468| 3| if (set == NULL) ------------------ | Branch (468:6): [True: 0, False: 3] ------------------ 469| 0| { 470| 0| if (TopMemoryContext) ------------------ | Branch (470:7): [True: 0, False: 0] ------------------ 471| 0| MemoryContextStats(TopMemoryContext); 472| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 473| 0| (errcode(ERRCODE_OUT_OF_MEMORY), 474| 0| errmsg("out of memory"), 475| 0| errdetail("Failed while creating memory context \"%s\".", 476| 0| name))); 477| 0| } 478| | 479| | /* 480| | * Avoid writing code that can fail between here and MemoryContextCreate; 481| | * we'd leak the header/initial block if we ereport in this stretch. 482| | */ 483| | 484| | /* Fill in the initial block's block header */ 485| 3| block = KeeperBlock(set); ------------------ | | 267| 3| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | ------------------ | | | | 797| 3|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 3| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 486| 3| block->aset = set; 487| 3| block->freeptr = ((char *) block) + ALLOC_BLOCKHDRSZ; ------------------ | | 126| 3|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 3|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 3| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 488| 3| block->endptr = ((char *) set) + firstBlockSize; 489| 3| block->prev = NULL; 490| 3| block->next = NULL; 491| | 492| | /* Mark unallocated space NOACCESS; leave the block header alone. */ 493| 3| VALGRIND_MAKE_MEM_NOACCESS(block->freeptr, block->endptr - block->freeptr); ------------------ | | 27| 3|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 3] | | ------------------ ------------------ 494| | 495| | /* Remember block as part of block list */ 496| 3| set->blocks = block; 497| | 498| | /* Finish filling in aset-specific parts of the context header */ 499| 3| MemSetAligned(set->freelist, 0, sizeof(set->freelist)); ------------------ | | 1040| 3| do \ | | 1041| 3| { \ | | 1042| 3| long *_start = (long *) (start); \ | | 1043| 3| int _val = (val); \ | | 1044| 3| Size _len = (len); \ | | 1045| 3|\ | | 1046| 3| if ((_len & LONG_ALIGN_MASK) == 0 && \ | | ------------------ | | | | 994| 3|#define LONG_ALIGN_MASK (sizeof(long) - 1) | | ------------------ | | | Branch (1046:7): [True: 3, False: 0] | | ------------------ | | 1047| 3| _val == 0 && \ | | ------------------ | | | Branch (1047:4): [True: 3, False: 0] | | ------------------ | | 1048| 3| _len <= MEMSET_LOOP_LIMIT && \ | | ------------------ | | | | 573| 6|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1048:4): [True: 3, False: 0] | | ------------------ | | 1049| 3| MEMSET_LOOP_LIMIT != 0) \ | | ------------------ | | | | 573| 0|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1049:4): [True: 0, Folded] | | ------------------ | | 1050| 3| { \ | | 1051| 3| long *_stop = (long *) ((char *) _start + _len); \ | | 1052| 36| while (_start < _stop) \ | | ------------------ | | | Branch (1052:11): [True: 33, False: 3] | | ------------------ | | 1053| 33| *_start++ = 0; \ | | 1054| 3| } \ | | 1055| 3| else \ | | 1056| 3| memset(_start, _val, _len); \ | | 1057| 3| } while (0) | | ------------------ | | | Branch (1057:11): [Folded, False: 3] | | ------------------ ------------------ 500| | 501| 3| set->initBlockSize = (uint32) initBlockSize; 502| 3| set->maxBlockSize = (uint32) maxBlockSize; 503| 3| set->nextBlockSize = (uint32) initBlockSize; 504| 3| set->freeListIndex = freeListIndex; 505| | 506| | /* 507| | * Compute the allocation chunk size limit for this context. It can't be 508| | * more than ALLOC_CHUNK_LIMIT because of the fixed number of freelists. 509| | * If maxBlockSize is small then requests exceeding the maxBlockSize, or 510| | * even a significant fraction of it, should be treated as large chunks 511| | * too. For the typical case of maxBlockSize a power of 2, the chunk size 512| | * limit will be at most 1/8th maxBlockSize, so that given a stream of 513| | * requests that are all the maximum chunk size we will waste at most 514| | * 1/8th of the allocated space. 515| | * 516| | * Also, allocChunkLimit must not exceed ALLOCSET_SEPARATE_THRESHOLD. 517| | */ 518| 3| StaticAssertStmt(ALLOC_CHUNK_LIMIT == ALLOCSET_SEPARATE_THRESHOLD, ------------------ | | 925| 3| ((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; })) ------------------ 519| 3| "ALLOC_CHUNK_LIMIT != ALLOCSET_SEPARATE_THRESHOLD"); 520| | 521| | /* 522| | * Determine the maximum size that a chunk can be before we allocate an 523| | * entire AllocBlock dedicated for that chunk. We set the absolute limit 524| | * of that size as ALLOC_CHUNK_LIMIT but we reduce it further so that we 525| | * can fit about ALLOC_CHUNK_FRACTION chunks this size on a maximally 526| | * sized block. (We opt to keep allocChunkLimit a power-of-2 value 527| | * primarily for legacy reasons rather than calculating it so that exactly 528| | * ALLOC_CHUNK_FRACTION chunks fit on a maximally sized block.) 529| | */ 530| 3| set->allocChunkLimit = ALLOC_CHUNK_LIMIT; ------------------ | | 107| 3|#define ALLOC_CHUNK_LIMIT (1 << (ALLOCSET_NUM_FREELISTS-1+ALLOC_MINBITS)) | | ------------------ | | | | 106| 3|#define ALLOCSET_NUM_FREELISTS 11 | | ------------------ | | #define ALLOC_CHUNK_LIMIT (1 << (ALLOCSET_NUM_FREELISTS-1+ALLOC_MINBITS)) | | ------------------ | | | | 105| 3|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ 531| 6| while ((Size) (set->allocChunkLimit + ALLOC_CHUNKHDRSZ) > ------------------ | | 127| 6|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ | Branch (531:9): [True: 3, False: 3] ------------------ 532| 6| (Size) ((maxBlockSize - ALLOC_BLOCKHDRSZ) / ALLOC_CHUNK_FRACTION)) ------------------ | | 126| 6|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 6|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 6| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ (Size) ((maxBlockSize - ALLOC_BLOCKHDRSZ) / ALLOC_CHUNK_FRACTION)) ------------------ | | 109| 6|#define ALLOC_CHUNK_FRACTION 4 ------------------ 533| 3| set->allocChunkLimit >>= 1; 534| | 535| | /* Finally, do the type-independent part of context creation */ 536| 3| MemoryContextCreate((MemoryContext) set, 537| 3| T_AllocSetContext, 538| 3| MCTX_ASET_ID, 539| 3| parent, 540| 3| name); 541| | 542| 3| ((MemoryContext) set)->mem_allocated = firstBlockSize; 543| | 544| 3| return (MemoryContext) set; 545| 3|} AllocSetReset: 561| 1.66k|{ 562| 1.66k| AllocSet set = (AllocSet) context; 563| 1.66k| AllocBlock block; 564| 1.66k| Size keepersize PG_USED_FOR_ASSERTS_ONLY; 565| | 566| 1.66k| Assert(AllocSetIsValid(set)); ------------------ | | 844| 1.66k|#define Assert(condition) ((void)true) ------------------ 567| | 568| |#ifdef MEMORY_CONTEXT_CHECKING 569| | /* Check for corruption and leaks before freeing */ 570| | AllocSetCheck(context); 571| |#endif 572| | 573| | /* Remember keeper block size for Assert below */ 574| 1.66k| keepersize = KeeperBlock(set)->endptr - ((char *) set); ------------------ | | 267| 1.66k| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | ------------------ | | | | 797| 1.66k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 1.66k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 575| | 576| | /* Clear chunk freelists */ 577| 1.66k| MemSetAligned(set->freelist, 0, sizeof(set->freelist)); ------------------ | | 1040| 1.66k| do \ | | 1041| 1.66k| { \ | | 1042| 1.66k| long *_start = (long *) (start); \ | | 1043| 1.66k| int _val = (val); \ | | 1044| 1.66k| Size _len = (len); \ | | 1045| 1.66k|\ | | 1046| 1.66k| if ((_len & LONG_ALIGN_MASK) == 0 && \ | | ------------------ | | | | 994| 1.66k|#define LONG_ALIGN_MASK (sizeof(long) - 1) | | ------------------ | | | Branch (1046:7): [True: 1.66k, False: 0] | | ------------------ | | 1047| 1.66k| _val == 0 && \ | | ------------------ | | | Branch (1047:4): [True: 1.66k, False: 0] | | ------------------ | | 1048| 1.66k| _len <= MEMSET_LOOP_LIMIT && \ | | ------------------ | | | | 573| 3.33k|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1048:4): [True: 1.66k, False: 0] | | ------------------ | | 1049| 1.66k| MEMSET_LOOP_LIMIT != 0) \ | | ------------------ | | | | 573| 0|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1049:4): [True: 0, Folded] | | ------------------ | | 1050| 1.66k| { \ | | 1051| 1.66k| long *_stop = (long *) ((char *) _start + _len); \ | | 1052| 20.0k| while (_start < _stop) \ | | ------------------ | | | Branch (1052:11): [True: 18.3k, False: 1.66k] | | ------------------ | | 1053| 18.3k| *_start++ = 0; \ | | 1054| 1.66k| } \ | | 1055| 1.66k| else \ | | 1056| 1.66k| memset(_start, _val, _len); \ | | 1057| 1.66k| } while (0) | | ------------------ | | | Branch (1057:11): [Folded, False: 1.66k] | | ------------------ ------------------ 578| | 579| 1.66k| block = set->blocks; 580| | 581| | /* New blocks list will be just the keeper block */ 582| 1.66k| set->blocks = KeeperBlock(set); ------------------ | | 267| 1.66k| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | ------------------ | | | | 797| 1.66k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 1.66k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 583| | 584| 11.5k| while (block != NULL) ------------------ | Branch (584:9): [True: 9.87k, False: 1.66k] ------------------ 585| 9.87k| { 586| 9.87k| AllocBlock next = block->next; 587| | 588| 9.87k| if (IsKeeperBlock(set, block)) ------------------ | | 270| 9.87k|#define IsKeeperBlock(set, block) ((block) == (KeeperBlock(set))) | | ------------------ | | | | 267| 9.87k| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | | | ------------------ | | | | | | 797| 9.87k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 9.87k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ | | | Branch (270:35): [True: 1.66k, False: 8.20k] | | ------------------ ------------------ 589| 1.66k| { 590| | /* Reset the block, but don't return it to malloc */ 591| 1.66k| char *datastart = ((char *) block) + ALLOC_BLOCKHDRSZ; ------------------ | | 126| 1.66k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 1.66k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 1.66k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 592| | 593| |#ifdef CLOBBER_FREED_MEMORY 594| | wipe_mem(datastart, block->freeptr - datastart); 595| |#else 596| | /* wipe_mem() would have done this */ 597| 1.66k| VALGRIND_MAKE_MEM_NOACCESS(datastart, block->freeptr - datastart); ------------------ | | 27| 1.66k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 1.66k] | | ------------------ ------------------ 598| 1.66k|#endif 599| 1.66k| block->freeptr = datastart; 600| 1.66k| block->prev = NULL; 601| 1.66k| block->next = NULL; 602| 1.66k| } 603| 8.20k| else 604| 8.20k| { 605| | /* Normal case, release the block */ 606| 8.20k| context->mem_allocated -= block->endptr - ((char *) block); 607| | 608| |#ifdef CLOBBER_FREED_MEMORY 609| | wipe_mem(block, block->freeptr - ((char *) block)); 610| |#endif 611| 8.20k| free(block); 612| 8.20k| } 613| 9.87k| block = next; 614| 9.87k| } 615| | 616| 1.66k| Assert(context->mem_allocated == keepersize); ------------------ | | 844| 1.66k|#define Assert(condition) ((void)true) ------------------ 617| | 618| | /* Reset block size allocation sequence, too */ 619| 1.66k| set->nextBlockSize = set->initBlockSize; 620| 1.66k|} AllocSetDelete: 631| 1.07k|{ 632| 1.07k| AllocSet set = (AllocSet) context; 633| 1.07k| AllocBlock block = set->blocks; 634| 1.07k| Size keepersize PG_USED_FOR_ASSERTS_ONLY; 635| | 636| 1.07k| Assert(AllocSetIsValid(set)); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 637| | 638| |#ifdef MEMORY_CONTEXT_CHECKING 639| | /* Check for corruption and leaks before freeing */ 640| | AllocSetCheck(context); 641| |#endif 642| | 643| | /* Remember keeper block size for Assert below */ 644| 1.07k| keepersize = KeeperBlock(set)->endptr - ((char *) set); ------------------ | | 267| 1.07k| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | ------------------ | | | | 797| 1.07k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 1.07k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 645| | 646| | /* 647| | * If the context is a candidate for a freelist, put it into that freelist 648| | * instead of destroying it. 649| | */ 650| 1.07k| if (set->freeListIndex >= 0) ------------------ | Branch (650:6): [True: 1.07k, False: 0] ------------------ 651| 1.07k| { 652| 1.07k| AllocSetFreeList *freelist = &context_freelists[set->freeListIndex]; 653| | 654| | /* 655| | * Reset the context, if it needs it, so that we aren't hanging on to 656| | * more than the initial malloc chunk. 657| | */ 658| 1.07k| if (!context->isReset) ------------------ | Branch (658:7): [True: 1.07k, False: 0] ------------------ 659| 1.07k| MemoryContextResetOnly(context); 660| | 661| | /* 662| | * If the freelist is full, just discard what's already in it. See 663| | * comments with context_freelists[]. 664| | */ 665| 1.07k| if (freelist->num_free >= MAX_FREE_CONTEXTS) ------------------ | | 263| 1.07k|#define MAX_FREE_CONTEXTS 100 /* arbitrary limit on freelist length */ ------------------ | Branch (665:7): [True: 0, False: 1.07k] ------------------ 666| 0| { 667| 0| while (freelist->first_free != NULL) ------------------ | Branch (667:11): [True: 0, False: 0] ------------------ 668| 0| { 669| 0| AllocSetContext *oldset = freelist->first_free; 670| | 671| 0| freelist->first_free = (AllocSetContext *) oldset->header.nextchild; 672| 0| freelist->num_free--; 673| | 674| | /* All that remains is to free the header/initial block */ 675| 0| free(oldset); 676| 0| } 677| 0| Assert(freelist->num_free == 0); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 678| 0| } 679| | 680| | /* Now add the just-deleted context to the freelist. */ 681| 1.07k| set->header.nextchild = (MemoryContext) freelist->first_free; 682| 1.07k| freelist->first_free = set; 683| 1.07k| freelist->num_free++; 684| | 685| 1.07k| return; 686| 1.07k| } 687| | 688| | /* Free all blocks, except the keeper which is part of context header */ 689| 0| while (block != NULL) ------------------ | Branch (689:9): [True: 0, False: 0] ------------------ 690| 0| { 691| 0| AllocBlock next = block->next; 692| | 693| 0| if (!IsKeeperBlock(set, block)) ------------------ | | 270| 0|#define IsKeeperBlock(set, block) ((block) == (KeeperBlock(set))) | | ------------------ | | | | 267| 0| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | | | ------------------ | | | | | | 797| 0|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 0| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ | Branch (693:7): [True: 0, False: 0] ------------------ 694| 0| context->mem_allocated -= block->endptr - ((char *) block); 695| | 696| |#ifdef CLOBBER_FREED_MEMORY 697| | wipe_mem(block, block->freeptr - ((char *) block)); 698| |#endif 699| | 700| 0| if (!IsKeeperBlock(set, block)) ------------------ | | 270| 0|#define IsKeeperBlock(set, block) ((block) == (KeeperBlock(set))) | | ------------------ | | | | 267| 0| ((AllocBlock) (((char *) set) + MAXALIGN(sizeof(AllocSetContext)))) | | | | ------------------ | | | | | | 797| 0|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 0| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ | Branch (700:7): [True: 0, False: 0] ------------------ 701| 0| free(block); 702| | 703| 0| block = next; 704| 0| } 705| | 706| 0| Assert(context->mem_allocated == keepersize); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 707| | 708| | /* Finally, free the context header, including the keeper block */ 709| 0| free(set); 710| 0|} AllocSetAlloc: 991| 63.8M|{ 992| 63.8M| AllocSet set = (AllocSet) context; 993| 63.8M| AllocBlock block; 994| 63.8M| MemoryChunk *chunk; 995| 63.8M| int fidx; 996| 63.8M| Size chunk_size; 997| 63.8M| Size availspace; 998| | 999| 63.8M| Assert(AllocSetIsValid(set)); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 1000| | 1001| | /* due to the keeper block set->blocks should never be NULL */ 1002| 63.8M| Assert(set->blocks != NULL); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 1003| | 1004| | /* 1005| | * If requested size exceeds maximum for chunks we hand the request off to 1006| | * AllocSetAllocLarge(). 1007| | */ 1008| 63.8M| if (size > set->allocChunkLimit) ------------------ | Branch (1008:6): [True: 4.28k, False: 63.8M] ------------------ 1009| 4.28k| return AllocSetAllocLarge(context, size, flags); 1010| | 1011| | /* 1012| | * Request is small enough to be treated as a chunk. Look in the 1013| | * corresponding free list to see if there is a free chunk we could reuse. 1014| | * If one is found, remove it from the free list, make it again a member 1015| | * of the alloc set and return its data address. 1016| | * 1017| | * Note that we don't attempt to ensure there's space for the sentinel 1018| | * byte here. We expect a large proportion of allocations to be for sizes 1019| | * which are already a power of 2. If we were to always make space for a 1020| | * sentinel byte in MEMORY_CONTEXT_CHECKING builds, then we'd end up 1021| | * doubling the memory requirements for such allocations. 1022| | */ 1023| 63.8M| fidx = AllocSetFreeIndex(size); 1024| 63.8M| chunk = set->freelist[fidx]; 1025| 63.8M| if (chunk != NULL) ------------------ | Branch (1025:6): [True: 29.1k, False: 63.8M] ------------------ 1026| 29.1k| { 1027| 29.1k| AllocFreeListLink *link = GetFreeListLink(chunk); ------------------ | | 155| 29.1k| (AllocFreeListLink *) ((char *) (chkptr) + ALLOC_CHUNKHDRSZ) | | ------------------ | | | | 127| 29.1k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) | | ------------------ ------------------ 1028| | 1029| | /* Allow access to the chunk header. */ 1030| 29.1k| VALGRIND_MAKE_MEM_DEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 26| 29.1k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 29.1k] | | ------------------ ------------------ 1031| | 1032| 29.1k| Assert(fidx == MemoryChunkGetValue(chunk)); ------------------ | | 844| 29.1k|#define Assert(condition) ((void)true) ------------------ 1033| | 1034| | /* pop this chunk off the freelist */ 1035| 29.1k| VALGRIND_MAKE_MEM_DEFINED(link, sizeof(AllocFreeListLink)); ------------------ | | 26| 29.1k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 29.1k] | | ------------------ ------------------ 1036| 29.1k| set->freelist[fidx] = link->next; 1037| 29.1k| VALGRIND_MAKE_MEM_NOACCESS(link, sizeof(AllocFreeListLink)); ------------------ | | 27| 29.1k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 29.1k] | | ------------------ ------------------ 1038| | 1039| |#ifdef MEMORY_CONTEXT_CHECKING 1040| | chunk->requested_size = size; 1041| | /* set mark to catch clobber of "unused" space */ 1042| | if (size < GetChunkSizeFromFreeListIdx(fidx)) 1043| | set_sentinel(MemoryChunkGetPointer(chunk), size); 1044| |#endif 1045| |#ifdef RANDOMIZE_ALLOCATED_MEMORY 1046| | /* fill the allocated space with junk */ 1047| | randomize_mem((char *) MemoryChunkGetPointer(chunk), size); 1048| |#endif 1049| | 1050| | /* Ensure any padding bytes are marked NOACCESS. */ 1051| 29.1k| VALGRIND_MAKE_MEM_NOACCESS((char *) MemoryChunkGetPointer(chunk) + size, ------------------ | | 27| 29.1k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 29.1k] | | ------------------ ------------------ 1052| 29.1k| GetChunkSizeFromFreeListIdx(fidx) - size); 1053| | 1054| | /* Disallow access to the chunk header. */ 1055| 29.1k| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 29.1k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 29.1k] | | ------------------ ------------------ 1056| | 1057| 29.1k| return MemoryChunkGetPointer(chunk); ------------------ | | 139| 29.1k| ((void *) ((char *) (c) + sizeof(MemoryChunk))) ------------------ 1058| 29.1k| } 1059| | 1060| | /* 1061| | * Choose the actual chunk size to allocate. 1062| | */ 1063| 63.8M| chunk_size = GetChunkSizeFromFreeListIdx(fidx); ------------------ | | 163| 63.8M| ((((Size) 1) << ALLOC_MINBITS) << (fidx)) | | ------------------ | | | | 105| 63.8M|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ 1064| 63.8M| Assert(chunk_size >= size); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 1065| | 1066| 63.8M| block = set->blocks; 1067| 63.8M| availspace = block->endptr - block->freeptr; 1068| | 1069| | /* 1070| | * If there is enough room in the active allocation block, we will put the 1071| | * chunk into that block. Else must start a new one. 1072| | */ 1073| 63.8M| if (unlikely(availspace < (chunk_size + ALLOC_CHUNKHDRSZ))) ------------------ | | 361| 63.8M|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 5.19k, False: 63.7M] | | ------------------ ------------------ 1074| 5.19k| return AllocSetAllocFromNewBlock(context, size, flags, fidx); 1075| | 1076| | /* There's enough space on the current block, so allocate from that */ 1077| 63.7M| return AllocSetAllocChunkFromBlock(context, block, size, chunk_size, fidx); 1078| 63.8M|} AllocSetFree: 1086| 29.7k|{ 1087| 29.7k| AllocSet set; 1088| 29.7k| MemoryChunk *chunk = PointerGetMemoryChunk(pointer); ------------------ | | 136| 29.7k| ((MemoryChunk *) ((char *) (p) - sizeof(MemoryChunk))) ------------------ 1089| | 1090| | /* Allow access to the chunk header. */ 1091| 29.7k| VALGRIND_MAKE_MEM_DEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 26| 29.7k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 29.7k] | | ------------------ ------------------ 1092| | 1093| 29.7k| if (MemoryChunkIsExternal(chunk)) ------------------ | Branch (1093:6): [True: 1.28k, False: 28.5k] ------------------ 1094| 1.28k| { 1095| | /* Release single-chunk block. */ 1096| 1.28k| AllocBlock block = ExternalChunkGetBlock(chunk); ------------------ | | 238| 1.28k| (AllocBlock) ((char *) chunk - ALLOC_BLOCKHDRSZ) | | ------------------ | | | | 126| 1.28k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | | | ------------------ | | | | | | 797| 1.28k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 1.28k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1097| | 1098| | /* 1099| | * Try to verify that we have a sane block pointer: the block header 1100| | * should reference an aset and the freeptr should match the endptr. 1101| | */ 1102| 1.28k| if (!AllocBlockIsValid(block) || block->freeptr != block->endptr) ------------------ | | 230| 2.56k| (PointerIsValid(block) && AllocSetIsValid((block)->aset)) | | ------------------ | | | | 749| 2.56k|#define PointerIsValid(pointer) ((const void*)(pointer) != NULL) | | | | ------------------ | | | | | Branch (749:33): [True: 1.28k, False: 0] | | | | ------------------ | | ------------------ | | (PointerIsValid(block) && AllocSetIsValid((block)->aset)) | | ------------------ | | | | 223| 1.28k| (PointerIsValid(set) && IsA(set, AllocSetContext)) | | | | ------------------ | | | | | | 749| 2.56k|#define PointerIsValid(pointer) ((const void*)(pointer) != NULL) | | | | | | ------------------ | | | | | | | Branch (749:33): [True: 1.28k, False: 0] | | | | | | ------------------ | | | | ------------------ | | | | (PointerIsValid(set) && IsA(set, AllocSetContext)) | | | | ------------------ | | | | | | 164| 1.28k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | | | | | ------------------ | | | | | | | | 139| 1.28k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | | | | | ------------------ | | | | | | | Branch (164:30): [True: 1.28k, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ | Branch (1102:36): [True: 0, False: 1.28k] ------------------ 1103| 1.28k| elog(ERROR, "could not find block containing chunk %p", chunk); ------------------ | | 240| 1.28k| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1104| | 1105| 1.28k| set = block->aset; 1106| | 1107| |#ifdef MEMORY_CONTEXT_CHECKING 1108| | { 1109| | /* Test for someone scribbling on unused space in chunk */ 1110| | Assert(chunk->requested_size < (block->endptr - (char *) pointer)); 1111| | if (!sentinel_ok(pointer, chunk->requested_size)) 1112| | elog(WARNING, "detected write past chunk end in %s %p", 1113| | set->header.name, chunk); 1114| | } 1115| |#endif 1116| | 1117| | /* OK, remove block from aset's list and free it */ 1118| 1.28k| if (block->prev) ------------------ | Branch (1118:7): [True: 1.28k, False: 0] ------------------ 1119| 1.28k| block->prev->next = block->next; 1120| 0| else 1121| 0| set->blocks = block->next; 1122| 1.28k| if (block->next) ------------------ | Branch (1122:7): [True: 579, False: 701] ------------------ 1123| 579| block->next->prev = block->prev; 1124| | 1125| 1.28k| set->header.mem_allocated -= block->endptr - ((char *) block); 1126| | 1127| |#ifdef CLOBBER_FREED_MEMORY 1128| | wipe_mem(block, block->freeptr - ((char *) block)); 1129| |#endif 1130| 1.28k| free(block); 1131| 1.28k| } 1132| 28.5k| else 1133| 28.5k| { 1134| 28.5k| AllocBlock block = MemoryChunkGetBlock(chunk); 1135| 28.5k| int fidx; 1136| 28.5k| AllocFreeListLink *link; 1137| | 1138| | /* 1139| | * In this path, for speed reasons we just Assert that the referenced 1140| | * block is good. We can also Assert that the value field is sane. 1141| | * Future field experience may show that these Asserts had better 1142| | * become regular runtime test-and-elog checks. 1143| | */ 1144| 28.5k| Assert(AllocBlockIsValid(block)); ------------------ | | 844| 28.5k|#define Assert(condition) ((void)true) ------------------ 1145| 28.5k| set = block->aset; 1146| | 1147| 28.5k| fidx = MemoryChunkGetValue(chunk); 1148| 28.5k| Assert(FreeListIdxIsValid(fidx)); ------------------ | | 844| 28.5k|#define Assert(condition) ((void)true) ------------------ 1149| 28.5k| link = GetFreeListLink(chunk); ------------------ | | 155| 28.5k| (AllocFreeListLink *) ((char *) (chkptr) + ALLOC_CHUNKHDRSZ) | | ------------------ | | | | 127| 28.5k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) | | ------------------ ------------------ 1150| | 1151| | /* 1152| | * It might seem odd that we use elevel ERROR for double-pfree but 1153| | * only WARNING for write-past-chunk-end. But the two conditions are 1154| | * not very comparable. In the double-pfree case we can prevent 1155| | * corruption before it happens; while if we let it go through, the 1156| | * result would be a corrupted freelist that allows this chunk to get 1157| | * re-allocated twice. Thus the original bug could cascade into 1158| | * hard-to-understand misbehavior that might manifest far away from 1159| | * the actual source of the problem. On the other hand, a write past 1160| | * chunk end can be relatively benign if just a few bytes too many 1161| | * were written: often, only padding or unused space gets affected. 1162| | * Moreover, whatever damage was done is already done, and we're just 1163| | * reporting after the fact with no ability to clean it up. So just 1164| | * warn, like AllocSetCheck would do if the chunk didn't get freed. 1165| | */ 1166| |#ifdef MEMORY_CONTEXT_CHECKING 1167| | /* Test for previously-freed chunk */ 1168| | if (unlikely(chunk->requested_size == InvalidAllocSize)) 1169| | elog(ERROR, "detected double pfree in %s %p", 1170| | set->header.name, chunk); 1171| | /* Test for someone scribbling on unused space in chunk */ 1172| | if (chunk->requested_size < GetChunkSizeFromFreeListIdx(fidx)) 1173| | if (!sentinel_ok(pointer, chunk->requested_size)) 1174| | elog(WARNING, "detected write past chunk end in %s %p", 1175| | set->header.name, chunk); 1176| |#endif 1177| | 1178| |#ifdef CLOBBER_FREED_MEMORY 1179| | wipe_mem(pointer, GetChunkSizeFromFreeListIdx(fidx)); 1180| |#endif 1181| | /* push this chunk onto the top of the free list */ 1182| 28.5k| VALGRIND_MAKE_MEM_DEFINED(link, sizeof(AllocFreeListLink)); ------------------ | | 26| 28.5k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 28.5k] | | ------------------ ------------------ 1183| 28.5k| link->next = set->freelist[fidx]; 1184| 28.5k| VALGRIND_MAKE_MEM_NOACCESS(link, sizeof(AllocFreeListLink)); ------------------ | | 27| 28.5k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 28.5k] | | ------------------ ------------------ 1185| 28.5k| set->freelist[fidx] = chunk; 1186| | 1187| |#ifdef MEMORY_CONTEXT_CHECKING 1188| | 1189| | /* 1190| | * Reset requested_size to InvalidAllocSize in chunks that are on free 1191| | * list. 1192| | */ 1193| | chunk->requested_size = InvalidAllocSize; 1194| |#endif 1195| 28.5k| } 1196| 29.7k|} AllocSetRealloc: 1212| 30.6k|{ 1213| 30.6k| AllocBlock block; 1214| 30.6k| AllocSet set; 1215| 30.6k| MemoryChunk *chunk = PointerGetMemoryChunk(pointer); ------------------ | | 136| 30.6k| ((MemoryChunk *) ((char *) (p) - sizeof(MemoryChunk))) ------------------ 1216| 30.6k| Size oldchksize; 1217| 30.6k| int fidx; 1218| | 1219| | /* Allow access to the chunk header. */ 1220| 30.6k| VALGRIND_MAKE_MEM_DEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 26| 30.6k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 30.6k] | | ------------------ ------------------ 1221| | 1222| 30.6k| if (MemoryChunkIsExternal(chunk)) ------------------ | Branch (1222:6): [True: 4.42k, False: 26.2k] ------------------ 1223| 4.42k| { 1224| | /* 1225| | * The chunk must have been allocated as a single-chunk block. Use 1226| | * realloc() to make the containing block bigger, or smaller, with 1227| | * minimum space wastage. 1228| | */ 1229| 4.42k| Size chksize; 1230| 4.42k| Size blksize; 1231| 4.42k| Size oldblksize; 1232| | 1233| 4.42k| block = ExternalChunkGetBlock(chunk); ------------------ | | 238| 4.42k| (AllocBlock) ((char *) chunk - ALLOC_BLOCKHDRSZ) | | ------------------ | | | | 126| 4.42k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | | | ------------------ | | | | | | 797| 4.42k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 4.42k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1234| | 1235| | /* 1236| | * Try to verify that we have a sane block pointer: the block header 1237| | * should reference an aset and the freeptr should match the endptr. 1238| | */ 1239| 4.42k| if (!AllocBlockIsValid(block) || block->freeptr != block->endptr) ------------------ | | 230| 8.84k| (PointerIsValid(block) && AllocSetIsValid((block)->aset)) | | ------------------ | | | | 749| 8.84k|#define PointerIsValid(pointer) ((const void*)(pointer) != NULL) | | | | ------------------ | | | | | Branch (749:33): [True: 4.42k, False: 0] | | | | ------------------ | | ------------------ | | (PointerIsValid(block) && AllocSetIsValid((block)->aset)) | | ------------------ | | | | 223| 4.42k| (PointerIsValid(set) && IsA(set, AllocSetContext)) | | | | ------------------ | | | | | | 749| 8.84k|#define PointerIsValid(pointer) ((const void*)(pointer) != NULL) | | | | | | ------------------ | | | | | | | Branch (749:33): [True: 4.42k, False: 0] | | | | | | ------------------ | | | | ------------------ | | | | (PointerIsValid(set) && IsA(set, AllocSetContext)) | | | | ------------------ | | | | | | 164| 4.42k|#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_) | | | | | | ------------------ | | | | | | | | 139| 4.42k|#define nodeTag(nodeptr) (((const Node*)(nodeptr))->type) | | | | | | ------------------ | | | | | | | Branch (164:30): [True: 4.42k, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ | Branch (1239:36): [True: 0, False: 4.42k] ------------------ 1240| 4.42k| elog(ERROR, "could not find block containing chunk %p", chunk); ------------------ | | 240| 4.42k| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1241| | 1242| 4.42k| set = block->aset; 1243| | 1244| | /* only check size in paths where the limits could be hit */ 1245| 4.42k| MemoryContextCheckSize((MemoryContext) set, size, flags); 1246| | 1247| 4.42k| oldchksize = block->endptr - (char *) pointer; 1248| | 1249| |#ifdef MEMORY_CONTEXT_CHECKING 1250| | /* Test for someone scribbling on unused space in chunk */ 1251| | Assert(chunk->requested_size < oldchksize); 1252| | if (!sentinel_ok(pointer, chunk->requested_size)) 1253| | elog(WARNING, "detected write past chunk end in %s %p", 1254| | set->header.name, chunk); 1255| |#endif 1256| | 1257| |#ifdef MEMORY_CONTEXT_CHECKING 1258| | /* ensure there's always space for the sentinel byte */ 1259| | chksize = MAXALIGN(size + 1); 1260| |#else 1261| 4.42k| chksize = MAXALIGN(size); ------------------ | | 797| 4.42k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | ------------------ | | | | 791| 4.42k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | ------------------ ------------------ 1262| 4.42k|#endif 1263| | 1264| | /* Do the realloc */ 1265| 4.42k| blksize = chksize + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 126| 4.42k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 4.42k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 4.42k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ blksize = chksize + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 127| 4.42k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 1266| 4.42k| oldblksize = block->endptr - ((char *) block); 1267| | 1268| 4.42k| block = (AllocBlock) realloc(block, blksize); 1269| 4.42k| if (block == NULL) ------------------ | Branch (1269:7): [True: 0, False: 4.42k] ------------------ 1270| 0| { 1271| | /* Disallow access to the chunk header. */ 1272| 0| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 0|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 0] | | ------------------ ------------------ 1273| 0| return MemoryContextAllocationFailure(&set->header, size, flags); 1274| 0| } 1275| | 1276| | /* updated separately, not to underflow when (oldblksize > blksize) */ 1277| 4.42k| set->header.mem_allocated -= oldblksize; 1278| 4.42k| set->header.mem_allocated += blksize; 1279| | 1280| 4.42k| block->freeptr = block->endptr = ((char *) block) + blksize; 1281| | 1282| | /* Update pointers since block has likely been moved */ 1283| 4.42k| chunk = (MemoryChunk *) (((char *) block) + ALLOC_BLOCKHDRSZ); ------------------ | | 126| 4.42k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 4.42k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 4.42k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 1284| 4.42k| pointer = MemoryChunkGetPointer(chunk); ------------------ | | 139| 4.42k| ((void *) ((char *) (c) + sizeof(MemoryChunk))) ------------------ 1285| 4.42k| if (block->prev) ------------------ | Branch (1285:7): [True: 4.42k, False: 0] ------------------ 1286| 4.42k| block->prev->next = block; 1287| 0| else 1288| 0| set->blocks = block; 1289| 4.42k| if (block->next) ------------------ | Branch (1289:7): [True: 4.42k, False: 0] ------------------ 1290| 4.42k| block->next->prev = block; 1291| | 1292| |#ifdef MEMORY_CONTEXT_CHECKING 1293| |#ifdef RANDOMIZE_ALLOCATED_MEMORY 1294| | 1295| | /* 1296| | * We can only randomize the extra space if we know the prior request. 1297| | * When using Valgrind, randomize_mem() also marks memory UNDEFINED. 1298| | */ 1299| | if (size > chunk->requested_size) 1300| | randomize_mem((char *) pointer + chunk->requested_size, 1301| | size - chunk->requested_size); 1302| |#else 1303| | 1304| | /* 1305| | * If this is an increase, realloc() will have marked any 1306| | * newly-allocated part (from oldchksize to chksize) UNDEFINED, but we 1307| | * also need to adjust trailing bytes from the old allocation (from 1308| | * chunk->requested_size to oldchksize) as they are marked NOACCESS. 1309| | * Make sure not to mark too many bytes in case chunk->requested_size 1310| | * < size < oldchksize. 1311| | */ 1312| |#ifdef USE_VALGRIND 1313| | if (Min(size, oldchksize) > chunk->requested_size) 1314| | VALGRIND_MAKE_MEM_UNDEFINED((char *) pointer + chunk->requested_size, 1315| | Min(size, oldchksize) - chunk->requested_size); 1316| |#endif 1317| |#endif 1318| | 1319| | chunk->requested_size = size; 1320| | /* set mark to catch clobber of "unused" space */ 1321| | Assert(size < chksize); 1322| | set_sentinel(pointer, size); 1323| |#else /* !MEMORY_CONTEXT_CHECKING */ 1324| | 1325| | /* 1326| | * We may need to adjust marking of bytes from the old allocation as 1327| | * some of them may be marked NOACCESS. We don't know how much of the 1328| | * old chunk size was the requested size; it could have been as small 1329| | * as one byte. We have to be conservative and just mark the entire 1330| | * old portion DEFINED. Make sure not to mark memory beyond the new 1331| | * allocation in case it's smaller than the old one. 1332| | */ 1333| 4.42k| VALGRIND_MAKE_MEM_DEFINED(pointer, Min(size, oldchksize)); ------------------ | | 26| 4.42k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 4.42k] | | ------------------ ------------------ 1334| 4.42k|#endif 1335| | 1336| | /* Ensure any padding bytes are marked NOACCESS. */ 1337| 4.42k| VALGRIND_MAKE_MEM_NOACCESS((char *) pointer + size, chksize - size); ------------------ | | 27| 4.42k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 4.42k] | | ------------------ ------------------ 1338| | 1339| | /* Disallow access to the chunk header . */ 1340| 4.42k| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 4.42k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 4.42k] | | ------------------ ------------------ 1341| | 1342| 4.42k| return pointer; 1343| 4.42k| } 1344| | 1345| 26.2k| block = MemoryChunkGetBlock(chunk); 1346| | 1347| | /* 1348| | * In this path, for speed reasons we just Assert that the referenced 1349| | * block is good. We can also Assert that the value field is sane. Future 1350| | * field experience may show that these Asserts had better become regular 1351| | * runtime test-and-elog checks. 1352| | */ 1353| 26.2k| Assert(AllocBlockIsValid(block)); ------------------ | | 844| 26.2k|#define Assert(condition) ((void)true) ------------------ 1354| 26.2k| set = block->aset; 1355| | 1356| 26.2k| fidx = MemoryChunkGetValue(chunk); 1357| 26.2k| Assert(FreeListIdxIsValid(fidx)); ------------------ | | 844| 26.2k|#define Assert(condition) ((void)true) ------------------ 1358| 26.2k| oldchksize = GetChunkSizeFromFreeListIdx(fidx); ------------------ | | 163| 26.2k| ((((Size) 1) << ALLOC_MINBITS) << (fidx)) | | ------------------ | | | | 105| 26.2k|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ 1359| | 1360| |#ifdef MEMORY_CONTEXT_CHECKING 1361| | /* See comments in AllocSetFree about uses of ERROR and WARNING here */ 1362| | /* Test for previously-freed chunk */ 1363| | if (unlikely(chunk->requested_size == InvalidAllocSize)) 1364| | elog(ERROR, "detected realloc of freed chunk in %s %p", 1365| | set->header.name, chunk); 1366| | /* Test for someone scribbling on unused space in chunk */ 1367| | if (chunk->requested_size < oldchksize) 1368| | if (!sentinel_ok(pointer, chunk->requested_size)) 1369| | elog(WARNING, "detected write past chunk end in %s %p", 1370| | set->header.name, chunk); 1371| |#endif 1372| | 1373| | /* 1374| | * Chunk sizes are aligned to power of 2 in AllocSetAlloc(). Maybe the 1375| | * allocated area already is >= the new size. (In particular, we will 1376| | * fall out here if the requested size is a decrease.) 1377| | */ 1378| 26.2k| if (oldchksize >= size) ------------------ | Branch (1378:6): [True: 0, False: 26.2k] ------------------ 1379| 0| { 1380| |#ifdef MEMORY_CONTEXT_CHECKING 1381| | Size oldrequest = chunk->requested_size; 1382| | 1383| |#ifdef RANDOMIZE_ALLOCATED_MEMORY 1384| | /* We can only fill the extra space if we know the prior request */ 1385| | if (size > oldrequest) 1386| | randomize_mem((char *) pointer + oldrequest, 1387| | size - oldrequest); 1388| |#endif 1389| | 1390| | chunk->requested_size = size; 1391| | 1392| | /* 1393| | * If this is an increase, mark any newly-available part UNDEFINED. 1394| | * Otherwise, mark the obsolete part NOACCESS. 1395| | */ 1396| | if (size > oldrequest) 1397| | VALGRIND_MAKE_MEM_UNDEFINED((char *) pointer + oldrequest, 1398| | size - oldrequest); 1399| | else 1400| | VALGRIND_MAKE_MEM_NOACCESS((char *) pointer + size, 1401| | oldchksize - size); 1402| | 1403| | /* set mark to catch clobber of "unused" space */ 1404| | if (size < oldchksize) 1405| | set_sentinel(pointer, size); 1406| |#else /* !MEMORY_CONTEXT_CHECKING */ 1407| | 1408| | /* 1409| | * We don't have the information to determine whether we're growing 1410| | * the old request or shrinking it, so we conservatively mark the 1411| | * entire new allocation DEFINED. 1412| | */ 1413| 0| VALGRIND_MAKE_MEM_NOACCESS(pointer, oldchksize); ------------------ | | 27| 0|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 0] | | ------------------ ------------------ 1414| 0| VALGRIND_MAKE_MEM_DEFINED(pointer, size); ------------------ | | 26| 0|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 0] | | ------------------ ------------------ 1415| 0|#endif 1416| | 1417| | /* Disallow access to the chunk header. */ 1418| 0| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 0|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 0] | | ------------------ ------------------ 1419| | 1420| 0| return pointer; 1421| 0| } 1422| 26.2k| else 1423| 26.2k| { 1424| | /* 1425| | * Enlarge-a-small-chunk case. We just do this by brute force, ie, 1426| | * allocate a new chunk and copy the data. Since we know the existing 1427| | * data isn't huge, this won't involve any great memcpy expense, so 1428| | * it's not worth being smarter. (At one time we tried to avoid 1429| | * memcpy when it was possible to enlarge the chunk in-place, but that 1430| | * turns out to misbehave unpleasantly for repeated cycles of 1431| | * palloc/repalloc/pfree: the eventually freed chunks go into the 1432| | * wrong freelist for the next initial palloc request, and so we leak 1433| | * memory indefinitely. See pgsql-hackers archives for 2007-08-11.) 1434| | */ 1435| 26.2k| AllocPointer newPointer; 1436| 26.2k| Size oldsize; 1437| | 1438| | /* allocate new chunk (this also checks size is valid) */ 1439| 26.2k| newPointer = AllocSetAlloc((MemoryContext) set, size, flags); 1440| | 1441| | /* leave immediately if request was not completed */ 1442| 26.2k| if (newPointer == NULL) ------------------ | Branch (1442:7): [True: 0, False: 26.2k] ------------------ 1443| 0| { 1444| | /* Disallow access to the chunk header. */ 1445| 0| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 0|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 0] | | ------------------ ------------------ 1446| 0| return MemoryContextAllocationFailure((MemoryContext) set, size, flags); 1447| 0| } 1448| | 1449| | /* 1450| | * AllocSetAlloc() may have returned a region that is still NOACCESS. 1451| | * Change it to UNDEFINED for the moment; memcpy() will then transfer 1452| | * definedness from the old allocation to the new. If we know the old 1453| | * allocation, copy just that much. Otherwise, make the entire old 1454| | * chunk defined to avoid errors as we copy the currently-NOACCESS 1455| | * trailing bytes. 1456| | */ 1457| 26.2k| VALGRIND_MAKE_MEM_UNDEFINED(newPointer, size); ------------------ | | 28| 26.2k|#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (28:65): [Folded, False: 26.2k] | | ------------------ ------------------ 1458| |#ifdef MEMORY_CONTEXT_CHECKING 1459| | oldsize = chunk->requested_size; 1460| |#else 1461| 26.2k| oldsize = oldchksize; 1462| 26.2k| VALGRIND_MAKE_MEM_DEFINED(pointer, oldsize); ------------------ | | 26| 26.2k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 26.2k] | | ------------------ ------------------ 1463| 26.2k|#endif 1464| | 1465| | /* transfer existing data (certain to fit) */ 1466| 26.2k| memcpy(newPointer, pointer, oldsize); 1467| | 1468| | /* free old chunk */ 1469| 26.2k| AllocSetFree(pointer); 1470| | 1471| 26.2k| return newPointer; 1472| 26.2k| } 1473| 26.2k|} AllocSetGetChunkContext: 1481| 13.9k|{ 1482| 13.9k| MemoryChunk *chunk = PointerGetMemoryChunk(pointer); ------------------ | | 136| 13.9k| ((MemoryChunk *) ((char *) (p) - sizeof(MemoryChunk))) ------------------ 1483| 13.9k| AllocBlock block; 1484| 13.9k| AllocSet set; 1485| | 1486| | /* Allow access to the chunk header. */ 1487| 13.9k| VALGRIND_MAKE_MEM_DEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 26| 13.9k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 13.9k] | | ------------------ ------------------ 1488| | 1489| 13.9k| if (MemoryChunkIsExternal(chunk)) ------------------ | Branch (1489:6): [True: 0, False: 13.9k] ------------------ 1490| 0| block = ExternalChunkGetBlock(chunk); ------------------ | | 238| 0| (AllocBlock) ((char *) chunk - ALLOC_BLOCKHDRSZ) | | ------------------ | | | | 126| 0|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | | | ------------------ | | | | | | 797| 0|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | | | ------------------ | | | | | | | | 791| 0| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 1491| 13.9k| else 1492| 13.9k| block = (AllocBlock) MemoryChunkGetBlock(chunk); 1493| | 1494| | /* Disallow access to the chunk header. */ 1495| 13.9k| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 13.9k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 13.9k] | | ------------------ ------------------ 1496| | 1497| 13.9k| Assert(AllocBlockIsValid(block)); ------------------ | | 844| 13.9k|#define Assert(condition) ((void)true) ------------------ 1498| 13.9k| set = block->aset; 1499| | 1500| 13.9k| return &set->header; 1501| 13.9k|} src_backend_utils_mmgr_aset.c:AllocSetAllocLarge: 720| 4.28k|{ 721| 4.28k| AllocSet set = (AllocSet) context; 722| 4.28k| AllocBlock block; 723| 4.28k| MemoryChunk *chunk; 724| 4.28k| Size chunk_size; 725| 4.28k| Size blksize; 726| | 727| | /* validate 'size' is within the limits for the given 'flags' */ 728| 4.28k| MemoryContextCheckSize(context, size, flags); 729| | 730| |#ifdef MEMORY_CONTEXT_CHECKING 731| | /* ensure there's always space for the sentinel byte */ 732| | chunk_size = MAXALIGN(size + 1); 733| |#else 734| 4.28k| chunk_size = MAXALIGN(size); ------------------ | | 797| 4.28k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | ------------------ | | | | 791| 4.28k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | ------------------ ------------------ 735| 4.28k|#endif 736| | 737| 4.28k| blksize = chunk_size + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 126| 4.28k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 4.28k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 4.28k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ blksize = chunk_size + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 127| 4.28k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 738| 4.28k| block = (AllocBlock) malloc(blksize); 739| 4.28k| if (block == NULL) ------------------ | Branch (739:6): [True: 0, False: 4.28k] ------------------ 740| 0| return MemoryContextAllocationFailure(context, size, flags); 741| | 742| 4.28k| context->mem_allocated += blksize; 743| | 744| 4.28k| block->aset = set; 745| 4.28k| block->freeptr = block->endptr = ((char *) block) + blksize; 746| | 747| 4.28k| chunk = (MemoryChunk *) (((char *) block) + ALLOC_BLOCKHDRSZ); ------------------ | | 126| 4.28k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 4.28k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 4.28k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 748| | 749| | /* mark the MemoryChunk as externally managed */ 750| 4.28k| MemoryChunkSetHdrMaskExternal(chunk, MCTX_ASET_ID); 751| | 752| |#ifdef MEMORY_CONTEXT_CHECKING 753| | chunk->requested_size = size; 754| | /* set mark to catch clobber of "unused" space */ 755| | Assert(size < chunk_size); 756| | set_sentinel(MemoryChunkGetPointer(chunk), size); 757| |#endif 758| |#ifdef RANDOMIZE_ALLOCATED_MEMORY 759| | /* fill the allocated space with junk */ 760| | randomize_mem((char *) MemoryChunkGetPointer(chunk), size); 761| |#endif 762| | 763| | /* 764| | * Stick the new block underneath the active allocation block, if any, so 765| | * that we don't lose the use of the space remaining therein. 766| | */ 767| 4.28k| if (set->blocks != NULL) ------------------ | Branch (767:6): [True: 4.28k, False: 0] ------------------ 768| 4.28k| { 769| 4.28k| block->prev = set->blocks; 770| 4.28k| block->next = set->blocks->next; 771| 4.28k| if (block->next) ------------------ | Branch (771:7): [True: 3.07k, False: 1.21k] ------------------ 772| 3.07k| block->next->prev = block; 773| 4.28k| set->blocks->next = block; 774| 4.28k| } 775| 0| else 776| 0| { 777| 0| block->prev = NULL; 778| 0| block->next = NULL; 779| 0| set->blocks = block; 780| 0| } 781| | 782| | /* Ensure any padding bytes are marked NOACCESS. */ 783| 4.28k| VALGRIND_MAKE_MEM_NOACCESS((char *) MemoryChunkGetPointer(chunk) + size, ------------------ | | 27| 4.28k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 4.28k] | | ------------------ ------------------ 784| 4.28k| chunk_size - size); 785| | 786| | /* Disallow access to the chunk header. */ 787| 4.28k| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 4.28k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 4.28k] | | ------------------ ------------------ 788| | 789| 4.28k| return MemoryChunkGetPointer(chunk); ------------------ | | 139| 4.28k| ((void *) ((char *) (c) + sizeof(MemoryChunk))) ------------------ 790| 4.28k|} src_backend_utils_mmgr_aset.c:AllocSetFreeIndex: 301| 63.8M|{ 302| 63.8M| int idx; 303| | 304| 63.8M| if (size > (1 << ALLOC_MINBITS)) ------------------ | | 105| 63.8M|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ ------------------ | Branch (304:6): [True: 47.8M, False: 15.9M] ------------------ 305| 47.8M| { 306| | /*---------- 307| | * At this point we must compute ceil(log2(size >> ALLOC_MINBITS)). 308| | * This is the same as 309| | * pg_leftmost_one_pos32((size - 1) >> ALLOC_MINBITS) + 1 310| | * or equivalently 311| | * pg_leftmost_one_pos32(size - 1) - ALLOC_MINBITS + 1 312| | * 313| | * However, for platforms without intrinsic support, we duplicate the 314| | * logic here, allowing an additional optimization. It's reasonable 315| | * to assume that ALLOC_CHUNK_LIMIT fits in 16 bits, so we can unroll 316| | * the byte-at-a-time loop in pg_leftmost_one_pos32 and just handle 317| | * the last two bytes. 318| | * 319| | * Yes, this function is enough of a hot-spot to make it worth this 320| | * much trouble. 321| | *---------- 322| | */ 323| 47.8M|#ifdef HAVE_BITSCAN_REVERSE 324| 47.8M| idx = pg_leftmost_one_pos32((uint32) size - 1) - ALLOC_MINBITS + 1; ------------------ | | 105| 47.8M|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ ------------------ 325| |#else 326| | uint32 t, 327| | tsize; 328| | 329| | /* Statically assert that we only have a 16-bit input value. */ 330| | StaticAssertDecl(ALLOC_CHUNK_LIMIT < (1 << 16), 331| | "ALLOC_CHUNK_LIMIT must be less than 64kB"); 332| | 333| | tsize = size - 1; 334| | t = tsize >> 8; 335| | idx = t ? pg_leftmost_one_pos[t] + 8 : pg_leftmost_one_pos[tsize]; 336| | idx -= ALLOC_MINBITS - 1; 337| |#endif 338| | 339| 47.8M| Assert(idx < ALLOCSET_NUM_FREELISTS); ------------------ | | 844| 47.8M|#define Assert(condition) ((void)true) ------------------ 340| 47.8M| } 341| 15.9M| else 342| 15.9M| idx = 0; 343| | 344| 63.8M| return idx; 345| 63.8M|} src_backend_utils_mmgr_aset.c:AllocSetAllocFromNewBlock: 844| 5.19k|{ 845| 5.19k| AllocSet set = (AllocSet) context; 846| 5.19k| AllocBlock block; 847| 5.19k| Size availspace; 848| 5.19k| Size blksize; 849| 5.19k| Size required_size; 850| 5.19k| Size chunk_size; 851| | 852| | /* due to the keeper block set->blocks should always be valid */ 853| 5.19k| Assert(set->blocks != NULL); ------------------ | | 844| 5.19k|#define Assert(condition) ((void)true) ------------------ 854| 5.19k| block = set->blocks; 855| 5.19k| availspace = block->endptr - block->freeptr; 856| | 857| | /* 858| | * The existing active (top) block does not have enough room for the 859| | * requested allocation, but it might still have a useful amount of space 860| | * in it. Once we push it down in the block list, we'll never try to 861| | * allocate more space from it. So, before we do that, carve up its free 862| | * space into chunks that we can put on the set's freelists. 863| | * 864| | * Because we can only get here when there's less than ALLOC_CHUNK_LIMIT 865| | * left in the block, this loop cannot iterate more than 866| | * ALLOCSET_NUM_FREELISTS-1 times. 867| | */ 868| 11.7k| while (availspace >= ((1 << ALLOC_MINBITS) + ALLOC_CHUNKHDRSZ)) ------------------ | | 105| 11.7k|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ ------------------ while (availspace >= ((1 << ALLOC_MINBITS) + ALLOC_CHUNKHDRSZ)) ------------------ | | 127| 11.7k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ | Branch (868:9): [True: 6.51k, False: 5.19k] ------------------ 869| 6.51k| { 870| 6.51k| AllocFreeListLink *link; 871| 6.51k| MemoryChunk *chunk; 872| 6.51k| Size availchunk = availspace - ALLOC_CHUNKHDRSZ; ------------------ | | 127| 6.51k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 873| 6.51k| int a_fidx = AllocSetFreeIndex(availchunk); 874| | 875| | /* 876| | * In most cases, we'll get back the index of the next larger freelist 877| | * than the one we need to put this chunk on. The exception is when 878| | * availchunk is exactly a power of 2. 879| | */ 880| 6.51k| if (availchunk != GetChunkSizeFromFreeListIdx(a_fidx)) ------------------ | | 163| 6.51k| ((((Size) 1) << ALLOC_MINBITS) << (fidx)) | | ------------------ | | | | 105| 6.51k|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ | Branch (880:7): [True: 4.11k, False: 2.40k] ------------------ 881| 4.11k| { 882| 4.11k| a_fidx--; 883| 4.11k| Assert(a_fidx >= 0); ------------------ | | 844| 4.11k|#define Assert(condition) ((void)true) ------------------ 884| 4.11k| availchunk = GetChunkSizeFromFreeListIdx(a_fidx); ------------------ | | 163| 4.11k| ((((Size) 1) << ALLOC_MINBITS) << (fidx)) | | ------------------ | | | | 105| 4.11k|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ 885| 4.11k| } 886| | 887| 6.51k| chunk = (MemoryChunk *) (block->freeptr); 888| | 889| | /* Prepare to initialize the chunk header. */ 890| 6.51k| VALGRIND_MAKE_MEM_UNDEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 28| 6.51k|#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (28:65): [Folded, False: 6.51k] | | ------------------ ------------------ 891| 6.51k| block->freeptr += (availchunk + ALLOC_CHUNKHDRSZ); ------------------ | | 127| 6.51k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 892| 6.51k| availspace -= (availchunk + ALLOC_CHUNKHDRSZ); ------------------ | | 127| 6.51k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 893| | 894| | /* store the freelist index in the value field */ 895| 6.51k| MemoryChunkSetHdrMask(chunk, block, a_fidx, MCTX_ASET_ID); 896| |#ifdef MEMORY_CONTEXT_CHECKING 897| | chunk->requested_size = InvalidAllocSize; /* mark it free */ 898| |#endif 899| | /* push this chunk onto the free list */ 900| 6.51k| link = GetFreeListLink(chunk); ------------------ | | 155| 6.51k| (AllocFreeListLink *) ((char *) (chkptr) + ALLOC_CHUNKHDRSZ) | | ------------------ | | | | 127| 6.51k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) | | ------------------ ------------------ 901| | 902| 6.51k| VALGRIND_MAKE_MEM_DEFINED(link, sizeof(AllocFreeListLink)); ------------------ | | 26| 6.51k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 6.51k] | | ------------------ ------------------ 903| 6.51k| link->next = set->freelist[a_fidx]; 904| 6.51k| VALGRIND_MAKE_MEM_NOACCESS(link, sizeof(AllocFreeListLink)); ------------------ | | 27| 6.51k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 6.51k] | | ------------------ ------------------ 905| | 906| 6.51k| set->freelist[a_fidx] = chunk; 907| 6.51k| } 908| | 909| | /* 910| | * The first such block has size initBlockSize, and we double the space in 911| | * each succeeding block, but not more than maxBlockSize. 912| | */ 913| 5.19k| blksize = set->nextBlockSize; 914| 5.19k| set->nextBlockSize <<= 1; 915| 5.19k| if (set->nextBlockSize > set->maxBlockSize) ------------------ | Branch (915:6): [True: 213, False: 4.98k] ------------------ 916| 213| set->nextBlockSize = set->maxBlockSize; 917| | 918| | /* Choose the actual chunk size to allocate */ 919| 5.19k| chunk_size = GetChunkSizeFromFreeListIdx(fidx); ------------------ | | 163| 5.19k| ((((Size) 1) << ALLOC_MINBITS) << (fidx)) | | ------------------ | | | | 105| 5.19k|#define ALLOC_MINBITS 3 /* smallest chunk size is 8 bytes */ | | ------------------ ------------------ 920| 5.19k| Assert(chunk_size >= size); ------------------ | | 844| 5.19k|#define Assert(condition) ((void)true) ------------------ 921| | 922| | /* 923| | * If initBlockSize is less than ALLOC_CHUNK_LIMIT, we could need more 924| | * space... but try to keep it a power of 2. 925| | */ 926| 5.19k| required_size = chunk_size + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 126| 5.19k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 5.19k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 5.19k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ required_size = chunk_size + ALLOC_BLOCKHDRSZ + ALLOC_CHUNKHDRSZ; ------------------ | | 127| 5.19k|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 927| 5.40k| while (blksize < required_size) ------------------ | Branch (927:9): [True: 209, False: 5.19k] ------------------ 928| 209| blksize <<= 1; 929| | 930| | /* Try to allocate it */ 931| 5.19k| block = (AllocBlock) malloc(blksize); 932| | 933| | /* 934| | * We could be asking for pretty big blocks here, so cope if malloc fails. 935| | * But give up if there's less than 1 MB or so available... 936| | */ 937| 5.19k| while (block == NULL && blksize > 1024 * 1024) ------------------ | Branch (937:9): [True: 0, False: 5.19k] | Branch (937:26): [True: 0, False: 0] ------------------ 938| 0| { 939| 0| blksize >>= 1; 940| 0| if (blksize < required_size) ------------------ | Branch (940:7): [True: 0, False: 0] ------------------ 941| 0| break; 942| 0| block = (AllocBlock) malloc(blksize); 943| 0| } 944| | 945| 5.19k| if (block == NULL) ------------------ | Branch (945:6): [True: 0, False: 5.19k] ------------------ 946| 0| return MemoryContextAllocationFailure(context, size, flags); 947| | 948| 5.19k| context->mem_allocated += blksize; 949| | 950| 5.19k| block->aset = set; 951| 5.19k| block->freeptr = ((char *) block) + ALLOC_BLOCKHDRSZ; ------------------ | | 126| 5.19k|#define ALLOC_BLOCKHDRSZ MAXALIGN(sizeof(AllocBlockData)) | | ------------------ | | | | 797| 5.19k|#define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN)) | | | | ------------------ | | | | | | 791| 5.19k| (((uintptr_t) (LEN) + ((ALIGNVAL) - 1)) & ~((uintptr_t) ((ALIGNVAL) - 1))) | | | | ------------------ | | ------------------ ------------------ 952| 5.19k| block->endptr = ((char *) block) + blksize; 953| | 954| | /* Mark unallocated space NOACCESS. */ 955| 5.19k| VALGRIND_MAKE_MEM_NOACCESS(block->freeptr, ------------------ | | 27| 5.19k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 5.19k] | | ------------------ ------------------ 956| 5.19k| blksize - ALLOC_BLOCKHDRSZ); 957| | 958| 5.19k| block->prev = NULL; 959| 5.19k| block->next = set->blocks; 960| 5.19k| if (block->next) ------------------ | Branch (960:6): [True: 5.19k, False: 0] ------------------ 961| 5.19k| block->next->prev = block; 962| 5.19k| set->blocks = block; 963| | 964| 5.19k| return AllocSetAllocChunkFromBlock(context, block, size, chunk_size, fidx); 965| 5.19k|} src_backend_utils_mmgr_aset.c:AllocSetAllocChunkFromBlock: 799| 63.8M|{ 800| 63.8M| MemoryChunk *chunk; 801| | 802| 63.8M| chunk = (MemoryChunk *) (block->freeptr); 803| | 804| | /* Prepare to initialize the chunk header. */ 805| 63.8M| VALGRIND_MAKE_MEM_UNDEFINED(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 28| 63.8M|#define VALGRIND_MAKE_MEM_UNDEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (28:65): [Folded, False: 63.8M] | | ------------------ ------------------ 806| | 807| 63.8M| block->freeptr += (chunk_size + ALLOC_CHUNKHDRSZ); ------------------ | | 127| 63.8M|#define ALLOC_CHUNKHDRSZ sizeof(MemoryChunk) ------------------ 808| 63.8M| Assert(block->freeptr <= block->endptr); ------------------ | | 844| 63.8M|#define Assert(condition) ((void)true) ------------------ 809| | 810| | /* store the free list index in the value field */ 811| 63.8M| MemoryChunkSetHdrMask(chunk, block, fidx, MCTX_ASET_ID); 812| | 813| |#ifdef MEMORY_CONTEXT_CHECKING 814| | chunk->requested_size = size; 815| | /* set mark to catch clobber of "unused" space */ 816| | if (size < chunk_size) 817| | set_sentinel(MemoryChunkGetPointer(chunk), size); 818| |#endif 819| |#ifdef RANDOMIZE_ALLOCATED_MEMORY 820| | /* fill the allocated space with junk */ 821| | randomize_mem((char *) MemoryChunkGetPointer(chunk), size); 822| |#endif 823| | 824| | /* Ensure any padding bytes are marked NOACCESS. */ 825| 63.8M| VALGRIND_MAKE_MEM_NOACCESS((char *) MemoryChunkGetPointer(chunk) + size, ------------------ | | 27| 63.8M|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 63.8M] | | ------------------ ------------------ 826| 63.8M| chunk_size - size); 827| | 828| | /* Disallow access to the chunk header. */ 829| 63.8M| VALGRIND_MAKE_MEM_NOACCESS(chunk, ALLOC_CHUNKHDRSZ); ------------------ | | 27| 63.8M|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 63.8M] | | ------------------ ------------------ 830| | 831| 63.8M| return MemoryChunkGetPointer(chunk); ------------------ | | 139| 63.8M| ((void *) ((char *) (c) + sizeof(MemoryChunk))) ------------------ 832| 63.8M|} MemoryContextInit: 400| 1|{ 401| 1| Assert(TopMemoryContext == NULL); ------------------ | | 844| 1|#define Assert(condition) ((void)true) ------------------ 402| | 403| | /* 404| | * First, initialize TopMemoryContext, which is the parent of all others. 405| | */ 406| 1| TopMemoryContext = AllocSetContextCreate((MemoryContext) NULL, ------------------ | | 126| 1| (StaticAssertExpr(__builtin_constant_p(name), \ | | ------------------ | | | | 927| 1| StaticAssertStmt(condition, errmessage) | | | | ------------------ | | | | | | 925| 1| ((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; })) | | | | ------------------ | | ------------------ | | 127| 1| "memory context names must be constant strings"), \ | | 128| 1| AllocSetContextCreateInternal(parent, name, __VA_ARGS__)) ------------------ 407| 1| "TopMemoryContext", 408| 1| ALLOCSET_DEFAULT_SIZES); 409| | 410| | /* 411| | * Not having any other place to point CurrentMemoryContext, make it point 412| | * to TopMemoryContext. Caller should change this soon! 413| | */ 414| 1| CurrentMemoryContext = TopMemoryContext; 415| | 416| | /* 417| | * Initialize ErrorContext as an AllocSetContext with slow growth rate --- 418| | * we don't really expect much to be allocated in it. More to the point, 419| | * require it to contain at least 8K at all times. This is the only case 420| | * where retained memory in a context is *essential* --- we want to be 421| | * sure ErrorContext still has some memory even if we've run out 422| | * elsewhere! Also, allow allocations in ErrorContext within a critical 423| | * section. Otherwise a PANIC will cause an assertion failure in the error 424| | * reporting code, before printing out the real cause of the failure. 425| | * 426| | * This should be the last step in this function, as elog.c assumes memory 427| | * management works once ErrorContext is non-null. 428| | */ 429| 1| ErrorContext = AllocSetContextCreate(TopMemoryContext, ------------------ | | 126| 1| (StaticAssertExpr(__builtin_constant_p(name), \ | | ------------------ | | | | 927| 1| StaticAssertStmt(condition, errmessage) | | | | ------------------ | | | | | | 925| 1| ((void) sizeof(struct { int static_assert_failure : (condition) ? 1 : -1; })) | | | | ------------------ | | ------------------ | | 127| 1| "memory context names must be constant strings"), \ | | 128| 1| AllocSetContextCreateInternal(parent, name, __VA_ARGS__)) ------------------ 430| 1| "ErrorContext", 431| 1| 8 * 1024, 432| 1| 8 * 1024, 433| 1| 8 * 1024); 434| | MemoryContextAllowInCriticalSection(ErrorContext, true); 435| 1|} MemoryContextReset: 444| 590|{ 445| 590| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 590|#define Assert(condition) ((void)true) ------------------ 446| | 447| | /* save a function call in common case where there are no children */ 448| 590| if (context->firstchild != NULL) ------------------ | Branch (448:6): [True: 0, False: 590] ------------------ 449| 0| MemoryContextDeleteChildren(context); 450| | 451| | /* save a function call if no pallocs since startup or last reset */ 452| 590| if (!context->isReset) ------------------ | Branch (452:6): [True: 590, False: 0] ------------------ 453| 590| MemoryContextResetOnly(context); 454| 590|} MemoryContextResetOnly: 463| 1.66k|{ 464| 1.66k| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1.66k|#define Assert(condition) ((void)true) ------------------ 465| | 466| | /* Nothing to do if no pallocs since startup or last reset */ 467| 1.66k| if (!context->isReset) ------------------ | Branch (467:6): [True: 1.66k, False: 0] ------------------ 468| 1.66k| { 469| 1.66k| MemoryContextCallResetCallbacks(context); 470| | 471| | /* 472| | * If context->ident points into the context's memory, it will become 473| | * a dangling pointer. We could prevent that by setting it to NULL 474| | * here, but that would break valid coding patterns that keep the 475| | * ident elsewhere, e.g. in a parent context. So for now we assume 476| | * the programmer got it right. 477| | */ 478| | 479| 1.66k| context->methods->reset(context); 480| 1.66k| context->isReset = true; 481| 1.66k| VALGRIND_DESTROY_MEMPOOL(context); ------------------ | | 25| 1.66k|#define VALGRIND_DESTROY_MEMPOOL(context) do {} while (0) | | ------------------ | | | Branch (25:60): [Folded, False: 1.66k] | | ------------------ ------------------ 482| 1.66k| VALGRIND_CREATE_MEMPOOL(context, 0, false); ------------------ | | 24| 1.66k|#define VALGRIND_CREATE_MEMPOOL(context, redzones, zeroed) do {} while (0) | | ------------------ | | | Branch (24:73): [Folded, False: 1.66k] | | ------------------ ------------------ 483| 1.66k| } 484| 1.66k|} MemoryContextDelete: 504| 1.07k|{ 505| 1.07k| MemoryContext curr; 506| | 507| 1.07k| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 508| | 509| | /* 510| | * Delete subcontexts from the bottom up. 511| | * 512| | * Note: Do not use recursion here. A "stack depth limit exceeded" error 513| | * would be unpleasant if we're already in the process of cleaning up from 514| | * transaction abort. We also cannot use MemoryContextTraverseNext() here 515| | * because we modify the tree as we go. 516| | */ 517| 1.07k| curr = context; 518| 1.07k| for (;;) 519| 1.07k| { 520| 1.07k| MemoryContext parent; 521| | 522| | /* Descend down until we find a leaf context with no children */ 523| 1.07k| while (curr->firstchild != NULL) ------------------ | Branch (523:10): [True: 0, False: 1.07k] ------------------ 524| 0| curr = curr->firstchild; 525| | 526| | /* 527| | * We're now at a leaf with no children. Free it and continue from the 528| | * parent. Or if this was the original node, we're all done. 529| | */ 530| 1.07k| parent = curr->parent; 531| 1.07k| MemoryContextDeleteOnly(curr); 532| | 533| 1.07k| if (curr == context) ------------------ | Branch (533:7): [True: 1.07k, False: 0] ------------------ 534| 1.07k| break; 535| 0| curr = parent; 536| 0| } 537| 1.07k|} MemoryContextSetParent: 676| 1.07k|{ 677| 1.07k| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 678| 1.07k| Assert(context != new_parent); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 679| | 680| | /* Fast path if it's got correct parent already */ 681| 1.07k| if (new_parent == context->parent) ------------------ | Branch (681:6): [True: 0, False: 1.07k] ------------------ 682| 0| return; 683| | 684| | /* Delink from existing parent, if any */ 685| 1.07k| if (context->parent) ------------------ | Branch (685:6): [True: 1.07k, False: 0] ------------------ 686| 1.07k| { 687| 1.07k| MemoryContext parent = context->parent; 688| | 689| 1.07k| if (context->prevchild != NULL) ------------------ | Branch (689:7): [True: 0, False: 1.07k] ------------------ 690| 0| context->prevchild->nextchild = context->nextchild; 691| 1.07k| else 692| 1.07k| { 693| 1.07k| Assert(parent->firstchild == context); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 694| 1.07k| parent->firstchild = context->nextchild; 695| 1.07k| } 696| | 697| 1.07k| if (context->nextchild != NULL) ------------------ | Branch (697:7): [True: 1.07k, False: 0] ------------------ 698| 1.07k| context->nextchild->prevchild = context->prevchild; 699| 1.07k| } 700| | 701| | /* And relink */ 702| 1.07k| if (new_parent) ------------------ | Branch (702:6): [True: 0, False: 1.07k] ------------------ 703| 0| { 704| 0| Assert(MemoryContextIsValid(new_parent)); ------------------ | | 844| 0|#define Assert(condition) ((void)true) ------------------ 705| 0| context->parent = new_parent; 706| 0| context->prevchild = NULL; 707| 0| context->nextchild = new_parent->firstchild; 708| 0| if (new_parent->firstchild != NULL) ------------------ | Branch (708:7): [True: 0, False: 0] ------------------ 709| 0| new_parent->firstchild->prevchild = context; 710| 0| new_parent->firstchild = context; 711| 0| } 712| 1.07k| else 713| 1.07k| { 714| 1.07k| context->parent = NULL; 715| 1.07k| context->prevchild = NULL; 716| | context->nextchild = NULL; 717| 1.07k| } 718| 1.07k|} MemoryContextAllowInCriticalSection: 733| 1|{ 734| 1| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1|#define Assert(condition) ((void)true) ------------------ 735| | 736| 1| context->allowInCritSection = allow; 737| 1|} GetMemoryChunkContext: 746| 13.9k|{ 747| 13.9k| return MCXT_METHOD(pointer, get_chunk_context) (pointer); ------------------ | | 243| 13.9k| mcxt_methods[GetMemoryChunkMethodID(pointer)].method ------------------ 748| 13.9k|} MemoryContextCreate: 1075| 1.08k|{ 1076| | /* Creating new memory contexts is not allowed in a critical section */ 1077| 1.08k| Assert(CritSectionCount == 0); ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 1078| | 1079| | /* Validate parent, to help prevent crazy context linkages */ 1080| 1.08k| Assert(parent == NULL || MemoryContextIsValid(parent)); ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 1081| 1.08k| Assert(node != parent); ------------------ | | 844| 1.08k|#define Assert(condition) ((void)true) ------------------ 1082| | 1083| | /* Initialize all standard fields of memory context header */ 1084| 1.08k| node->type = tag; 1085| 1.08k| node->isReset = true; 1086| 1.08k| node->methods = &mcxt_methods[method_id]; 1087| 1.08k| node->parent = parent; 1088| 1.08k| node->firstchild = NULL; 1089| 1.08k| node->mem_allocated = 0; 1090| 1.08k| node->prevchild = NULL; 1091| 1.08k| node->name = name; 1092| 1.08k| node->ident = NULL; 1093| 1.08k| node->reset_cbs = NULL; 1094| | 1095| | /* OK to link node into context tree */ 1096| 1.08k| if (parent) ------------------ | Branch (1096:6): [True: 1.07k, False: 1] ------------------ 1097| 1.07k| { 1098| 1.07k| node->nextchild = parent->firstchild; 1099| 1.07k| if (parent->firstchild != NULL) ------------------ | Branch (1099:7): [True: 1.07k, False: 1] ------------------ 1100| 1.07k| parent->firstchild->prevchild = node; 1101| 1.07k| parent->firstchild = node; 1102| | /* inherit allowInCritSection flag from parent */ 1103| 1.07k| node->allowInCritSection = parent->allowInCritSection; 1104| 1.07k| } 1105| 1| else 1106| 1| { 1107| 1| node->nextchild = NULL; 1108| 1| node->allowInCritSection = false; 1109| 1| } 1110| | 1111| 1.08k| VALGRIND_CREATE_MEMPOOL(node, 0, false); ------------------ | | 24| 1.08k|#define VALGRIND_CREATE_MEMPOOL(context, redzones, zeroed) do {} while (0) | | ------------------ | | | Branch (24:73): [Folded, False: 1.08k] | | ------------------ ------------------ 1112| 1.08k|} MemoryContextAlloc: 1156| 1.20M|{ 1157| 1.20M| void *ret; 1158| | 1159| 1.20M| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1.20M|#define Assert(condition) ((void)true) ------------------ 1160| 1.20M| AssertNotInCriticalSection(context); ------------------ | | 236| 1.20M| Assert(CritSectionCount == 0 || (context)->allowInCritSection) | | ------------------ | | | | 844| 1.20M|#define Assert(condition) ((void)true) | | ------------------ ------------------ 1161| | 1162| 1.20M| context->isReset = false; 1163| | 1164| | /* 1165| | * For efficiency reasons, we purposefully offload the handling of 1166| | * allocation failures to the MemoryContextMethods implementation as this 1167| | * allows these checks to be performed only when an actual malloc needs to 1168| | * be done to request more memory from the OS. Additionally, not having 1169| | * to execute any instructions after this call allows the compiler to use 1170| | * the sibling call optimization. If you're considering adding code after 1171| | * this call, consider making it the responsibility of the 'alloc' 1172| | * function instead. 1173| | */ 1174| 1.20M| ret = context->methods->alloc(context, size, 0); 1175| | 1176| 1.20M| VALGRIND_MEMPOOL_ALLOC(context, ret, size); ------------------ | | 29| 1.20M|#define VALGRIND_MEMPOOL_ALLOC(context, addr, size) do {} while (0) | | ------------------ | | | Branch (29:68): [Folded, False: 1.20M] | | ------------------ ------------------ 1177| | 1178| 1.20M| return ret; 1179| 1.20M|} palloc: 1260| 25.1M|{ 1261| | /* duplicates MemoryContextAlloc to avoid increased overhead */ 1262| 25.1M| void *ret; 1263| 25.1M| MemoryContext context = CurrentMemoryContext; 1264| | 1265| 25.1M| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 25.1M|#define Assert(condition) ((void)true) ------------------ 1266| 25.1M| AssertNotInCriticalSection(context); ------------------ | | 236| 25.1M| Assert(CritSectionCount == 0 || (context)->allowInCritSection) | | ------------------ | | | | 844| 25.1M|#define Assert(condition) ((void)true) | | ------------------ ------------------ 1267| | 1268| 25.1M| context->isReset = false; 1269| | 1270| | /* 1271| | * For efficiency reasons, we purposefully offload the handling of 1272| | * allocation failures to the MemoryContextMethods implementation as this 1273| | * allows these checks to be performed only when an actual malloc needs to 1274| | * be done to request more memory from the OS. Additionally, not having 1275| | * to execute any instructions after this call allows the compiler to use 1276| | * the sibling call optimization. If you're considering adding code after 1277| | * this call, consider making it the responsibility of the 'alloc' 1278| | * function instead. 1279| | */ 1280| 25.1M| ret = context->methods->alloc(context, size, 0); 1281| | /* We expect OOM to be handled by the alloc function */ 1282| 25.1M| Assert(ret != NULL); ------------------ | | 844| 25.1M|#define Assert(condition) ((void)true) ------------------ 1283| 25.1M| VALGRIND_MEMPOOL_ALLOC(context, ret, size); ------------------ | | 29| 25.1M|#define VALGRIND_MEMPOOL_ALLOC(context, addr, size) do {} while (0) | | ------------------ | | | Branch (29:68): [Folded, False: 25.1M] | | ------------------ ------------------ 1284| | 1285| 25.1M| return ret; 1286| 25.1M|} palloc0: 1290| 37.4M|{ 1291| | /* duplicates MemoryContextAllocZero to avoid increased overhead */ 1292| 37.4M| void *ret; 1293| 37.4M| MemoryContext context = CurrentMemoryContext; 1294| | 1295| 37.4M| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 37.4M|#define Assert(condition) ((void)true) ------------------ 1296| 37.4M| AssertNotInCriticalSection(context); ------------------ | | 236| 37.4M| Assert(CritSectionCount == 0 || (context)->allowInCritSection) | | ------------------ | | | | 844| 37.4M|#define Assert(condition) ((void)true) | | ------------------ ------------------ 1297| | 1298| 37.4M| context->isReset = false; 1299| | 1300| 37.4M| ret = context->methods->alloc(context, size, 0); 1301| | /* We expect OOM to be handled by the alloc function */ 1302| 37.4M| Assert(ret != NULL); ------------------ | | 844| 37.4M|#define Assert(condition) ((void)true) ------------------ 1303| 37.4M| VALGRIND_MEMPOOL_ALLOC(context, ret, size); ------------------ | | 29| 37.4M|#define VALGRIND_MEMPOOL_ALLOC(context, addr, size) do {} while (0) | | ------------------ | | | Branch (29:68): [Folded, False: 37.4M] | | ------------------ ------------------ 1304| | 1305| 37.4M| MemSetAligned(ret, 0, size); ------------------ | | 1040| 37.4M| do \ | | 1041| 37.4M| { \ | | 1042| 37.4M| long *_start = (long *) (start); \ | | 1043| 37.4M| int _val = (val); \ | | 1044| 37.4M| Size _len = (len); \ | | 1045| 37.4M|\ | | 1046| 37.4M| if ((_len & LONG_ALIGN_MASK) == 0 && \ | | ------------------ | | | | 994| 37.4M|#define LONG_ALIGN_MASK (sizeof(long) - 1) | | ------------------ | | | Branch (1046:7): [True: 37.2M, False: 220k] | | ------------------ | | 1047| 37.4M| _val == 0 && \ | | ------------------ | | | Branch (1047:4): [True: 37.2M, False: 0] | | ------------------ | | 1048| 37.4M| _len <= MEMSET_LOOP_LIMIT && \ | | ------------------ | | | | 573| 74.7M|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1048:4): [True: 37.2M, False: 0] | | ------------------ | | 1049| 37.4M| MEMSET_LOOP_LIMIT != 0) \ | | ------------------ | | | | 573| 0|#define MEMSET_LOOP_LIMIT 1024 | | ------------------ | | | Branch (1049:4): [True: 0, Folded] | | ------------------ | | 1050| 37.4M| { \ | | 1051| 37.2M| long *_stop = (long *) ((char *) _start + _len); \ | | 1052| 184M| while (_start < _stop) \ | | ------------------ | | | Branch (1052:11): [True: 147M, False: 37.2M] | | ------------------ | | 1053| 147M| *_start++ = 0; \ | | 1054| 37.2M| } \ | | 1055| 37.4M| else \ | | 1056| 37.4M| memset(_start, _val, _len); \ | | 1057| 37.4M| } while (0) | | ------------------ | | | Branch (1057:11): [Folded, False: 37.4M] | | ------------------ ------------------ 1306| | 1307| 37.4M| return ret; 1308| 37.4M|} pfree: 1444| 3.55k|{ 1445| |#ifdef USE_VALGRIND 1446| | MemoryContextMethodID method = GetMemoryChunkMethodID(pointer); 1447| | MemoryContext context = GetMemoryChunkContext(pointer); 1448| |#endif 1449| | 1450| 3.55k| MCXT_METHOD(pointer, free_p) (pointer); ------------------ | | 243| 3.55k| mcxt_methods[GetMemoryChunkMethodID(pointer)].method ------------------ 1451| | 1452| |#ifdef USE_VALGRIND 1453| | if (method != MCTX_ALIGNED_REDIRECT_ID) 1454| | VALGRIND_MEMPOOL_FREE(context, pointer); 1455| |#endif 1456| 3.55k|} repalloc: 1464| 30.6k|{ 1465| |#ifdef USE_VALGRIND 1466| | MemoryContextMethodID method = GetMemoryChunkMethodID(pointer); 1467| |#endif 1468| |#if defined(USE_ASSERT_CHECKING) || defined(USE_VALGRIND) 1469| | MemoryContext context = GetMemoryChunkContext(pointer); 1470| |#endif 1471| 30.6k| void *ret; 1472| | 1473| 30.6k| AssertNotInCriticalSection(context); ------------------ | | 236| 30.6k| Assert(CritSectionCount == 0 || (context)->allowInCritSection) | | ------------------ | | | | 844| 30.6k|#define Assert(condition) ((void)true) | | ------------------ ------------------ 1474| | 1475| | /* isReset must be false already */ 1476| 30.6k| Assert(!context->isReset); ------------------ | | 844| 30.6k|#define Assert(condition) ((void)true) ------------------ 1477| | 1478| | /* 1479| | * For efficiency reasons, we purposefully offload the handling of 1480| | * allocation failures to the MemoryContextMethods implementation as this 1481| | * allows these checks to be performed only when an actual malloc needs to 1482| | * be done to request more memory from the OS. Additionally, not having 1483| | * to execute any instructions after this call allows the compiler to use 1484| | * the sibling call optimization. If you're considering adding code after 1485| | * this call, consider making it the responsibility of the 'realloc' 1486| | * function instead. 1487| | */ 1488| 30.6k| ret = MCXT_METHOD(pointer, realloc) (pointer, size, 0); ------------------ | | 243| 30.6k| mcxt_methods[GetMemoryChunkMethodID(pointer)].method ------------------ 1489| | 1490| |#ifdef USE_VALGRIND 1491| | if (method != MCTX_ALIGNED_REDIRECT_ID) 1492| | VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size); 1493| |#endif 1494| | 1495| 30.6k| return ret; 1496| 30.6k|} MemoryContextStrdup: 1585| 1.18M|{ 1586| 1.18M| char *nstr; 1587| 1.18M| Size len = strlen(string) + 1; 1588| | 1589| 1.18M| nstr = (char *) MemoryContextAlloc(context, len); 1590| | 1591| 1.18M| memcpy(nstr, string, len); 1592| | 1593| 1.18M| return nstr; 1594| 1.18M|} pstrdup: 1598| 1.18M|{ 1599| 1.18M| return MemoryContextStrdup(CurrentMemoryContext, in); 1600| 1.18M|} src_backend_utils_mmgr_mcxt.c:MemoryContextDeleteOnly: 546| 1.07k|{ 547| 1.07k| Assert(MemoryContextIsValid(context)); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 548| | /* We had better not be deleting TopMemoryContext ... */ 549| 1.07k| Assert(context != TopMemoryContext); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 550| | /* And not CurrentMemoryContext, either */ 551| 1.07k| Assert(context != CurrentMemoryContext); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 552| | /* All the children should've been deleted already */ 553| 1.07k| Assert(context->firstchild == NULL); ------------------ | | 844| 1.07k|#define Assert(condition) ((void)true) ------------------ 554| | 555| | /* 556| | * It's not entirely clear whether 'tis better to do this before or after 557| | * delinking the context; but an error in a callback will likely result in 558| | * leaking the whole context (if it's not a root context) if we do it 559| | * after, so let's do it before. 560| | */ 561| 1.07k| MemoryContextCallResetCallbacks(context); 562| | 563| | /* 564| | * We delink the context from its parent before deleting it, so that if 565| | * there's an error we won't have deleted/busted contexts still attached 566| | * to the context tree. Better a leak than a crash. 567| | */ 568| 1.07k| MemoryContextSetParent(context, NULL); 569| | 570| | /* 571| | * Also reset the context's ident pointer, in case it points into the 572| | * context. This would only matter if someone tries to get stats on the 573| | * (already unlinked) context, which is unlikely, but let's be safe. 574| | */ 575| 1.07k| context->ident = NULL; 576| | 577| 1.07k| context->methods->delete_context(context); 578| | 579| 1.07k| VALGRIND_DESTROY_MEMPOOL(context); ------------------ | | 25| 1.07k|#define VALGRIND_DESTROY_MEMPOOL(context) do {} while (0) | | ------------------ | | | Branch (25:60): [Folded, False: 1.07k] | | ------------------ ------------------ 580| 1.07k|} src_backend_utils_mmgr_mcxt.c:MemoryContextCallResetCallbacks: 624| 2.74k|{ 625| 2.74k| MemoryContextCallback *cb; 626| | 627| | /* 628| | * We pop each callback from the list before calling. That way, if an 629| | * error occurs inside the callback, we won't try to call it a second time 630| | * in the likely event that we reset or delete the context later. 631| | */ 632| 2.74k| while ((cb = context->reset_cbs) != NULL) ------------------ | Branch (632:9): [True: 0, False: 2.74k] ------------------ 633| 0| { 634| 0| context->reset_cbs = cb->next; 635| 0| cb->func(cb->arg); 636| 0| } 637| 2.74k|} src_backend_utils_mmgr_mcxt.c:GetMemoryChunkMethodID: 252| 48.1k|{ 253| 48.1k| uint64 header; 254| | 255| | /* 256| | * Try to detect bogus pointers handed to us, poorly though we can. 257| | * Presumably, a pointer that isn't MAXALIGNED isn't pointing at an 258| | * allocated chunk. 259| | */ 260| 48.1k| Assert(pointer == (const void *) MAXALIGN(pointer)); ------------------ | | 844| 48.1k|#define Assert(condition) ((void)true) ------------------ 261| | 262| | /* Allow access to the uint64 header */ 263| 48.1k| VALGRIND_MAKE_MEM_DEFINED((char *) pointer - sizeof(uint64), sizeof(uint64)); ------------------ | | 26| 48.1k|#define VALGRIND_MAKE_MEM_DEFINED(addr, size) do {} while (0) | | ------------------ | | | Branch (26:63): [Folded, False: 48.1k] | | ------------------ ------------------ 264| | 265| 48.1k| header = *((const uint64 *) ((const char *) pointer - sizeof(uint64))); 266| | 267| | /* Disallow access to the uint64 header */ 268| 48.1k| VALGRIND_MAKE_MEM_NOACCESS((char *) pointer - sizeof(uint64), sizeof(uint64)); ------------------ | | 27| 48.1k|#define VALGRIND_MAKE_MEM_NOACCESS(addr, size) do {} while (0) | | ------------------ | | | Branch (27:64): [Folded, False: 48.1k] | | ------------------ ------------------ 269| | 270| 48.1k| return (MemoryContextMethodID) (header & MEMORY_CONTEXT_METHODID_MASK); ------------------ | | 147| 48.1k| ((((uint64) 1) << MEMORY_CONTEXT_METHODID_BITS) - 1) | | ------------------ | | | | 145| 48.1k|#define MEMORY_CONTEXT_METHODID_BITS 4 | | ------------------ ------------------ 271| 48.1k|} ScanKeywordLookup: 46| 15.9M|{ 47| 15.9M| size_t len; 48| 15.9M| int h; 49| 15.9M| const char *kw; 50| | 51| | /* 52| | * Reject immediately if too long to be any keyword. This saves useless 53| | * hashing and downcasing work on long strings. 54| | */ 55| 15.9M| len = strlen(str); 56| 15.9M| if (len > keywords->max_kw_len) ------------------ | Branch (56:6): [True: 205k, False: 15.7M] ------------------ 57| 205k| return -1; 58| | 59| | /* 60| | * Compute the hash function. We assume it was generated to produce 61| | * case-insensitive results. Since it's a perfect hash, we need only 62| | * match to the specific keyword it identifies. 63| | */ 64| 15.7M| h = keywords->hash(str, len); 65| | 66| | /* An out-of-range result implies no match */ 67| 15.7M| if (h < 0 || h >= keywords->num_keywords) ------------------ | Branch (67:6): [True: 174k, False: 15.5M] | Branch (67:15): [True: 9.27M, False: 6.26M] ------------------ 68| 9.45M| return -1; 69| | 70| | /* 71| | * Compare character-by-character to see if we have a match, applying an 72| | * ASCII-only downcasing to the input characters. We must not use 73| | * tolower() since it may produce the wrong translation in some locales 74| | * (eg, Turkish). 75| | */ 76| 6.26M| kw = GetScanKeyword(h, keywords); 77| 11.1M| while (*str != '\0') ------------------ | Branch (77:9): [True: 10.4M, False: 659k] ------------------ 78| 10.4M| { 79| 10.4M| char ch = *str++; 80| | 81| 10.4M| if (ch >= 'A' && ch <= 'Z') ------------------ | Branch (81:7): [True: 9.48M, False: 999k] | Branch (81:20): [True: 8.05M, False: 1.43M] ------------------ 82| 8.05M| ch += 'a' - 'A'; 83| 10.4M| if (ch != *kw++) ------------------ | Branch (83:7): [True: 5.60M, False: 4.88M] ------------------ 84| 5.60M| return -1; 85| 10.4M| } 86| 659k| if (*kw != '\0') ------------------ | Branch (86:6): [True: 8.47k, False: 651k] ------------------ 87| 8.47k| return -1; 88| | 89| | /* Success! */ 90| 651k| return h; 91| 659k|} psprintf: 51| 1.36k|{ 52| 1.36k| int save_errno = errno; 53| 1.36k| size_t len = 128; /* initial assumption about buffer size */ 54| | 55| 1.36k| for (;;) 56| 2.64k| { 57| 2.64k| char *result; 58| 2.64k| va_list args; 59| 2.64k| size_t newlen; 60| | 61| | /* 62| | * Allocate result buffer. Note that in frontend this maps to malloc 63| | * with exit-on-error. 64| | */ 65| 2.64k| result = (char *) palloc(len); 66| | 67| | /* Try to format the data. */ 68| 2.64k| errno = save_errno; 69| 2.64k| va_start(args, fmt); 70| 2.64k| newlen = pvsnprintf(result, len, fmt, args); 71| 2.64k| va_end(args); 72| | 73| 2.64k| if (newlen < len) ------------------ | Branch (73:7): [True: 1.36k, False: 1.28k] ------------------ 74| 1.36k| return result; /* success */ 75| | 76| | /* Release buffer and loop around to try again with larger len. */ 77| 1.28k| pfree(result); 78| 1.28k| len = newlen; 79| 1.28k| } 80| 1.36k|} pvsnprintf: 111| 292M|{ 112| 292M| int nprinted; 113| | 114| 292M| nprinted = vsnprintf(buf, len, fmt, args); ------------------ | | 239| 292M|#define vsnprintf pg_vsnprintf ------------------ 115| | 116| | /* We assume failure means the fmt is bogus, hence hard failure is OK */ 117| 292M| if (unlikely(nprinted < 0)) ------------------ | | 361| 292M|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 292M] | | ------------------ ------------------ 118| 0| { 119| 0|#ifndef FRONTEND 120| 0| elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt); ------------------ | | 240| 0| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 121| |#else 122| | fprintf(stderr, "vsnprintf failed: %m with format string \"%s\"\n", 123| | fmt); 124| | exit(EXIT_FAILURE); 125| |#endif 126| 0| } 127| | 128| 292M| if ((size_t) nprinted < len) ------------------ | Branch (128:6): [True: 292M, False: 1.87k] ------------------ 129| 292M| { 130| | /* Success. Note nprinted does not include trailing null. */ 131| 292M| return (size_t) nprinted; 132| 292M| } 133| | 134| | /* 135| | * We assume a C99-compliant vsnprintf, so believe its estimate of the 136| | * required space, and add one for the trailing null. (If it's wrong, the 137| | * logic will still work, but we may loop multiple times.) 138| | * 139| | * Choke if the required space would exceed MaxAllocSize. Note we use 140| | * this palloc-oriented overflow limit even when in frontend. 141| | */ 142| 1.87k| if (unlikely((size_t) nprinted > MaxAllocSize - 1)) ------------------ | | 361| 1.87k|#define unlikely(x) __builtin_expect((x) != 0, 0) | | ------------------ | | | Branch (361:21): [True: 0, False: 1.87k] | | ------------------ ------------------ 143| 0| { 144| 0|#ifndef FRONTEND 145| 0| ereport(ERROR, ------------------ | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 0| do { \ | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 0, Folded] | | | | | Branch (144:7): [True: 0, False: 0] | | | | | Branch (144:39): [True: 0, Folded] | | | | ------------------ | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | 146| 0| errstart(elevel, domain)) \ | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 0| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 0| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 0] | | | | ------------------ | | ------------------ ------------------ 146| 0| (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), 147| 0| errmsg("out of memory"))); 148| |#else 149| | fprintf(stderr, _("out of memory\n")); 150| | exit(EXIT_FAILURE); 151| |#endif 152| 0| } 153| | 154| 1.87k| return nprinted + 1; 155| 1.87k|} initStringInfo: 112| 6.66k|{ 113| 6.66k| initStringInfoInternal(str, STRINGINFO_DEFAULT_SIZE); ------------------ | | 112| 6.66k|#define STRINGINFO_DEFAULT_SIZE 1024 /* default initial allocation size */ ------------------ 114| 6.66k|} resetStringInfo: 137| 6.66k|{ 138| | /* don't allow resets of read-only StringInfos */ 139| 6.66k| Assert(str->maxlen != 0); ------------------ | | 844| 6.66k|#define Assert(condition) ((void)true) ------------------ 140| | 141| 6.66k| str->data[0] = '\0'; 142| 6.66k| str->len = 0; 143| 6.66k| str->cursor = 0; 144| 6.66k|} appendStringInfo: 156| 292M|{ 157| 292M| int save_errno = errno; 158| | 159| 292M| for (;;) 160| 292M| { 161| 292M| va_list args; 162| 292M| int needed; 163| | 164| | /* Try to format the data. */ 165| 292M| errno = save_errno; 166| 292M| va_start(args, fmt); 167| 292M| needed = appendStringInfoVA(str, fmt, args); 168| 292M| va_end(args); 169| | 170| 292M| if (needed == 0) ------------------ | Branch (170:7): [True: 292M, False: 4.17k] ------------------ 171| 292M| break; /* success */ 172| | 173| | /* Increase the buffer size and try again. */ 174| 4.17k| enlargeStringInfo(str, needed); 175| 4.17k| } 176| 292M|} appendStringInfoVA: 198| 292M|{ 199| 292M| int avail; 200| 292M| size_t nprinted; 201| | 202| 292M| Assert(str != NULL); ------------------ | | 844| 292M|#define Assert(condition) ((void)true) ------------------ 203| | 204| | /* 205| | * If there's hardly any space, don't bother trying, just fail to make the 206| | * caller enlarge the buffer first. We have to guess at how much to 207| | * enlarge, since we're skipping the formatting work. 208| | */ 209| 292M| avail = str->maxlen - str->len; 210| 292M| if (avail < 16) ------------------ | Branch (210:6): [True: 3.81k, False: 292M] ------------------ 211| 3.81k| return 32; 212| | 213| 292M| nprinted = pvsnprintf(str->data + str->len, (size_t) avail, fmt, args); 214| | 215| 292M| if (nprinted < (size_t) avail) ------------------ | Branch (215:6): [True: 292M, False: 591] ------------------ 216| 292M| { 217| | /* Success. Note nprinted does not include trailing null. */ 218| 292M| str->len += (int) nprinted; 219| 292M| return 0; 220| 292M| } 221| | 222| | /* Restore the trailing null so that str is unmodified. */ 223| 591| str->data[str->len] = '\0'; 224| | 225| | /* 226| | * Return pvsnprintf's estimate of the space needed. (Although this is 227| | * given as a size_t, we know it will fit in int because it's not more 228| | * than MaxAllocSize.) 229| | */ 230| 591| return (int) nprinted; 231| 292M|} appendStringInfoString: 241| 78.9M|{ 242| 78.9M| appendBinaryStringInfo(str, s, strlen(s)); 243| 78.9M|} appendStringInfoChar: 253| 85.5M|{ 254| | /* Make more room if needed */ 255| 85.5M| if (str->len + 1 >= str->maxlen) ------------------ | Branch (255:6): [True: 598, False: 85.5M] ------------------ 256| 598| enlargeStringInfo(str, 1); 257| | 258| | /* OK, append the character */ 259| 85.5M| str->data[str->len] = ch; 260| 85.5M| str->len++; 261| 85.5M| str->data[str->len] = '\0'; 262| 85.5M|} appendBinaryStringInfo: 292| 78.9M|{ 293| 78.9M| Assert(str != NULL); ------------------ | | 844| 78.9M|#define Assert(condition) ((void)true) ------------------ 294| | 295| | /* Make more room if needed */ 296| 78.9M| enlargeStringInfo(str, datalen); 297| | 298| | /* OK, append the data */ 299| 78.9M| memcpy(str->data + str->len, data, datalen); 300| 78.9M| str->len += datalen; 301| | 302| | /* 303| | * Keep a trailing null in place, even though it's probably useless for 304| | * binary data. (Some callers are dealing with text but call this because 305| | * their input isn't null-terminated.) 306| | */ 307| 78.9M| str->data[str->len] = '\0'; 308| 78.9M|} enlargeStringInfo: 337| 78.9M|{ 338| 78.9M| int newlen; 339| | 340| | /* validate this is not a read-only StringInfo */ 341| 78.9M| Assert(str->maxlen != 0); ------------------ | | 844| 78.9M|#define Assert(condition) ((void)true) ------------------ 342| | 343| | /* 344| | * Guard against out-of-range "needed" values. Without this, we can get 345| | * an overflow or infinite loop in the following. 346| | */ 347| 78.9M| if (needed < 0) /* should not happen */ ------------------ | Branch (347:6): [True: 0, False: 78.9M] ------------------ 348| 0| { 349| 0|#ifndef FRONTEND 350| 0| elog(ERROR, "invalid string enlargement request size: %d", needed); ------------------ | | 240| 0| ereport(elevel, errmsg_internal(__VA_ARGS__)) | | ------------------ | | | | 164| 0| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | | | ------------------ | | | | | | 142| 0| do { \ | | | | | | 143| 0| pg_prevent_errno_in_scope(); \ | | | | | | ------------------ | | | | | | | | 91| 0|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | | | ------------------ | | | | | | 144| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (144:7): [True: 0, Folded] | | | | | | | Branch (144:7): [True: 0, False: 0] | | | | | | | Branch (144:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 145| 0| errstart_cold(elevel, domain) : \ | | | | | | 146| 0| errstart(elevel, domain)) \ | | | | | | 147| 0| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | | | 148| 0| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | | | ------------------ | | | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | | | ------------------ | | | | | | | Branch (148:7): [True: 0, Folded] | | | | | | | Branch (148:39): [True: 0, Folded] | | | | | | ------------------ | | | | | | 149| 0| pg_unreachable(); \ | | | | | | ------------------ | | | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | | | ------------------ | | | | | | 150| 0| } while(0) | | | | | | ------------------ | | | | | | | Branch (150:10): [Folded, False: 0] | | | | | | ------------------ | | | | ------------------ | | ------------------ ------------------ 351| |#else 352| | fprintf(stderr, "invalid string enlargement request size: %d\n", needed); 353| | exit(EXIT_FAILURE); 354| |#endif 355| 0| } 356| 78.9M| if (((Size) needed) >= (MaxAllocSize - (Size) str->len)) ------------------ | | 40| 78.9M|#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */ ------------------ | Branch (356:6): [True: 2, False: 78.9M] ------------------ 357| 2| { 358| 2|#ifndef FRONTEND 359| 2| ereport(ERROR, ------------------ | | 164| 2| ereport_domain(elevel, TEXTDOMAIN, __VA_ARGS__) | | ------------------ | | | | 142| 2| do { \ | | | | 143| 2| pg_prevent_errno_in_scope(); \ | | | | ------------------ | | | | | | 91| 2|#define pg_prevent_errno_in_scope() int __errno_location pg_attribute_unused() | | | | ------------------ | | | | 144| 2| if (__builtin_constant_p(elevel) && (elevel) >= ERROR ? \ | | | | ------------------ | | | | | | 52| 2|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (144:7): [True: 2, Folded] | | | | | Branch (144:7): [True: 2, False: 0] | | | | | Branch (144:39): [True: 2, Folded] | | | | ------------------ | | | | 145| 2| errstart_cold(elevel, domain) : \ | | | | 146| 2| errstart(elevel, domain)) \ | | | | 147| 2| __VA_ARGS__, errfinish(__FILE__, __LINE__, __func__); \ | | | | 148| 2| if (__builtin_constant_p(elevel) && (elevel) >= ERROR) \ | | | | ------------------ | | | | | | 52| 0|#define ERROR 21 /* user error - abort transaction; return to | | | | ------------------ | | | | | Branch (148:7): [True: 0, Folded] | | | | | Branch (148:39): [True: 0, Folded] | | | | ------------------ | | | | 149| 2| pg_unreachable(); \ | | | | ------------------ | | | | | | 345| 0|#define pg_unreachable() __builtin_unreachable() | | | | ------------------ | | | | 150| 2| } while(0) | | | | ------------------ | | | | | Branch (150:10): [Folded, False: 2] | | | | ------------------ | | ------------------ ------------------ 360| 2| (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), 361| 2| errmsg("string buffer exceeds maximum allowed length (%zu bytes)", MaxAllocSize), 362| 2| errdetail("Cannot enlarge string buffer containing %d bytes by %d more bytes.", 363| 2| str->len, needed))); 364| |#else 365| | fprintf(stderr, 366| | _("string buffer exceeds maximum allowed length (%zu bytes)\n\nCannot enlarge string buffer containing %d bytes by %d more bytes.\n"), 367| | MaxAllocSize, str->len, needed); 368| | exit(EXIT_FAILURE); 369| |#endif 370| 2| } 371| | 372| 78.9M| needed += str->len + 1; /* total space required now */ 373| | 374| | /* Because of the above test, we now have needed <= MaxAllocSize */ 375| | 376| 78.9M| if (needed <= str->maxlen) ------------------ | Branch (376:6): [True: 78.9M, False: 5.57k] ------------------ 377| 78.9M| return; /* got enough space already */ 378| | 379| | /* 380| | * We don't want to allocate just a little more space with each append; 381| | * for efficiency, double the buffer size each time it overflows. 382| | * Actually, we might need to more than double it if 'needed' is big... 383| | */ 384| 5.57k| newlen = 2 * str->maxlen; 385| 6.87k| while (needed > newlen) ------------------ | Branch (385:9): [True: 1.29k, False: 5.57k] ------------------ 386| 1.29k| newlen = 2 * newlen; 387| | 388| | /* 389| | * Clamp to MaxAllocSize in case we went past it. Note we are assuming 390| | * here that MaxAllocSize <= INT_MAX/2, else the above loop could 391| | * overflow. We will still have newlen >= needed. 392| | */ 393| 5.57k| if (newlen > (int) MaxAllocSize) ------------------ | | 40| 5.57k|#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */ ------------------ | Branch (393:6): [True: 2, False: 5.57k] ------------------ 394| 2| newlen = (int) MaxAllocSize; ------------------ | | 40| 2|#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */ ------------------ 395| | 396| 5.57k| str->data = (char *) repalloc(str->data, newlen); 397| | 398| 5.57k| str->maxlen = newlen; 399| 5.57k|} src_common_stringinfo.c:initStringInfoInternal: 60| 6.66k|{ 61| 6.66k| Assert(initsize >= 1 && initsize <= MaxAllocSize); ------------------ | | 844| 6.66k|#define Assert(condition) ((void)true) ------------------ 62| | 63| 6.66k| str->data = (char *) palloc(initsize); 64| 6.66k| str->maxlen = initsize; 65| 6.66k| resetStringInfo(str); 66| 6.66k|} pg_utf_mblen_private: 640| 23.7M|{ 641| 23.7M| int len; 642| | 643| 23.7M| if ((*s & 0x80) == 0) ------------------ | Branch (643:6): [True: 17.6M, False: 6.04M] ------------------ 644| 17.6M| len = 1; 645| 6.04M| else if ((*s & 0xe0) == 0xc0) ------------------ | Branch (645:11): [True: 204k, False: 5.83M] ------------------ 646| 204k| len = 2; 647| 5.83M| else if ((*s & 0xf0) == 0xe0) ------------------ | Branch (647:11): [True: 156k, False: 5.68M] ------------------ 648| 156k| len = 3; 649| 5.68M| else if ((*s & 0xf8) == 0xf0) ------------------ | Branch (649:11): [True: 89.8k, False: 5.59M] ------------------ 650| 89.8k| len = 4; 651| |#ifdef NOT_USED 652| | else if ((*s & 0xfc) == 0xf8) 653| | len = 5; 654| | else if ((*s & 0xfe) == 0xfc) 655| | len = 6; 656| |#endif 657| 5.59M| else 658| 5.59M| len = 1; 659| 23.7M| return len; 660| 23.7M|} pg_utf8_islegal: 2095| 885|{ 2096| 885| unsigned char a; 2097| | 2098| 885| switch (length) 2099| 885| { 2100| 0| default: ------------------ | Branch (2100:3): [True: 0, False: 885] ------------------ 2101| | /* reject lengths 5 and 6 for now */ 2102| 0| return false; 2103| 177| case 4: ------------------ | Branch (2103:3): [True: 177, False: 708] ------------------ 2104| 177| a = source[3]; 2105| 177| if (a < 0x80 || a > 0xBF) ------------------ | Branch (2105:8): [True: 3, False: 174] | Branch (2105:20): [True: 4, False: 170] ------------------ 2106| 7| return false; 2107| | /* FALL THRU */ 2108| 500| case 3: ------------------ | Branch (2108:3): [True: 330, False: 555] ------------------ 2109| 500| a = source[2]; 2110| 500| if (a < 0x80 || a > 0xBF) ------------------ | Branch (2110:8): [True: 3, False: 497] | Branch (2110:20): [True: 6, False: 491] ------------------ 2111| 9| return false; 2112| | /* FALL THRU */ 2113| 843| case 2: ------------------ | Branch (2113:3): [True: 352, False: 533] ------------------ 2114| 843| a = source[1]; 2115| 843| switch (*source) 2116| 843| { 2117| 321| case 0xE0: ------------------ | Branch (2117:5): [True: 321, False: 522] ------------------ 2118| 321| if (a < 0xA0 || a > 0xBF) ------------------ | Branch (2118:10): [True: 4, False: 317] | Branch (2118:22): [True: 0, False: 317] ------------------ 2119| 4| return false; 2120| 317| break; 2121| 317| case 0xED: ------------------ | Branch (2121:5): [True: 3, False: 840] ------------------ 2122| 3| if (a < 0x80 || a > 0x9F) ------------------ | Branch (2122:10): [True: 0, False: 3] | Branch (2122:22): [True: 1, False: 2] ------------------ 2123| 1| return false; 2124| 2| break; 2125| 148| case 0xF0: ------------------ | Branch (2125:5): [True: 148, False: 695] ------------------ 2126| 148| if (a < 0x90 || a > 0xBF) ------------------ | Branch (2126:10): [True: 0, False: 148] | Branch (2126:22): [True: 0, False: 148] ------------------ 2127| 0| return false; 2128| 148| break; 2129| 148| case 0xF4: ------------------ | Branch (2129:5): [True: 2, False: 841] ------------------ 2130| 2| if (a < 0x80 || a > 0x8F) ------------------ | Branch (2130:10): [True: 0, False: 2] | Branch (2130:22): [True: 0, False: 2] ------------------ 2131| 0| return false; 2132| 2| break; 2133| 369| default: ------------------ | Branch (2133:5): [True: 369, False: 474] ------------------ 2134| 369| if (a < 0x80 || a > 0xBF) ------------------ | Branch (2134:10): [True: 3, False: 366] | Branch (2134:22): [True: 1, False: 365] ------------------ 2135| 4| return false; 2136| 365| break; 2137| 843| } 2138| | /* FALL THRU */ 2139| 860| case 1: ------------------ | Branch (2139:3): [True: 26, False: 859] ------------------ 2140| 860| a = *source; 2141| 860| if (a >= 0x80 && a < 0xC2) ------------------ | Branch (2141:8): [True: 860, False: 0] | Branch (2141:21): [True: 15, False: 845] ------------------ 2142| 15| return false; 2143| 845| if (a > 0xF4) ------------------ | Branch (2143:8): [True: 11, False: 834] ------------------ 2144| 11| return false; 2145| 834| break; 2146| 885| } 2147| 834| return true; 2148| 885|} pg_encoding_mblen: 2234| 52|{ 2235| 52| return (PG_VALID_ENCODING(encoding) ? ------------------ | | 304| 52| ((_enc) >= 0 && (_enc) < _PG_LAST_ENCODING_) | | ------------------ | | | Branch (304:4): [True: 52, False: 0] | | | Branch (304:19): [True: 52, False: 0] | | ------------------ ------------------ 2236| 52| pg_wchar_table[encoding].mblen((const unsigned char *) mbstr) : 2237| 52| pg_wchar_table[PG_SQL_ASCII].mblen((const unsigned char *) mbstr)); 2238| 52|} pg_encoding_mblen_or_incomplete: 2247| 52|{ 2248| | /* 2249| | * Define zero remaining as too few, even for single-byte encodings. 2250| | * pg_gb18030_mblen() reads one or two bytes; single-byte encodings read 2251| | * zero; others read one. 2252| | */ 2253| 52| if (remaining < 1 || ------------------ | Branch (2253:6): [True: 0, False: 52] ------------------ 2254| 52| (encoding == PG_GB18030 && IS_HIGHBIT_SET(*mbstr) && remaining < 2)) ------------------ | | 1144| 52|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 0|#define HIGHBIT (0x80) | | ------------------ | | | Branch (1144:29): [True: 0, False: 0] | | ------------------ ------------------ | Branch (2254:4): [True: 0, False: 52] | Branch (2254:56): [True: 0, False: 0] ------------------ 2255| 0| return INT_MAX; 2256| 52| return pg_encoding_mblen(encoding, mbstr); 2257| 52|} pg_encoding_max_length: 2290| 49.3k|{ 2291| 49.3k| Assert(PG_VALID_ENCODING(encoding)); ------------------ | | 844| 49.3k|#define Assert(condition) ((void)true) ------------------ 2292| | 2293| | /* 2294| | * Check for the encoding despite the assert, due to some mingw versions 2295| | * otherwise issuing bogus warnings. 2296| | */ 2297| 49.3k| return PG_VALID_ENCODING(encoding) ? ------------------ | | 304| 49.3k| ((_enc) >= 0 && (_enc) < _PG_LAST_ENCODING_) | | ------------------ | | | Branch (304:4): [True: 49.3k, False: 0] | | | Branch (304:19): [True: 49.3k, False: 0] | | ------------------ ------------------ 2298| 49.3k| pg_wchar_table[encoding].maxmblen : 2299| 49.3k| pg_wchar_table[PG_SQL_ASCII].maxmblen; 2300| 49.3k|} src_common_wchar.c:pg_utf8_verifychar: 1807| 885|{ 1808| 885| int l; 1809| | 1810| 885| if ((*s & 0x80) == 0) ------------------ | Branch (1810:6): [True: 0, False: 885] ------------------ 1811| 0| { 1812| 0| if (*s == '\0') ------------------ | Branch (1812:7): [True: 0, False: 0] ------------------ 1813| 0| return -1; 1814| 0| return 1; 1815| 0| } 1816| 885| else if ((*s & 0xe0) == 0xc0) ------------------ | Branch (1816:11): [True: 352, False: 533] ------------------ 1817| 352| l = 2; 1818| 533| else if ((*s & 0xf0) == 0xe0) ------------------ | Branch (1818:11): [True: 330, False: 203] ------------------ 1819| 330| l = 3; 1820| 203| else if ((*s & 0xf8) == 0xf0) ------------------ | Branch (1820:11): [True: 177, False: 26] ------------------ 1821| 177| l = 4; 1822| 26| else 1823| 26| l = 1; 1824| | 1825| 885| if (l > len) ------------------ | Branch (1825:6): [True: 0, False: 885] ------------------ 1826| 0| return -1; 1827| | 1828| 885| if (!pg_utf8_islegal(s, l)) ------------------ | Branch (1828:6): [True: 51, False: 834] ------------------ 1829| 51| return -1; 1830| | 1831| 834| return l; 1832| 885|} src_common_wchar.c:pg_utf8_verifystr: 1997| 962|{ 1998| 962| const unsigned char *start = s; 1999| 962| const int orig_len = len; 2000| 962| uint32 state = BGN; ------------------ | | 1886| 962|#define BGN 11 ------------------ 2001| | 2002| |/* 2003| | * With a stride of two vector widths, gcc will unroll the loop. Even if 2004| | * the compiler can unroll a longer loop, it's not worth it because we 2005| | * must fall back to the byte-wise algorithm if we find any non-ASCII. 2006| | */ 2007| 962|#define STRIDE_LENGTH (2 * sizeof(Vector8)) 2008| | 2009| 962| if (len >= STRIDE_LENGTH) ------------------ | | 2007| 962|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ | Branch (2009:6): [True: 870, False: 92] ------------------ 2010| 870| { 2011| 216k| while (len >= STRIDE_LENGTH) ------------------ | | 2007| 216k|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ | Branch (2011:10): [True: 216k, False: 870] ------------------ 2012| 216k| { 2013| | /* 2014| | * If the chunk is all ASCII, we can skip the full UTF-8 check, 2015| | * but we must first check for a non-END state, which means the 2016| | * previous chunk ended in the middle of a multibyte sequence. 2017| | */ 2018| 216k| if (state != END || !is_valid_ascii(s, STRIDE_LENGTH)) ------------------ | | 1897| 216k|#define END BGN | | ------------------ | | | | 1886| 432k|#define BGN 11 | | ------------------ ------------------ if (state != END || !is_valid_ascii(s, STRIDE_LENGTH)) ------------------ | | 2007| 7.80k|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ | Branch (2018:8): [True: 208k, False: 7.80k] | Branch (2018:24): [True: 757, False: 7.04k] ------------------ 2019| 209k| utf8_advance(s, &state, STRIDE_LENGTH); ------------------ | | 2007| 209k|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ 2020| | 2021| 216k| s += STRIDE_LENGTH; ------------------ | | 2007| 216k|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ 2022| 216k| len -= STRIDE_LENGTH; ------------------ | | 2007| 216k|#define STRIDE_LENGTH (2 * sizeof(Vector8)) ------------------ 2023| 216k| } 2024| | 2025| | /* The error state persists, so we only need to check for it here. */ 2026| 870| if (state == ERR) ------------------ | | 1884| 870|#define ERR 0 ------------------ | Branch (2026:7): [True: 50, False: 820] ------------------ 2027| 50| { 2028| | /* 2029| | * Start over from the beginning with the slow path so we can 2030| | * count the valid bytes. 2031| | */ 2032| 50| len = orig_len; 2033| 50| s = start; 2034| 50| } 2035| 820| else if (state != END) ------------------ | | 1897| 820|#define END BGN | | ------------------ | | | | 1886| 820|#define BGN 11 | | ------------------ ------------------ | Branch (2035:12): [True: 399, False: 421] ------------------ 2036| 399| { 2037| | /* 2038| | * The fast path exited in the middle of a multibyte sequence. 2039| | * Walk backwards to find the leading byte so that the slow path 2040| | * can resume checking from there. We must always backtrack at 2041| | * least one byte, since the current byte could be e.g. an ASCII 2042| | * byte after a 2-byte lead, which is invalid. 2043| | */ 2044| 399| do 2045| 803| { 2046| 803| Assert(s > start); ------------------ | | 844| 803|#define Assert(condition) ((void)true) ------------------ 2047| 803| s--; 2048| 803| len++; 2049| 803| Assert(IS_HIGHBIT_SET(*s)); ------------------ | | 844| 803|#define Assert(condition) ((void)true) ------------------ 2050| 803| } while (pg_utf_mblen(s) <= 1); ------------------ | | 649| 803|#define pg_utf_mblen pg_utf_mblen_private ------------------ | Branch (2050:13): [True: 404, False: 399] ------------------ 2051| 399| } 2052| 870| } 2053| | 2054| | /* check remaining bytes */ 2055| 226k| while (len > 0) ------------------ | Branch (2055:9): [True: 225k, False: 910] ------------------ 2056| 225k| { 2057| 225k| int l; 2058| | 2059| | /* fast path for ASCII-subset characters */ 2060| 225k| if (!IS_HIGHBIT_SET(*s)) ------------------ | | 1144| 225k|#define IS_HIGHBIT_SET(ch) ((unsigned char)(ch) & HIGHBIT) | | ------------------ | | | | 1143| 225k|#define HIGHBIT (0x80) | | ------------------ ------------------ | Branch (2060:7): [True: 224k, False: 885] ------------------ 2061| 224k| { 2062| 224k| if (*s == '\0') ------------------ | Branch (2062:8): [True: 1, False: 224k] ------------------ 2063| 1| break; 2064| 224k| l = 1; 2065| 224k| } 2066| 885| else 2067| 885| { 2068| 885| l = pg_utf8_verifychar(s, len); 2069| 885| if (l == -1) ------------------ | Branch (2069:8): [True: 51, False: 834] ------------------ 2070| 51| break; 2071| 885| } 2072| 225k| s += l; 2073| 225k| len -= l; 2074| 225k| } 2075| | 2076| 962| return s - start; 2077| 962|} src_common_wchar.c:utf8_advance: 1979| 209k|{ 1980| | /* Note: We deliberately don't check the state's value here. */ 1981| 6.89M| while (len > 0) ------------------ | Branch (1981:9): [True: 6.68M, False: 209k] ------------------ 1982| 6.68M| { 1983| | /* 1984| | * It's important that the mask value is 31: In most instruction sets, 1985| | * a shift by a 32-bit operand is understood to be a shift by its mod 1986| | * 32, so the compiler should elide the mask operation. 1987| | */ 1988| 6.68M| *state = Utf8Transition[*s++] >> (*state & 31); 1989| 6.68M| len--; 1990| 6.68M| } 1991| | 1992| 209k| *state &= 31; 1993| 209k|} pg_vsnprintf: 204| 292M|{ 205| 292M| PrintfTarget target; 206| 292M| char onebyte[1]; 207| | 208| | /* 209| | * C99 allows the case str == NULL when count == 0. Rather than 210| | * special-casing this situation further down, we substitute a one-byte 211| | * local buffer. Callers cannot tell, since the function result doesn't 212| | * depend on count. 213| | */ 214| 292M| if (count == 0) ------------------ | Branch (214:6): [True: 0, False: 292M] ------------------ 215| 0| { 216| 0| str = onebyte; 217| 0| count = 1; 218| 0| } 219| 292M| target.bufstart = target.bufptr = str; 220| 292M| target.bufend = str + count - 1; 221| 292M| target.stream = NULL; 222| 292M| target.nchars = 0; 223| 292M| target.failed = false; 224| 292M| dopr(&target, fmt, args); 225| 292M| *(target.bufptr) = '\0'; 226| 292M| return target.failed ? -1 : (target.bufptr - target.bufstart ------------------ | Branch (226:9): [True: 0, False: 292M] ------------------ 227| 292M| + target.nchars); 228| 292M|} pg_vsprintf: 244| 189|{ 245| 189| PrintfTarget target; 246| | 247| 189| target.bufstart = target.bufptr = str; 248| 189| target.bufend = NULL; 249| 189| target.stream = NULL; 250| 189| target.nchars = 0; /* not really used in this case */ 251| 189| target.failed = false; 252| 189| dopr(&target, fmt, args); 253| 189| *(target.bufptr) = '\0'; 254| 189| return target.failed ? -1 : (target.bufptr - target.bufstart ------------------ | Branch (254:9): [True: 0, False: 189] ------------------ 255| 189| + target.nchars); 256| 189|} pg_sprintf: 260| 189|{ 261| 189| int len; 262| 189| va_list args; 263| | 264| 189| va_start(args, fmt); 265| 189| len = pg_vsprintf(str, fmt, args); 266| | va_end(args); 267| 189| return len; 268| 189|} src_port_snprintf.c:dopr: 399| 292M|{ 400| 292M| int save_errno = errno; 401| 292M| const char *first_pct = NULL; 402| 292M| int ch; 403| 292M| bool have_dollar; 404| 292M| bool have_star; 405| 292M| bool afterstar; 406| 292M| int accum; 407| 292M| int longlongflag; 408| 292M| int longflag; 409| 292M| int pointflag; 410| 292M| int leftjust; 411| 292M| int fieldwidth; 412| 292M| int precision; 413| 292M| int zpad; 414| 292M| int forcesign; 415| 292M| int fmtpos; 416| 292M| int cvalue; 417| 292M| long long numvalue; 418| 292M| double fvalue; 419| 292M| const char *strvalue; 420| 292M| PrintfArgValue argvalues[PG_NL_ARGMAX + 1]; 421| | 422| | /* 423| | * Initially, we suppose the format string does not use %n$. The first 424| | * time we come to a conversion spec that has that, we'll call 425| | * find_arguments() to check for consistent use of %n$ and fill the 426| | * argvalues array with the argument values in the correct order. 427| | */ 428| 292M| have_dollar = false; 429| | 430| 378M| while (*format != '\0') ------------------ | Branch (430:9): [True: 365M, False: 13.7M] ------------------ 431| 365M| { 432| | /* Locate next conversion specifier */ 433| 365M| if (*format != '%') ------------------ | Branch (433:7): [True: 365M, False: 583] ------------------ 434| 365M| { 435| | /* Scan to next '%' or end of string */ 436| 365M| const char *next_pct = strchrnul(format + 1, '%'); ------------------ | | 381| 365M|#define strchrnul pg_strchrnul ------------------ 437| | 438| | /* Dump literal data we just scanned over */ 439| 365M| dostr(format, next_pct - format, target); 440| 365M| if (target->failed) ------------------ | Branch (440:8): [True: 0, False: 365M] ------------------ 441| 0| break; 442| | 443| 365M| if (*next_pct == '\0') ------------------ | Branch (443:8): [True: 278M, False: 86.1M] ------------------ 444| 278M| break; 445| 86.1M| format = next_pct; 446| 86.1M| } 447| | 448| | /* 449| | * Remember start of first conversion spec; if we find %n$, then it's 450| | * sufficient for find_arguments() to start here, without rescanning 451| | * earlier literal text. 452| | */ 453| 86.1M| if (first_pct == NULL) ------------------ | Branch (453:7): [True: 86.1M, False: 615] ------------------ 454| 86.1M| first_pct = format; 455| | 456| | /* Process conversion spec starting at *format */ 457| 86.1M| format++; 458| | 459| | /* Fast path for conversion spec that is exactly %s */ 460| 86.1M| if (*format == 's') ------------------ | Branch (460:7): [True: 27.1M, False: 59.0M] ------------------ 461| 27.1M| { 462| 27.1M| format++; 463| 27.1M| strvalue = va_arg(args, char *); 464| 27.1M| if (strvalue == NULL) ------------------ | Branch (464:8): [True: 0, False: 27.1M] ------------------ 465| 0| strvalue = "(null)"; 466| 27.1M| dostr(strvalue, strlen(strvalue), target); 467| 27.1M| if (target->failed) ------------------ | Branch (467:8): [True: 0, False: 27.1M] ------------------ 468| 0| break; 469| 27.1M| continue; 470| 27.1M| } 471| | 472| 59.0M| fieldwidth = precision = zpad = leftjust = forcesign = 0; 473| 59.0M| longflag = longlongflag = pointflag = 0; 474| 59.0M| fmtpos = accum = 0; 475| 59.0M| have_star = afterstar = false; 476| 82.6M|nextch2: 477| 82.6M| ch = *format++; 478| 82.6M| switch (ch) 479| 82.6M| { 480| 0| case '-': ------------------ | Branch (480:4): [True: 0, False: 82.6M] ------------------ 481| 0| leftjust = 1; 482| 0| goto nextch2; 483| 0| case '+': ------------------ | Branch (483:4): [True: 0, False: 82.6M] ------------------ 484| 0| forcesign = 1; 485| 0| goto nextch2; 486| 11.8M| case '0': ------------------ | Branch (486:4): [True: 11.8M, False: 70.8M] ------------------ 487| | /* set zero padding if no nonzero digits yet */ 488| 11.8M| if (accum == 0 && !pointflag) ------------------ | Branch (488:9): [True: 11.8M, False: 0] | Branch (488:23): [True: 11.8M, False: 0] ------------------ 489| 11.8M| zpad = '0'; 490| | /* FALL THRU */ 491| 11.8M| case '1': ------------------ | Branch (491:4): [True: 0, False: 82.6M] ------------------ 492| 11.8M| case '2': ------------------ | Branch (492:4): [True: 127, False: 82.6M] ------------------ 493| 11.8M| case '3': ------------------ | Branch (493:4): [True: 0, False: 82.6M] ------------------ 494| 23.6M| case '4': ------------------ | Branch (494:4): [True: 11.8M, False: 70.8M] ------------------ 495| 23.6M| case '5': ------------------ | Branch (495:4): [True: 0, False: 82.6M] ------------------ 496| 23.6M| case '6': ------------------ | Branch (496:4): [True: 0, False: 82.6M] ------------------ 497| 23.6M| case '7': ------------------ | Branch (497:4): [True: 0, False: 82.6M] ------------------ 498| 23.6M| case '8': ------------------ | Branch (498:4): [True: 0, False: 82.6M] ------------------ 499| 23.6M| case '9': ------------------ | Branch (499:4): [True: 0, False: 82.6M] ------------------ 500| 23.6M| accum = accum * 10 + (ch - '0'); 501| 23.6M| goto nextch2; 502| 0| case '.': ------------------ | Branch (502:4): [True: 0, False: 82.6M] ------------------ 503| 0| if (have_star) ------------------ | Branch (503:9): [True: 0, False: 0] ------------------ 504| 0| have_star = false; 505| 0| else 506| 0| fieldwidth = accum; 507| 0| pointflag = 1; 508| 0| accum = 0; 509| 0| goto nextch2; 510| 0| case '*': ------------------ | Branch (510:4): [True: 0, False: 82.6M] ------------------ 511| 0| if (have_dollar) ------------------ | Branch (511:9): [True: 0, False: 0] ------------------ 512| 0| { 513| | /* 514| | * We'll process value after reading n$. Note it's OK to 515| | * assume have_dollar is set correctly, because in a valid 516| | * format string the initial % must have had n$ if * does. 517| | */ 518| 0| afterstar = true; 519| 0| } 520| 0| else 521| 0| { 522| | /* fetch and process value now */ 523| 0| int starval = va_arg(args, int); 524| | 525| 0| if (pointflag) ------------------ | Branch (525:10): [True: 0, False: 0] ------------------ 526| 0| { 527| 0| precision = starval; 528| 0| if (precision < 0) ------------------ | Branch (528:11): [True: 0, False: 0] ------------------ 529| 0| { 530| 0| precision = 0; 531| 0| pointflag = 0; 532| 0| } 533| 0| } 534| 0| else 535| 0| { 536| 0| fieldwidth = starval; 537| 0| if (fieldwidth < 0) ------------------ | Branch (537:11): [True: 0, False: 0] ------------------ 538| 0| { 539| 0| leftjust = 1; 540| 0| fieldwidth = -fieldwidth; 541| 0| } 542| 0| } 543| 0| } 544| 0| have_star = true; 545| 0| accum = 0; 546| 0| goto nextch2; 547| 0| case '$': ------------------ | Branch (547:4): [True: 0, False: 82.6M] ------------------ 548| | /* First dollar sign? */ 549| 0| if (!have_dollar) ------------------ | Branch (549:9): [True: 0, False: 0] ------------------ 550| 0| { 551| | /* Yup, so examine all conversion specs in format */ 552| 0| if (!find_arguments(first_pct, args, argvalues)) ------------------ | Branch (552:10): [True: 0, False: 0] ------------------ 553| 0| goto bad_format; 554| 0| have_dollar = true; 555| 0| } 556| 0| if (afterstar) ------------------ | Branch (556:9): [True: 0, False: 0] ------------------ 557| 0| { 558| | /* fetch and process star value */ 559| 0| int starval = argvalues[accum].i; 560| | 561| 0| if (pointflag) ------------------ | Branch (561:10): [True: 0, False: 0] ------------------ 562| 0| { 563| 0| precision = starval; 564| 0| if (precision < 0) ------------------ | Branch (564:11): [True: 0, False: 0] ------------------ 565| 0| { 566| 0| precision = 0; 567| 0| pointflag = 0; 568| 0| } 569| 0| } 570| 0| else 571| 0| { 572| 0| fieldwidth = starval; 573| 0| if (fieldwidth < 0) ------------------ | Branch (573:11): [True: 0, False: 0] ------------------ 574| 0| { 575| 0| leftjust = 1; 576| 0| fieldwidth = -fieldwidth; 577| 0| } 578| 0| } 579| 0| afterstar = false; 580| 0| } 581| 0| else 582| 0| fmtpos = accum; 583| 0| accum = 0; 584| 0| goto nextch2; 585| |#ifdef WIN32 586| | case 'I': 587| | /* Windows PRI*{32,64,PTR} size */ 588| | if (format[0] == '3' && format[1] == '2') 589| | format += 2; 590| | else if (format[0] == '6' && format[1] == '4') 591| | { 592| | format += 2; 593| | longlongflag = 1; 594| | } 595| | else 596| | { 597| |#if SIZEOF_VOID_P == SIZEOF_LONG 598| | longflag = 1; 599| |#elif SIZEOF_VOID_P == SIZEOF_LONG_LONG 600| | longlongflag = 1; 601| |#else 602| |#error "cannot find integer type of the same size as intptr_t" 603| |#endif 604| | } 605| | goto nextch2; 606| |#endif 607| 33| case 'l': ------------------ | Branch (607:4): [True: 33, False: 82.6M] ------------------ 608| 33| if (longflag) ------------------ | Branch (608:9): [True: 0, False: 33] ------------------ 609| 0| longlongflag = 1; 610| 33| else 611| 33| longflag = 1; 612| 33| goto nextch2; 613| 2| case 'z': ------------------ | Branch (613:4): [True: 2, False: 82.6M] ------------------ 614| 2|#if SIZEOF_SIZE_T == SIZEOF_LONG 615| 2| longflag = 1; 616| |#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG 617| | longlongflag = 1; 618| |#else 619| |#error "cannot find integer type of the same size as size_t" 620| |#endif 621| 2| goto nextch2; 622| 0| case 'h': ------------------ | Branch (622:4): [True: 0, False: 82.6M] ------------------ 623| 0| case '\'': ------------------ | Branch (623:4): [True: 0, False: 82.6M] ------------------ 624| | /* ignore these */ 625| 0| goto nextch2; 626| 44.2M| case 'd': ------------------ | Branch (626:4): [True: 44.2M, False: 38.4M] ------------------ 627| 44.2M| case 'i': ------------------ | Branch (627:4): [True: 0, False: 82.6M] ------------------ 628| 44.2M| if (!have_star) ------------------ | Branch (628:9): [True: 44.2M, False: 0] ------------------ 629| 44.2M| { 630| 44.2M| if (pointflag) ------------------ | Branch (630:10): [True: 0, False: 44.2M] ------------------ 631| 0| precision = accum; 632| 44.2M| else 633| 44.2M| fieldwidth = accum; 634| 44.2M| } 635| 44.2M| if (have_dollar) ------------------ | Branch (635:9): [True: 0, False: 44.2M] ------------------ 636| 0| { 637| 0| if (longlongflag) ------------------ | Branch (637:10): [True: 0, False: 0] ------------------ 638| 0| numvalue = argvalues[fmtpos].ll; 639| 0| else if (longflag) ------------------ | Branch (639:15): [True: 0, False: 0] ------------------ 640| 0| numvalue = argvalues[fmtpos].l; 641| 0| else 642| 0| numvalue = argvalues[fmtpos].i; 643| 0| } 644| 44.2M| else 645| 44.2M| { 646| 44.2M| if (longlongflag) ------------------ | Branch (646:10): [True: 0, False: 44.2M] ------------------ 647| 0| numvalue = va_arg(args, long long); 648| 44.2M| else if (longflag) ------------------ | Branch (648:15): [True: 33, False: 44.2M] ------------------ 649| 33| numvalue = va_arg(args, long); 650| 44.2M| else 651| 44.2M| numvalue = va_arg(args, int); 652| 44.2M| } 653| 44.2M| fmtint(numvalue, ch, forcesign, leftjust, fieldwidth, zpad, 654| 44.2M| precision, pointflag, target); 655| 44.2M| break; 656| 0| case 'o': ------------------ | Branch (656:4): [True: 0, False: 82.6M] ------------------ 657| 2| case 'u': ------------------ | Branch (657:4): [True: 2, False: 82.6M] ------------------ 658| 11.8M| case 'x': ------------------ | Branch (658:4): [True: 11.8M, False: 70.8M] ------------------ 659| 11.8M| case 'X': ------------------ | Branch (659:4): [True: 0, False: 82.6M] ------------------ 660| 11.8M| if (!have_star) ------------------ | Branch (660:9): [True: 11.8M, False: 0] ------------------ 661| 11.8M| { 662| 11.8M| if (pointflag) ------------------ | Branch (662:10): [True: 0, False: 11.8M] ------------------ 663| 0| precision = accum; 664| 11.8M| else 665| 11.8M| fieldwidth = accum; 666| 11.8M| } 667| 11.8M| if (have_dollar) ------------------ | Branch (667:9): [True: 0, False: 11.8M] ------------------ 668| 0| { 669| 0| if (longlongflag) ------------------ | Branch (669:10): [True: 0, False: 0] ------------------ 670| 0| numvalue = (unsigned long long) argvalues[fmtpos].ll; 671| 0| else if (longflag) ------------------ | Branch (671:15): [True: 0, False: 0] ------------------ 672| 0| numvalue = (unsigned long) argvalues[fmtpos].l; 673| 0| else 674| 0| numvalue = (unsigned int) argvalues[fmtpos].i; 675| 0| } 676| 11.8M| else 677| 11.8M| { 678| 11.8M| if (longlongflag) ------------------ | Branch (678:10): [True: 0, False: 11.8M] ------------------ 679| 0| numvalue = (unsigned long long) va_arg(args, long long); 680| 11.8M| else if (longflag) ------------------ | Branch (680:15): [True: 2, False: 11.8M] ------------------ 681| 2| numvalue = (unsigned long) va_arg(args, long); 682| 11.8M| else 683| 11.8M| numvalue = (unsigned int) va_arg(args, int); 684| 11.8M| } 685| 11.8M| fmtint(numvalue, ch, forcesign, leftjust, fieldwidth, zpad, 686| 11.8M| precision, pointflag, target); 687| 11.8M| break; 688| 3.00M| case 'c': ------------------ | Branch (688:4): [True: 3.00M, False: 79.6M] ------------------ 689| 3.00M| if (!have_star) ------------------ | Branch (689:9): [True: 3.00M, False: 0] ------------------ 690| 3.00M| { 691| 3.00M| if (pointflag) ------------------ | Branch (691:10): [True: 0, False: 3.00M] ------------------ 692| 0| precision = accum; 693| 3.00M| else 694| 3.00M| fieldwidth = accum; 695| 3.00M| } 696| 3.00M| if (have_dollar) ------------------ | Branch (696:9): [True: 0, False: 3.00M] ------------------ 697| 0| cvalue = (unsigned char) argvalues[fmtpos].i; 698| 3.00M| else 699| 3.00M| cvalue = (unsigned char) va_arg(args, int); 700| 3.00M| fmtchar(cvalue, leftjust, fieldwidth, target); 701| 3.00M| break; 702| 0| case 's': ------------------ | Branch (702:4): [True: 0, False: 82.6M] ------------------ 703| 0| if (!have_star) ------------------ | Branch (703:9): [True: 0, False: 0] ------------------ 704| 0| { 705| 0| if (pointflag) ------------------ | Branch (705:10): [True: 0, False: 0] ------------------ 706| 0| precision = accum; 707| 0| else 708| 0| fieldwidth = accum; 709| 0| } 710| 0| if (have_dollar) ------------------ | Branch (710:9): [True: 0, False: 0] ------------------ 711| 0| strvalue = argvalues[fmtpos].cptr; 712| 0| else 713| 0| strvalue = va_arg(args, char *); 714| | /* If string is NULL, silently substitute "(null)" */ 715| 0| if (strvalue == NULL) ------------------ | Branch (715:9): [True: 0, False: 0] ------------------ 716| 0| strvalue = "(null)"; 717| 0| fmtstr(strvalue, leftjust, fieldwidth, precision, pointflag, 718| 0| target); 719| 0| break; 720| 0| case 'p': ------------------ | Branch (720:4): [True: 0, False: 82.6M] ------------------ 721| | /* fieldwidth/leftjust are ignored ... */ 722| 0| if (have_dollar) ------------------ | Branch (722:9): [True: 0, False: 0] ------------------ 723| 0| strvalue = argvalues[fmtpos].cptr; 724| 0| else 725| 0| strvalue = va_arg(args, char *); 726| 0| fmtptr((const void *) strvalue, target); 727| 0| break; 728| 0| case 'e': ------------------ | Branch (728:4): [True: 0, False: 82.6M] ------------------ 729| 0| case 'E': ------------------ | Branch (729:4): [True: 0, False: 82.6M] ------------------ 730| 0| case 'f': ------------------ | Branch (730:4): [True: 0, False: 82.6M] ------------------ 731| 0| case 'g': ------------------ | Branch (731:4): [True: 0, False: 82.6M] ------------------ 732| 0| case 'G': ------------------ | Branch (732:4): [True: 0, False: 82.6M] ------------------ 733| 0| if (!have_star) ------------------ | Branch (733:9): [True: 0, False: 0] ------------------ 734| 0| { 735| 0| if (pointflag) ------------------ | Branch (735:10): [True: 0, False: 0] ------------------ 736| 0| precision = accum; 737| 0| else 738| 0| fieldwidth = accum; 739| 0| } 740| 0| if (have_dollar) ------------------ | Branch (740:9): [True: 0, False: 0] ------------------ 741| 0| fvalue = argvalues[fmtpos].d; 742| 0| else 743| 0| fvalue = va_arg(args, double); 744| 0| fmtfloat(fvalue, ch, forcesign, leftjust, 745| 0| fieldwidth, zpad, 746| 0| precision, pointflag, 747| 0| target); 748| 0| break; 749| 0| case 'm': ------------------ | Branch (749:4): [True: 0, False: 82.6M] ------------------ 750| 0| { 751| 0| char errbuf[PG_STRERROR_R_BUFLEN]; 752| 0| const char *errm = strerror_r(save_errno, ------------------ | | 257| 0|#define strerror_r pg_strerror_r ------------------ 753| 0| errbuf, sizeof(errbuf)); 754| | 755| 0| dostr(errm, strlen(errm), target); 756| 0| } 757| 0| break; 758| 0| case '%': ------------------ | Branch (758:4): [True: 0, False: 82.6M] ------------------ 759| 0| dopr_outch('%', target); 760| 0| break; 761| 0| default: ------------------ | Branch (761:4): [True: 0, False: 82.6M] ------------------ 762| | 763| | /* 764| | * Anything else --- in particular, '\0' indicating end of 765| | * format string --- is bogus. 766| | */ 767| 0| goto bad_format; 768| 82.6M| } 769| | 770| | /* Check for failure after each conversion spec */ 771| 59.0M| if (target->failed) ------------------ | Branch (771:7): [True: 0, False: 59.0M] ------------------ 772| 0| break; 773| 59.0M| } 774| | 775| 292M| return; 776| | 777| 292M|bad_format: 778| 0| errno = EINVAL; 779| | target->failed = true; 780| 0|} src_port_snprintf.c:pg_strchrnul: 385| 365M|{ 386| 1.83G| while (*s != '\0' && *s != c) ------------------ | Branch (386:9): [True: 1.55G, False: 278M] | Branch (386:23): [True: 1.46G, False: 86.1M] ------------------ 387| 1.46G| s++; 388| 365M| return s; 389| 365M|} src_port_snprintf.c:dostr: 1348| 448M|{ 1349| | /* fast path for common case of slen == 1 */ 1350| 448M| if (slen == 1) ------------------ | Branch (1350:6): [True: 83.3M, False: 364M] ------------------ 1351| 83.3M| { 1352| 83.3M| dopr_outch(*str, target); 1353| 83.3M| return; 1354| 83.3M| } 1355| | 1356| 729M| while (slen > 0) ------------------ | Branch (1356:9): [True: 364M, False: 364M] ------------------ 1357| 364M| { 1358| 364M| int avail; 1359| | 1360| 364M| if (target->bufend != NULL) ------------------ | Branch (1360:7): [True: 364M, False: 253] ------------------ 1361| 364M| avail = target->bufend - target->bufptr; 1362| 253| else 1363| 253| avail = slen; 1364| 364M| if (avail <= 0) ------------------ | Branch (1364:7): [True: 2.05k, False: 364M] ------------------ 1365| 2.05k| { 1366| | /* buffer full, can we dump to stream? */ 1367| 2.05k| if (target->stream == NULL) ------------------ | Branch (1367:8): [True: 2.05k, False: 0] ------------------ 1368| 2.05k| { 1369| 2.05k| target->nchars += slen; /* no, lose the data */ 1370| 2.05k| return; 1371| 2.05k| } 1372| 0| flushbuffer(target); 1373| 0| continue; 1374| 2.05k| } 1375| 364M| avail = Min(avail, slen); ------------------ | | 990| 364M|#define Min(x, y) ((x) < (y) ? (x) : (y)) | | ------------------ | | | Branch (990:21): [True: 1.81k, False: 364M] | | ------------------ ------------------ 1376| 364M| memmove(target->bufptr, str, avail); 1377| 364M| target->bufptr += avail; 1378| 364M| str += avail; 1379| 364M| slen -= avail; 1380| 364M| } 1381| 364M|} src_port_snprintf.c:fmtint: 1071| 56.0M|{ 1072| 56.0M| unsigned long long uvalue; 1073| 56.0M| int base; 1074| 56.0M| int dosign; 1075| 56.0M| const char *cvt = "0123456789abcdef"; 1076| 56.0M| int signvalue = 0; 1077| 56.0M| char convert[64]; 1078| 56.0M| int vallen = 0; 1079| 56.0M| int padlen; /* amount to pad */ 1080| 56.0M| int zeropad; /* extra leading zeroes */ 1081| | 1082| 56.0M| switch (type) 1083| 56.0M| { 1084| 44.2M| case 'd': ------------------ | Branch (1084:3): [True: 44.2M, False: 11.8M] ------------------ 1085| 44.2M| case 'i': ------------------ | Branch (1085:3): [True: 0, False: 56.0M] ------------------ 1086| 44.2M| base = 10; 1087| 44.2M| dosign = 1; 1088| 44.2M| break; 1089| 0| case 'o': ------------------ | Branch (1089:3): [True: 0, False: 56.0M] ------------------ 1090| 0| base = 8; 1091| 0| dosign = 0; 1092| 0| break; 1093| 2| case 'u': ------------------ | Branch (1093:3): [True: 2, False: 56.0M] ------------------ 1094| 2| base = 10; 1095| 2| dosign = 0; 1096| 2| break; 1097| 11.8M| case 'x': ------------------ | Branch (1097:3): [True: 11.8M, False: 44.2M] ------------------ 1098| 11.8M| base = 16; 1099| 11.8M| dosign = 0; 1100| 11.8M| break; 1101| 0| case 'X': ------------------ | Branch (1101:3): [True: 0, False: 56.0M] ------------------ 1102| 0| cvt = "0123456789ABCDEF"; 1103| 0| base = 16; 1104| 0| dosign = 0; 1105| 0| break; 1106| 0| default: ------------------ | Branch (1106:3): [True: 0, False: 56.0M] ------------------ 1107| 0| return; /* keep compiler quiet */ 1108| 56.0M| } 1109| | 1110| | /* disable MSVC warning about applying unary minus to an unsigned value */ 1111| |#ifdef _MSC_VER 1112| |#pragma warning(push) 1113| |#pragma warning(disable: 4146) 1114| |#endif 1115| | /* Handle +/- */ 1116| 56.0M| if (dosign && adjust_sign((value < 0), forcesign, &signvalue)) ------------------ | Branch (1116:6): [True: 44.2M, False: 11.8M] | Branch (1116:16): [True: 7.05M, False: 37.1M] ------------------ 1117| 7.05M| uvalue = -(unsigned long long) value; 1118| 48.9M| else 1119| 48.9M| uvalue = (unsigned long long) value; 1120| |#ifdef _MSC_VER 1121| |#pragma warning(pop) 1122| |#endif 1123| | 1124| | /* 1125| | * SUS: the result of converting 0 with an explicit precision of 0 is no 1126| | * characters 1127| | */ 1128| 56.0M| if (value == 0 && pointflag && precision == 0) ------------------ | Branch (1128:6): [True: 1, False: 56.0M] | Branch (1128:20): [True: 0, False: 1] | Branch (1128:33): [True: 0, False: 0] ------------------ 1129| 0| vallen = 0; 1130| 56.0M| else 1131| 56.0M| { 1132| | /* 1133| | * Convert integer to string. We special-case each of the possible 1134| | * base values so as to avoid general-purpose divisions. On most 1135| | * machines, division by a fixed constant can be done much more 1136| | * cheaply than a general divide. 1137| | */ 1138| 56.0M| if (base == 10) ------------------ | Branch (1138:7): [True: 44.2M, False: 11.8M] ------------------ 1139| 44.2M| { 1140| 44.2M| do 1141| 200M| { 1142| 200M| convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 10]; 1143| 200M| uvalue = uvalue / 10; 1144| 200M| } while (uvalue); ------------------ | Branch (1144:13): [True: 156M, False: 44.2M] ------------------ 1145| 44.2M| } 1146| 11.8M| else if (base == 16) ------------------ | Branch (1146:12): [True: 11.8M, False: 0] ------------------ 1147| 11.8M| { 1148| 11.8M| do 1149| 23.4M| { 1150| 23.4M| convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 16]; 1151| 23.4M| uvalue = uvalue / 16; 1152| 23.4M| } while (uvalue); ------------------ | Branch (1152:13): [True: 11.6M, False: 11.8M] ------------------ 1153| 11.8M| } 1154| 0| else /* base == 8 */ 1155| 0| { 1156| 0| do 1157| 0| { 1158| 0| convert[sizeof(convert) - (++vallen)] = cvt[uvalue % 8]; 1159| 0| uvalue = uvalue / 8; 1160| 0| } while (uvalue); ------------------ | Branch (1160:13): [True: 0, False: 0] ------------------ 1161| 0| } 1162| 56.0M| } 1163| | 1164| 56.0M| zeropad = Max(0, precision - vallen); ------------------ | | 984| 56.0M|#define Max(x, y) ((x) > (y) ? (x) : (y)) | | ------------------ | | | Branch (984:21): [True: 56.0M, False: 0] | | ------------------ ------------------ 1165| | 1166| 56.0M| padlen = compute_padlen(minlen, vallen + zeropad, leftjust); 1167| | 1168| 56.0M| leading_pad(zpad, signvalue, &padlen, target); 1169| | 1170| 56.0M| if (zeropad > 0) ------------------ | Branch (1170:6): [True: 0, False: 56.0M] ------------------ 1171| 0| dopr_outchmulti('0', zeropad, target); 1172| | 1173| 56.0M| dostr(convert + sizeof(convert) - vallen, vallen, target); 1174| | 1175| 56.0M| trailing_pad(padlen, target); 1176| 56.0M|} src_port_snprintf.c:adjust_sign: 1438| 44.2M|{ 1439| 44.2M| if (is_negative) ------------------ | Branch (1439:6): [True: 7.05M, False: 37.1M] ------------------ 1440| 7.05M| { 1441| 7.05M| *signvalue = '-'; 1442| 7.05M| return true; 1443| 7.05M| } 1444| 37.1M| else if (forcesign) ------------------ | Branch (1444:11): [True: 0, False: 37.1M] ------------------ 1445| 0| *signvalue = '+'; 1446| 37.1M| return false; 1447| 44.2M|} src_port_snprintf.c:compute_padlen: 1452| 59.0M|{ 1453| 59.0M| int padlen; 1454| | 1455| 59.0M| padlen = minlen - vallen; 1456| 59.0M| if (padlen < 0) ------------------ | Branch (1456:6): [True: 47.2M, False: 11.8M] ------------------ 1457| 47.2M| padlen = 0; 1458| 59.0M| if (leftjust) ------------------ | Branch (1458:6): [True: 0, False: 59.0M] ------------------ 1459| 0| padlen = -padlen; 1460| 59.0M| return padlen; 1461| 59.0M|} src_port_snprintf.c:leading_pad: 1466| 56.0M|{ 1467| 56.0M| int maxpad; 1468| | 1469| 56.0M| if (*padlen > 0 && zpad) ------------------ | Branch (1469:6): [True: 11.8M, False: 44.2M] | Branch (1469:21): [True: 11.8M, False: 0] ------------------ 1470| 11.8M| { 1471| 11.8M| if (signvalue) ------------------ | Branch (1471:7): [True: 0, False: 11.8M] ------------------ 1472| 0| { 1473| 0| dopr_outch(signvalue, target); 1474| 0| --(*padlen); 1475| 0| signvalue = 0; 1476| 0| } 1477| 11.8M| if (*padlen > 0) ------------------ | Branch (1477:7): [True: 11.8M, False: 0] ------------------ 1478| 11.8M| { 1479| 11.8M| dopr_outchmulti(zpad, *padlen, target); 1480| 11.8M| *padlen = 0; 1481| 11.8M| } 1482| 11.8M| } 1483| 56.0M| maxpad = (signvalue != 0); 1484| 56.0M| if (*padlen > maxpad) ------------------ | Branch (1484:6): [True: 0, False: 56.0M] ------------------ 1485| 0| { 1486| 0| dopr_outchmulti(' ', *padlen - maxpad, target); 1487| 0| *padlen = maxpad; 1488| 0| } 1489| 56.0M| if (signvalue) ------------------ | Branch (1489:6): [True: 7.05M, False: 48.9M] ------------------ 1490| 7.05M| { 1491| 7.05M| dopr_outch(signvalue, target); 1492| 7.05M| if (*padlen > 0) ------------------ | Branch (1492:7): [True: 0, False: 7.05M] ------------------ 1493| 0| --(*padlen); 1494| 7.05M| else if (*padlen < 0) ------------------ | Branch (1494:12): [True: 0, False: 7.05M] ------------------ 1495| 0| ++(*padlen); 1496| 7.05M| } 1497| 56.0M|} src_port_snprintf.c:dopr_outchmulti: 1401| 11.8M|{ 1402| | /* fast path for common case of slen == 1 */ 1403| 11.8M| if (slen == 1) ------------------ | Branch (1403:6): [True: 1, False: 11.8M] ------------------ 1404| 1| { 1405| 1| dopr_outch(c, target); 1406| 1| return; 1407| 1| } 1408| | 1409| 23.6M| while (slen > 0) ------------------ | Branch (1409:9): [True: 11.8M, False: 11.8M] ------------------ 1410| 11.8M| { 1411| 11.8M| int avail; 1412| | 1413| 11.8M| if (target->bufend != NULL) ------------------ | Branch (1413:7): [True: 11.8M, False: 0] ------------------ 1414| 11.8M| avail = target->bufend - target->bufptr; 1415| 0| else 1416| 0| avail = slen; 1417| 11.8M| if (avail <= 0) ------------------ | Branch (1417:7): [True: 0, False: 11.8M] ------------------ 1418| 0| { 1419| | /* buffer full, can we dump to stream? */ 1420| 0| if (target->stream == NULL) ------------------ | Branch (1420:8): [True: 0, False: 0] ------------------ 1421| 0| { 1422| 0| target->nchars += slen; /* no, lose the data */ 1423| 0| return; 1424| 0| } 1425| 0| flushbuffer(target); 1426| 0| continue; 1427| 0| } 1428| 11.8M| avail = Min(avail, slen); ------------------ | | 990| 11.8M|#define Min(x, y) ((x) < (y) ? (x) : (y)) | | ------------------ | | | Branch (990:21): [True: 0, False: 11.8M] | | ------------------ ------------------ 1429| 11.8M| memset(target->bufptr, c, avail); 1430| 11.8M| target->bufptr += avail; 1431| 11.8M| slen -= avail; 1432| 11.8M| } 1433| 11.8M|} src_port_snprintf.c:trailing_pad: 1502| 59.0M|{ 1503| 59.0M| if (padlen < 0) ------------------ | Branch (1503:6): [True: 0, False: 59.0M] ------------------ 1504| 0| dopr_outchmulti(' ', -padlen, target); 1505| 59.0M|} src_port_snprintf.c:fmtchar: 1180| 3.00M|{ 1181| 3.00M| int padlen; /* amount to pad */ 1182| | 1183| 3.00M| padlen = compute_padlen(minlen, 1, leftjust); 1184| | 1185| 3.00M| if (padlen > 0) ------------------ | Branch (1185:6): [True: 0, False: 3.00M] ------------------ 1186| 0| { 1187| 0| dopr_outchmulti(' ', padlen, target); 1188| 0| padlen = 0; 1189| 0| } 1190| | 1191| 3.00M| dopr_outch(value, target); 1192| | 1193| 3.00M| trailing_pad(padlen, target); 1194| 3.00M|} src_port_snprintf.c:dopr_outch: 1385| 93.4M|{ 1386| 93.4M| if (target->bufend != NULL && target->bufptr >= target->bufend) ------------------ | Branch (1386:6): [True: 93.4M, False: 64] | Branch (1386:32): [True: 329, False: 93.4M] ------------------ 1387| 329| { 1388| | /* buffer full, can we dump to stream? */ 1389| 329| if (target->stream == NULL) ------------------ | Branch (1389:7): [True: 329, False: 0] ------------------ 1390| 329| { 1391| 329| target->nchars++; /* no, lose the data */ 1392| 329| return; 1393| 329| } 1394| 0| flushbuffer(target); 1395| 0| } 1396| 93.4M| *(target->bufptr++) = c; 1397| 93.4M|} LLVMFuzzerTestOneInput: 8| 1.07k|int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { 9| 1.07k| char *new_str = (char *)malloc(size+1); 10| 1.07k| if (new_str == NULL){ ------------------ | Branch (10:6): [True: 0, False: 1.07k] ------------------ 11| 0| return 0; 12| 0| } 13| 1.07k| memcpy(new_str, data, size); 14| 1.07k| new_str[size] = '\0'; 15| | 16| 1.07k| PgQueryParseResult result = pg_query_parse(new_str); 17| 1.07k| pg_query_free_parse_result(result); 18| | 19| 1.07k| free(new_str); 20| 1.07k| return 0; 21| 1.07k|}