MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / par_stat

Function par_stat

src/gpre/sqe.cpp:3039–3073  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3037//
3038
3039static gpre_nod* par_stat( gpre_req* request)
3040{
3041 assert_IS_REQ(request);
3042
3043 request->req_in_subselect++;
3044 scope previous_scope;
3045 push_scope(request, &previous_scope);
3046
3047 const bool distinct = (!MSC_match(KW_ALL) && MSC_match(KW_DISTINCT));
3048
3049 request->req_in_select_list++;
3050 gpre_nod* item = par_udf(request);
3051 if (!item)
3052 item = SQE_value(request, false, NULL, NULL);
3053 request->req_in_select_list--;
3054
3055 gpre_nod* field_list = MSC_node(nod_list, 1);
3056 field_list->nod_arg[0] = item;
3057 gpre_rse* select = par_rse(request, field_list, distinct);
3058 select->rse_flags |= RSE_singleton;
3059
3060 item = select->rse_fields->nod_arg[0];
3061
3062 gpre_nod* node = MSC_node(nod_via, 3);
3063 node->nod_count = 0;
3064 node->nod_arg[0] = (gpre_nod*) select;
3065 node->nod_arg[2] = MSC_node(nod_null, 0);
3066 node->nod_arg[1] = item;
3067
3068 EXP_rse_cleanup(select);
3069 pop_scope(request, &previous_scope);
3070 request->req_in_subselect--;
3071
3072 return node;
3073}
3074
3075
3076//____________________________________________________________

Callers 1

par_primitive_valueFunction · 0.85

Calls 8

push_scopeFunction · 0.85
MSC_matchFunction · 0.85
SQE_valueFunction · 0.85
MSC_nodeFunction · 0.85
par_rseFunction · 0.85
EXP_rse_cleanupFunction · 0.85
pop_scopeFunction · 0.85
par_udfFunction · 0.70

Tested by

no test coverage detected