Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
12be3e08
Commit
12be3e08
authored
Jan 21, 1999
by
Vadim B. Mikheev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FOR UPDATE is in parser & rules.
parent
c8ae6afd
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
745 additions
and
591 deletions
+745
-591
src/backend/Makefile
src/backend/Makefile
+1
-4
src/backend/nodes/outfuncs.c
src/backend/nodes/outfuncs.c
+15
-1
src/backend/nodes/readfuncs.c
src/backend/nodes/readfuncs.c
+24
-1
src/backend/parser/analyze.c
src/backend/parser/analyze.c
+66
-2
src/backend/parser/gram.c
src/backend/parser/gram.c
+570
-569
src/backend/parser/gram.y
src/backend/parser/gram.y
+2
-1
src/backend/rewrite/rewriteHandler.c
src/backend/rewrite/rewriteHandler.c
+40
-2
src/backend/utils/adt/float.c
src/backend/utils/adt/float.c
+4
-1
src/include/nodes/nodes.h
src/include/nodes/nodes.h
+3
-2
src/include/nodes/parsenodes.h
src/include/nodes/parsenodes.h
+20
-8
No files found.
src/backend/Makefile
View file @
12be3e08
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
#
#
#
#
# IDENTIFICATION
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.3
5 1999/01/17 06:18:11 momjian
Exp $
# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.3
6 1999/01/21 16:08:36 vadim
Exp $
#
#
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
...
@@ -111,9 +111,6 @@ catalog/global1.description catalog/local1_template1.description:
...
@@ -111,9 +111,6 @@ catalog/global1.description catalog/local1_template1.description:
postgres.o
:
$(OBJS)
postgres.o
:
$(OBJS)
$(CC)
-r
-o
postgres.o
$(OBJS)
$(LDFLAGS)
$(CC)
-r
-o
postgres.o
$(OBJS)
$(LDFLAGS)
fast
:
$(CC)
-r
-o
postgres.o
$(OBJS)
$(LDFLAGS)
############################################################################
############################################################################
# The following targets are specified in make commands that appear in the
# The following targets are specified in make commands that appear in the
# make files in our subdirectories.
# make files in our subdirectories.
...
...
src/backend/nodes/outfuncs.c
View file @
12be3e08
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
*
*
* Copyright (c) 1994, Regents of the University of California
* Copyright (c) 1994, Regents of the University of California
*
*
* $Id: outfuncs.c,v 1.
59 1999/01/18 00:09:45 momjian
Exp $
* $Id: outfuncs.c,v 1.
60 1999/01/21 16:08:36 vadim
Exp $
*
*
* NOTES
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
* Every (plan) node in POSTGRES has an associated "out" routine which
...
@@ -162,6 +162,7 @@ _outIndexElem(StringInfo str, IndexElem *node)
...
@@ -162,6 +162,7 @@ _outIndexElem(StringInfo str, IndexElem *node)
static
void
static
void
_outQuery
(
StringInfo
str
,
Query
*
node
)
_outQuery
(
StringInfo
str
,
Query
*
node
)
{
{
appendStringInfo
(
str
,
" QUERY :command %d "
,
node
->
commandType
);
appendStringInfo
(
str
,
" QUERY :command %d "
,
node
->
commandType
);
if
(
node
->
utilityStmt
)
if
(
node
->
utilityStmt
)
...
@@ -235,6 +236,10 @@ _outQuery(StringInfo str, Query *node)
...
@@ -235,6 +236,10 @@ _outQuery(StringInfo str, Query *node)
appendStringInfo
(
str
,
" :limitCount "
);
appendStringInfo
(
str
,
" :limitCount "
);
_outNode
(
str
,
node
->
limitCount
);
_outNode
(
str
,
node
->
limitCount
);
appendStringInfo
(
str
,
" :rowMark "
);
_outNode
(
str
,
node
->
rowMark
);
}
}
static
void
static
void
...
@@ -907,6 +912,12 @@ _outRangeTblEntry(StringInfo str, RangeTblEntry *node)
...
@@ -907,6 +912,12 @@ _outRangeTblEntry(StringInfo str, RangeTblEntry *node)
node
->
skipAcl
?
"true"
:
"false"
);
node
->
skipAcl
?
"true"
:
"false"
);
}
}
static
void
_outRowMark
(
StringInfo
str
,
RowMark
*
node
)
{
appendStringInfo
(
str
,
" ROWMARK :rti %u :info %u"
,
node
->
rti
,
node
->
info
);
}
/*
/*
* Path is a subclass of Node.
* Path is a subclass of Node.
*/
*/
...
@@ -1528,6 +1539,9 @@ _outNode(StringInfo str, void *obj)
...
@@ -1528,6 +1539,9 @@ _outNode(StringInfo str, void *obj)
case
T_RangeTblEntry
:
case
T_RangeTblEntry
:
_outRangeTblEntry
(
str
,
obj
);
_outRangeTblEntry
(
str
,
obj
);
break
;
break
;
case
T_RowMark
:
_outRowMark
(
str
,
obj
);
break
;
case
T_Path
:
case
T_Path
:
_outPath
(
str
,
obj
);
_outPath
(
str
,
obj
);
break
;
break
;
...
...
src/backend/nodes/readfuncs.c
View file @
12be3e08
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.4
1 1999/01/18 00:09:46 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.4
2 1999/01/21 16:08:37 vadim
Exp $
*
*
* NOTES
* NOTES
* Most of the read functions for plan nodes are tested. (In fact, they
* Most of the read functions for plan nodes are tested. (In fact, they
...
@@ -174,6 +174,9 @@ _readQuery()
...
@@ -174,6 +174,9 @@ _readQuery()
token
=
lsptok
(
NULL
,
&
length
);
/* skip :limitCount */
token
=
lsptok
(
NULL
,
&
length
);
/* skip :limitCount */
local_node
->
limitCount
=
nodeRead
(
true
);
local_node
->
limitCount
=
nodeRead
(
true
);
token
=
lsptok
(
NULL
,
&
length
);
/* skip :rowMark */
local_node
->
rowMark
=
nodeRead
(
true
);
return
local_node
;
return
local_node
;
}
}
...
@@ -1427,6 +1430,24 @@ _readRangeTblEntry()
...
@@ -1427,6 +1430,24 @@ _readRangeTblEntry()
return
local_node
;
return
local_node
;
}
}
static
RowMark
*
_readRowMark
()
{
RowMark
*
local_node
=
makeNode
(
RowMark
);
char
*
token
;
int
length
;
token
=
lsptok
(
NULL
,
&
length
);
/* eat :rti */
token
=
lsptok
(
NULL
,
&
length
);
/* get :rti */
local_node
->
rti
=
strtoul
(
token
,
NULL
,
10
);
token
=
lsptok
(
NULL
,
&
length
);
/* eat :info */
token
=
lsptok
(
NULL
,
&
length
);
/* get :info */
local_node
->
info
=
strtoul
(
token
,
NULL
,
10
);
return
local_node
;
}
/* ----------------
/* ----------------
* _readPath
* _readPath
*
*
...
@@ -2090,6 +2111,8 @@ parsePlanString(void)
...
@@ -2090,6 +2111,8 @@ parsePlanString(void)
return_value
=
_readCaseExpr
();
return_value
=
_readCaseExpr
();
else
if
(
!
strncmp
(
token
,
"WHEN"
,
length
))
else
if
(
!
strncmp
(
token
,
"WHEN"
,
length
))
return_value
=
_readCaseWhen
();
return_value
=
_readCaseWhen
();
else
if
(
!
strncmp
(
token
,
"ROWMARK"
,
length
))
return_value
=
_readRowMark
();
else
else
elog
(
ERROR
,
"badly formatted planstring
\"
%.10s
\"
...
\n
"
,
token
);
elog
(
ERROR
,
"badly formatted planstring
\"
%.10s
\"
...
\n
"
,
token
);
...
...
src/backend/parser/analyze.c
View file @
12be3e08
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
*
*
* Copyright (c) 1994, Regents of the University of California
* Copyright (c) 1994, Regents of the University of California
*
*
* $Id: analyze.c,v 1.9
2 1999/01/18 00:09:49 momjian
Exp $
* $Id: analyze.c,v 1.9
3 1999/01/21 16:08:38 vadim
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -45,6 +45,8 @@ static Query *transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt);
...
@@ -45,6 +45,8 @@ static Query *transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt);
static
Query
*
transformCursorStmt
(
ParseState
*
pstate
,
SelectStmt
*
stmt
);
static
Query
*
transformCursorStmt
(
ParseState
*
pstate
,
SelectStmt
*
stmt
);
static
Query
*
transformCreateStmt
(
ParseState
*
pstate
,
CreateStmt
*
stmt
);
static
Query
*
transformCreateStmt
(
ParseState
*
pstate
,
CreateStmt
*
stmt
);
static
void
transformForUpdate
(
Query
*
qry
,
List
*
forUpdate
);
List
*
extras_before
=
NIL
;
List
*
extras_before
=
NIL
;
List
*
extras_after
=
NIL
;
List
*
extras_after
=
NIL
;
...
@@ -387,7 +389,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
...
@@ -387,7 +389,7 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
/*
/*
* The INSERT INTO ... SELECT ... could have a UNION in child, so
* The INSERT INTO ... SELECT ... could have a UNION in child, so
* unionClause may be false
* unionClause may be false
*/
,
*/
qry
->
unionall
=
stmt
->
unionall
;
qry
->
unionall
=
stmt
->
unionall
;
/***S*I***/
/***S*I***/
...
@@ -408,6 +410,9 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
...
@@ -408,6 +410,9 @@ transformInsertStmt(ParseState *pstate, InsertStmt *stmt)
return
(
Query
*
)
NIL
;
return
(
Query
*
)
NIL
;
}
}
if
(
stmt
->
forUpdate
!=
NULL
)
transformForUpdate
(
qry
,
stmt
->
forUpdate
);
return
(
Query
*
)
qry
;
return
(
Query
*
)
qry
;
}
}
...
@@ -971,6 +976,9 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
...
@@ -971,6 +976,9 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
return
(
Query
*
)
NIL
;
return
(
Query
*
)
NIL
;
}
}
if
(
stmt
->
forUpdate
!=
NULL
)
transformForUpdate
(
qry
,
stmt
->
forUpdate
);
return
(
Query
*
)
qry
;
return
(
Query
*
)
qry
;
}
}
...
@@ -1121,3 +1129,59 @@ Node *A_Expr_to_Expr(Node *ptr, bool *intersect_present)
...
@@ -1121,3 +1129,59 @@ Node *A_Expr_to_Expr(Node *ptr, bool *intersect_present)
}
}
return
result
;
return
result
;
}
}
static
void
transformForUpdate
(
Query
*
qry
,
List
*
forUpdate
)
{
List
*
rowMark
=
NULL
;
RowMark
*
newrm
;
List
*
l
;
Index
i
;
if
(
lfirst
(
forUpdate
)
==
NULL
)
/* all tables */
{
i
=
1
;
foreach
(
l
,
qry
->
rtable
)
{
newrm
=
makeNode
(
RowMark
);
newrm
->
rti
=
i
++
;
newrm
->
info
=
ROW_MARK_FOR_UPDATE
|
ROW_ACL_FOR_UPDATE
;
rowMark
=
lappend
(
rowMark
,
newrm
);
}
qry
->
rowMark
=
nconc
(
qry
->
rowMark
,
rowMark
);
return
;
}
foreach
(
l
,
forUpdate
)
{
List
*
l2
;
List
*
l3
;
i
=
1
;
foreach
(
l2
,
qry
->
rtable
)
{
if
(
strcmp
(((
RangeTblEntry
*
)
lfirst
(
l2
))
->
refname
,
lfirst
(
l
))
==
0
)
{
foreach
(
l3
,
rowMark
)
{
if
(((
RowMark
*
)
lfirst
(
l3
))
->
rti
==
i
)
/* duplicate */
break
;
}
if
(
l3
==
NULL
)
{
newrm
=
makeNode
(
RowMark
);
newrm
->
rti
=
i
;
newrm
->
info
=
ROW_MARK_FOR_UPDATE
|
ROW_ACL_FOR_UPDATE
;
rowMark
=
lappend
(
rowMark
,
newrm
);
}
break
;
}
i
++
;
}
if
(
l2
==
NULL
)
elog
(
ERROR
,
"FOR UPDATE: relation %s not found in FROM clause"
,
lfirst
(
l
));
}
qry
->
rowMark
=
rowMark
;
return
;
}
src/backend/parser/gram.c
View file @
12be3e08
...
@@ -239,7 +239,7 @@
...
@@ -239,7 +239,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.5
8 1999/01/20 22:31:07 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.5
9 1999/01/21 16:08:39 vadim
Exp $
*
*
* HISTORY
* HISTORY
* AUTHOR DATE MAJOR EVENT
* AUTHOR DATE MAJOR EVENT
...
@@ -864,58 +864,58 @@ static const short yyrline[] = { 0,
...
@@ -864,58 +864,58 @@ static const short yyrline[] = { 0,
2300
,
2301
,
2304
,
2305
,
2308
,
2309
,
2310
,
2313
,
2314
,
2315
,
2300
,
2301
,
2304
,
2305
,
2308
,
2309
,
2310
,
2313
,
2314
,
2315
,
2325
,
2341
,
2358
,
2367
,
2380
,
2381
,
2384
,
2385
,
2388
,
2389
,
2325
,
2341
,
2358
,
2367
,
2380
,
2381
,
2384
,
2385
,
2388
,
2389
,
2392
,
2394
,
2406
,
2427
,
2428
,
2429
,
2430
,
2431
,
2432
,
2449
,
2392
,
2394
,
2406
,
2427
,
2428
,
2429
,
2430
,
2431
,
2432
,
2449
,
2456
,
2468
,
2484
,
250
0
,
2514
,
2532
,
2533
,
2536
,
2539
,
2543
,
2456
,
2468
,
2484
,
250
1
,
2515
,
2533
,
2534
,
2537
,
2540
,
2544
,
256
0
,
2570
,
2578
,
2604
,
2621
,
2638
,
2639
,
2649
,
2671
,
2693
,
256
1
,
2571
,
2579
,
2605
,
2622
,
2639
,
2640
,
2650
,
2672
,
2694
,
269
4
,
2695
,
2696
,
2697
,
2700
,
2701
,
2704
,
2705
,
2713
,
2730
,
269
5
,
2696
,
2697
,
2698
,
2701
,
2702
,
2705
,
2706
,
2714
,
2731
,
283
2
,
2836
,
2840
,
2845
,
2854
,
2861
,
2888
,
2889
,
2892
,
2893
,
283
3
,
2837
,
2841
,
2846
,
2855
,
2862
,
2889
,
2890
,
2893
,
2894
,
289
6
,
2897
,
2900
,
2901
,
2902
,
2903
,
2906
,
2907
,
2910
,
2911
,
289
7
,
2898
,
2901
,
2902
,
2903
,
2904
,
2907
,
2908
,
2911
,
2912
,
291
4
,
2922
,
2923
,
2924
,
2925
,
2926
,
2927
,
2937
,
2938
,
2941
,
291
5
,
2923
,
2924
,
2925
,
2926
,
2927
,
2928
,
2938
,
2939
,
2942
,
294
3
,
2945
,
2949
,
2950
,
2953
,
2957
,
2960
,
2965
,
2969
,
2983
,
294
4
,
2946
,
2950
,
2951
,
2954
,
2958
,
2961
,
2966
,
2970
,
2984
,
298
8
,
2989
,
2992
,
2994
,
2996
,
3000
,
3006
,
3012
,
3020
,
3021
,
298
9
,
2990
,
2993
,
2995
,
2997
,
3001
,
3007
,
3013
,
3021
,
3022
,
302
3
,
3025
,
3027
,
3029
,
3031
,
3033
,
3037
,
3038
,
3041
,
3042
,
302
4
,
3026
,
3028
,
3030
,
3032
,
3034
,
3038
,
3039
,
3042
,
3043
,
304
3
,
3046
,
3047
,
3050
,
3065
,
3072
,
3081
,
3082
,
3085
,
3092
,
304
4
,
3047
,
3048
,
3051
,
3066
,
3073
,
3082
,
3083
,
3086
,
3093
,
310
0
,
3102
,
3104
,
3108
,
3110
,
3112
,
3127
,
3149
,
3150
,
3157
,
310
1
,
3103
,
3105
,
3109
,
3111
,
3113
,
3128
,
3150
,
3151
,
3158
,
315
8
,
3159
,
3162
,
3170
,
3171
,
3179
,
3185
,
3190
,
3196
,
3204
,
315
9
,
3160
,
3163
,
3171
,
3172
,
3180
,
3186
,
3191
,
3197
,
3205
,
320
6
,
3208
,
3210
,
3214
,
3225
,
3231
,
3242
,
3250
,
3256
,
3267
,
320
7
,
3209
,
3211
,
3215
,
3226
,
3232
,
3243
,
3251
,
3257
,
3268
,
327
5
,
3289
,
3316
,
3335
,
3355
,
3356
,
3357
,
3358
,
3361
,
3362
,
327
6
,
3290
,
3317
,
3336
,
3356
,
3357
,
3358
,
3359
,
3362
,
3363
,
336
5
,
3366
,
3369
,
3370
,
3373
,
3379
,
3386
,
3392
,
3400
,
3401
,
336
6
,
3367
,
3370
,
3371
,
3374
,
3380
,
3387
,
3393
,
3401
,
3402
,
340
2
,
3403
,
3404
,
3405
,
3408
,
3409
,
3412
,
3413
,
3414
,
3415
,
340
3
,
3404
,
3405
,
3406
,
3409
,
3410
,
3413
,
3414
,
3415
,
3416
,
341
6
,
3417
,
3418
,
3419
,
3420
,
3430
,
3432
,
3449
,
3459
,
3469
,
341
7
,
3418
,
3419
,
3420
,
3421
,
3431
,
3433
,
3450
,
3460
,
3470
,
348
2
,
3495
,
3501
,
3507
,
3511
,
3517
,
3518
,
3519
,
3520
,
3521
,
348
3
,
3496
,
3502
,
3508
,
3512
,
3518
,
3519
,
3520
,
3521
,
3522
,
352
2
,
3523
,
3524
,
3527
,
3528
,
3539
,
3544
,
3546
,
3548
,
3556
,
352
3
,
3524
,
3525
,
3528
,
3529
,
3540
,
3545
,
3547
,
3549
,
3557
,
355
8
,
3560
,
3562
,
3564
,
3566
,
3568
,
3570
,
3572
,
3574
,
3576
,
355
9
,
3561
,
3563
,
3565
,
3567
,
3569
,
3571
,
3573
,
3575
,
3577
,
357
8
,
3594
,
3610
,
3612
,
3614
,
3616
,
3618
,
3620
,
3622
,
3634
,
357
9
,
3595
,
3611
,
3613
,
3615
,
3617
,
3619
,
3621
,
3623
,
3635
,
364
1
,
3648
,
3663
,
3678
,
3700
,
3715
,
3737
,
3744
,
3751
,
3761
,
364
2
,
3649
,
3664
,
3679
,
3701
,
3716
,
3738
,
3745
,
3752
,
3762
,
376
8
,
3775
,
3783
,
3790
,
3797
,
3804
,
3811
,
3813
,
3815
,
3817
,
376
9
,
3776
,
3784
,
3791
,
3798
,
3805
,
3812
,
3814
,
3816
,
3818
,
382
4
,
3834
,
3844
,
3854
,
3864
,
3870
,
3876
,
3876
,
3890
,
3890
,
382
5
,
3835
,
3845
,
3855
,
3865
,
3871
,
3877
,
3877
,
3891
,
3891
,
390
4
,
3914
,
3924
,
3934
,
3944
,
3954
,
3964
,
3974
,
3984
,
3994
,
390
5
,
3915
,
3925
,
3935
,
3945
,
3955
,
3965
,
3975
,
3985
,
3995
,
400
4
,
4014
,
4024
,
4034
,
4044
,
4054
,
4064
,
4074
,
4084
,
4094
,
400
5
,
4015
,
4025
,
4035
,
4045
,
4055
,
4065
,
4075
,
4085
,
4095
,
410
4
,
4114
,
4124
,
4134
,
4144
,
4146
,
4148
,
4150
,
4159
,
4164
,
410
5
,
4115
,
4125
,
4135
,
4145
,
4147
,
4149
,
4151
,
4160
,
4165
,
416
6
,
4174
,
4176
,
4178
,
4180
,
4182
,
4184
,
4186
,
4188
,
4190
,
416
7
,
4175
,
4177
,
4179
,
4181
,
4183
,
4185
,
4187
,
4189
,
4191
,
420
6
,
4222
,
4224
,
4226
,
4228
,
4230
,
4237
,
4244
,
4259
,
4274
,
420
7
,
4223
,
4225
,
4227
,
4229
,
4231
,
4238
,
4245
,
4260
,
4275
,
429
6
,
4311
,
4333
,
4340
,
4347
,
4354
,
4362
,
4369
,
4376
,
4383
,
429
7
,
4312
,
4334
,
4341
,
4348
,
4355
,
4363
,
4370
,
4377
,
4384
,
439
2
,
4399
,
4406
,
4410
,
4412
,
4414
,
4418
,
4425
,
4429
,
4430
,
439
3
,
4400
,
4407
,
4411
,
4413
,
4415
,
4419
,
4426
,
4430
,
4431
,
443
1
,
4434
,
4436
,
4440
,
4445
,
4447
,
4449
,
4451
,
4453
,
4455
,
443
2
,
4435
,
4437
,
4441
,
4446
,
4448
,
4450
,
4452
,
4454
,
4456
,
445
7
,
4459
,
4475
,
4491
,
4493
,
4495
,
4497
,
4499
,
4507
,
4514
,
445
8
,
4460
,
4476
,
4492
,
4494
,
4496
,
4498
,
4500
,
4508
,
4515
,
452
1
,
4528
,
4536
,
4543
,
4550
,
4557
,
4566
,
4570
,
4574
,
4576
,
452
2
,
4529
,
4537
,
4544
,
4551
,
4558
,
4567
,
4571
,
4575
,
4577
,
458
5
,
4587
,
4591
,
4593
,
4595
,
4599
,
4605
,
4609
,
4611
,
4617
,
458
6
,
4588
,
4592
,
4594
,
4596
,
4600
,
4606
,
4610
,
4612
,
4618
,
462
3
,
4627
,
4629
,
4650
,
4658
,
4669
,
4687
,
4689
,
4693
,
4702
,
462
4
,
4628
,
4630
,
4651
,
4659
,
4670
,
4688
,
4690
,
4694
,
4703
,
470
3
,
4706
,
4711
,
4719
,
4723
,
4731
,
4741
,
4743
,
4745
,
4756
,
470
4
,
4707
,
4712
,
4720
,
4724
,
4732
,
4742
,
4744
,
4746
,
4757
,
475
8
,
4760
,
4775
,
4782
,
4789
,
4808
,
4810
,
4815
,
4822
,
4829
,
475
9
,
4761
,
4776
,
4783
,
4790
,
4809
,
4811
,
4816
,
4823
,
4830
,
484
1
,
4855
,
4856
,
4859
,
4864
,
4876
,
4877
,
4878
,
4879
,
4880
,
484
2
,
4856
,
4857
,
4860
,
4865
,
4877
,
4878
,
4879
,
4880
,
4881
,
488
6
,
4887
,
4889
,
4890
,
4895
,
4902
,
4909
,
4916
,
4924
,
4926
,
488
7
,
4888
,
4890
,
4891
,
4896
,
4903
,
4910
,
4917
,
4925
,
4927
,
493
6
,
4948
,
4956
,
4957
,
4958
,
4965
,
4967
,
4969
,
4980
,
4981
,
493
7
,
4949
,
4957
,
4958
,
4959
,
4966
,
4968
,
4970
,
4981
,
4982
,
498
2
,
4983
,
4984
,
4985
,
4986
,
4987
,
4988
,
4989
,
4990
,
4991
,
498
3
,
4984
,
4985
,
4986
,
4987
,
4988
,
4989
,
4990
,
4991
,
4992
,
499
2
,
4993
,
4994
,
4995
,
4996
,
4997
,
4998
,
4999
,
5000
,
5001
,
499
3
,
4994
,
4995
,
4996
,
4997
,
4998
,
4999
,
5000
,
5001
,
5002
,
500
2
,
5003
,
5004
,
5005
,
5006
,
5007
,
5008
,
5009
,
5010
,
5011
,
500
3
,
5004
,
5005
,
5006
,
5007
,
5008
,
5009
,
5010
,
5011
,
5012
,
501
2
,
5013
,
5014
,
5015
,
5016
,
5017
,
5018
,
5019
,
5020
,
5021
,
501
3
,
5014
,
5015
,
5016
,
5017
,
5018
,
5019
,
5020
,
5021
,
5022
,
502
2
,
5023
,
5024
,
5025
,
5026
,
5027
,
5028
,
5029
,
5030
,
5031
,
502
3
,
5024
,
5025
,
5026
,
5027
,
5028
,
5029
,
5030
,
5031
,
5032
,
503
2
,
5033
,
5034
,
5035
,
5036
,
5037
,
5038
,
5039
,
5040
,
5041
,
503
3
,
5034
,
5035
,
5036
,
5037
,
5038
,
5039
,
5040
,
5041
,
5042
,
504
2
,
5043
,
5044
,
5045
,
5046
,
5047
,
5048
,
5049
,
5050
,
5063
,
504
3
,
5044
,
5045
,
5046
,
5047
,
5048
,
5049
,
5050
,
5051
,
5064
,
506
4
,
5065
,
5066
,
5067
,
5068
,
5069
,
5070
,
5071
,
5072
,
5073
,
506
5
,
5066
,
5067
,
5068
,
5069
,
5070
,
5071
,
5072
,
5073
,
5074
,
507
4
,
5075
,
5076
,
5077
,
5078
,
5079
,
5080
,
5081
,
5082
,
5083
,
507
5
,
5076
,
5077
,
5078
,
5079
,
5080
,
5081
,
5082
,
5083
,
5084
,
508
4
,
5085
,
5086
,
5087
,
5088
,
5089
,
5090
,
5091
,
5092
,
5093
,
508
5
,
5086
,
5087
,
5088
,
5089
,
5090
,
5091
,
5092
,
5093
,
5094
,
509
4
,
5095
,
5096
,
5097
,
5098
,
5099
,
5100
,
5101
,
5104
,
5111
509
5
,
5096
,
5097
,
5098
,
5099
,
5100
,
5101
,
5102
,
5105
,
5112
};
};
#endif
#endif
...
@@ -4791,7 +4791,7 @@ static const short yycheck[] = { 3,
...
@@ -4791,7 +4791,7 @@ static const short yycheck[] = { 3,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
214
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
214
};
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/
local/bison
/bison.simple"
#line 3 "/usr/
share/misc
/bison.simple"
/* Skeleton output parser for bison,
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
...
@@ -4984,7 +4984,7 @@ __yy_memcpy (char *to, char *from, int count)
...
@@ -4984,7 +4984,7 @@ __yy_memcpy (char *to, char *from, int count)
#endif
#endif
#endif
#endif
#line 196 "/usr/
local/bison
/bison.simple"
#line 196 "/usr/
share/misc
/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
into yyparse. The argument should have type void *.
...
@@ -7638,10 +7638,11 @@ case 443:
...
@@ -7638,10 +7638,11 @@ case 443:
yyval
.
astmt
->
havingClause
=
n
->
havingClause
;
yyval
.
astmt
->
havingClause
=
n
->
havingClause
;
yyval
.
astmt
->
unionClause
=
n
->
unionClause
;
yyval
.
astmt
->
unionClause
=
n
->
unionClause
;
yyval
.
astmt
->
intersectClause
=
n
->
intersectClause
;
yyval
.
astmt
->
intersectClause
=
n
->
intersectClause
;
yyval
.
astmt
->
forUpdate
=
n
->
forUpdate
;
;
;
break
;}
break
;}
case
444
:
case
444
:
#line 250
1
"gram.y"
#line 250
2
"gram.y"
{
{
yyval
.
astmt
=
makeNode
(
InsertStmt
);
yyval
.
astmt
=
makeNode
(
InsertStmt
);
yyval
.
astmt
->
cols
=
yyvsp
[
-
5
].
list
;
yyval
.
astmt
->
cols
=
yyvsp
[
-
5
].
list
;
...
@@ -7657,7 +7658,7 @@ case 444:
...
@@ -7657,7 +7658,7 @@ case 444:
;
;
break
;}
break
;}
case
445
:
case
445
:
#line 251
5
"gram.y"
#line 251
6
"gram.y"
{
{
SelectStmt
*
n
;
SelectStmt
*
n
;
...
@@ -7675,23 +7676,23 @@ case 445:
...
@@ -7675,23 +7676,23 @@ case 445:
;
;
break
;}
break
;}
case
446
:
case
446
:
#line 253
2
"gram.y"
#line 253
3
"gram.y"
{
yyval
.
list
=
yyvsp
[
-
1
].
list
;
;
{
yyval
.
list
=
yyvsp
[
-
1
].
list
;
;
break
;}
break
;}
case
447
:
case
447
:
#line 253
3
"gram.y"
#line 253
4
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
448
:
case
448
:
#line 253
8
"gram.y"
#line 253
9
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
449
:
case
449
:
#line 254
0
"gram.y"
#line 254
1
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
break
;}
break
;}
case
450
:
case
450
:
#line 254
4
"gram.y"
#line 254
5
"gram.y"
{
{
Ident
*
id
=
makeNode
(
Ident
);
Ident
*
id
=
makeNode
(
Ident
);
id
->
name
=
yyvsp
[
-
1
].
str
;
id
->
name
=
yyvsp
[
-
1
].
str
;
...
@@ -7700,7 +7701,7 @@ case 450:
...
@@ -7700,7 +7701,7 @@ case 450:
;
;
break
;}
break
;}
case
451
:
case
451
:
#line 256
2
"gram.y"
#line 256
3
"gram.y"
{
{
DeleteStmt
*
n
=
makeNode
(
DeleteStmt
);
DeleteStmt
*
n
=
makeNode
(
DeleteStmt
);
n
->
relname
=
yyvsp
[
-
1
].
str
;
n
->
relname
=
yyvsp
[
-
1
].
str
;
...
@@ -7709,7 +7710,7 @@ case 451:
...
@@ -7709,7 +7710,7 @@ case 451:
;
;
break
;}
break
;}
case
452
:
case
452
:
#line 257
1
"gram.y"
#line 257
2
"gram.y"
{
{
LockStmt
*
n
=
makeNode
(
LockStmt
);
LockStmt
*
n
=
makeNode
(
LockStmt
);
...
@@ -7719,7 +7720,7 @@ case 452:
...
@@ -7719,7 +7720,7 @@ case 452:
;
;
break
;}
break
;}
case
453
:
case
453
:
#line 25
79
"gram.y"
#line 25
80
"gram.y"
{
{
LockStmt
*
n
=
makeNode
(
LockStmt
);
LockStmt
*
n
=
makeNode
(
LockStmt
);
...
@@ -7747,7 +7748,7 @@ case 453:
...
@@ -7747,7 +7748,7 @@ case 453:
;
;
break
;}
break
;}
case
454
:
case
454
:
#line 260
5
"gram.y"
#line 260
6
"gram.y"
{
{
LockStmt
*
n
=
makeNode
(
LockStmt
);
LockStmt
*
n
=
makeNode
(
LockStmt
);
...
@@ -7766,7 +7767,7 @@ case 454:
...
@@ -7766,7 +7767,7 @@ case 454:
;
;
break
;}
break
;}
case
455
:
case
455
:
#line 262
2
"gram.y"
#line 262
3
"gram.y"
{
{
LockStmt
*
n
=
makeNode
(
LockStmt
);
LockStmt
*
n
=
makeNode
(
LockStmt
);
...
@@ -7783,15 +7784,15 @@ case 455:
...
@@ -7783,15 +7784,15 @@ case 455:
;
;
break
;}
break
;}
case
456
:
case
456
:
#line 263
8
"gram.y"
#line 263
9
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
457
:
case
457
:
#line 26
39
"gram.y"
#line 26
40
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
458
:
case
458
:
#line 265
3
"gram.y"
#line 265
4
"gram.y"
{
{
UpdateStmt
*
n
=
makeNode
(
UpdateStmt
);
UpdateStmt
*
n
=
makeNode
(
UpdateStmt
);
n
->
relname
=
yyvsp
[
-
4
].
str
;
n
->
relname
=
yyvsp
[
-
4
].
str
;
...
@@ -7802,7 +7803,7 @@ case 458:
...
@@ -7802,7 +7803,7 @@ case 458:
;
;
break
;}
break
;}
case
459
:
case
459
:
#line 267
2
"gram.y"
#line 267
3
"gram.y"
{
{
SelectStmt
*
n
;
SelectStmt
*
n
;
...
@@ -7824,39 +7825,39 @@ case 459:
...
@@ -7824,39 +7825,39 @@ case 459:
;
;
break
;}
break
;}
case
460
:
case
460
:
#line 269
3
"gram.y"
#line 269
4
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
461
:
case
461
:
#line 269
4
"gram.y"
#line 269
5
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
462
:
case
462
:
#line 269
5
"gram.y"
#line 269
6
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
463
:
case
463
:
#line 269
6
"gram.y"
#line 269
7
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
464
:
case
464
:
#line 269
7
"gram.y"
#line 269
8
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
465
:
case
465
:
#line 270
0
"gram.y"
#line 270
1
"gram.y"
{
yyval
.
boolean
=
yyvsp
[
0
].
boolean
;
;
{
yyval
.
boolean
=
yyvsp
[
0
].
boolean
;
;
break
;}
break
;}
case
466
:
case
466
:
#line 270
1
"gram.y"
#line 270
2
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
467
:
case
467
:
#line 270
4
"gram.y"
#line 270
5
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
468
:
case
468
:
#line 270
6
"gram.y"
#line 270
7
"gram.y"
{
{
elog
(
ERROR
,
"DECLARE/UPDATE not supported;"
elog
(
ERROR
,
"DECLARE/UPDATE not supported;"
" Cursors must be READ ONLY."
);
" Cursors must be READ ONLY."
);
...
@@ -7864,13 +7865,13 @@ case 468:
...
@@ -7864,13 +7865,13 @@ case 468:
;
;
break
;}
break
;}
case
469
:
case
469
:
#line 271
4
"gram.y"
#line 271
5
"gram.y"
{
{
yyval
.
boolean
=
FALSE
;
yyval
.
boolean
=
FALSE
;
;
;
break
;}
break
;}
case
470
:
case
470
:
#line 273
1
"gram.y"
#line 273
2
"gram.y"
{
{
/* There were no set operations, so just attach the sortClause */
/* There were no set operations, so just attach the sortClause */
if
IsA
(
yyvsp
[
-
2
].
node
,
SelectStmt
)
if
IsA
(
yyvsp
[
-
2
].
node
,
SelectStmt
)
...
@@ -7958,26 +7959,26 @@ case 470:
...
@@ -7958,26 +7959,26 @@ case 470:
;
;
break
;}
break
;}
case
471
:
case
471
:
#line 283
3
"gram.y"
#line 283
4
"gram.y"
{
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
;
break
;}
break
;}
case
472
:
case
472
:
#line 283
7
"gram.y"
#line 283
8
"gram.y"
{
{
yyval
.
node
=
yyvsp
[
0
].
node
;
yyval
.
node
=
yyvsp
[
0
].
node
;
;
;
break
;}
break
;}
case
473
:
case
473
:
#line 284
1
"gram.y"
#line 284
2
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
yyval
.
node
=
(
Node
*
)
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
makeA_Expr
(
NOT
,
NULL
,
NULL
,
yyvsp
[
0
].
node
));
makeA_Expr
(
NOT
,
NULL
,
NULL
,
yyvsp
[
0
].
node
));
;
;
break
;}
break
;}
case
474
:
case
474
:
#line 284
6
"gram.y"
#line 284
7
"gram.y"
{
{
if
(
IsA
(
yyvsp
[
0
].
node
,
SelectStmt
))
if
(
IsA
(
yyvsp
[
0
].
node
,
SelectStmt
))
{
{
...
@@ -7988,13 +7989,13 @@ case 474:
...
@@ -7988,13 +7989,13 @@ case 474:
;
;
break
;}
break
;}
case
475
:
case
475
:
#line 285
5
"gram.y"
#line 285
6
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
yyval
.
node
=
(
Node
*
)
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
;
break
;}
break
;}
case
476
:
case
476
:
#line 286
4
"gram.y"
#line 286
5
"gram.y"
{
{
SelectStmt
*
n
=
makeNode
(
SelectStmt
);
SelectStmt
*
n
=
makeNode
(
SelectStmt
);
n
->
unique
=
yyvsp
[
-
6
].
str
;
n
->
unique
=
yyvsp
[
-
6
].
str
;
...
@@ -8019,63 +8020,63 @@ case 476:
...
@@ -8019,63 +8020,63 @@ case 476:
;
;
break
;}
break
;}
case
477
:
case
477
:
#line 288
8
"gram.y"
#line 288
9
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
478
:
case
478
:
#line 28
89
"gram.y"
#line 28
90
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
479
:
case
479
:
#line 289
2
"gram.y"
#line 289
3
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
480
:
case
480
:
#line 289
3
"gram.y"
#line 289
4
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
481
:
case
481
:
#line 289
6
"gram.y"
#line 289
7
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
482
:
case
482
:
#line 289
7
"gram.y"
#line 289
8
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
483
:
case
483
:
#line 290
0
"gram.y"
#line 290
1
"gram.y"
{
yyval
.
str
=
"*"
;
;
{
yyval
.
str
=
"*"
;
;
break
;}
break
;}
case
484
:
case
484
:
#line 290
1
"gram.y"
#line 290
2
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
485
:
case
485
:
#line 290
2
"gram.y"
#line 290
3
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
486
:
case
486
:
#line 290
3
"gram.y"
#line 290
4
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
487
:
case
487
:
#line 290
6
"gram.y"
#line 290
7
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
488
:
case
488
:
#line 290
7
"gram.y"
#line 290
8
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
489
:
case
489
:
#line 291
0
"gram.y"
#line 291
1
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
sortgroupby
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
sortgroupby
,
NIL
);
;
break
;}
break
;}
case
490
:
case
490
:
#line 291
1
"gram.y"
#line 291
2
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
sortgroupby
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
sortgroupby
);
;
break
;}
break
;}
case
491
:
case
491
:
#line 291
5
"gram.y"
#line 291
6
"gram.y"
{
{
yyval
.
sortgroupby
=
makeNode
(
SortGroupBy
);
yyval
.
sortgroupby
=
makeNode
(
SortGroupBy
);
yyval
.
sortgroupby
->
node
=
yyvsp
[
-
1
].
node
;
yyval
.
sortgroupby
->
node
=
yyvsp
[
-
1
].
node
;
...
@@ -8083,110 +8084,110 @@ case 491:
...
@@ -8083,110 +8084,110 @@ case 491:
;
;
break
;}
break
;}
case
492
:
case
492
:
#line 292
2
"gram.y"
#line 292
3
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
493
:
case
493
:
#line 292
3
"gram.y"
#line 292
4
"gram.y"
{
yyval
.
str
=
"<"
;
;
{
yyval
.
str
=
"<"
;
;
break
;}
break
;}
case
494
:
case
494
:
#line 292
4
"gram.y"
#line 292
5
"gram.y"
{
yyval
.
str
=
">"
;
;
{
yyval
.
str
=
">"
;
;
break
;}
break
;}
case
495
:
case
495
:
#line 292
5
"gram.y"
#line 292
6
"gram.y"
{
yyval
.
str
=
"<"
;
;
{
yyval
.
str
=
"<"
;
;
break
;}
break
;}
case
496
:
case
496
:
#line 292
6
"gram.y"
#line 292
7
"gram.y"
{
yyval
.
str
=
">"
;
;
{
yyval
.
str
=
">"
;
;
break
;}
break
;}
case
497
:
case
497
:
#line 292
7
"gram.y"
#line 292
8
"gram.y"
{
yyval
.
str
=
"<"
;
/*default*/
;
{
yyval
.
str
=
"<"
;
/*default*/
;
break
;}
break
;}
case
498
:
case
498
:
#line 293
7
"gram.y"
#line 293
8
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
499
:
case
499
:
#line 293
8
"gram.y"
#line 293
9
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
501
:
case
501
:
#line 294
4
"gram.y"
#line 294
5
"gram.y"
{
yyval
.
list
=
lcons
(
makeString
(
yyvsp
[
0
].
str
),
NIL
);
;
{
yyval
.
list
=
lcons
(
makeString
(
yyvsp
[
0
].
str
),
NIL
);
;
break
;}
break
;}
case
502
:
case
502
:
#line 294
6
"gram.y"
#line 294
7
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
yyvsp
[
0
].
str
));
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
yyvsp
[
0
].
str
));
;
break
;}
break
;}
case
503
:
case
503
:
#line 29
49
"gram.y"
#line 29
50
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
504
:
case
504
:
#line 295
0
"gram.y"
#line 295
1
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
505
:
case
505
:
#line 295
4
"gram.y"
#line 295
5
"gram.y"
{
{
yyval
.
node
=
yyvsp
[
0
].
node
;
yyval
.
node
=
yyvsp
[
0
].
node
;
;
;
break
;}
break
;}
case
506
:
case
506
:
#line 295
7
"gram.y"
#line 295
8
"gram.y"
{
yyval
.
node
=
NULL
;
;
{
yyval
.
node
=
NULL
;
;
break
;}
break
;}
case
507
:
case
507
:
#line 296
2
"gram.y"
#line 296
3
"gram.y"
{
{
yyval
.
list
=
lcons
(
NULL
,
NULL
);
yyval
.
list
=
lcons
(
NULL
,
NULL
);
;
;
break
;}
break
;}
case
508
:
case
508
:
#line 296
6
"gram.y"
#line 296
7
"gram.y"
{
{
yyval
.
list
=
yyvsp
[
0
].
list
;
yyval
.
list
=
yyvsp
[
0
].
list
;
;
;
break
;}
break
;}
case
509
:
case
509
:
#line 297
0
"gram.y"
#line 297
1
"gram.y"
{
{
yyval
.
list
=
NULL
;
yyval
.
list
=
NULL
;
;
;
break
;}
break
;}
case
510
:
case
510
:
#line 298
4
"gram.y"
#line 298
5
"gram.y"
{
{
yyval
.
list
=
NIL
;
yyval
.
list
=
NIL
;
elog
(
ERROR
,
"JOIN not yet implemented"
);
elog
(
ERROR
,
"JOIN not yet implemented"
);
;
;
break
;}
break
;}
case
511
:
case
511
:
#line 298
8
"gram.y"
#line 298
9
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
512
:
case
512
:
#line 29
89
"gram.y"
#line 29
90
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
513
:
case
513
:
#line 299
3
"gram.y"
#line 299
4
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
range
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
range
);
;
break
;}
break
;}
case
514
:
case
514
:
#line 299
5
"gram.y"
#line 299
6
"gram.y"
{
elog
(
ERROR
,
"CROSS JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"CROSS JOIN not yet implemented"
);
;
break
;}
break
;}
case
515
:
case
515
:
#line 299
7
"gram.y"
#line 299
8
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
range
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
range
,
NIL
);
;
break
;}
break
;}
case
516
:
case
516
:
#line 300
1
"gram.y"
#line 300
2
"gram.y"
{
{
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
->
relExpr
=
yyvsp
[
-
2
].
relexp
;
yyval
.
range
->
relExpr
=
yyvsp
[
-
2
].
relexp
;
...
@@ -8194,7 +8195,7 @@ case 516:
...
@@ -8194,7 +8195,7 @@ case 516:
;
;
break
;}
break
;}
case
517
:
case
517
:
#line 300
7
"gram.y"
#line 300
8
"gram.y"
{
{
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
->
relExpr
=
yyvsp
[
-
1
].
relexp
;
yyval
.
range
->
relExpr
=
yyvsp
[
-
1
].
relexp
;
...
@@ -8202,7 +8203,7 @@ case 517:
...
@@ -8202,7 +8203,7 @@ case 517:
;
;
break
;}
break
;}
case
518
:
case
518
:
#line 301
3
"gram.y"
#line 301
4
"gram.y"
{
{
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
=
makeNode
(
RangeVar
);
yyval
.
range
->
relExpr
=
yyvsp
[
0
].
relexp
;
yyval
.
range
->
relExpr
=
yyvsp
[
0
].
relexp
;
...
@@ -8210,67 +8211,67 @@ case 518:
...
@@ -8210,67 +8211,67 @@ case 518:
;
;
break
;}
break
;}
case
519
:
case
519
:
#line 302
0
"gram.y"
#line 302
1
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
520
:
case
520
:
#line 302
2
"gram.y"
#line 302
3
"gram.y"
{
elog
(
ERROR
,
"FULL OUTER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"FULL OUTER JOIN not yet implemented"
);
;
break
;}
break
;}
case
521
:
case
521
:
#line 302
4
"gram.y"
#line 302
5
"gram.y"
{
elog
(
ERROR
,
"LEFT OUTER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"LEFT OUTER JOIN not yet implemented"
);
;
break
;}
break
;}
case
522
:
case
522
:
#line 302
6
"gram.y"
#line 302
7
"gram.y"
{
elog
(
ERROR
,
"RIGHT OUTER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"RIGHT OUTER JOIN not yet implemented"
);
;
break
;}
break
;}
case
523
:
case
523
:
#line 302
8
"gram.y"
#line 302
9
"gram.y"
{
elog
(
ERROR
,
"OUTER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"OUTER JOIN not yet implemented"
);
;
break
;}
break
;}
case
524
:
case
524
:
#line 303
0
"gram.y"
#line 303
1
"gram.y"
{
elog
(
ERROR
,
"INNER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"INNER JOIN not yet implemented"
);
;
break
;}
break
;}
case
525
:
case
525
:
#line 303
2
"gram.y"
#line 303
3
"gram.y"
{
elog
(
ERROR
,
"UNION JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"UNION JOIN not yet implemented"
);
;
break
;}
break
;}
case
526
:
case
526
:
#line 303
4
"gram.y"
#line 303
5
"gram.y"
{
elog
(
ERROR
,
"INNER JOIN not yet implemented"
);
;
{
elog
(
ERROR
,
"INNER JOIN not yet implemented"
);
;
break
;}
break
;}
case
527
:
case
527
:
#line 303
7
"gram.y"
#line 303
8
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
528
:
case
528
:
#line 303
8
"gram.y"
#line 303
9
"gram.y"
{
yyval
.
str
=
NULL
;
/* no qualifiers */
;
{
yyval
.
str
=
NULL
;
/* no qualifiers */
;
break
;}
break
;}
case
529
:
case
529
:
#line 304
1
"gram.y"
#line 304
2
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
530
:
case
530
:
#line 304
2
"gram.y"
#line 304
3
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
531
:
case
531
:
#line 304
3
"gram.y"
#line 304
4
"gram.y"
{
yyval
.
str
=
NULL
;
/* no qualifiers */
;
{
yyval
.
str
=
NULL
;
/* no qualifiers */
;
break
;}
break
;}
case
532
:
case
532
:
#line 304
6
"gram.y"
#line 304
7
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
joinusing
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
joinusing
,
NIL
);
;
break
;}
break
;}
case
533
:
case
533
:
#line 304
7
"gram.y"
#line 304
8
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
joinusing
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
joinusing
);
;
break
;}
break
;}
case
534
:
case
534
:
#line 30
59
"gram.y"
#line 30
60
"gram.y"
{
{
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
->
resno
=
0
;
yyval
.
joinusing
->
resno
=
0
;
...
@@ -8279,7 +8280,7 @@ case 534:
...
@@ -8279,7 +8280,7 @@ case 534:
;
;
break
;}
break
;}
case
535
:
case
535
:
#line 306
6
"gram.y"
#line 306
7
"gram.y"
{
{
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
->
resno
=
0
;
yyval
.
joinusing
->
resno
=
0
;
...
@@ -8288,7 +8289,7 @@ case 535:
...
@@ -8288,7 +8289,7 @@ case 535:
;
;
break
;}
break
;}
case
536
:
case
536
:
#line 307
3
"gram.y"
#line 307
4
"gram.y"
{
{
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
=
makeNode
(
JoinUsing
);
yyval
.
joinusing
->
resno
=
yyvsp
[
0
].
ival
;
yyval
.
joinusing
->
resno
=
yyvsp
[
0
].
ival
;
...
@@ -8297,15 +8298,15 @@ case 536:
...
@@ -8297,15 +8298,15 @@ case 536:
;
;
break
;}
break
;}
case
537
:
case
537
:
#line 308
1
"gram.y"
#line 308
2
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
538
:
case
538
:
#line 308
2
"gram.y"
#line 308
3
"gram.y"
{
yyval
.
node
=
NULL
;
/* no qualifiers */
;
{
yyval
.
node
=
NULL
;
/* no qualifiers */
;
break
;}
break
;}
case
539
:
case
539
:
#line 308
6
"gram.y"
#line 308
7
"gram.y"
{
{
/* normal relations */
/* normal relations */
yyval
.
relexp
=
makeNode
(
RelExpr
);
yyval
.
relexp
=
makeNode
(
RelExpr
);
...
@@ -8314,7 +8315,7 @@ case 539:
...
@@ -8314,7 +8315,7 @@ case 539:
;
;
break
;}
break
;}
case
540
:
case
540
:
#line 309
3
"gram.y"
#line 309
4
"gram.y"
{
{
/* inheritance query */
/* inheritance query */
yyval
.
relexp
=
makeNode
(
RelExpr
);
yyval
.
relexp
=
makeNode
(
RelExpr
);
...
@@ -8323,31 +8324,31 @@ case 540:
...
@@ -8323,31 +8324,31 @@ case 540:
;
;
break
;}
break
;}
case
541
:
case
541
:
#line 310
1
"gram.y"
#line 310
2
"gram.y"
{
yyval
.
list
=
lcons
(
makeInteger
(
-
1
),
yyvsp
[
0
].
list
);
;
{
yyval
.
list
=
lcons
(
makeInteger
(
-
1
),
yyvsp
[
0
].
list
);
;
break
;}
break
;}
case
542
:
case
542
:
#line 310
3
"gram.y"
#line 310
4
"gram.y"
{
yyval
.
list
=
lcons
(
makeInteger
(
yyvsp
[
-
2
].
ival
),
yyvsp
[
0
].
list
);
;
{
yyval
.
list
=
lcons
(
makeInteger
(
yyvsp
[
-
2
].
ival
),
yyvsp
[
0
].
list
);
;
break
;}
break
;}
case
543
:
case
543
:
#line 310
5
"gram.y"
#line 310
6
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
544
:
case
544
:
#line 31
09
"gram.y"
#line 31
10
"gram.y"
{
yyval
.
list
=
lcons
(
makeInteger
(
-
1
),
yyvsp
[
0
].
list
);
;
{
yyval
.
list
=
lcons
(
makeInteger
(
-
1
),
yyvsp
[
0
].
list
);
;
break
;}
break
;}
case
545
:
case
545
:
#line 311
1
"gram.y"
#line 311
2
"gram.y"
{
yyval
.
list
=
lcons
(
makeInteger
(
yyvsp
[
-
2
].
ival
),
yyvsp
[
0
].
list
);
;
{
yyval
.
list
=
lcons
(
makeInteger
(
yyvsp
[
-
2
].
ival
),
yyvsp
[
0
].
list
);
;
break
;}
break
;}
case
546
:
case
546
:
#line 311
3
"gram.y"
#line 311
4
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
547
:
case
547
:
#line 312
8
"gram.y"
#line 312
9
"gram.y"
{
{
yyval
.
typnam
=
yyvsp
[
-
1
].
typnam
;
yyval
.
typnam
=
yyvsp
[
-
1
].
typnam
;
yyval
.
typnam
->
arrayBounds
=
yyvsp
[
0
].
list
;
yyval
.
typnam
->
arrayBounds
=
yyvsp
[
0
].
list
;
...
@@ -8371,14 +8372,14 @@ case 547:
...
@@ -8371,14 +8372,14 @@ case 547:
;
;
break
;}
break
;}
case
549
:
case
549
:
#line 315
1
"gram.y"
#line 315
2
"gram.y"
{
{
yyval
.
typnam
=
yyvsp
[
0
].
typnam
;
yyval
.
typnam
=
yyvsp
[
0
].
typnam
;
yyval
.
typnam
->
setof
=
TRUE
;
yyval
.
typnam
->
setof
=
TRUE
;
;
;
break
;}
break
;}
case
553
:
case
553
:
#line 316
3
"gram.y"
#line 316
4
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
...
@@ -8386,15 +8387,15 @@ case 553:
...
@@ -8386,15 +8387,15 @@ case 553:
;
;
break
;}
break
;}
case
554
:
case
554
:
#line 317
0
"gram.y"
#line 317
1
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
555
:
case
555
:
#line 317
1
"gram.y"
#line 317
2
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"type"
);
;
{
yyval
.
str
=
xlateSqlType
(
"type"
);
;
break
;}
break
;}
case
556
:
case
556
:
#line 318
0
"gram.y"
#line 318
1
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
...
@@ -8402,14 +8403,14 @@ case 556:
...
@@ -8402,14 +8403,14 @@ case 556:
;
;
break
;}
break
;}
case
557
:
case
557
:
#line 318
6
"gram.y"
#line 318
7
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"float"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"float"
);
;
;
break
;}
break
;}
case
558
:
case
558
:
#line 319
1
"gram.y"
#line 319
2
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"numeric"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"numeric"
);
...
@@ -8417,7 +8418,7 @@ case 558:
...
@@ -8417,7 +8418,7 @@ case 558:
;
;
break
;}
break
;}
case
559
:
case
559
:
#line 319
7
"gram.y"
#line 319
8
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"numeric"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"numeric"
);
...
@@ -8425,23 +8426,23 @@ case 559:
...
@@ -8425,23 +8426,23 @@ case 559:
;
;
break
;}
break
;}
case
560
:
case
560
:
#line 320
5
"gram.y"
#line 320
6
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"float8"
);
;
{
yyval
.
str
=
xlateSqlType
(
"float8"
);
;
break
;}
break
;}
case
561
:
case
561
:
#line 320
7
"gram.y"
#line 320
8
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"float8"
);
;
{
yyval
.
str
=
xlateSqlType
(
"float8"
);
;
break
;}
break
;}
case
562
:
case
562
:
#line 32
09
"gram.y"
#line 32
10
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"numeric"
);
;
{
yyval
.
str
=
xlateSqlType
(
"numeric"
);
;
break
;}
break
;}
case
563
:
case
563
:
#line 321
1
"gram.y"
#line 321
2
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"numeric"
);
;
{
yyval
.
str
=
xlateSqlType
(
"numeric"
);
;
break
;}
break
;}
case
564
:
case
564
:
#line 321
5
"gram.y"
#line 321
6
"gram.y"
{
{
if
(
yyvsp
[
-
1
].
ival
<
1
)
if
(
yyvsp
[
-
1
].
ival
<
1
)
elog
(
ERROR
,
"precision for FLOAT must be at least 1"
);
elog
(
ERROR
,
"precision for FLOAT must be at least 1"
);
...
@@ -8454,13 +8455,13 @@ case 564:
...
@@ -8454,13 +8455,13 @@ case 564:
;
;
break
;}
break
;}
case
565
:
case
565
:
#line 322
6
"gram.y"
#line 322
7
"gram.y"
{
{
yyval
.
str
=
xlateSqlType
(
"float8"
);
yyval
.
str
=
xlateSqlType
(
"float8"
);
;
;
break
;}
break
;}
case
566
:
case
566
:
#line 323
2
"gram.y"
#line 323
3
"gram.y"
{
{
if
(
yyvsp
[
-
3
].
ival
<
1
||
yyvsp
[
-
3
].
ival
>
NUMERIC_MAX_PRECISION
)
if
(
yyvsp
[
-
3
].
ival
<
1
||
yyvsp
[
-
3
].
ival
>
NUMERIC_MAX_PRECISION
)
elog
(
ERROR
,
"NUMERIC precision %d must be beween 1 and %d"
,
elog
(
ERROR
,
"NUMERIC precision %d must be beween 1 and %d"
,
...
@@ -8473,7 +8474,7 @@ case 566:
...
@@ -8473,7 +8474,7 @@ case 566:
;
;
break
;}
break
;}
case
567
:
case
567
:
#line 324
3
"gram.y"
#line 324
4
"gram.y"
{
{
if
(
yyvsp
[
-
1
].
ival
<
1
||
yyvsp
[
-
1
].
ival
>
NUMERIC_MAX_PRECISION
)
if
(
yyvsp
[
-
1
].
ival
<
1
||
yyvsp
[
-
1
].
ival
>
NUMERIC_MAX_PRECISION
)
elog
(
ERROR
,
"NUMERIC precision %d must be beween 1 and %d"
,
elog
(
ERROR
,
"NUMERIC precision %d must be beween 1 and %d"
,
...
@@ -8483,13 +8484,13 @@ case 567:
...
@@ -8483,13 +8484,13 @@ case 567:
;
;
break
;}
break
;}
case
568
:
case
568
:
#line 325
1
"gram.y"
#line 325
2
"gram.y"
{
{
yyval
.
ival
=
((
NUMERIC_DEFAULT_PRECISION
<<
16
)
|
NUMERIC_DEFAULT_SCALE
)
+
VARHDRSZ
;
yyval
.
ival
=
((
NUMERIC_DEFAULT_PRECISION
<<
16
)
|
NUMERIC_DEFAULT_SCALE
)
+
VARHDRSZ
;
;
;
break
;}
break
;}
case
569
:
case
569
:
#line 325
7
"gram.y"
#line 325
8
"gram.y"
{
{
if
(
yyvsp
[
-
3
].
ival
<
1
||
yyvsp
[
-
3
].
ival
>
NUMERIC_MAX_PRECISION
)
if
(
yyvsp
[
-
3
].
ival
<
1
||
yyvsp
[
-
3
].
ival
>
NUMERIC_MAX_PRECISION
)
elog
(
ERROR
,
"DECIMAL precision %d must be beween 1 and %d"
,
elog
(
ERROR
,
"DECIMAL precision %d must be beween 1 and %d"
,
...
@@ -8502,7 +8503,7 @@ case 569:
...
@@ -8502,7 +8503,7 @@ case 569:
;
;
break
;}
break
;}
case
570
:
case
570
:
#line 326
8
"gram.y"
#line 326
9
"gram.y"
{
{
if
(
yyvsp
[
-
1
].
ival
<
1
||
yyvsp
[
-
1
].
ival
>
NUMERIC_MAX_PRECISION
)
if
(
yyvsp
[
-
1
].
ival
<
1
||
yyvsp
[
-
1
].
ival
>
NUMERIC_MAX_PRECISION
)
elog
(
ERROR
,
"DECIMAL precision %d must be beween 1 and %d"
,
elog
(
ERROR
,
"DECIMAL precision %d must be beween 1 and %d"
,
...
@@ -8512,13 +8513,13 @@ case 570:
...
@@ -8512,13 +8513,13 @@ case 570:
;
;
break
;}
break
;}
case
571
:
case
571
:
#line 327
6
"gram.y"
#line 327
7
"gram.y"
{
{
yyval
.
ival
=
((
NUMERIC_DEFAULT_PRECISION
<<
16
)
|
NUMERIC_DEFAULT_SCALE
)
+
VARHDRSZ
;
yyval
.
ival
=
((
NUMERIC_DEFAULT_PRECISION
<<
16
)
|
NUMERIC_DEFAULT_SCALE
)
+
VARHDRSZ
;
;
;
break
;}
break
;}
case
572
:
case
572
:
#line 329
0
"gram.y"
#line 329
1
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
if
(
strcasecmp
(
yyvsp
[
-
3
].
str
,
"char"
)
==
0
)
if
(
strcasecmp
(
yyvsp
[
-
3
].
str
,
"char"
)
==
0
)
...
@@ -8547,7 +8548,7 @@ case 572:
...
@@ -8547,7 +8548,7 @@ case 572:
;
;
break
;}
break
;}
case
573
:
case
573
:
#line 331
7
"gram.y"
#line 331
8
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
/* Let's try to make all single-character types into bpchar(1)
/* Let's try to make all single-character types into bpchar(1)
...
@@ -8566,7 +8567,7 @@ case 573:
...
@@ -8566,7 +8567,7 @@ case 573:
;
;
break
;}
break
;}
case
574
:
case
574
:
#line 333
6
"gram.y"
#line 333
7
"gram.y"
{
{
char
*
type
,
*
c
;
char
*
type
,
*
c
;
if
((
yyvsp
[
-
1
].
str
==
NULL
)
||
(
strcasecmp
(
yyvsp
[
-
1
].
str
,
"sql_text"
)
==
0
))
{
if
((
yyvsp
[
-
1
].
str
==
NULL
)
||
(
strcasecmp
(
yyvsp
[
-
1
].
str
,
"sql_text"
)
==
0
))
{
...
@@ -8588,47 +8589,47 @@ case 574:
...
@@ -8588,47 +8589,47 @@ case 574:
;
;
break
;}
break
;}
case
575
:
case
575
:
#line 335
5
"gram.y"
#line 335
6
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
break
;}
break
;}
case
576
:
case
576
:
#line 335
6
"gram.y"
#line 335
7
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
"varchar"
);
;
{
yyval
.
str
=
xlateSqlType
(
"varchar"
);
;
break
;}
break
;}
case
577
:
case
577
:
#line 335
7
"gram.y"
#line 335
8
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
break
;}
break
;}
case
578
:
case
578
:
#line 335
8
"gram.y"
#line 335
9
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
boolean
?
"varchar"
:
"char"
);
;
break
;}
break
;}
case
579
:
case
579
:
#line 336
1
"gram.y"
#line 336
2
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
580
:
case
580
:
#line 336
2
"gram.y"
#line 336
3
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
581
:
case
581
:
#line 336
5
"gram.y"
#line 336
6
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
582
:
case
582
:
#line 336
6
"gram.y"
#line 336
7
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
583
:
case
583
:
#line 33
69
"gram.y"
#line 33
70
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
584
:
case
584
:
#line 337
0
"gram.y"
#line 337
1
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
585
:
case
585
:
#line 337
4
"gram.y"
#line 337
5
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
yyval
.
typnam
->
name
=
xlateSqlType
(
yyvsp
[
0
].
str
);
...
@@ -8636,7 +8637,7 @@ case 585:
...
@@ -8636,7 +8637,7 @@ case 585:
;
;
break
;}
break
;}
case
586
:
case
586
:
#line 338
0
"gram.y"
#line 338
1
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"timestamp"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"timestamp"
);
...
@@ -8645,7 +8646,7 @@ case 586:
...
@@ -8645,7 +8646,7 @@ case 586:
;
;
break
;}
break
;}
case
587
:
case
587
:
#line 338
7
"gram.y"
#line 338
8
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"time"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"time"
);
...
@@ -8653,7 +8654,7 @@ case 587:
...
@@ -8653,7 +8654,7 @@ case 587:
;
;
break
;}
break
;}
case
588
:
case
588
:
#line 339
3
"gram.y"
#line 339
4
"gram.y"
{
{
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
=
makeNode
(
TypeName
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"interval"
);
yyval
.
typnam
->
name
=
xlateSqlType
(
"interval"
);
...
@@ -8661,79 +8662,79 @@ case 588:
...
@@ -8661,79 +8662,79 @@ case 588:
;
;
break
;}
break
;}
case
589
:
case
589
:
#line 340
0
"gram.y"
#line 340
1
"gram.y"
{
yyval
.
str
=
"year"
;
;
{
yyval
.
str
=
"year"
;
;
break
;}
break
;}
case
590
:
case
590
:
#line 340
1
"gram.y"
#line 340
2
"gram.y"
{
yyval
.
str
=
"month"
;
;
{
yyval
.
str
=
"month"
;
;
break
;}
break
;}
case
591
:
case
591
:
#line 340
2
"gram.y"
#line 340
3
"gram.y"
{
yyval
.
str
=
"day"
;
;
{
yyval
.
str
=
"day"
;
;
break
;}
break
;}
case
592
:
case
592
:
#line 340
3
"gram.y"
#line 340
4
"gram.y"
{
yyval
.
str
=
"hour"
;
;
{
yyval
.
str
=
"hour"
;
;
break
;}
break
;}
case
593
:
case
593
:
#line 340
4
"gram.y"
#line 340
5
"gram.y"
{
yyval
.
str
=
"minute"
;
;
{
yyval
.
str
=
"minute"
;
;
break
;}
break
;}
case
594
:
case
594
:
#line 340
5
"gram.y"
#line 340
6
"gram.y"
{
yyval
.
str
=
"second"
;
;
{
yyval
.
str
=
"second"
;
;
break
;}
break
;}
case
595
:
case
595
:
#line 340
8
"gram.y"
#line 340
9
"gram.y"
{
yyval
.
boolean
=
TRUE
;
;
{
yyval
.
boolean
=
TRUE
;
;
break
;}
break
;}
case
596
:
case
596
:
#line 34
09
"gram.y"
#line 34
10
"gram.y"
{
yyval
.
boolean
=
FALSE
;
;
{
yyval
.
boolean
=
FALSE
;
;
break
;}
break
;}
case
597
:
case
597
:
#line 341
2
"gram.y"
#line 341
3
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
str
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
str
,
NIL
);
;
break
;}
break
;}
case
598
:
case
598
:
#line 341
3
"gram.y"
#line 341
4
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
599
:
case
599
:
#line 341
4
"gram.y"
#line 341
5
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
600
:
case
600
:
#line 341
5
"gram.y"
#line 341
6
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
601
:
case
601
:
#line 341
6
"gram.y"
#line 341
7
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
602
:
case
602
:
#line 341
7
"gram.y"
#line 341
8
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
603
:
case
603
:
#line 341
8
"gram.y"
#line 341
9
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
604
:
case
604
:
#line 34
19
"gram.y"
#line 34
20
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
605
:
case
605
:
#line 342
0
"gram.y"
#line 342
1
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
606
:
case
606
:
#line 343
1
"gram.y"
#line 343
2
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
607
:
case
607
:
#line 343
3
"gram.y"
#line 343
4
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_Null
;
n
->
val
.
type
=
T_Null
;
...
@@ -8741,7 +8742,7 @@ case 607:
...
@@ -8741,7 +8742,7 @@ case 607:
;
;
break
;}
break
;}
case
608
:
case
608
:
#line 345
0
"gram.y"
#line 345
1
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
yyvsp
[
-
5
].
list
;
n
->
lefthand
=
yyvsp
[
-
5
].
list
;
...
@@ -8753,7 +8754,7 @@ case 608:
...
@@ -8753,7 +8754,7 @@ case 608:
;
;
break
;}
break
;}
case
609
:
case
609
:
#line 346
0
"gram.y"
#line 346
1
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
yyvsp
[
-
6
].
list
;
n
->
lefthand
=
yyvsp
[
-
6
].
list
;
...
@@ -8765,7 +8766,7 @@ case 609:
...
@@ -8765,7 +8766,7 @@ case 609:
;
;
break
;}
break
;}
case
610
:
case
610
:
#line 347
0
"gram.y"
#line 347
1
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
yyvsp
[
-
6
].
list
;
n
->
lefthand
=
yyvsp
[
-
6
].
list
;
...
@@ -8780,7 +8781,7 @@ case 610:
...
@@ -8780,7 +8781,7 @@ case 610:
;
;
break
;}
break
;}
case
611
:
case
611
:
#line 348
3
"gram.y"
#line 348
4
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
yyvsp
[
-
5
].
list
;
n
->
lefthand
=
yyvsp
[
-
5
].
list
;
...
@@ -8795,86 +8796,86 @@ case 611:
...
@@ -8795,86 +8796,86 @@ case 611:
;
;
break
;}
break
;}
case
612
:
case
612
:
#line 349
6
"gram.y"
#line 349
7
"gram.y"
{
{
yyval
.
node
=
makeRowExpr
(
yyvsp
[
-
3
].
str
,
yyvsp
[
-
5
].
list
,
yyvsp
[
-
1
].
list
);
yyval
.
node
=
makeRowExpr
(
yyvsp
[
-
3
].
str
,
yyvsp
[
-
5
].
list
,
yyvsp
[
-
1
].
list
);
;
;
break
;}
break
;}
case
613
:
case
613
:
#line 350
2
"gram.y"
#line 350
3
"gram.y"
{
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
;
break
;}
break
;}
case
614
:
case
614
:
#line 350
8
"gram.y"
#line 350
9
"gram.y"
{
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
;
break
;}
break
;}
case
615
:
case
615
:
#line 351
2
"gram.y"
#line 351
3
"gram.y"
{
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
;
break
;}
break
;}
case
616
:
case
616
:
#line 351
7
"gram.y"
#line 351
8
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
617
:
case
617
:
#line 351
8
"gram.y"
#line 351
9
"gram.y"
{
yyval
.
str
=
"<"
;
;
{
yyval
.
str
=
"<"
;
;
break
;}
break
;}
case
618
:
case
618
:
#line 35
19
"gram.y"
#line 35
20
"gram.y"
{
yyval
.
str
=
"="
;
;
{
yyval
.
str
=
"="
;
;
break
;}
break
;}
case
619
:
case
619
:
#line 352
0
"gram.y"
#line 352
1
"gram.y"
{
yyval
.
str
=
">"
;
;
{
yyval
.
str
=
">"
;
;
break
;}
break
;}
case
620
:
case
620
:
#line 352
1
"gram.y"
#line 352
2
"gram.y"
{
yyval
.
str
=
"+"
;
;
{
yyval
.
str
=
"+"
;
;
break
;}
break
;}
case
621
:
case
621
:
#line 352
2
"gram.y"
#line 352
3
"gram.y"
{
yyval
.
str
=
"-"
;
;
{
yyval
.
str
=
"-"
;
;
break
;}
break
;}
case
622
:
case
622
:
#line 352
3
"gram.y"
#line 352
4
"gram.y"
{
yyval
.
str
=
"*"
;
;
{
yyval
.
str
=
"*"
;
;
break
;}
break
;}
case
623
:
case
623
:
#line 352
4
"gram.y"
#line 352
5
"gram.y"
{
yyval
.
str
=
"/"
;
;
{
yyval
.
str
=
"/"
;
;
break
;}
break
;}
case
624
:
case
624
:
#line 352
7
"gram.y"
#line 352
8
"gram.y"
{
yyval
.
ival
=
ANY_SUBLINK
;
;
{
yyval
.
ival
=
ANY_SUBLINK
;
;
break
;}
break
;}
case
625
:
case
625
:
#line 352
8
"gram.y"
#line 352
9
"gram.y"
{
yyval
.
ival
=
ALL_SUBLINK
;
;
{
yyval
.
ival
=
ALL_SUBLINK
;
;
break
;}
break
;}
case
626
:
case
626
:
#line 354
0
"gram.y"
#line 354
1
"gram.y"
{
{
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
;
;
break
;}
break
;}
case
627
:
case
627
:
#line 354
5
"gram.y"
#line 354
6
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
628
:
case
628
:
#line 354
7
"gram.y"
#line 354
8
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
629
:
case
629
:
#line 35
49
"gram.y"
#line 35
50
"gram.y"
{
{
/* could be a column name or a relation_name */
/* could be a column name or a relation_name */
Ident
*
n
=
makeNode
(
Ident
);
Ident
*
n
=
makeNode
(
Ident
);
...
@@ -8884,51 +8885,51 @@ case 629:
...
@@ -8884,51 +8885,51 @@ case 629:
;
;
break
;}
break
;}
case
630
:
case
630
:
#line 355
7
"gram.y"
#line 355
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
631
:
case
631
:
#line 35
59
"gram.y"
#line 35
60
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
632
:
case
632
:
#line 356
1
"gram.y"
#line 356
2
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
633
:
case
633
:
#line 356
3
"gram.y"
#line 356
4
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
634
:
case
634
:
#line 356
5
"gram.y"
#line 356
6
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
635
:
case
635
:
#line 356
7
"gram.y"
#line 356
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"<"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"<"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
636
:
case
636
:
#line 35
69
"gram.y"
#line 35
70
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
">"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
">"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
637
:
case
637
:
#line 357
1
"gram.y"
#line 357
2
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"="
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"="
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
638
:
case
638
:
#line 357
3
"gram.y"
#line 357
4
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
":"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
":"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
639
:
case
639
:
#line 357
5
"gram.y"
#line 357
6
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
";"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
";"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
640
:
case
640
:
#line 357
7
"gram.y"
#line 357
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
641
:
case
641
:
#line 35
79
"gram.y"
#line 35
80
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -8946,7 +8947,7 @@ case 641:
...
@@ -8946,7 +8947,7 @@ case 641:
;
;
break
;}
break
;}
case
642
:
case
642
:
#line 359
5
"gram.y"
#line 359
6
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -8964,31 +8965,31 @@ case 642:
...
@@ -8964,31 +8965,31 @@ case 642:
;
;
break
;}
break
;}
case
643
:
case
643
:
#line 361
1
"gram.y"
#line 361
2
"gram.y"
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
break
;}
break
;}
case
644
:
case
644
:
#line 361
3
"gram.y"
#line 361
4
"gram.y"
{
yyval
.
node
=
makeIndexable
(
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeIndexable
(
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
645
:
case
645
:
#line 361
5
"gram.y"
#line 361
6
"gram.y"
{
yyval
.
node
=
makeIndexable
(
"~~"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeIndexable
(
"~~"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
646
:
case
646
:
#line 361
7
"gram.y"
#line 361
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"!~~"
,
yyvsp
[
-
3
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"!~~"
,
yyvsp
[
-
3
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
647
:
case
647
:
#line 36
19
"gram.y"
#line 36
20
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
648
:
case
648
:
#line 362
1
"gram.y"
#line 362
2
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
break
;}
break
;}
case
649
:
case
649
:
#line 362
3
"gram.y"
#line 362
4
"gram.y"
{
{
/* cheap hack for aggregate (eg. count) */
/* cheap hack for aggregate (eg. count) */
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
...
@@ -9002,7 +9003,7 @@ case 649:
...
@@ -9002,7 +9003,7 @@ case 649:
;
;
break
;}
break
;}
case
650
:
case
650
:
#line 363
5
"gram.y"
#line 363
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
2
].
str
;
n
->
funcname
=
yyvsp
[
-
2
].
str
;
...
@@ -9011,7 +9012,7 @@ case 650:
...
@@ -9011,7 +9012,7 @@ case 650:
;
;
break
;}
break
;}
case
651
:
case
651
:
#line 364
2
"gram.y"
#line 364
3
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
3
].
str
;
n
->
funcname
=
yyvsp
[
-
3
].
str
;
...
@@ -9020,7 +9021,7 @@ case 651:
...
@@ -9020,7 +9021,7 @@ case 651:
;
;
break
;}
break
;}
case
652
:
case
652
:
#line 36
49
"gram.y"
#line 36
50
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9037,7 +9038,7 @@ case 652:
...
@@ -9037,7 +9038,7 @@ case 652:
;
;
break
;}
break
;}
case
653
:
case
653
:
#line 366
4
"gram.y"
#line 366
5
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9054,7 +9055,7 @@ case 653:
...
@@ -9054,7 +9055,7 @@ case 653:
;
;
break
;}
break
;}
case
654
:
case
654
:
#line 36
79
"gram.y"
#line 36
80
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
A_Const
*
s
=
makeNode
(
A_Const
);
A_Const
*
s
=
makeNode
(
A_Const
);
...
@@ -9078,7 +9079,7 @@ case 654:
...
@@ -9078,7 +9079,7 @@ case 654:
;
;
break
;}
break
;}
case
655
:
case
655
:
#line 370
1
"gram.y"
#line 370
2
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9095,7 +9096,7 @@ case 655:
...
@@ -9095,7 +9096,7 @@ case 655:
;
;
break
;}
break
;}
case
656
:
case
656
:
#line 371
6
"gram.y"
#line 371
7
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
A_Const
*
s
=
makeNode
(
A_Const
);
A_Const
*
s
=
makeNode
(
A_Const
);
...
@@ -9119,7 +9120,7 @@ case 656:
...
@@ -9119,7 +9120,7 @@ case 656:
;
;
break
;}
break
;}
case
657
:
case
657
:
#line 373
8
"gram.y"
#line 373
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"getpgusername"
;
n
->
funcname
=
"getpgusername"
;
...
@@ -9128,7 +9129,7 @@ case 657:
...
@@ -9128,7 +9129,7 @@ case 657:
;
;
break
;}
break
;}
case
658
:
case
658
:
#line 374
5
"gram.y"
#line 374
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"getpgusername"
;
n
->
funcname
=
"getpgusername"
;
...
@@ -9137,7 +9138,7 @@ case 658:
...
@@ -9137,7 +9138,7 @@ case 658:
;
;
break
;}
break
;}
case
659
:
case
659
:
#line 375
2
"gram.y"
#line 375
3
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
NIL
;
n
->
lefthand
=
NIL
;
...
@@ -9149,7 +9150,7 @@ case 659:
...
@@ -9149,7 +9150,7 @@ case 659:
;
;
break
;}
break
;}
case
660
:
case
660
:
#line 376
2
"gram.y"
#line 376
3
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"date_part"
;
n
->
funcname
=
"date_part"
;
...
@@ -9158,7 +9159,7 @@ case 660:
...
@@ -9158,7 +9159,7 @@ case 660:
;
;
break
;}
break
;}
case
661
:
case
661
:
#line 37
69
"gram.y"
#line 37
70
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"strpos"
;
n
->
funcname
=
"strpos"
;
...
@@ -9167,7 +9168,7 @@ case 661:
...
@@ -9167,7 +9168,7 @@ case 661:
;
;
break
;}
break
;}
case
662
:
case
662
:
#line 377
6
"gram.y"
#line 377
7
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"substr"
;
n
->
funcname
=
"substr"
;
...
@@ -9176,7 +9177,7 @@ case 662:
...
@@ -9176,7 +9177,7 @@ case 662:
;
;
break
;}
break
;}
case
663
:
case
663
:
#line 378
4
"gram.y"
#line 378
5
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -9185,7 +9186,7 @@ case 663:
...
@@ -9185,7 +9186,7 @@ case 663:
;
;
break
;}
break
;}
case
664
:
case
664
:
#line 379
1
"gram.y"
#line 379
2
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"ltrim"
;
n
->
funcname
=
"ltrim"
;
...
@@ -9194,7 +9195,7 @@ case 664:
...
@@ -9194,7 +9195,7 @@ case 664:
;
;
break
;}
break
;}
case
665
:
case
665
:
#line 379
8
"gram.y"
#line 379
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"rtrim"
;
n
->
funcname
=
"rtrim"
;
...
@@ -9203,7 +9204,7 @@ case 665:
...
@@ -9203,7 +9204,7 @@ case 665:
;
;
break
;}
break
;}
case
666
:
case
666
:
#line 380
5
"gram.y"
#line 380
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -9212,23 +9213,23 @@ case 666:
...
@@ -9212,23 +9213,23 @@ case 666:
;
;
break
;}
break
;}
case
667
:
case
667
:
#line 381
2
"gram.y"
#line 381
3
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
ISNULL
,
NULL
,
yyvsp
[
-
1
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
ISNULL
,
NULL
,
yyvsp
[
-
1
].
node
,
NULL
);
;
break
;}
break
;}
case
668
:
case
668
:
#line 381
4
"gram.y"
#line 381
5
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
ISNULL
,
NULL
,
yyvsp
[
-
2
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
ISNULL
,
NULL
,
yyvsp
[
-
2
].
node
,
NULL
);
;
break
;}
break
;}
case
669
:
case
669
:
#line 381
6
"gram.y"
#line 381
7
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
NOTNULL
,
NULL
,
yyvsp
[
-
1
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
NOTNULL
,
NULL
,
yyvsp
[
-
1
].
node
,
NULL
);
;
break
;}
break
;}
case
670
:
case
670
:
#line 381
8
"gram.y"
#line 381
9
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
NOTNULL
,
NULL
,
yyvsp
[
-
3
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
NOTNULL
,
NULL
,
yyvsp
[
-
3
].
node
,
NULL
);
;
break
;}
break
;}
case
671
:
case
671
:
#line 382
5
"gram.y"
#line 382
6
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -9240,7 +9241,7 @@ case 671:
...
@@ -9240,7 +9241,7 @@ case 671:
;
;
break
;}
break
;}
case
672
:
case
672
:
#line 383
5
"gram.y"
#line 383
6
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -9252,7 +9253,7 @@ case 672:
...
@@ -9252,7 +9253,7 @@ case 672:
;
;
break
;}
break
;}
case
673
:
case
673
:
#line 384
5
"gram.y"
#line 384
6
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -9264,7 +9265,7 @@ case 673:
...
@@ -9264,7 +9265,7 @@ case 673:
;
;
break
;}
break
;}
case
674
:
case
674
:
#line 385
5
"gram.y"
#line 385
6
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -9276,7 +9277,7 @@ case 674:
...
@@ -9276,7 +9277,7 @@ case 674:
;
;
break
;}
break
;}
case
675
:
case
675
:
#line 386
5
"gram.y"
#line 386
6
"gram.y"
{
{
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
makeA_Expr
(
OP
,
">="
,
yyvsp
[
-
4
].
node
,
yyvsp
[
-
2
].
node
),
makeA_Expr
(
OP
,
">="
,
yyvsp
[
-
4
].
node
,
yyvsp
[
-
2
].
node
),
...
@@ -9284,7 +9285,7 @@ case 675:
...
@@ -9284,7 +9285,7 @@ case 675:
;
;
break
;}
break
;}
case
676
:
case
676
:
#line 387
1
"gram.y"
#line 387
2
"gram.y"
{
{
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
makeA_Expr
(
OP
,
"<"
,
yyvsp
[
-
5
].
node
,
yyvsp
[
-
2
].
node
),
makeA_Expr
(
OP
,
"<"
,
yyvsp
[
-
5
].
node
,
yyvsp
[
-
2
].
node
),
...
@@ -9292,11 +9293,11 @@ case 676:
...
@@ -9292,11 +9293,11 @@ case 676:
;
;
break
;}
break
;}
case
677
:
case
677
:
#line 387
6
"gram.y"
#line 387
7
"gram.y"
{
saved_In_Expr
=
lcons
(
yyvsp
[
-
1
].
node
,
saved_In_Expr
);
;
{
saved_In_Expr
=
lcons
(
yyvsp
[
-
1
].
node
,
saved_In_Expr
);
;
break
;}
break
;}
case
678
:
case
678
:
#line 387
7
"gram.y"
#line 387
8
"gram.y"
{
{
saved_In_Expr
=
lnext
(
saved_In_Expr
);
saved_In_Expr
=
lnext
(
saved_In_Expr
);
if
(
nodeTag
(
yyvsp
[
-
1
].
node
)
==
T_SubLink
)
if
(
nodeTag
(
yyvsp
[
-
1
].
node
)
==
T_SubLink
)
...
@@ -9312,11 +9313,11 @@ case 678:
...
@@ -9312,11 +9313,11 @@ case 678:
;
;
break
;}
break
;}
case
679
:
case
679
:
#line 389
0
"gram.y"
#line 389
1
"gram.y"
{
saved_In_Expr
=
lcons
(
yyvsp
[
-
2
].
node
,
saved_In_Expr
);
;
{
saved_In_Expr
=
lcons
(
yyvsp
[
-
2
].
node
,
saved_In_Expr
);
;
break
;}
break
;}
case
680
:
case
680
:
#line 389
1
"gram.y"
#line 389
2
"gram.y"
{
{
saved_In_Expr
=
lnext
(
saved_In_Expr
);
saved_In_Expr
=
lnext
(
saved_In_Expr
);
if
(
nodeTag
(
yyvsp
[
-
1
].
node
)
==
T_SubLink
)
if
(
nodeTag
(
yyvsp
[
-
1
].
node
)
==
T_SubLink
)
...
@@ -9332,7 +9333,7 @@ case 680:
...
@@ -9332,7 +9333,7 @@ case 680:
;
;
break
;}
break
;}
case
681
:
case
681
:
#line 390
5
"gram.y"
#line 390
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9344,7 +9345,7 @@ case 681:
...
@@ -9344,7 +9345,7 @@ case 681:
;
;
break
;}
break
;}
case
682
:
case
682
:
#line 391
5
"gram.y"
#line 391
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9356,7 +9357,7 @@ case 682:
...
@@ -9356,7 +9357,7 @@ case 682:
;
;
break
;}
break
;}
case
683
:
case
683
:
#line 392
5
"gram.y"
#line 392
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9368,7 +9369,7 @@ case 683:
...
@@ -9368,7 +9369,7 @@ case 683:
;
;
break
;}
break
;}
case
684
:
case
684
:
#line 393
5
"gram.y"
#line 393
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9380,7 +9381,7 @@ case 684:
...
@@ -9380,7 +9381,7 @@ case 684:
;
;
break
;}
break
;}
case
685
:
case
685
:
#line 394
5
"gram.y"
#line 394
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9392,7 +9393,7 @@ case 685:
...
@@ -9392,7 +9393,7 @@ case 685:
;
;
break
;}
break
;}
case
686
:
case
686
:
#line 395
5
"gram.y"
#line 395
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9404,7 +9405,7 @@ case 686:
...
@@ -9404,7 +9405,7 @@ case 686:
;
;
break
;}
break
;}
case
687
:
case
687
:
#line 396
5
"gram.y"
#line 396
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9416,7 +9417,7 @@ case 687:
...
@@ -9416,7 +9417,7 @@ case 687:
;
;
break
;}
break
;}
case
688
:
case
688
:
#line 397
5
"gram.y"
#line 397
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
4
].
node
,
NULL
);
...
@@ -9428,7 +9429,7 @@ case 688:
...
@@ -9428,7 +9429,7 @@ case 688:
;
;
break
;}
break
;}
case
689
:
case
689
:
#line 398
5
"gram.y"
#line 398
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9440,7 +9441,7 @@ case 689:
...
@@ -9440,7 +9441,7 @@ case 689:
;
;
break
;}
break
;}
case
690
:
case
690
:
#line 399
5
"gram.y"
#line 399
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9452,7 +9453,7 @@ case 690:
...
@@ -9452,7 +9453,7 @@ case 690:
;
;
break
;}
break
;}
case
691
:
case
691
:
#line 400
5
"gram.y"
#line 400
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9464,7 +9465,7 @@ case 691:
...
@@ -9464,7 +9465,7 @@ case 691:
;
;
break
;}
break
;}
case
692
:
case
692
:
#line 401
5
"gram.y"
#line 401
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9476,7 +9477,7 @@ case 692:
...
@@ -9476,7 +9477,7 @@ case 692:
;
;
break
;}
break
;}
case
693
:
case
693
:
#line 402
5
"gram.y"
#line 402
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9488,7 +9489,7 @@ case 693:
...
@@ -9488,7 +9489,7 @@ case 693:
;
;
break
;}
break
;}
case
694
:
case
694
:
#line 403
5
"gram.y"
#line 403
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9500,7 +9501,7 @@ case 694:
...
@@ -9500,7 +9501,7 @@ case 694:
;
;
break
;}
break
;}
case
695
:
case
695
:
#line 404
5
"gram.y"
#line 404
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9512,7 +9513,7 @@ case 695:
...
@@ -9512,7 +9513,7 @@ case 695:
;
;
break
;}
break
;}
case
696
:
case
696
:
#line 405
5
"gram.y"
#line 405
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NIL
);
...
@@ -9524,7 +9525,7 @@ case 696:
...
@@ -9524,7 +9525,7 @@ case 696:
;
;
break
;}
break
;}
case
697
:
case
697
:
#line 406
5
"gram.y"
#line 406
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9536,7 +9537,7 @@ case 697:
...
@@ -9536,7 +9537,7 @@ case 697:
;
;
break
;}
break
;}
case
698
:
case
698
:
#line 407
5
"gram.y"
#line 407
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9548,7 +9549,7 @@ case 698:
...
@@ -9548,7 +9549,7 @@ case 698:
;
;
break
;}
break
;}
case
699
:
case
699
:
#line 408
5
"gram.y"
#line 408
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9560,7 +9561,7 @@ case 699:
...
@@ -9560,7 +9561,7 @@ case 699:
;
;
break
;}
break
;}
case
700
:
case
700
:
#line 409
5
"gram.y"
#line 409
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9572,7 +9573,7 @@ case 700:
...
@@ -9572,7 +9573,7 @@ case 700:
;
;
break
;}
break
;}
case
701
:
case
701
:
#line 410
5
"gram.y"
#line 410
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9584,7 +9585,7 @@ case 701:
...
@@ -9584,7 +9585,7 @@ case 701:
;
;
break
;}
break
;}
case
702
:
case
702
:
#line 411
5
"gram.y"
#line 411
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9596,7 +9597,7 @@ case 702:
...
@@ -9596,7 +9597,7 @@ case 702:
;
;
break
;}
break
;}
case
703
:
case
703
:
#line 412
5
"gram.y"
#line 412
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9608,7 +9609,7 @@ case 703:
...
@@ -9608,7 +9609,7 @@ case 703:
;
;
break
;}
break
;}
case
704
:
case
704
:
#line 413
5
"gram.y"
#line 413
6
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
n
->
lefthand
=
lcons
(
yyvsp
[
-
5
].
node
,
NULL
);
...
@@ -9620,34 +9621,34 @@ case 704:
...
@@ -9620,34 +9621,34 @@ case 704:
;
;
break
;}
break
;}
case
705
:
case
705
:
#line 414
5
"gram.y"
#line 414
6
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
706
:
case
706
:
#line 414
7
"gram.y"
#line 414
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
707
:
case
707
:
#line 41
49
"gram.y"
#line 41
50
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
NOT
,
NULL
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
NOT
,
NULL
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
708
:
case
708
:
#line 415
1
"gram.y"
#line 415
2
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
709
:
case
709
:
#line 416
0
"gram.y"
#line 416
1
"gram.y"
{
{
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
;
;
break
;}
break
;}
case
710
:
case
710
:
#line 416
5
"gram.y"
#line 416
6
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
711
:
case
711
:
#line 416
7
"gram.y"
#line 416
8
"gram.y"
{
{
/* could be a column name or a relation_name */
/* could be a column name or a relation_name */
Ident
*
n
=
makeNode
(
Ident
);
Ident
*
n
=
makeNode
(
Ident
);
...
@@ -9657,39 +9658,39 @@ case 711:
...
@@ -9657,39 +9658,39 @@ case 711:
;
;
break
;}
break
;}
case
712
:
case
712
:
#line 417
5
"gram.y"
#line 417
6
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
713
:
case
713
:
#line 417
7
"gram.y"
#line 417
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
714
:
case
714
:
#line 41
79
"gram.y"
#line 41
80
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
715
:
case
715
:
#line 418
1
"gram.y"
#line 418
2
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
716
:
case
716
:
#line 418
3
"gram.y"
#line 418
4
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
717
:
case
717
:
#line 418
5
"gram.y"
#line 418
6
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
":"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
":"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
718
:
case
718
:
#line 418
7
"gram.y"
#line 418
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
";"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
";"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
719
:
case
719
:
#line 41
89
"gram.y"
#line 41
90
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
720
:
case
720
:
#line 419
1
"gram.y"
#line 419
2
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -9707,7 +9708,7 @@ case 720:
...
@@ -9707,7 +9708,7 @@ case 720:
;
;
break
;}
break
;}
case
721
:
case
721
:
#line 420
7
"gram.y"
#line 420
8
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -9725,23 +9726,23 @@ case 721:
...
@@ -9725,23 +9726,23 @@ case 721:
;
;
break
;}
break
;}
case
722
:
case
722
:
#line 422
3
"gram.y"
#line 422
4
"gram.y"
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
break
;}
break
;}
case
723
:
case
723
:
#line 422
5
"gram.y"
#line 422
6
"gram.y"
{
yyval
.
node
=
makeIndexable
(
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeIndexable
(
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
724
:
case
724
:
#line 422
7
"gram.y"
#line 422
8
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
725
:
case
725
:
#line 42
29
"gram.y"
#line 42
30
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
break
;}
break
;}
case
726
:
case
726
:
#line 423
1
"gram.y"
#line 423
2
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
2
].
str
;
n
->
funcname
=
yyvsp
[
-
2
].
str
;
...
@@ -9750,7 +9751,7 @@ case 726:
...
@@ -9750,7 +9751,7 @@ case 726:
;
;
break
;}
break
;}
case
727
:
case
727
:
#line 423
8
"gram.y"
#line 423
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
3
].
str
;
n
->
funcname
=
yyvsp
[
-
3
].
str
;
...
@@ -9759,7 +9760,7 @@ case 727:
...
@@ -9759,7 +9760,7 @@ case 727:
;
;
break
;}
break
;}
case
728
:
case
728
:
#line 424
5
"gram.y"
#line 424
6
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9776,7 +9777,7 @@ case 728:
...
@@ -9776,7 +9777,7 @@ case 728:
;
;
break
;}
break
;}
case
729
:
case
729
:
#line 426
0
"gram.y"
#line 426
1
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9793,7 +9794,7 @@ case 729:
...
@@ -9793,7 +9794,7 @@ case 729:
;
;
break
;}
break
;}
case
730
:
case
730
:
#line 427
5
"gram.y"
#line 427
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
A_Const
*
s
=
makeNode
(
A_Const
);
A_Const
*
s
=
makeNode
(
A_Const
);
...
@@ -9817,7 +9818,7 @@ case 730:
...
@@ -9817,7 +9818,7 @@ case 730:
;
;
break
;}
break
;}
case
731
:
case
731
:
#line 429
7
"gram.y"
#line 429
8
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
TypeName
*
t
=
makeNode
(
TypeName
);
TypeName
*
t
=
makeNode
(
TypeName
);
...
@@ -9834,7 +9835,7 @@ case 731:
...
@@ -9834,7 +9835,7 @@ case 731:
;
;
break
;}
break
;}
case
732
:
case
732
:
#line 431
2
"gram.y"
#line 431
3
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
A_Const
*
s
=
makeNode
(
A_Const
);
A_Const
*
s
=
makeNode
(
A_Const
);
...
@@ -9858,7 +9859,7 @@ case 732:
...
@@ -9858,7 +9859,7 @@ case 732:
;
;
break
;}
break
;}
case
733
:
case
733
:
#line 433
4
"gram.y"
#line 433
5
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"getpgusername"
;
n
->
funcname
=
"getpgusername"
;
...
@@ -9867,7 +9868,7 @@ case 733:
...
@@ -9867,7 +9868,7 @@ case 733:
;
;
break
;}
break
;}
case
734
:
case
734
:
#line 434
1
"gram.y"
#line 434
2
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"getpgusername"
;
n
->
funcname
=
"getpgusername"
;
...
@@ -9876,7 +9877,7 @@ case 734:
...
@@ -9876,7 +9877,7 @@ case 734:
;
;
break
;}
break
;}
case
735
:
case
735
:
#line 434
8
"gram.y"
#line 434
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"strpos"
;
n
->
funcname
=
"strpos"
;
...
@@ -9885,7 +9886,7 @@ case 735:
...
@@ -9885,7 +9886,7 @@ case 735:
;
;
break
;}
break
;}
case
736
:
case
736
:
#line 435
5
"gram.y"
#line 435
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"substr"
;
n
->
funcname
=
"substr"
;
...
@@ -9894,7 +9895,7 @@ case 736:
...
@@ -9894,7 +9895,7 @@ case 736:
;
;
break
;}
break
;}
case
737
:
case
737
:
#line 436
3
"gram.y"
#line 436
4
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -9903,7 +9904,7 @@ case 737:
...
@@ -9903,7 +9904,7 @@ case 737:
;
;
break
;}
break
;}
case
738
:
case
738
:
#line 437
0
"gram.y"
#line 437
1
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"ltrim"
;
n
->
funcname
=
"ltrim"
;
...
@@ -9912,7 +9913,7 @@ case 738:
...
@@ -9912,7 +9913,7 @@ case 738:
;
;
break
;}
break
;}
case
739
:
case
739
:
#line 437
7
"gram.y"
#line 437
8
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"rtrim"
;
n
->
funcname
=
"rtrim"
;
...
@@ -9921,7 +9922,7 @@ case 739:
...
@@ -9921,7 +9922,7 @@ case 739:
;
;
break
;}
break
;}
case
740
:
case
740
:
#line 438
4
"gram.y"
#line 438
5
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -9930,7 +9931,7 @@ case 740:
...
@@ -9930,7 +9931,7 @@ case 740:
;
;
break
;}
break
;}
case
741
:
case
741
:
#line 439
3
"gram.y"
#line 439
4
"gram.y"
{
{
A_Indices
*
ai
=
makeNode
(
A_Indices
);
A_Indices
*
ai
=
makeNode
(
A_Indices
);
ai
->
lidx
=
NULL
;
ai
->
lidx
=
NULL
;
...
@@ -9939,7 +9940,7 @@ case 741:
...
@@ -9939,7 +9940,7 @@ case 741:
;
;
break
;}
break
;}
case
742
:
case
742
:
#line 440
0
"gram.y"
#line 440
1
"gram.y"
{
{
A_Indices
*
ai
=
makeNode
(
A_Indices
);
A_Indices
*
ai
=
makeNode
(
A_Indices
);
ai
->
lidx
=
yyvsp
[
-
4
].
node
;
ai
->
lidx
=
yyvsp
[
-
4
].
node
;
...
@@ -9948,23 +9949,23 @@ case 742:
...
@@ -9948,23 +9949,23 @@ case 742:
;
;
break
;}
break
;}
case
743
:
case
743
:
#line 440
7
"gram.y"
#line 440
8
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
744
:
case
744
:
#line 441
1
"gram.y"
#line 441
2
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
break
;}
break
;}
case
745
:
case
745
:
#line 441
3
"gram.y"
#line 441
4
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
746
:
case
746
:
#line 441
5
"gram.y"
#line 441
6
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
747
:
case
747
:
#line 44
19
"gram.y"
#line 44
20
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -9973,66 +9974,66 @@ case 747:
...
@@ -9973,66 +9974,66 @@ case 747:
;
;
break
;}
break
;}
case
748
:
case
748
:
#line 442
6
"gram.y"
#line 442
7
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
749
:
case
749
:
#line 44
29
"gram.y"
#line 44
30
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
750
:
case
750
:
#line 443
0
"gram.y"
#line 443
1
"gram.y"
{
yyval
.
str
=
"tz_hour"
;
;
{
yyval
.
str
=
"tz_hour"
;
;
break
;}
break
;}
case
751
:
case
751
:
#line 443
1
"gram.y"
#line 443
2
"gram.y"
{
yyval
.
str
=
"tz_minute"
;
;
{
yyval
.
str
=
"tz_minute"
;
;
break
;}
break
;}
case
752
:
case
752
:
#line 443
5
"gram.y"
#line 443
6
"gram.y"
{
yyval
.
list
=
makeList
(
yyvsp
[
0
].
node
,
yyvsp
[
-
2
].
node
,
-
1
);
;
{
yyval
.
list
=
makeList
(
yyvsp
[
0
].
node
,
yyvsp
[
-
2
].
node
,
-
1
);
;
break
;}
break
;}
case
753
:
case
753
:
#line 443
7
"gram.y"
#line 443
8
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
754
:
case
754
:
#line 444
1
"gram.y"
#line 444
2
"gram.y"
{
{
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
;
;
break
;}
break
;}
case
755
:
case
755
:
#line 444
6
"gram.y"
#line 444
7
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
756
:
case
756
:
#line 444
8
"gram.y"
#line 444
9
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
757
:
case
757
:
#line 445
0
"gram.y"
#line 445
1
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"+"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
758
:
case
758
:
#line 445
2
"gram.y"
#line 445
3
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"-"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
759
:
case
759
:
#line 445
4
"gram.y"
#line 445
5
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"/"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
760
:
case
760
:
#line 445
6
"gram.y"
#line 445
7
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"*"
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
761
:
case
761
:
#line 445
8
"gram.y"
#line 445
9
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"|"
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
762
:
case
762
:
#line 446
0
"gram.y"
#line 446
1
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
2
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -10050,7 +10051,7 @@ case 762:
...
@@ -10050,7 +10051,7 @@ case 762:
;
;
break
;}
break
;}
case
763
:
case
763
:
#line 447
6
"gram.y"
#line 447
7
"gram.y"
{
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
3
].
node
;
/* AexprConst can be either A_Const or ParamNo */
/* AexprConst can be either A_Const or ParamNo */
...
@@ -10068,23 +10069,23 @@ case 763:
...
@@ -10068,23 +10069,23 @@ case 763:
;
;
break
;}
break
;}
case
764
:
case
764
:
#line 449
2
"gram.y"
#line 449
3
"gram.y"
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
{
yyval
.
node
=
yyvsp
[
-
1
].
node
;
;
break
;}
break
;}
case
765
:
case
765
:
#line 449
4
"gram.y"
#line 449
5
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
yyvsp
[
-
2
].
node
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
766
:
case
766
:
#line 449
6
"gram.y"
#line 449
7
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
-
1
].
str
,
NULL
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
767
:
case
767
:
#line 449
8
"gram.y"
#line 449
9
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
yyvsp
[
0
].
str
,
yyvsp
[
-
1
].
node
,
NULL
);
;
break
;}
break
;}
case
768
:
case
768
:
#line 450
0
"gram.y"
#line 450
1
"gram.y"
{
{
/* could be a column name or a relation_name */
/* could be a column name or a relation_name */
Ident
*
n
=
makeNode
(
Ident
);
Ident
*
n
=
makeNode
(
Ident
);
...
@@ -10094,7 +10095,7 @@ case 768:
...
@@ -10094,7 +10095,7 @@ case 768:
;
;
break
;}
break
;}
case
769
:
case
769
:
#line 450
8
"gram.y"
#line 450
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
2
].
str
;
n
->
funcname
=
yyvsp
[
-
2
].
str
;
...
@@ -10103,7 +10104,7 @@ case 769:
...
@@ -10103,7 +10104,7 @@ case 769:
;
;
break
;}
break
;}
case
770
:
case
770
:
#line 451
5
"gram.y"
#line 451
6
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
yyvsp
[
-
3
].
str
;
n
->
funcname
=
yyvsp
[
-
3
].
str
;
...
@@ -10112,7 +10113,7 @@ case 770:
...
@@ -10112,7 +10113,7 @@ case 770:
;
;
break
;}
break
;}
case
771
:
case
771
:
#line 452
2
"gram.y"
#line 452
3
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"strpos"
;
n
->
funcname
=
"strpos"
;
...
@@ -10121,7 +10122,7 @@ case 771:
...
@@ -10121,7 +10122,7 @@ case 771:
;
;
break
;}
break
;}
case
772
:
case
772
:
#line 45
29
"gram.y"
#line 45
30
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"substr"
;
n
->
funcname
=
"substr"
;
...
@@ -10130,7 +10131,7 @@ case 772:
...
@@ -10130,7 +10131,7 @@ case 772:
;
;
break
;}
break
;}
case
773
:
case
773
:
#line 453
7
"gram.y"
#line 453
8
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -10139,7 +10140,7 @@ case 773:
...
@@ -10139,7 +10140,7 @@ case 773:
;
;
break
;}
break
;}
case
774
:
case
774
:
#line 454
4
"gram.y"
#line 454
5
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"ltrim"
;
n
->
funcname
=
"ltrim"
;
...
@@ -10148,7 +10149,7 @@ case 774:
...
@@ -10148,7 +10149,7 @@ case 774:
;
;
break
;}
break
;}
case
775
:
case
775
:
#line 455
1
"gram.y"
#line 455
2
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"rtrim"
;
n
->
funcname
=
"rtrim"
;
...
@@ -10157,7 +10158,7 @@ case 775:
...
@@ -10157,7 +10158,7 @@ case 775:
;
;
break
;}
break
;}
case
776
:
case
776
:
#line 455
8
"gram.y"
#line 455
9
"gram.y"
{
{
FuncCall
*
n
=
makeNode
(
FuncCall
);
FuncCall
*
n
=
makeNode
(
FuncCall
);
n
->
funcname
=
"btrim"
;
n
->
funcname
=
"btrim"
;
...
@@ -10166,21 +10167,21 @@ case 776:
...
@@ -10166,21 +10167,21 @@ case 776:
;
;
break
;}
break
;}
case
777
:
case
777
:
#line 456
7
"gram.y"
#line 456
8
"gram.y"
{
{
yyval
.
list
=
nconc
(
nconc
(
yyvsp
[
-
2
].
list
,
yyvsp
[
-
1
].
list
),
yyvsp
[
0
].
list
);
yyval
.
list
=
nconc
(
nconc
(
yyvsp
[
-
2
].
list
,
yyvsp
[
-
1
].
list
),
yyvsp
[
0
].
list
);
;
;
break
;}
break
;}
case
778
:
case
778
:
#line 457
1
"gram.y"
#line 457
2
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
779
:
case
779
:
#line 457
5
"gram.y"
#line 457
6
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
780
:
case
780
:
#line 457
7
"gram.y"
#line 457
8
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_Integer
;
n
->
val
.
type
=
T_Integer
;
...
@@ -10189,27 +10190,27 @@ case 780:
...
@@ -10189,27 +10190,27 @@ case 780:
;
;
break
;}
break
;}
case
781
:
case
781
:
#line 458
6
"gram.y"
#line 458
7
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
782
:
case
782
:
#line 458
8
"gram.y"
#line 458
9
"gram.y"
{
yyval
.
list
=
NIL
;
;
{
yyval
.
list
=
NIL
;
;
break
;}
break
;}
case
783
:
case
783
:
#line 459
2
"gram.y"
#line 459
3
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
0
].
list
,
yyvsp
[
-
2
].
node
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
0
].
list
,
yyvsp
[
-
2
].
node
);
;
break
;}
break
;}
case
784
:
case
784
:
#line 459
4
"gram.y"
#line 459
5
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
785
:
case
785
:
#line 459
6
"gram.y"
#line 459
7
"gram.y"
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
{
yyval
.
list
=
yyvsp
[
0
].
list
;
;
break
;}
break
;}
case
786
:
case
786
:
#line 460
0
"gram.y"
#line 460
1
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
subselect
=
yyvsp
[
0
].
node
;
n
->
subselect
=
yyvsp
[
0
].
node
;
...
@@ -10217,21 +10218,21 @@ case 786:
...
@@ -10217,21 +10218,21 @@ case 786:
;
;
break
;}
break
;}
case
787
:
case
787
:
#line 460
6
"gram.y"
#line 460
7
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
788
:
case
788
:
#line 461
0
"gram.y"
#line 461
1
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"="
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"="
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
789
:
case
789
:
#line 461
2
"gram.y"
#line 461
3
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
yyvsp
[
-
2
].
node
,
{
yyval
.
node
=
makeA_Expr
(
OR
,
NULL
,
yyvsp
[
-
2
].
node
,
makeA_Expr
(
OP
,
"="
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
));
makeA_Expr
(
OP
,
"="
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
));
;
;
break
;}
break
;}
case
790
:
case
790
:
#line 461
8
"gram.y"
#line 461
9
"gram.y"
{
{
SubLink
*
n
=
makeNode
(
SubLink
);
SubLink
*
n
=
makeNode
(
SubLink
);
n
->
subselect
=
yyvsp
[
0
].
node
;
n
->
subselect
=
yyvsp
[
0
].
node
;
...
@@ -10239,21 +10240,21 @@ case 790:
...
@@ -10239,21 +10240,21 @@ case 790:
;
;
break
;}
break
;}
case
791
:
case
791
:
#line 462
4
"gram.y"
#line 462
5
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
792
:
case
792
:
#line 462
8
"gram.y"
#line 462
9
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
OP
,
"<>"
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
);
;
{
yyval
.
node
=
makeA_Expr
(
OP
,
"<>"
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
793
:
case
793
:
#line 463
0
"gram.y"
#line 463
1
"gram.y"
{
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
{
yyval
.
node
=
makeA_Expr
(
AND
,
NULL
,
yyvsp
[
-
2
].
node
,
makeA_Expr
(
OP
,
"<>"
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
));
makeA_Expr
(
OP
,
"<>"
,
lfirst
(
saved_In_Expr
),
yyvsp
[
0
].
node
));
;
;
break
;}
break
;}
case
794
:
case
794
:
#line 465
1
"gram.y"
#line 465
2
"gram.y"
{
{
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
c
->
arg
=
yyvsp
[
-
3
].
node
;
c
->
arg
=
yyvsp
[
-
3
].
node
;
...
@@ -10263,7 +10264,7 @@ case 794:
...
@@ -10263,7 +10264,7 @@ case 794:
;
;
break
;}
break
;}
case
795
:
case
795
:
#line 46
59
"gram.y"
#line 46
60
"gram.y"
{
{
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
CaseWhen
*
w
=
makeNode
(
CaseWhen
);
CaseWhen
*
w
=
makeNode
(
CaseWhen
);
...
@@ -10276,7 +10277,7 @@ case 795:
...
@@ -10276,7 +10277,7 @@ case 795:
;
;
break
;}
break
;}
case
796
:
case
796
:
#line 467
0
"gram.y"
#line 467
1
"gram.y"
{
{
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
CaseExpr
*
c
=
makeNode
(
CaseExpr
);
CaseWhen
*
w
;
CaseWhen
*
w
;
...
@@ -10294,15 +10295,15 @@ case 796:
...
@@ -10294,15 +10295,15 @@ case 796:
;
;
break
;}
break
;}
case
797
:
case
797
:
#line 468
8
"gram.y"
#line 468
9
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
1
].
list
,
yyvsp
[
0
].
node
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
1
].
list
,
yyvsp
[
0
].
node
);
;
break
;}
break
;}
case
798
:
case
798
:
#line 469
0
"gram.y"
#line 469
1
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
node
,
NIL
);
;
break
;}
break
;}
case
799
:
case
799
:
#line 469
4
"gram.y"
#line 469
5
"gram.y"
{
{
CaseWhen
*
w
=
makeNode
(
CaseWhen
);
CaseWhen
*
w
=
makeNode
(
CaseWhen
);
w
->
expr
=
yyvsp
[
-
2
].
node
;
w
->
expr
=
yyvsp
[
-
2
].
node
;
...
@@ -10311,22 +10312,22 @@ case 799:
...
@@ -10311,22 +10312,22 @@ case 799:
;
;
break
;}
break
;}
case
800
:
case
800
:
#line 470
2
"gram.y"
#line 470
3
"gram.y"
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
{
yyval
.
node
=
yyvsp
[
0
].
node
;
;
break
;}
break
;}
case
801
:
case
801
:
#line 470
3
"gram.y"
#line 470
4
"gram.y"
{
yyval
.
node
=
NULL
;
;
{
yyval
.
node
=
NULL
;
;
break
;}
break
;}
case
802
:
case
802
:
#line 470
7
"gram.y"
#line 470
8
"gram.y"
{
{
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyvsp
[
-
1
].
attr
->
indirection
=
yyvsp
[
0
].
list
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
yyval
.
node
=
(
Node
*
)
yyvsp
[
-
1
].
attr
;
;
;
break
;}
break
;}
case
803
:
case
803
:
#line 471
2
"gram.y"
#line 471
3
"gram.y"
{
{
/* could be a column name or a relation_name */
/* could be a column name or a relation_name */
Ident
*
n
=
makeNode
(
Ident
);
Ident
*
n
=
makeNode
(
Ident
);
...
@@ -10336,11 +10337,11 @@ case 803:
...
@@ -10336,11 +10337,11 @@ case 803:
;
;
break
;}
break
;}
case
804
:
case
804
:
#line 472
0
"gram.y"
#line 472
1
"gram.y"
{
yyval
.
node
=
NULL
;
;
{
yyval
.
node
=
NULL
;
;
break
;}
break
;}
case
805
:
case
805
:
#line 472
4
"gram.y"
#line 472
5
"gram.y"
{
{
yyval
.
attr
=
makeNode
(
Attr
);
yyval
.
attr
=
makeNode
(
Attr
);
yyval
.
attr
->
relname
=
yyvsp
[
-
2
].
str
;
yyval
.
attr
->
relname
=
yyvsp
[
-
2
].
str
;
...
@@ -10350,7 +10351,7 @@ case 805:
...
@@ -10350,7 +10351,7 @@ case 805:
;
;
break
;}
break
;}
case
806
:
case
806
:
#line 473
2
"gram.y"
#line 473
3
"gram.y"
{
{
yyval
.
attr
=
makeNode
(
Attr
);
yyval
.
attr
=
makeNode
(
Attr
);
yyval
.
attr
->
relname
=
NULL
;
yyval
.
attr
->
relname
=
NULL
;
...
@@ -10360,27 +10361,27 @@ case 806:
...
@@ -10360,27 +10361,27 @@ case 806:
;
;
break
;}
break
;}
case
807
:
case
807
:
#line 474
2
"gram.y"
#line 474
3
"gram.y"
{
yyval
.
list
=
lcons
(
makeString
(
yyvsp
[
0
].
str
),
NIL
);
;
{
yyval
.
list
=
lcons
(
makeString
(
yyvsp
[
0
].
str
),
NIL
);
;
break
;}
break
;}
case
808
:
case
808
:
#line 474
4
"gram.y"
#line 474
5
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
yyvsp
[
0
].
str
));
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
yyvsp
[
0
].
str
));
;
break
;}
break
;}
case
809
:
case
809
:
#line 474
6
"gram.y"
#line 474
7
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
"*"
));
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
makeString
(
"*"
));
;
break
;}
break
;}
case
810
:
case
810
:
#line 475
7
"gram.y"
#line 475
8
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
target
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
target
);
;
break
;}
break
;}
case
811
:
case
811
:
#line 47
59
"gram.y"
#line 47
60
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
target
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
target
,
NIL
);
;
break
;}
break
;}
case
812
:
case
812
:
#line 476
1
"gram.y"
#line 476
2
"gram.y"
{
{
ResTarget
*
rt
=
makeNode
(
ResTarget
);
ResTarget
*
rt
=
makeNode
(
ResTarget
);
Attr
*
att
=
makeNode
(
Attr
);
Attr
*
att
=
makeNode
(
Attr
);
...
@@ -10395,7 +10396,7 @@ case 812:
...
@@ -10395,7 +10396,7 @@ case 812:
;
;
break
;}
break
;}
case
813
:
case
813
:
#line 477
6
"gram.y"
#line 477
7
"gram.y"
{
{
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
->
name
=
yyvsp
[
-
3
].
str
;
yyval
.
target
->
name
=
yyvsp
[
-
3
].
str
;
...
@@ -10404,7 +10405,7 @@ case 813:
...
@@ -10404,7 +10405,7 @@ case 813:
;
;
break
;}
break
;}
case
814
:
case
814
:
#line 478
3
"gram.y"
#line 478
4
"gram.y"
{
{
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
->
name
=
NULL
;
yyval
.
target
->
name
=
NULL
;
...
@@ -10413,7 +10414,7 @@ case 814:
...
@@ -10413,7 +10414,7 @@ case 814:
;
;
break
;}
break
;}
case
815
:
case
815
:
#line 479
0
"gram.y"
#line 479
1
"gram.y"
{
{
Attr
*
att
=
makeNode
(
Attr
);
Attr
*
att
=
makeNode
(
Attr
);
att
->
relname
=
yyvsp
[
-
2
].
str
;
att
->
relname
=
yyvsp
[
-
2
].
str
;
...
@@ -10427,15 +10428,15 @@ case 815:
...
@@ -10427,15 +10428,15 @@ case 815:
;
;
break
;}
break
;}
case
816
:
case
816
:
#line 48
09
"gram.y"
#line 48
10
"gram.y"
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
target
);
;
{
yyval
.
list
=
lappend
(
yyvsp
[
-
2
].
list
,
yyvsp
[
0
].
target
);
;
break
;}
break
;}
case
817
:
case
817
:
#line 481
1
"gram.y"
#line 481
2
"gram.y"
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
target
,
NIL
);
;
{
yyval
.
list
=
lcons
(
yyvsp
[
0
].
target
,
NIL
);
;
break
;}
break
;}
case
818
:
case
818
:
#line 481
6
"gram.y"
#line 481
7
"gram.y"
{
{
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
->
name
=
yyvsp
[
0
].
str
;
yyval
.
target
->
name
=
yyvsp
[
0
].
str
;
...
@@ -10444,7 +10445,7 @@ case 818:
...
@@ -10444,7 +10445,7 @@ case 818:
;
;
break
;}
break
;}
case
819
:
case
819
:
#line 482
3
"gram.y"
#line 482
4
"gram.y"
{
{
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
=
makeNode
(
ResTarget
);
yyval
.
target
->
name
=
NULL
;
yyval
.
target
->
name
=
NULL
;
...
@@ -10453,7 +10454,7 @@ case 819:
...
@@ -10453,7 +10454,7 @@ case 819:
;
;
break
;}
break
;}
case
820
:
case
820
:
#line 483
0
"gram.y"
#line 483
1
"gram.y"
{
{
Attr
*
att
=
makeNode
(
Attr
);
Attr
*
att
=
makeNode
(
Attr
);
att
->
relname
=
yyvsp
[
-
2
].
str
;
att
->
relname
=
yyvsp
[
-
2
].
str
;
...
@@ -10467,7 +10468,7 @@ case 820:
...
@@ -10467,7 +10468,7 @@ case 820:
;
;
break
;}
break
;}
case
821
:
case
821
:
#line 484
2
"gram.y"
#line 484
3
"gram.y"
{
{
Attr
*
att
=
makeNode
(
Attr
);
Attr
*
att
=
makeNode
(
Attr
);
att
->
relname
=
"*"
;
att
->
relname
=
"*"
;
...
@@ -10481,22 +10482,22 @@ case 821:
...
@@ -10481,22 +10482,22 @@ case 821:
;
;
break
;}
break
;}
case
822
:
case
822
:
#line 485
5
"gram.y"
#line 485
6
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
823
:
case
823
:
#line 485
6
"gram.y"
#line 485
7
"gram.y"
{
yyval
.
str
=
NULL
;
;
{
yyval
.
str
=
NULL
;
;
break
;}
break
;}
case
824
:
case
824
:
#line 486
0
"gram.y"
#line 486
1
"gram.y"
{
{
yyval
.
str
=
yyvsp
[
0
].
str
;
yyval
.
str
=
yyvsp
[
0
].
str
;
StrNCpy
(
saved_relname
,
yyvsp
[
0
].
str
,
NAMEDATALEN
);
StrNCpy
(
saved_relname
,
yyvsp
[
0
].
str
,
NAMEDATALEN
);
;
;
break
;}
break
;}
case
825
:
case
825
:
#line 486
5
"gram.y"
#line 486
6
"gram.y"
{
{
/* disallow refs to variable system tables */
/* disallow refs to variable system tables */
if
(
strcmp
(
LogRelationName
,
yyvsp
[
0
].
str
)
==
0
if
(
strcmp
(
LogRelationName
,
yyvsp
[
0
].
str
)
==
0
...
@@ -10508,43 +10509,43 @@ case 825:
...
@@ -10508,43 +10509,43 @@ case 825:
;
;
break
;}
break
;}
case
826
:
case
826
:
#line 487
6
"gram.y"
#line 487
7
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
827
:
case
827
:
#line 487
7
"gram.y"
#line 487
8
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
828
:
case
828
:
#line 487
8
"gram.y"
#line 487
9
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
829
:
case
829
:
#line 48
79
"gram.y"
#line 48
80
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
830
:
case
830
:
#line 488
0
"gram.y"
#line 488
1
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
831
:
case
831
:
#line 488
6
"gram.y"
#line 488
7
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
832
:
case
832
:
#line 488
7
"gram.y"
#line 488
8
"gram.y"
{
yyval
.
str
=
xlateSqlFunc
(
yyvsp
[
0
].
str
);
;
{
yyval
.
str
=
xlateSqlFunc
(
yyvsp
[
0
].
str
);
;
break
;}
break
;}
case
833
:
case
833
:
#line 48
89
"gram.y"
#line 48
90
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
834
:
case
834
:
#line 489
0
"gram.y"
#line 489
1
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
835
:
case
835
:
#line 489
6
"gram.y"
#line 489
7
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_Integer
;
n
->
val
.
type
=
T_Integer
;
...
@@ -10553,7 +10554,7 @@ case 835:
...
@@ -10553,7 +10554,7 @@ case 835:
;
;
break
;}
break
;}
case
836
:
case
836
:
#line 490
3
"gram.y"
#line 490
4
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_Float
;
n
->
val
.
type
=
T_Float
;
...
@@ -10562,7 +10563,7 @@ case 836:
...
@@ -10562,7 +10563,7 @@ case 836:
;
;
break
;}
break
;}
case
837
:
case
837
:
#line 491
0
"gram.y"
#line 491
1
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -10571,7 +10572,7 @@ case 837:
...
@@ -10571,7 +10572,7 @@ case 837:
;
;
break
;}
break
;}
case
838
:
case
838
:
#line 491
7
"gram.y"
#line 491
8
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
typename
=
yyvsp
[
-
1
].
typnam
;
n
->
typename
=
yyvsp
[
-
1
].
typnam
;
...
@@ -10581,11 +10582,11 @@ case 838:
...
@@ -10581,11 +10582,11 @@ case 838:
;
;
break
;}
break
;}
case
839
:
case
839
:
#line 492
5
"gram.y"
#line 492
6
"gram.y"
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
0
].
paramno
;
;
{
yyval
.
node
=
(
Node
*
)
yyvsp
[
0
].
paramno
;
;
break
;}
break
;}
case
840
:
case
840
:
#line 492
7
"gram.y"
#line 492
8
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -10597,7 +10598,7 @@ case 840:
...
@@ -10597,7 +10598,7 @@ case 840:
;
;
break
;}
break
;}
case
841
:
case
841
:
#line 493
7
"gram.y"
#line 493
8
"gram.y"
{
{
A_Const
*
n
=
makeNode
(
A_Const
);
A_Const
*
n
=
makeNode
(
A_Const
);
n
->
val
.
type
=
T_String
;
n
->
val
.
type
=
T_String
;
...
@@ -10609,7 +10610,7 @@ case 841:
...
@@ -10609,7 +10610,7 @@ case 841:
;
;
break
;}
break
;}
case
842
:
case
842
:
#line 49
49
"gram.y"
#line 49
50
"gram.y"
{
{
yyval
.
paramno
=
makeNode
(
ParamNo
);
yyval
.
paramno
=
makeNode
(
ParamNo
);
yyval
.
paramno
->
number
=
yyvsp
[
-
1
].
ival
;
yyval
.
paramno
->
number
=
yyvsp
[
-
1
].
ival
;
...
@@ -10617,471 +10618,471 @@ case 842:
...
@@ -10617,471 +10618,471 @@ case 842:
;
;
break
;}
break
;}
case
843
:
case
843
:
#line 495
6
"gram.y"
#line 495
7
"gram.y"
{
yyval
.
ival
=
yyvsp
[
0
].
ival
;
;
{
yyval
.
ival
=
yyvsp
[
0
].
ival
;
;
break
;}
break
;}
case
844
:
case
844
:
#line 495
7
"gram.y"
#line 495
8
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
845
:
case
845
:
#line 495
8
"gram.y"
#line 495
9
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
846
:
case
846
:
#line 496
6
"gram.y"
#line 496
7
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
break
;}
break
;}
case
847
:
case
847
:
#line 496
8
"gram.y"
#line 496
9
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
break
;}
break
;}
case
848
:
case
848
:
#line 497
0
"gram.y"
#line 497
1
"gram.y"
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
{
yyval
.
str
=
xlateSqlType
(
yyvsp
[
0
].
str
);
;
break
;}
break
;}
case
849
:
case
849
:
#line 498
0
"gram.y"
#line 498
1
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
850
:
case
850
:
#line 498
1
"gram.y"
#line 498
2
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
851
:
case
851
:
#line 498
2
"gram.y"
#line 498
3
"gram.y"
{
yyval
.
str
=
"absolute"
;
;
{
yyval
.
str
=
"absolute"
;
;
break
;}
break
;}
case
852
:
case
852
:
#line 498
3
"gram.y"
#line 498
4
"gram.y"
{
yyval
.
str
=
"action"
;
;
{
yyval
.
str
=
"action"
;
;
break
;}
break
;}
case
853
:
case
853
:
#line 498
4
"gram.y"
#line 498
5
"gram.y"
{
yyval
.
str
=
"after"
;
;
{
yyval
.
str
=
"after"
;
;
break
;}
break
;}
case
854
:
case
854
:
#line 498
5
"gram.y"
#line 498
6
"gram.y"
{
yyval
.
str
=
"aggregate"
;
;
{
yyval
.
str
=
"aggregate"
;
;
break
;}
break
;}
case
855
:
case
855
:
#line 498
6
"gram.y"
#line 498
7
"gram.y"
{
yyval
.
str
=
"backward"
;
;
{
yyval
.
str
=
"backward"
;
;
break
;}
break
;}
case
856
:
case
856
:
#line 498
7
"gram.y"
#line 498
8
"gram.y"
{
yyval
.
str
=
"before"
;
;
{
yyval
.
str
=
"before"
;
;
break
;}
break
;}
case
857
:
case
857
:
#line 498
8
"gram.y"
#line 498
9
"gram.y"
{
yyval
.
str
=
"cache"
;
;
{
yyval
.
str
=
"cache"
;
;
break
;}
break
;}
case
858
:
case
858
:
#line 49
89
"gram.y"
#line 49
90
"gram.y"
{
yyval
.
str
=
"createdb"
;
;
{
yyval
.
str
=
"createdb"
;
;
break
;}
break
;}
case
859
:
case
859
:
#line 499
0
"gram.y"
#line 499
1
"gram.y"
{
yyval
.
str
=
"createuser"
;
;
{
yyval
.
str
=
"createuser"
;
;
break
;}
break
;}
case
860
:
case
860
:
#line 499
1
"gram.y"
#line 499
2
"gram.y"
{
yyval
.
str
=
"cycle"
;
;
{
yyval
.
str
=
"cycle"
;
;
break
;}
break
;}
case
861
:
case
861
:
#line 499
2
"gram.y"
#line 499
3
"gram.y"
{
yyval
.
str
=
"database"
;
;
{
yyval
.
str
=
"database"
;
;
break
;}
break
;}
case
862
:
case
862
:
#line 499
3
"gram.y"
#line 499
4
"gram.y"
{
yyval
.
str
=
"delimiters"
;
;
{
yyval
.
str
=
"delimiters"
;
;
break
;}
break
;}
case
863
:
case
863
:
#line 499
4
"gram.y"
#line 499
5
"gram.y"
{
yyval
.
str
=
"double"
;
;
{
yyval
.
str
=
"double"
;
;
break
;}
break
;}
case
864
:
case
864
:
#line 499
5
"gram.y"
#line 499
6
"gram.y"
{
yyval
.
str
=
"each"
;
;
{
yyval
.
str
=
"each"
;
;
break
;}
break
;}
case
865
:
case
865
:
#line 499
6
"gram.y"
#line 499
7
"gram.y"
{
yyval
.
str
=
"encoding"
;
;
{
yyval
.
str
=
"encoding"
;
;
break
;}
break
;}
case
866
:
case
866
:
#line 499
7
"gram.y"
#line 499
8
"gram.y"
{
yyval
.
str
=
"forward"
;
;
{
yyval
.
str
=
"forward"
;
;
break
;}
break
;}
case
867
:
case
867
:
#line 499
8
"gram.y"
#line 499
9
"gram.y"
{
yyval
.
str
=
"function"
;
;
{
yyval
.
str
=
"function"
;
;
break
;}
break
;}
case
868
:
case
868
:
#line
4999
"gram.y"
#line
5000
"gram.y"
{
yyval
.
str
=
"handler"
;
;
{
yyval
.
str
=
"handler"
;
;
break
;}
break
;}
case
869
:
case
869
:
#line 500
0
"gram.y"
#line 500
1
"gram.y"
{
yyval
.
str
=
"increment"
;
;
{
yyval
.
str
=
"increment"
;
;
break
;}
break
;}
case
870
:
case
870
:
#line 500
1
"gram.y"
#line 500
2
"gram.y"
{
yyval
.
str
=
"index"
;
;
{
yyval
.
str
=
"index"
;
;
break
;}
break
;}
case
871
:
case
871
:
#line 500
2
"gram.y"
#line 500
3
"gram.y"
{
yyval
.
str
=
"inherits"
;
;
{
yyval
.
str
=
"inherits"
;
;
break
;}
break
;}
case
872
:
case
872
:
#line 500
3
"gram.y"
#line 500
4
"gram.y"
{
yyval
.
str
=
"insensitive"
;
;
{
yyval
.
str
=
"insensitive"
;
;
break
;}
break
;}
case
873
:
case
873
:
#line 500
4
"gram.y"
#line 500
5
"gram.y"
{
yyval
.
str
=
"instead"
;
;
{
yyval
.
str
=
"instead"
;
;
break
;}
break
;}
case
874
:
case
874
:
#line 500
5
"gram.y"
#line 500
6
"gram.y"
{
yyval
.
str
=
"isnull"
;
;
{
yyval
.
str
=
"isnull"
;
;
break
;}
break
;}
case
875
:
case
875
:
#line 500
6
"gram.y"
#line 500
7
"gram.y"
{
yyval
.
str
=
"key"
;
;
{
yyval
.
str
=
"key"
;
;
break
;}
break
;}
case
876
:
case
876
:
#line 500
7
"gram.y"
#line 500
8
"gram.y"
{
yyval
.
str
=
"language"
;
;
{
yyval
.
str
=
"language"
;
;
break
;}
break
;}
case
877
:
case
877
:
#line 500
8
"gram.y"
#line 500
9
"gram.y"
{
yyval
.
str
=
"lancompiler"
;
;
{
yyval
.
str
=
"lancompiler"
;
;
break
;}
break
;}
case
878
:
case
878
:
#line 50
09
"gram.y"
#line 50
10
"gram.y"
{
yyval
.
str
=
"location"
;
;
{
yyval
.
str
=
"location"
;
;
break
;}
break
;}
case
879
:
case
879
:
#line 501
0
"gram.y"
#line 501
1
"gram.y"
{
yyval
.
str
=
"match"
;
;
{
yyval
.
str
=
"match"
;
;
break
;}
break
;}
case
880
:
case
880
:
#line 501
1
"gram.y"
#line 501
2
"gram.y"
{
yyval
.
str
=
"maxvalue"
;
;
{
yyval
.
str
=
"maxvalue"
;
;
break
;}
break
;}
case
881
:
case
881
:
#line 501
2
"gram.y"
#line 501
3
"gram.y"
{
yyval
.
str
=
"minvalue"
;
;
{
yyval
.
str
=
"minvalue"
;
;
break
;}
break
;}
case
882
:
case
882
:
#line 501
3
"gram.y"
#line 501
4
"gram.y"
{
yyval
.
str
=
"next"
;
;
{
yyval
.
str
=
"next"
;
;
break
;}
break
;}
case
883
:
case
883
:
#line 501
4
"gram.y"
#line 501
5
"gram.y"
{
yyval
.
str
=
"nocreatedb"
;
;
{
yyval
.
str
=
"nocreatedb"
;
;
break
;}
break
;}
case
884
:
case
884
:
#line 501
5
"gram.y"
#line 501
6
"gram.y"
{
yyval
.
str
=
"nocreateuser"
;
;
{
yyval
.
str
=
"nocreateuser"
;
;
break
;}
break
;}
case
885
:
case
885
:
#line 501
6
"gram.y"
#line 501
7
"gram.y"
{
yyval
.
str
=
"nothing"
;
;
{
yyval
.
str
=
"nothing"
;
;
break
;}
break
;}
case
886
:
case
886
:
#line 501
7
"gram.y"
#line 501
8
"gram.y"
{
yyval
.
str
=
"notnull"
;
;
{
yyval
.
str
=
"notnull"
;
;
break
;}
break
;}
case
887
:
case
887
:
#line 501
8
"gram.y"
#line 501
9
"gram.y"
{
yyval
.
str
=
"of"
;
;
{
yyval
.
str
=
"of"
;
;
break
;}
break
;}
case
888
:
case
888
:
#line 50
19
"gram.y"
#line 50
20
"gram.y"
{
yyval
.
str
=
"oids"
;
;
{
yyval
.
str
=
"oids"
;
;
break
;}
break
;}
case
889
:
case
889
:
#line 502
0
"gram.y"
#line 502
1
"gram.y"
{
yyval
.
str
=
"only"
;
;
{
yyval
.
str
=
"only"
;
;
break
;}
break
;}
case
890
:
case
890
:
#line 502
1
"gram.y"
#line 502
2
"gram.y"
{
yyval
.
str
=
"operator"
;
;
{
yyval
.
str
=
"operator"
;
;
break
;}
break
;}
case
891
:
case
891
:
#line 502
2
"gram.y"
#line 502
3
"gram.y"
{
yyval
.
str
=
"option"
;
;
{
yyval
.
str
=
"option"
;
;
break
;}
break
;}
case
892
:
case
892
:
#line 502
3
"gram.y"
#line 502
4
"gram.y"
{
yyval
.
str
=
"password"
;
;
{
yyval
.
str
=
"password"
;
;
break
;}
break
;}
case
893
:
case
893
:
#line 502
4
"gram.y"
#line 502
5
"gram.y"
{
yyval
.
str
=
"prior"
;
;
{
yyval
.
str
=
"prior"
;
;
break
;}
break
;}
case
894
:
case
894
:
#line 502
5
"gram.y"
#line 502
6
"gram.y"
{
yyval
.
str
=
"privileges"
;
;
{
yyval
.
str
=
"privileges"
;
;
break
;}
break
;}
case
895
:
case
895
:
#line 502
6
"gram.y"
#line 502
7
"gram.y"
{
yyval
.
str
=
"procedural"
;
;
{
yyval
.
str
=
"procedural"
;
;
break
;}
break
;}
case
896
:
case
896
:
#line 502
7
"gram.y"
#line 502
8
"gram.y"
{
yyval
.
str
=
"read"
;
;
{
yyval
.
str
=
"read"
;
;
break
;}
break
;}
case
897
:
case
897
:
#line 502
8
"gram.y"
#line 502
9
"gram.y"
{
yyval
.
str
=
"recipe"
;
;
{
yyval
.
str
=
"recipe"
;
;
break
;}
break
;}
case
898
:
case
898
:
#line 50
29
"gram.y"
#line 50
30
"gram.y"
{
yyval
.
str
=
"relative"
;
;
{
yyval
.
str
=
"relative"
;
;
break
;}
break
;}
case
899
:
case
899
:
#line 503
0
"gram.y"
#line 503
1
"gram.y"
{
yyval
.
str
=
"rename"
;
;
{
yyval
.
str
=
"rename"
;
;
break
;}
break
;}
case
900
:
case
900
:
#line 503
1
"gram.y"
#line 503
2
"gram.y"
{
yyval
.
str
=
"returns"
;
;
{
yyval
.
str
=
"returns"
;
;
break
;}
break
;}
case
901
:
case
901
:
#line 503
2
"gram.y"
#line 503
3
"gram.y"
{
yyval
.
str
=
"row"
;
;
{
yyval
.
str
=
"row"
;
;
break
;}
break
;}
case
902
:
case
902
:
#line 503
3
"gram.y"
#line 503
4
"gram.y"
{
yyval
.
str
=
"rule"
;
;
{
yyval
.
str
=
"rule"
;
;
break
;}
break
;}
case
903
:
case
903
:
#line 503
4
"gram.y"
#line 503
5
"gram.y"
{
yyval
.
str
=
"scroll"
;
;
{
yyval
.
str
=
"scroll"
;
;
break
;}
break
;}
case
904
:
case
904
:
#line 503
5
"gram.y"
#line 503
6
"gram.y"
{
yyval
.
str
=
"sequence"
;
;
{
yyval
.
str
=
"sequence"
;
;
break
;}
break
;}
case
905
:
case
905
:
#line 503
6
"gram.y"
#line 503
7
"gram.y"
{
yyval
.
str
=
"serial"
;
;
{
yyval
.
str
=
"serial"
;
;
break
;}
break
;}
case
906
:
case
906
:
#line 503
7
"gram.y"
#line 503
8
"gram.y"
{
yyval
.
str
=
"start"
;
;
{
yyval
.
str
=
"start"
;
;
break
;}
break
;}
case
907
:
case
907
:
#line 503
8
"gram.y"
#line 503
9
"gram.y"
{
yyval
.
str
=
"statement"
;
;
{
yyval
.
str
=
"statement"
;
;
break
;}
break
;}
case
908
:
case
908
:
#line 50
39
"gram.y"
#line 50
40
"gram.y"
{
yyval
.
str
=
"stdin"
;
;
{
yyval
.
str
=
"stdin"
;
;
break
;}
break
;}
case
909
:
case
909
:
#line 504
0
"gram.y"
#line 504
1
"gram.y"
{
yyval
.
str
=
"stdout"
;
;
{
yyval
.
str
=
"stdout"
;
;
break
;}
break
;}
case
910
:
case
910
:
#line 504
1
"gram.y"
#line 504
2
"gram.y"
{
yyval
.
str
=
"time"
;
;
{
yyval
.
str
=
"time"
;
;
break
;}
break
;}
case
911
:
case
911
:
#line 504
2
"gram.y"
#line 504
3
"gram.y"
{
yyval
.
str
=
"timestamp"
;
;
{
yyval
.
str
=
"timestamp"
;
;
break
;}
break
;}
case
912
:
case
912
:
#line 504
3
"gram.y"
#line 504
4
"gram.y"
{
yyval
.
str
=
"timezone_hour"
;
;
{
yyval
.
str
=
"timezone_hour"
;
;
break
;}
break
;}
case
913
:
case
913
:
#line 504
4
"gram.y"
#line 504
5
"gram.y"
{
yyval
.
str
=
"timezone_minute"
;
;
{
yyval
.
str
=
"timezone_minute"
;
;
break
;}
break
;}
case
914
:
case
914
:
#line 504
5
"gram.y"
#line 504
6
"gram.y"
{
yyval
.
str
=
"trigger"
;
;
{
yyval
.
str
=
"trigger"
;
;
break
;}
break
;}
case
915
:
case
915
:
#line 504
6
"gram.y"
#line 504
7
"gram.y"
{
yyval
.
str
=
"trusted"
;
;
{
yyval
.
str
=
"trusted"
;
;
break
;}
break
;}
case
916
:
case
916
:
#line 504
7
"gram.y"
#line 504
8
"gram.y"
{
yyval
.
str
=
"type"
;
;
{
yyval
.
str
=
"type"
;
;
break
;}
break
;}
case
917
:
case
917
:
#line 504
8
"gram.y"
#line 504
9
"gram.y"
{
yyval
.
str
=
"valid"
;
;
{
yyval
.
str
=
"valid"
;
;
break
;}
break
;}
case
918
:
case
918
:
#line 50
49
"gram.y"
#line 50
50
"gram.y"
{
yyval
.
str
=
"version"
;
;
{
yyval
.
str
=
"version"
;
;
break
;}
break
;}
case
919
:
case
919
:
#line 505
0
"gram.y"
#line 505
1
"gram.y"
{
yyval
.
str
=
"zone"
;
;
{
yyval
.
str
=
"zone"
;
;
break
;}
break
;}
case
920
:
case
920
:
#line 506
3
"gram.y"
#line 506
4
"gram.y"
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
{
yyval
.
str
=
yyvsp
[
0
].
str
;
;
break
;}
break
;}
case
921
:
case
921
:
#line 506
4
"gram.y"
#line 506
5
"gram.y"
{
yyval
.
str
=
"abort"
;
;
{
yyval
.
str
=
"abort"
;
;
break
;}
break
;}
case
922
:
case
922
:
#line 506
5
"gram.y"
#line 506
6
"gram.y"
{
yyval
.
str
=
"analyze"
;
;
{
yyval
.
str
=
"analyze"
;
;
break
;}
break
;}
case
923
:
case
923
:
#line 506
6
"gram.y"
#line 506
7
"gram.y"
{
yyval
.
str
=
"binary"
;
;
{
yyval
.
str
=
"binary"
;
;
break
;}
break
;}
case
924
:
case
924
:
#line 506
7
"gram.y"
#line 506
8
"gram.y"
{
yyval
.
str
=
"case"
;
;
{
yyval
.
str
=
"case"
;
;
break
;}
break
;}
case
925
:
case
925
:
#line 506
8
"gram.y"
#line 506
9
"gram.y"
{
yyval
.
str
=
"cluster"
;
;
{
yyval
.
str
=
"cluster"
;
;
break
;}
break
;}
case
926
:
case
926
:
#line 50
69
"gram.y"
#line 50
70
"gram.y"
{
yyval
.
str
=
"coalesce"
;
;
{
yyval
.
str
=
"coalesce"
;
;
break
;}
break
;}
case
927
:
case
927
:
#line 507
0
"gram.y"
#line 507
1
"gram.y"
{
yyval
.
str
=
"constraint"
;
;
{
yyval
.
str
=
"constraint"
;
;
break
;}
break
;}
case
928
:
case
928
:
#line 507
1
"gram.y"
#line 507
2
"gram.y"
{
yyval
.
str
=
"copy"
;
;
{
yyval
.
str
=
"copy"
;
;
break
;}
break
;}
case
929
:
case
929
:
#line 507
2
"gram.y"
#line 507
3
"gram.y"
{
yyval
.
str
=
"cross"
;
;
{
yyval
.
str
=
"cross"
;
;
break
;}
break
;}
case
930
:
case
930
:
#line 507
3
"gram.y"
#line 507
4
"gram.y"
{
yyval
.
str
=
"current"
;
;
{
yyval
.
str
=
"current"
;
;
break
;}
break
;}
case
931
:
case
931
:
#line 507
4
"gram.y"
#line 507
5
"gram.y"
{
yyval
.
str
=
"do"
;
;
{
yyval
.
str
=
"do"
;
;
break
;}
break
;}
case
932
:
case
932
:
#line 507
5
"gram.y"
#line 507
6
"gram.y"
{
yyval
.
str
=
"else"
;
;
{
yyval
.
str
=
"else"
;
;
break
;}
break
;}
case
933
:
case
933
:
#line 507
6
"gram.y"
#line 507
7
"gram.y"
{
yyval
.
str
=
"end"
;
;
{
yyval
.
str
=
"end"
;
;
break
;}
break
;}
case
934
:
case
934
:
#line 507
7
"gram.y"
#line 507
8
"gram.y"
{
yyval
.
str
=
"explain"
;
;
{
yyval
.
str
=
"explain"
;
;
break
;}
break
;}
case
935
:
case
935
:
#line 507
8
"gram.y"
#line 507
9
"gram.y"
{
yyval
.
str
=
"extend"
;
;
{
yyval
.
str
=
"extend"
;
;
break
;}
break
;}
case
936
:
case
936
:
#line 50
79
"gram.y"
#line 50
80
"gram.y"
{
yyval
.
str
=
"false"
;
;
{
yyval
.
str
=
"false"
;
;
break
;}
break
;}
case
937
:
case
937
:
#line 508
0
"gram.y"
#line 508
1
"gram.y"
{
yyval
.
str
=
"foreign"
;
;
{
yyval
.
str
=
"foreign"
;
;
break
;}
break
;}
case
938
:
case
938
:
#line 508
1
"gram.y"
#line 508
2
"gram.y"
{
yyval
.
str
=
"group"
;
;
{
yyval
.
str
=
"group"
;
;
break
;}
break
;}
case
939
:
case
939
:
#line 508
2
"gram.y"
#line 508
3
"gram.y"
{
yyval
.
str
=
"listen"
;
;
{
yyval
.
str
=
"listen"
;
;
break
;}
break
;}
case
940
:
case
940
:
#line 508
3
"gram.y"
#line 508
4
"gram.y"
{
yyval
.
str
=
"load"
;
;
{
yyval
.
str
=
"load"
;
;
break
;}
break
;}
case
941
:
case
941
:
#line 508
4
"gram.y"
#line 508
5
"gram.y"
{
yyval
.
str
=
"lock"
;
;
{
yyval
.
str
=
"lock"
;
;
break
;}
break
;}
case
942
:
case
942
:
#line 508
5
"gram.y"
#line 508
6
"gram.y"
{
yyval
.
str
=
"move"
;
;
{
yyval
.
str
=
"move"
;
;
break
;}
break
;}
case
943
:
case
943
:
#line 508
6
"gram.y"
#line 508
7
"gram.y"
{
yyval
.
str
=
"new"
;
;
{
yyval
.
str
=
"new"
;
;
break
;}
break
;}
case
944
:
case
944
:
#line 508
7
"gram.y"
#line 508
8
"gram.y"
{
yyval
.
str
=
"none"
;
;
{
yyval
.
str
=
"none"
;
;
break
;}
break
;}
case
945
:
case
945
:
#line 508
8
"gram.y"
#line 508
9
"gram.y"
{
yyval
.
str
=
"nullif"
;
;
{
yyval
.
str
=
"nullif"
;
;
break
;}
break
;}
case
946
:
case
946
:
#line 50
89
"gram.y"
#line 50
90
"gram.y"
{
yyval
.
str
=
"order"
;
;
{
yyval
.
str
=
"order"
;
;
break
;}
break
;}
case
947
:
case
947
:
#line 509
0
"gram.y"
#line 509
1
"gram.y"
{
yyval
.
str
=
"position"
;
;
{
yyval
.
str
=
"position"
;
;
break
;}
break
;}
case
948
:
case
948
:
#line 509
1
"gram.y"
#line 509
2
"gram.y"
{
yyval
.
str
=
"precision"
;
;
{
yyval
.
str
=
"precision"
;
;
break
;}
break
;}
case
949
:
case
949
:
#line 509
2
"gram.y"
#line 509
3
"gram.y"
{
yyval
.
str
=
"reset"
;
;
{
yyval
.
str
=
"reset"
;
;
break
;}
break
;}
case
950
:
case
950
:
#line 509
3
"gram.y"
#line 509
4
"gram.y"
{
yyval
.
str
=
"setof"
;
;
{
yyval
.
str
=
"setof"
;
;
break
;}
break
;}
case
951
:
case
951
:
#line 509
4
"gram.y"
#line 509
5
"gram.y"
{
yyval
.
str
=
"show"
;
;
{
yyval
.
str
=
"show"
;
;
break
;}
break
;}
case
952
:
case
952
:
#line 509
5
"gram.y"
#line 509
6
"gram.y"
{
yyval
.
str
=
"table"
;
;
{
yyval
.
str
=
"table"
;
;
break
;}
break
;}
case
953
:
case
953
:
#line 509
6
"gram.y"
#line 509
7
"gram.y"
{
yyval
.
str
=
"then"
;
;
{
yyval
.
str
=
"then"
;
;
break
;}
break
;}
case
954
:
case
954
:
#line 509
7
"gram.y"
#line 509
8
"gram.y"
{
yyval
.
str
=
"transaction"
;
;
{
yyval
.
str
=
"transaction"
;
;
break
;}
break
;}
case
955
:
case
955
:
#line 509
8
"gram.y"
#line 509
9
"gram.y"
{
yyval
.
str
=
"true"
;
;
{
yyval
.
str
=
"true"
;
;
break
;}
break
;}
case
956
:
case
956
:
#line 5
099
"gram.y"
#line 5
100
"gram.y"
{
yyval
.
str
=
"vacuum"
;
;
{
yyval
.
str
=
"vacuum"
;
;
break
;}
break
;}
case
957
:
case
957
:
#line 510
0
"gram.y"
#line 510
1
"gram.y"
{
yyval
.
str
=
"verbose"
;
;
{
yyval
.
str
=
"verbose"
;
;
break
;}
break
;}
case
958
:
case
958
:
#line 510
1
"gram.y"
#line 510
2
"gram.y"
{
yyval
.
str
=
"when"
;
;
{
yyval
.
str
=
"when"
;
;
break
;}
break
;}
case
959
:
case
959
:
#line 510
5
"gram.y"
#line 510
6
"gram.y"
{
{
if
(
QueryIsRule
)
if
(
QueryIsRule
)
yyval
.
str
=
"*CURRENT*"
;
yyval
.
str
=
"*CURRENT*"
;
...
@@ -11090,7 +11091,7 @@ case 959:
...
@@ -11090,7 +11091,7 @@ case 959:
;
;
break
;}
break
;}
case
960
:
case
960
:
#line 511
2
"gram.y"
#line 511
3
"gram.y"
{
{
if
(
QueryIsRule
)
if
(
QueryIsRule
)
yyval
.
str
=
"*NEW*"
;
yyval
.
str
=
"*NEW*"
;
...
@@ -11100,7 +11101,7 @@ case 960:
...
@@ -11100,7 +11101,7 @@ case 960:
break
;}
break
;}
}
}
/* the action file gets copied in in place of this dollarsign */
/* the action file gets copied in in place of this dollarsign */
#line 498 "/usr/
local/bison
/bison.simple"
#line 498 "/usr/
share/misc
/bison.simple"
yyvsp
-=
yylen
;
yyvsp
-=
yylen
;
yyssp
-=
yylen
;
yyssp
-=
yylen
;
...
@@ -11296,7 +11297,7 @@ yyerrhandle:
...
@@ -11296,7 +11297,7 @@ yyerrhandle:
yystate
=
yyn
;
yystate
=
yyn
;
goto
yynewstate
;
goto
yynewstate
;
}
}
#line 512
0
"gram.y"
#line 512
1
"gram.y"
static
Node
*
static
Node
*
...
...
src/backend/parser/gram.y
View file @
12be3e08
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.4
6 1999/01/20 19:48:13 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.4
7 1999/01/21 16:08:46 vadim
Exp $
*
*
* HISTORY
* HISTORY
* AUTHOR DATE MAJOR EVENT
* AUTHOR DATE MAJOR EVENT
...
@@ -2496,6 +2496,7 @@ insert_rest: VALUES '(' res_target_list2 ')'
...
@@ -2496,6 +2496,7 @@ insert_rest: VALUES '(' res_target_list2 ')'
$$->havingClause = n->havingClause;
$$->havingClause = n->havingClause;
$$->unionClause = n->unionClause;
$$->unionClause = n->unionClause;
$$->intersectClause = n->intersectClause;
$$->intersectClause = n->intersectClause;
$$->forUpdate = n->forUpdate;
}
}
| '(' columnList ')' VALUES '(' res_target_list2 ')'
| '(' columnList ')' VALUES '(' res_target_list2 ')'
{
{
...
...
src/backend/rewrite/rewriteHandler.c
View file @
12be3e08
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.2
8 1999/01/18 00:09:54 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.2
9 1999/01/21 16:08:48 vadim
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -1799,7 +1799,8 @@ ApplyRetrieveRule(Query *parsetree,
...
@@ -1799,7 +1799,8 @@ ApplyRetrieveRule(Query *parsetree,
Query
*
rule_action
=
NULL
;
Query
*
rule_action
=
NULL
;
Node
*
rule_qual
;
Node
*
rule_qual
;
List
*
rtable
,
List
*
rtable
,
*
rt
;
*
rt
,
*
l
;
int
nothing
,
int
nothing
,
rt_length
;
rt_length
;
int
badsql
=
FALSE
;
int
badsql
=
FALSE
;
...
@@ -1834,6 +1835,43 @@ ApplyRetrieveRule(Query *parsetree,
...
@@ -1834,6 +1835,43 @@ ApplyRetrieveRule(Query *parsetree,
rtable
=
nconc
(
rtable
,
copyObject
(
rule_action
->
rtable
));
rtable
=
nconc
(
rtable
,
copyObject
(
rule_action
->
rtable
));
parsetree
->
rtable
=
rtable
;
parsetree
->
rtable
=
rtable
;
/* FOR UPDATE of view... */
foreach
(
l
,
parsetree
->
rowMark
)
{
if
(((
RowMark
*
)
lfirst
(
l
))
->
rti
==
rt_index
)
break
;
}
if
(
l
!=
NULL
)
/* oh, hell -:) */
{
RowMark
*
newrm
;
Index
rti
=
1
;
List
*
l2
;
/*
* We believe that rt_index is VIEW - nothing should be
* marked for VIEW, but ACL check must be done.
* As for real tables of VIEW - their rows must be marked, but
* we have to skip ACL check for them.
*/
((
RowMark
*
)
lfirst
(
l
))
->
info
&=
~
ROW_MARK_FOR_UPDATE
;
foreach
(
l2
,
rule_action
->
rtable
)
{
/*
* RTable of VIEW has two entries of VIEW itself -
* we use relid to skip them.
*/
if
(
relation
->
rd_id
!=
((
RangeTblEntry
*
)
lfirst
(
l2
))
->
relid
)
{
newrm
=
makeNode
(
RowMark
);
newrm
->
rti
=
rti
+
rt_length
;
newrm
->
info
=
ROW_MARK_FOR_UPDATE
;
lnext
(
l
)
=
lcons
(
newrm
,
lnext
(
l
));
l
=
lnext
(
l
);
}
rti
++
;
}
}
rule_action
->
rtable
=
rtable
;
rule_action
->
rtable
=
rtable
;
OffsetVarNodes
((
Node
*
)
rule_qual
,
rt_length
,
0
);
OffsetVarNodes
((
Node
*
)
rule_qual
,
rt_length
,
0
);
OffsetVarNodes
((
Node
*
)
rule_action
,
rt_length
,
0
);
OffsetVarNodes
((
Node
*
)
rule_action
,
rt_length
,
0
);
...
...
src/backend/utils/adt/float.c
View file @
12be3e08
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.3
7 1999/01/17 03:28:37 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.3
8 1999/01/21 16:08:51 vadim
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -63,6 +63,9 @@
...
@@ -63,6 +63,9 @@
#include "utils/builtins.h"
/* for ftod() prototype */
#include "utils/builtins.h"
/* for ftod() prototype */
#include "utils/palloc.h"
#include "utils/palloc.h"
#ifndef NAN
#define NAN (0.0/0.0)
#endif
#ifndef SHRT_MAX
#ifndef SHRT_MAX
#define SHRT_MAX 32767
#define SHRT_MAX 32767
...
...
src/include/nodes/nodes.h
View file @
12be3e08
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
*
*
* Copyright (c) 1994, Regents of the University of California
* Copyright (c) 1994, Regents of the University of California
*
*
* $Id: nodes.h,v 1.3
3 1998/12/18 09:09
:53 vadim Exp $
* $Id: nodes.h,v 1.3
4 1999/01/21 16:08
:53 vadim Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -216,7 +216,8 @@ typedef enum NodeTag
...
@@ -216,7 +216,8 @@ typedef enum NodeTag
T_SubSelect
,
T_SubSelect
,
T_JoinUsing
,
T_JoinUsing
,
T_CaseExpr
,
T_CaseExpr
,
T_CaseWhen
T_CaseWhen
,
T_RowMark
}
NodeTag
;
}
NodeTag
;
/*
/*
...
...
src/include/nodes/parsenodes.h
View file @
12be3e08
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
*
*
* Copyright (c) 1994, Regents of the University of California
* Copyright (c) 1994, Regents of the University of California
*
*
* $Id: parsenodes.h,v 1.6
6 1999/01/18 00:10:06 momjian
Exp $
* $Id: parsenodes.h,v 1.6
7 1999/01/21 16:08:55 vadim
Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -53,6 +53,7 @@ typedef struct Query
...
@@ -53,6 +53,7 @@ typedef struct Query
List
*
rtable
;
/* list of range table entries */
List
*
rtable
;
/* list of range table entries */
List
*
targetList
;
/* target list (of TargetEntry) */
List
*
targetList
;
/* target list (of TargetEntry) */
Node
*
qual
;
/* qualifications */
Node
*
qual
;
/* qualifications */
List
*
rowMark
;
/* list of RowMark entries */
List
*
groupClause
;
/* list of columns to specified in GROUP
List
*
groupClause
;
/* list of columns to specified in GROUP
* BY */
* BY */
...
@@ -608,9 +609,10 @@ typedef struct InsertStmt
...
@@ -608,9 +609,10 @@ typedef struct InsertStmt
List
*
groupClause
;
/* group by clause */
List
*
groupClause
;
/* group by clause */
Node
*
havingClause
;
/* having conditional-expression */
Node
*
havingClause
;
/* having conditional-expression */
List
*
unionClause
;
/* union subselect parameters */
List
*
unionClause
;
/* union subselect parameters */
bool
unionall
;
/* union without unique sort */
bool
unionall
;
/* union without unique sort */
/***S*I***/
/***S*I***/
List
*
intersectClause
;
List
*
intersectClause
;
List
*
forUpdate
;
/* FOR UPDATE clause */
}
InsertStmt
;
}
InsertStmt
;
/* ----------------------
/* ----------------------
...
@@ -651,10 +653,10 @@ typedef struct SelectStmt
...
@@ -651,10 +653,10 @@ typedef struct SelectStmt
Node
*
whereClause
;
/* qualifications */
Node
*
whereClause
;
/* qualifications */
List
*
groupClause
;
/* group by clause */
List
*
groupClause
;
/* group by clause */
Node
*
havingClause
;
/* having conditional-expression */
Node
*
havingClause
;
/* having conditional-expression */
/***S*I***/
/***S*I***/
List
*
intersectClause
;
List
*
intersectClause
;
List
*
exceptClause
;
List
*
exceptClause
;
List
*
unionClause
;
/* union subselect parameters */
List
*
unionClause
;
/* union subselect parameters */
List
*
sortClause
;
/* sort clause (a list of SortGroupBy's) */
List
*
sortClause
;
/* sort clause (a list of SortGroupBy's) */
char
*
portalname
;
/* the portal (cursor) to create */
char
*
portalname
;
/* the portal (cursor) to create */
...
@@ -958,4 +960,14 @@ typedef struct GroupClause
...
@@ -958,4 +960,14 @@ typedef struct GroupClause
Oid
grpOpoid
;
/* the sort operator to use */
Oid
grpOpoid
;
/* the sort operator to use */
}
GroupClause
;
}
GroupClause
;
#define ROW_MARK_FOR_UPDATE (1 << 0)
#define ROW_ACL_FOR_UPDATE (1 << 1)
typedef
struct
RowMark
{
NodeTag
type
;
Index
rti
;
/* index in Query->rtable */
bits8
info
;
/* as above */
}
RowMark
;
#endif
/* PARSENODES_H */
#endif
/* PARSENODES_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment