1010 *
1111 *
1212 * IDENTIFICATION
13- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.101 1999/09/28 14:31:19 momjian Exp $
13+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.102 1999/09/28 14:38:02 momjian Exp $
1414 *
1515 * HISTORY
1616 * AUTHORDATEMAJOR EVENT
@@ -4103,6 +4103,16 @@ a_expr: attr
41034103n->subselect = $4;
41044104$$ = (Node *)n;
41054105}
4106+ | a_expr '*' '(' SubSelect ')'
4107+ {
4108+ SubLink *n = makeNode(SubLink);
4109+ n->lefthand = lcons($1, NULL);
4110+ n->oper = lcons("*",NIL);
4111+ n->useor = false;
4112+ n->subLinkType = EXPR_SUBLINK;
4113+ n->subselect = $4;
4114+ $$ = (Node *)n;
4115+ }
41064116| a_expr '/' '(' SubSelect ')'
41074117{
41084118SubLink *n = makeNode(SubLink);
@@ -4123,11 +4133,21 @@ a_expr: attr
41234133n->subselect = $4;
41244134$$ = (Node *)n;
41254135}
4126- | a_expr '* ' '(' SubSelect ')'
4136+ | a_expr '^ ' '(' SubSelect ')'
41274137{
41284138SubLink *n = makeNode(SubLink);
41294139n->lefthand = lcons($1, NULL);
4130- n->oper = lcons("*",NIL);
4140+ n->oper = lcons("^",NIL);
4141+ n->useor = false;
4142+ n->subLinkType = EXPR_SUBLINK;
4143+ n->subselect = $4;
4144+ $$ = (Node *)n;
4145+ }
4146+ | a_expr '|' '(' SubSelect ')'
4147+ {
4148+ SubLink *n = makeNode(SubLink);
4149+ n->lefthand = lcons($1, NULL);
4150+ n->oper = lcons("|",NIL);
41314151n->useor = false;
41324152n->subLinkType = EXPR_SUBLINK;
41334153n->subselect = $4;
@@ -4193,6 +4213,16 @@ a_expr: attr
41934213n->subselect = $5;
41944214$$ = (Node *)n;
41954215}
4216+ | a_expr '*' ANY '(' SubSelect ')'
4217+ {
4218+ SubLink *n = makeNode(SubLink);
4219+ n->lefthand = lcons($1,NIL);
4220+ n->oper = lcons("*",NIL);
4221+ n->useor = false;
4222+ n->subLinkType = ANY_SUBLINK;
4223+ n->subselect = $5;
4224+ $$ = (Node *)n;
4225+ }
41964226| a_expr '/' ANY '(' SubSelect ')'
41974227{
41984228SubLink *n = makeNode(SubLink);
@@ -4213,11 +4243,21 @@ a_expr: attr
42134243n->subselect = $5;
42144244$$ = (Node *)n;
42154245}
4216- | a_expr '* ' ANY '(' SubSelect ')'
4246+ | a_expr '^ ' ANY '(' SubSelect ')'
42174247{
42184248SubLink *n = makeNode(SubLink);
42194249n->lefthand = lcons($1,NIL);
4220- n->oper = lcons("*",NIL);
4250+ n->oper = lcons("^",NIL);
4251+ n->useor = false;
4252+ n->subLinkType = ANY_SUBLINK;
4253+ n->subselect = $5;
4254+ $$ = (Node *)n;
4255+ }
4256+ | a_expr '|' ANY '(' SubSelect ')'
4257+ {
4258+ SubLink *n = makeNode(SubLink);
4259+ n->lefthand = lcons($1,NIL);
4260+ n->oper = lcons("|",NIL);
42214261n->useor = false;
42224262n->subLinkType = ANY_SUBLINK;
42234263n->subselect = $5;
@@ -4283,6 +4323,16 @@ a_expr: attr
42834323n->subselect = $5;
42844324$$ = (Node *)n;
42854325}
4326+ | a_expr '*' ALL '(' SubSelect ')'
4327+ {
4328+ SubLink *n = makeNode(SubLink);
4329+ n->lefthand = lcons($1, NULL);
4330+ n->oper = lcons("*",NIL);
4331+ n->useor = false;
4332+ n->subLinkType = ALL_SUBLINK;
4333+ n->subselect = $5;
4334+ $$ = (Node *)n;
4335+ }
42864336| a_expr '/' ALL '(' SubSelect ')'
42874337{
42884338SubLink *n = makeNode(SubLink);
@@ -4303,11 +4353,21 @@ a_expr: attr
43034353n->subselect = $5;
43044354$$ = (Node *)n;
43054355}
4306- | a_expr '* ' ALL '(' SubSelect ')'
4356+ | a_expr '^ ' ALL '(' SubSelect ')'
43074357{
43084358SubLink *n = makeNode(SubLink);
43094359n->lefthand = lcons($1, NULL);
4310- n->oper = lcons("*",NIL);
4360+ n->oper = lcons("^",NIL);
4361+ n->useor = false;
4362+ n->subLinkType = ALL_SUBLINK;
4363+ n->subselect = $5;
4364+ $$ = (Node *)n;
4365+ }
4366+ | a_expr '|' ALL '(' SubSelect ')'
4367+ {
4368+ SubLink *n = makeNode(SubLink);
4369+ n->lefthand = lcons($1, NULL);
4370+ n->oper = lcons("|",NIL);
43114371n->useor = false;
43124372n->subLinkType = ALL_SUBLINK;
43134373n->subselect = $5;