* LookupOperWithArgs * Like LookupOperName, but the argument types are specified by * a ObjectWithArgs node. */
| 142 | * a ObjectWithArgs node. |
| 143 | */ |
| 144 | Oid |
| 145 | LookupOperWithArgs(ObjectWithArgs *oper, bool noError) |
| 146 | { |
| 147 | TypeName *oprleft, |
| 148 | *oprright; |
| 149 | Oid leftoid, |
| 150 | rightoid; |
| 151 | |
| 152 | Assert(list_length(oper->objargs) == 2); |
| 153 | oprleft = linitial_node(TypeName, oper->objargs); |
| 154 | oprright = lsecond_node(TypeName, oper->objargs); |
| 155 | |
| 156 | if (oprleft == NULL) |
| 157 | leftoid = InvalidOid; |
| 158 | else |
| 159 | leftoid = LookupTypeNameOid(NULL, oprleft, noError); |
| 160 | |
| 161 | if (oprright == NULL) |
| 162 | rightoid = InvalidOid; |
| 163 | else |
| 164 | rightoid = LookupTypeNameOid(NULL, oprright, noError); |
| 165 | |
| 166 | return LookupOperName(NULL, oper->objname, leftoid, rightoid, |
| 167 | noError, -1); |
| 168 | } |
| 169 | |
| 170 | /* |
| 171 | * get_sort_group_operators - get default sorting/grouping operators for type |
no test coverage detected