summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg
diff options
context:
space:
mode:
authorTom Lane2021-01-04 16:03:22 +0000
committerTom Lane2021-01-04 16:03:22 +0000
commit844fe9f159a948377907a63d0ef3fb16dc51ce50 (patch)
tree5f2ac3f159f7a4795a01330044fd76049ed5bff6 /src/interfaces/ecpg
parentb49154b3b7a45523ce4081fdae8d65049342fcec (diff)
Add the ability for the core grammar to have more than one parse target.
This patch essentially allows gram.y to implement a family of related syntax trees, rather than necessarily always parsing a list of SQL statements. raw_parser() gains a new argument, enum RawParseMode, to say what to do. As proof of concept, add a mode that just parses a TypeName without any other decoration, and use that to greatly simplify typeStringToTypeName(). In addition, invent a new SPI entry point SPI_prepare_extended() to allow SPI users (particularly plpgsql) to get at this new functionality. In hopes of making this the last variant of SPI_prepare(), set up its additional arguments as a struct rather than direct arguments, and promise that future additions to the struct can default to zero. SPI_prepare_cursor() and SPI_prepare_params() can perhaps go away at some point. Discussion: https://postgr.es/m/4165684.1607707277@sss.pgh.pa.us
Diffstat (limited to 'src/interfaces/ecpg')
-rw-r--r--src/interfaces/ecpg/preproc/parse.pl2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl
index f2731ea873a..7f9be85eb66 100644
--- a/src/interfaces/ecpg/preproc/parse.pl
+++ b/src/interfaces/ecpg/preproc/parse.pl
@@ -63,7 +63,7 @@ my %replace_types = (
'opt_array_bounds' => '<index>',
# "ignore" means: do not create type and rules for this non-term-id
- 'stmtblock' => 'ignore',
+ 'parse_toplevel' => 'ignore',
'stmtmulti' => 'ignore',
'CreateAsStmt' => 'ignore',
'DeallocateStmt' => 'ignore',