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

Function par_udf

src/gpre/exp.cpp:1581–1615  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1579//
1580
1581static gpre_nod* par_udf( gpre_req* request, USHORT type, gpre_fld* field)
1582{
1583 if (!request)
1584 return NULL;
1585
1586 // Check for user defined functions
1587
1588 for (gpre_sym* symbol = gpreGlob.token_global.tok_symbol; symbol; symbol = symbol->sym_homonym)
1589 {
1590 udf* new_udf;
1591 if (symbol->sym_type == SYM_udf && (new_udf = (udf*) symbol->sym_object) &&
1592 // request->req_database == new_udf->udf_database &&
1593 new_udf->udf_type == type)
1594 {
1595 gpre_nod* node = MSC_node(nod_udf, 2);
1596 node->nod_count = 1;
1597 node->nod_arg[1] = (gpre_nod*) new_udf;
1598 PAR_get_token();
1599 if (!MSC_match(KW_LEFT_PAREN))
1600 EXP_left_paren(0);
1601 gpre_lls* stack = NULL;
1602 for (;;)
1603 {
1604 MSC_push(par_value(request, field), &stack);
1605 if (!MSC_match(KW_COMMA))
1606 break;
1607 }
1608 EXP_match_paren();
1609 node->nod_arg[0] = make_list(stack);
1610 return node;
1611 }
1612 }
1613
1614 return NULL;
1615}
1616
1617
1618//____________________________________________________________

Callers 3

par_notFunction · 0.70
par_primitive_valueFunction · 0.70
par_relationalFunction · 0.70

Calls 8

MSC_nodeFunction · 0.85
PAR_get_tokenFunction · 0.85
MSC_matchFunction · 0.85
EXP_left_parenFunction · 0.85
MSC_pushFunction · 0.85
par_valueFunction · 0.85
EXP_match_parenFunction · 0.85
make_listFunction · 0.85

Tested by

no test coverage detected