| 2096 | // |
| 2097 | |
| 2098 | static gpre_ctx* par_join_clause( gpre_req* request, gpre_ctx* context1) |
| 2099 | { |
| 2100 | assert_IS_REQ(request); |
| 2101 | |
| 2102 | const nod_t join_type = par_join_type(); |
| 2103 | if (join_type == nod_nothing) |
| 2104 | return context1; |
| 2105 | |
| 2106 | gpre_ctx* context2 = par_joined_relation(request); |
| 2107 | if (!context2) |
| 2108 | CPR_s_error("<joined table clause>"); |
| 2109 | |
| 2110 | if (!MSC_match(KW_ON)) |
| 2111 | CPR_s_error("ON"); |
| 2112 | |
| 2113 | gpre_nod* node = SQE_boolean(request, NULL); |
| 2114 | |
| 2115 | gpre_rse* selection = (gpre_rse*) MSC_alloc(RSE_LEN(2)); |
| 2116 | selection->rse_count = 2; |
| 2117 | selection->rse_context[0] = context1; |
| 2118 | selection->rse_context[1] = context2; |
| 2119 | selection->rse_boolean = node; |
| 2120 | selection->rse_join_type = join_type; |
| 2121 | |
| 2122 | context1 = MSC_context(request); |
| 2123 | context1->ctx_stream = selection; |
| 2124 | |
| 2125 | return par_join_clause(request, context1); |
| 2126 | } |
| 2127 | |
| 2128 | |
| 2129 | //____________________________________________________________ |
no test coverage detected