summaryrefslogtreecommitdiff
path: root/src/include/parser/parse_oper.h
blob: c013af628c33b49b4d58aa1133c66f0d6ce285c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*-------------------------------------------------------------------------
 *
 * catalog_utils.h--
 *
 *
 *
 * Copyright (c) 1994, Regents of the University of California
 *
 * $Id: parse_oper.h,v 1.1 1997/11/25 22:06:59 momjian Exp $
 *
 *-------------------------------------------------------------------------
 */
#ifndef PARSE_OPER_H
#define PARSE_OPER_H

#include <parser/parse_func.h>
#include <parser/parse_node.h>

typedef HeapTuple Operator;

Oid any_ordering_op(int restype);

Oid oprid(Operator op);

int binary_oper_get_candidates(char *opname,
						   Oid leftTypeId,
						   Oid rightTypeId,
						   CandidateList *candidates);

bool equivalentOpersAfterPromotion(CandidateList candidates);

CandidateList binary_oper_select_candidate(Oid arg1,
							 Oid arg2,
							 CandidateList candidates);

Operator oper(char *op, Oid arg1, Oid arg2, bool noWarnings);

int
unary_oper_get_candidates(char *op,
						  Oid typeId,
						  CandidateList *candidates,
						  char rightleft);

Operator right_oper(char *op, Oid arg);
						  
Operator left_oper(char *op, Oid arg);

void op_error(char *op, Oid arg1, Oid arg2);

#endif							/* PARSE_OPER_H */