pg_query 4.2.1 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/README.md +7 -9
- data/Rakefile +5 -6
- data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
- data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
- data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
- data/ext/pg_query/extconf.rb +33 -9
- data/ext/pg_query/include/pg_query.h +28 -3
- data/ext/pg_query/include/pg_query_enum_defs.c +599 -167
- data/ext/pg_query/include/pg_query_fingerprint_conds.c +640 -520
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +6400 -4633
- data/ext/pg_query/include/pg_query_outfuncs_conds.c +433 -343
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1472 -1152
- data/ext/pg_query/include/pg_query_readfuncs_conds.c +154 -124
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1886 -1506
- data/ext/pg_query/include/postgres/access/amapi.h +303 -0
- data/ext/pg_query/include/postgres/access/attmap.h +54 -0
- data/ext/pg_query/include/postgres/access/attnum.h +64 -0
- data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
- data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
- data/ext/pg_query/include/postgres/access/clog.h +62 -0
- data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
- data/ext/pg_query/include/postgres/access/detoast.h +82 -0
- data/ext/pg_query/include/postgres/access/genam.h +246 -0
- data/ext/pg_query/include/postgres/access/gin.h +91 -0
- data/ext/pg_query/include/postgres/access/htup.h +89 -0
- data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
- data/ext/pg_query/include/postgres/access/itup.h +170 -0
- data/ext/pg_query/include/postgres/access/parallel.h +81 -0
- data/ext/pg_query/include/postgres/access/printtup.h +35 -0
- data/ext/pg_query/include/postgres/access/relation.h +28 -0
- data/ext/pg_query/include/postgres/access/relscan.h +191 -0
- data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
- data/ext/pg_query/include/postgres/access/sdir.h +67 -0
- data/ext/pg_query/include/postgres/access/skey.h +151 -0
- data/ext/pg_query/include/postgres/access/slru.h +218 -0
- data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
- data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
- data/ext/pg_query/include/postgres/access/table.h +28 -0
- data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
- data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
- data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
- data/ext/pg_query/include/postgres/access/transam.h +418 -0
- data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
- data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
- data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
- data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
- data/ext/pg_query/include/postgres/access/twophase.h +65 -0
- data/ext/pg_query/include/postgres/access/xact.h +530 -0
- data/ext/pg_query/include/postgres/access/xlog.h +310 -0
- data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
- data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
- data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
- data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
- data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
- data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
- data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
- data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
- data/ext/pg_query/include/postgres/c.h +1374 -0
- data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
- data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
- data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
- data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
- data/ext/pg_query/include/postgres/catalog/index.h +218 -0
- data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
- data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
- data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
- data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
- data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
- data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
- data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
- data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
- data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
- data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
- data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
- data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
- data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
- data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
- data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
- data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
- data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
- data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
- data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
- data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
- data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
- data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
- data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
- data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
- data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
- data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
- data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
- data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
- data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
- data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
- data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
- data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
- data/ext/pg_query/include/postgres/commands/async.h +49 -0
- data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
- data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
- data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
- data/ext/pg_query/include/postgres/commands/explain.h +145 -0
- data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
- data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
- data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
- data/ext/pg_query/include/postgres/commands/user.h +43 -0
- data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
- data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
- data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
- data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
- data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
- data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
- data/ext/pg_query/include/postgres/common/int.h +512 -0
- data/ext/pg_query/include/postgres/common/keywords.h +29 -0
- data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
- data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
- data/ext/pg_query/include/postgres/common/relpath.h +97 -0
- data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
- data/ext/pg_query/include/postgres/common/sha2.h +32 -0
- data/ext/pg_query/include/postgres/common/string.h +44 -0
- data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
- data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
- data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
- data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
- data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
- data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
- data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
- data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
- data/ext/pg_query/include/postgres/executor/executor.h +681 -0
- data/ext/pg_query/include/postgres/executor/functions.h +56 -0
- data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
- data/ext/pg_query/include/postgres/executor/spi.h +207 -0
- data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
- data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
- data/ext/pg_query/include/postgres/fmgr.h +800 -0
- data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
- data/ext/pg_query/include/postgres/funcapi.h +360 -0
- data/ext/pg_query/include/postgres/gram.h +1168 -0
- data/ext/pg_query/include/postgres/gramparse.h +75 -0
- data/ext/pg_query/include/postgres/jit/jit.h +106 -0
- data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
- data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
- data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
- data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
- data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
- data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
- data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
- data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
- data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
- data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
- data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
- data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
- data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
- data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
- data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
- data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
- data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
- data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
- data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
- data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
- data/ext/pg_query/include/postgres/miscadmin.h +527 -0
- data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
- data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
- data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
- data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
- data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
- data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
- data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
- data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
- data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
- data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
- data/ext/pg_query/include/postgres/nodes/params.h +170 -0
- data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
- data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
- data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
- data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
- data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
- data/ext/pg_query/include/postgres/nodes/print.h +34 -0
- data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
- data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
- data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
- data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
- data/ext/pg_query/include/postgres/nodes/value.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
- data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
- data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
- data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
- data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
- data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
- data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
- data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
- data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
- data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
- data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
- data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
- data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
- data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
- data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
- data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
- data/ext/pg_query/include/postgres/parser/parser.h +68 -0
- data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
- data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
- data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
- data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
- data/ext/pg_query/include/postgres/pg_config.h +985 -0
- data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
- data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
- data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
- data/ext/pg_query/include/postgres/pg_trace.h +17 -0
- data/ext/pg_query/include/postgres/pgstat.h +780 -0
- data/ext/pg_query/include/postgres/pgtime.h +94 -0
- data/ext/pg_query/include/postgres/pl_gram.h +385 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
- data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
- data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
- data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
- data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
- data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
- data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
- data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
- data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
- data/ext/pg_query/include/postgres/port/atomics.h +606 -0
- data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
- data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
- data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
- data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
- data/ext/pg_query/include/postgres/port/simd.h +422 -0
- data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
- data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
- data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
- data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
- data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
- data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
- data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
- data/ext/pg_query/include/postgres/port/win32.h +59 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
- data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
- data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
- data/ext/pg_query/include/postgres/port.h +555 -0
- data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
- data/ext/pg_query/include/postgres/postgres.h +579 -0
- data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
- data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
- data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
- data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
- data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
- data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
- data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
- data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
- data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
- data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
- data/ext/pg_query/include/postgres/regex/regex.h +272 -0
- data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
- data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
- data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
- data/ext/pg_query/include/postgres/replication/origin.h +73 -0
- data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
- data/ext/pg_query/include/postgres/replication/slot.h +289 -0
- data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
- data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
- data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
- data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
- data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
- data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
- data/ext/pg_query/include/postgres/storage/block.h +108 -0
- data/ext/pg_query/include/postgres/storage/buf.h +46 -0
- data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
- data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
- data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
- data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
- data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
- data/ext/pg_query/include/postgres/storage/fd.h +219 -0
- data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
- data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
- data/ext/pg_query/include/postgres/storage/item.h +19 -0
- data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
- data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
- data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
- data/ext/pg_query/include/postgres/storage/latch.h +196 -0
- data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
- data/ext/pg_query/include/postgres/storage/lock.h +624 -0
- data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
- data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
- data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
- data/ext/pg_query/include/postgres/storage/off.h +57 -0
- data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
- data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
- data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
- data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
- data/ext/pg_query/include/postgres/storage/proc.h +488 -0
- data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
- data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
- data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
- data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
- data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
- data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
- data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
- data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
- data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
- data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
- data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
- data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
- data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
- data/ext/pg_query/include/postgres/storage/spin.h +77 -0
- data/ext/pg_query/include/postgres/storage/standby.h +109 -0
- data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
- data/ext/pg_query/include/postgres/storage/sync.h +66 -0
- data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
- data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
- data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
- data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
- data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
- data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
- data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
- data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
- data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
- data/ext/pg_query/include/postgres/utils/acl.h +290 -0
- data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
- data/ext/pg_query/include/postgres/utils/array.h +481 -0
- data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
- data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
- data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
- data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
- data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
- data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
- data/ext/pg_query/include/postgres/utils/date.h +118 -0
- data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
- data/ext/pg_query/include/postgres/utils/datum.h +76 -0
- data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
- data/ext/pg_query/include/postgres/utils/elog.h +540 -0
- data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
- data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
- data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
- data/ext/pg_query/include/postgres/utils/float.h +357 -0
- data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
- data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
- data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
- data/ext/pg_query/include/postgres/utils/guc.h +456 -0
- data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
- data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
- data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
- data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
- data/ext/pg_query/include/postgres/utils/inval.h +68 -0
- data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
- data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
- data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
- data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
- data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
- data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
- data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
- data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
- data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
- data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
- data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
- data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
- data/ext/pg_query/include/postgres/utils/portal.h +252 -0
- data/ext/pg_query/include/postgres/utils/probes.h +114 -0
- data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
- data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
- data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
- data/ext/pg_query/include/postgres/utils/rel.h +711 -0
- data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
- data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
- data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
- data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
- data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
- data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
- data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
- data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
- data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
- data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
- data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
- data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
- data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
- data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
- data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
- data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
- data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
- data/ext/pg_query/include/postgres/utils/xml.h +94 -0
- data/ext/pg_query/include/postgres/varatt.h +358 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7723 -6368
- data/ext/pg_query/include/protobuf/pg_query.pb.h +120022 -87031
- data/ext/pg_query/pg_query.c +10 -1
- data/ext/pg_query/pg_query.pb-c.c +22595 -17738
- data/ext/pg_query/pg_query_deparse.c +1 -10635
- data/ext/pg_query/pg_query_fingerprint.c +12 -8
- data/ext/pg_query/pg_query_fingerprint.h +1 -1
- data/ext/pg_query/pg_query_internal.h +1 -1
- data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
- data/ext/pg_query/pg_query_normalize.c +43 -2
- data/ext/pg_query/pg_query_outfuncs_json.c +9 -1
- data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_parse.c +47 -5
- data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
- data/ext/pg_query/pg_query_readfuncs_protobuf.c +3 -2
- data/ext/pg_query/pg_query_ruby.c +5 -0
- data/ext/pg_query/pg_query_scan.c +2 -2
- data/ext/pg_query/pg_query_split.c +3 -3
- data/ext/pg_query/postgres_deparse.c +11496 -0
- data/ext/pg_query/postgres_deparse.h +9 -0
- data/ext/pg_query/src_backend_catalog_namespace.c +243 -63
- data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -3
- data/ext/pg_query/src_backend_commands_define.c +2 -3
- data/ext/pg_query/src_backend_nodes_bitmapset.c +140 -156
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
- data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
- data/ext/pg_query/src_backend_nodes_list.c +16 -8
- data/ext/pg_query/src_backend_nodes_makefuncs.c +134 -1
- data/ext/pg_query/src_backend_nodes_nodeFuncs.c +391 -133
- data/ext/pg_query/src_backend_nodes_value.c +1 -1
- data/ext/pg_query/src_backend_parser_gram.c +43710 -39953
- data/ext/pg_query/src_backend_parser_parser.c +34 -8
- data/ext/pg_query/src_backend_parser_scan.c +6971 -3373
- data/ext/pg_query/src_backend_parser_scansup.c +2 -1
- data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
- data/ext/pg_query/src_backend_tcop_postgres.c +99 -96
- data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_datum.c +2 -2
- data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
- data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +177 -30
- data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
- data/ext/pg_query/src_backend_utils_error_elog.c +397 -270
- data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +36 -2
- data/ext/pg_query/src_backend_utils_init_globals.c +20 -5
- data/ext/pg_query/src_backend_utils_mb_mbutils.c +31 -84
- data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
- data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
- data/ext/pg_query/src_backend_utils_mmgr_aset.c +704 -497
- data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
- data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
- data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +637 -233
- data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
- data/ext/pg_query/src_common_encnames.c +46 -44
- data/ext/pg_query/src_common_hashfn.c +1 -1
- data/ext/pg_query/src_common_keywords.c +1 -1
- data/ext/pg_query/src_common_kwlist_d.h +586 -517
- data/ext/pg_query/src_common_kwlookup.c +1 -1
- data/ext/pg_query/src_common_psprintf.c +3 -3
- data/ext/pg_query/src_common_stringinfo.c +21 -4
- data/ext/pg_query/src_common_wchar.c +100 -116
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +99 -5
- data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +829 -763
- data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +19 -1
- data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
- data/ext/pg_query/src_port_pg_bitutils.c +251 -32
- data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
- data/ext/pg_query/src_port_snprintf.c +20 -27
- data/ext/pg_query/src_port_strerror.c +1 -3
- data/ext/pg_query/src_port_strlcpy.c +79 -0
- data/lib/pg_query/fingerprint.rb +5 -8
- data/lib/pg_query/node.rb +16 -11
- data/lib/pg_query/param_refs.rb +2 -2
- data/lib/pg_query/parse.rb +6 -8
- data/lib/pg_query/parse_error.rb +1 -0
- data/lib/pg_query/pg_query_pb.rb +173 -3196
- data/lib/pg_query/scan.rb +1 -0
- data/lib/pg_query/treewalker.rb +52 -11
- data/lib/pg_query/truncate.rb +18 -20
- data/lib/pg_query/version.rb +1 -1
- metadata +443 -442
- data/ext/pg_query/guc-file.c +0 -0
- data/ext/pg_query/include/access/amapi.h +0 -290
- data/ext/pg_query/include/access/attmap.h +0 -52
- data/ext/pg_query/include/access/attnum.h +0 -64
- data/ext/pg_query/include/access/clog.h +0 -63
- data/ext/pg_query/include/access/commit_ts.h +0 -74
- data/ext/pg_query/include/access/detoast.h +0 -82
- data/ext/pg_query/include/access/genam.h +0 -231
- data/ext/pg_query/include/access/gin.h +0 -78
- data/ext/pg_query/include/access/htup.h +0 -89
- data/ext/pg_query/include/access/htup_details.h +0 -807
- data/ext/pg_query/include/access/itup.h +0 -167
- data/ext/pg_query/include/access/parallel.h +0 -82
- data/ext/pg_query/include/access/printtup.h +0 -35
- data/ext/pg_query/include/access/relation.h +0 -28
- data/ext/pg_query/include/access/relscan.h +0 -191
- data/ext/pg_query/include/access/rmgrlist.h +0 -49
- data/ext/pg_query/include/access/sdir.h +0 -58
- data/ext/pg_query/include/access/skey.h +0 -151
- data/ext/pg_query/include/access/stratnum.h +0 -85
- data/ext/pg_query/include/access/sysattr.h +0 -29
- data/ext/pg_query/include/access/table.h +0 -28
- data/ext/pg_query/include/access/tableam.h +0 -2077
- data/ext/pg_query/include/access/toast_compression.h +0 -73
- data/ext/pg_query/include/access/transam.h +0 -375
- data/ext/pg_query/include/access/tupconvert.h +0 -51
- data/ext/pg_query/include/access/tupdesc.h +0 -154
- data/ext/pg_query/include/access/tupmacs.h +0 -247
- data/ext/pg_query/include/access/twophase.h +0 -65
- data/ext/pg_query/include/access/xact.h +0 -523
- data/ext/pg_query/include/access/xlog.h +0 -303
- data/ext/pg_query/include/access/xlog_internal.h +0 -366
- data/ext/pg_query/include/access/xlogdefs.h +0 -101
- data/ext/pg_query/include/access/xlogprefetcher.h +0 -55
- data/ext/pg_query/include/access/xlogreader.h +0 -443
- data/ext/pg_query/include/access/xlogrecord.h +0 -236
- data/ext/pg_query/include/access/xlogrecovery.h +0 -157
- data/ext/pg_query/include/c.h +0 -1391
- data/ext/pg_query/include/catalog/catalog.h +0 -44
- data/ext/pg_query/include/catalog/catversion.h +0 -58
- data/ext/pg_query/include/catalog/dependency.h +0 -269
- data/ext/pg_query/include/catalog/genbki.h +0 -142
- data/ext/pg_query/include/catalog/index.h +0 -214
- data/ext/pg_query/include/catalog/indexing.h +0 -54
- data/ext/pg_query/include/catalog/namespace.h +0 -190
- data/ext/pg_query/include/catalog/objectaccess.h +0 -265
- data/ext/pg_query/include/catalog/objectaddress.h +0 -89
- data/ext/pg_query/include/catalog/pg_aggregate.h +0 -180
- data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -78
- data/ext/pg_query/include/catalog/pg_am.h +0 -63
- data/ext/pg_query/include/catalog/pg_am_d.h +0 -47
- data/ext/pg_query/include/catalog/pg_attribute.h +0 -221
- data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_authid.h +0 -63
- data/ext/pg_query/include/catalog/pg_authid_d.h +0 -57
- data/ext/pg_query/include/catalog/pg_class.h +0 -230
- data/ext/pg_query/include/catalog/pg_class_d.h +0 -132
- data/ext/pg_query/include/catalog/pg_collation.h +0 -98
- data/ext/pg_query/include/catalog/pg_collation_d.h +0 -62
- data/ext/pg_query/include/catalog/pg_constraint.h +0 -273
- data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -73
- data/ext/pg_query/include/catalog/pg_control.h +0 -250
- data/ext/pg_query/include/catalog/pg_conversion.h +0 -75
- data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_depend.h +0 -77
- data/ext/pg_query/include/catalog/pg_depend_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -57
- data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_index.h +0 -90
- data/ext/pg_query/include/catalog/pg_index_d.h +0 -59
- data/ext/pg_query/include/catalog/pg_language.h +0 -72
- data/ext/pg_query/include/catalog/pg_language_d.h +0 -41
- data/ext/pg_query/include/catalog/pg_namespace.h +0 -64
- data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_opclass.h +0 -88
- data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -51
- data/ext/pg_query/include/catalog/pg_operator.h +0 -107
- data/ext/pg_query/include/catalog/pg_operator_d.h +0 -142
- data/ext/pg_query/include/catalog/pg_opfamily.h +0 -63
- data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -49
- data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
- data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -74
- data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -36
- data/ext/pg_query/include/catalog/pg_proc.h +0 -220
- data/ext/pg_query/include/catalog/pg_proc_d.h +0 -101
- data/ext/pg_query/include/catalog/pg_publication.h +0 -161
- data/ext/pg_query/include/catalog/pg_publication_d.h +0 -38
- data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -62
- data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -33
- data/ext/pg_query/include/catalog/pg_statistic.h +0 -282
- data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -195
- data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -88
- data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -45
- data/ext/pg_query/include/catalog/pg_transform.h +0 -48
- data/ext/pg_query/include/catalog/pg_transform_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_trigger.h +0 -153
- data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -109
- data/ext/pg_query/include/catalog/pg_ts_config.h +0 -53
- data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -59
- data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -35
- data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -60
- data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -37
- data/ext/pg_query/include/catalog/pg_ts_template.h +0 -51
- data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -34
- data/ext/pg_query/include/catalog/pg_type.h +0 -404
- data/ext/pg_query/include/catalog/pg_type_d.h +0 -324
- data/ext/pg_query/include/catalog/storage.h +0 -50
- data/ext/pg_query/include/commands/async.h +0 -53
- data/ext/pg_query/include/commands/dbcommands.h +0 -36
- data/ext/pg_query/include/commands/defrem.h +0 -160
- data/ext/pg_query/include/commands/event_trigger.h +0 -88
- data/ext/pg_query/include/commands/explain.h +0 -127
- data/ext/pg_query/include/commands/prepare.h +0 -61
- data/ext/pg_query/include/commands/tablespace.h +0 -69
- data/ext/pg_query/include/commands/trigger.h +0 -287
- data/ext/pg_query/include/commands/user.h +0 -37
- data/ext/pg_query/include/commands/vacuum.h +0 -340
- data/ext/pg_query/include/commands/variable.h +0 -38
- data/ext/pg_query/include/common/file_perm.h +0 -56
- data/ext/pg_query/include/common/hashfn.h +0 -104
- data/ext/pg_query/include/common/ip.h +0 -31
- data/ext/pg_query/include/common/keywords.h +0 -29
- data/ext/pg_query/include/common/kwlookup.h +0 -44
- data/ext/pg_query/include/common/pg_prng.h +0 -60
- data/ext/pg_query/include/common/relpath.h +0 -90
- data/ext/pg_query/include/common/string.h +0 -42
- data/ext/pg_query/include/common/unicode_combining_table.h +0 -308
- data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +0 -125
- data/ext/pg_query/include/datatype/timestamp.h +0 -236
- data/ext/pg_query/include/executor/execdesc.h +0 -70
- data/ext/pg_query/include/executor/executor.h +0 -663
- data/ext/pg_query/include/executor/functions.h +0 -55
- data/ext/pg_query/include/executor/instrument.h +0 -118
- data/ext/pg_query/include/executor/spi.h +0 -213
- data/ext/pg_query/include/executor/tablefunc.h +0 -67
- data/ext/pg_query/include/executor/tuptable.h +0 -487
- data/ext/pg_query/include/fmgr.h +0 -781
- data/ext/pg_query/include/funcapi.h +0 -360
- data/ext/pg_query/include/getaddrinfo.h +0 -162
- data/ext/pg_query/include/jit/jit.h +0 -105
- data/ext/pg_query/include/kwlist_d.h +0 -1095
- data/ext/pg_query/include/lib/dshash.h +0 -112
- data/ext/pg_query/include/lib/ilist.h +0 -746
- data/ext/pg_query/include/lib/pairingheap.h +0 -102
- data/ext/pg_query/include/lib/simplehash.h +0 -1184
- data/ext/pg_query/include/lib/sort_template.h +0 -432
- data/ext/pg_query/include/lib/stringinfo.h +0 -161
- data/ext/pg_query/include/libpq/auth.h +0 -31
- data/ext/pg_query/include/libpq/crypt.h +0 -47
- data/ext/pg_query/include/libpq/hba.h +0 -179
- data/ext/pg_query/include/libpq/libpq-be.h +0 -343
- data/ext/pg_query/include/libpq/libpq.h +0 -144
- data/ext/pg_query/include/libpq/pqcomm.h +0 -194
- data/ext/pg_query/include/libpq/pqformat.h +0 -210
- data/ext/pg_query/include/libpq/pqsignal.h +0 -42
- data/ext/pg_query/include/mb/pg_wchar.h +0 -755
- data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
- data/ext/pg_query/include/miscadmin.h +0 -495
- data/ext/pg_query/include/nodes/bitmapset.h +0 -122
- data/ext/pg_query/include/nodes/execnodes.h +0 -2715
- data/ext/pg_query/include/nodes/extensible.h +0 -162
- data/ext/pg_query/include/nodes/lockoptions.h +0 -61
- data/ext/pg_query/include/nodes/makefuncs.h +0 -109
- data/ext/pg_query/include/nodes/memnodes.h +0 -110
- data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
- data/ext/pg_query/include/nodes/nodes.h +0 -861
- data/ext/pg_query/include/nodes/params.h +0 -170
- data/ext/pg_query/include/nodes/parsenodes.h +0 -3812
- data/ext/pg_query/include/nodes/pathnodes.h +0 -2734
- data/ext/pg_query/include/nodes/pg_list.h +0 -612
- data/ext/pg_query/include/nodes/plannodes.h +0 -1349
- data/ext/pg_query/include/nodes/primnodes.h +0 -1593
- data/ext/pg_query/include/nodes/print.h +0 -34
- data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
- data/ext/pg_query/include/nodes/value.h +0 -80
- data/ext/pg_query/include/optimizer/cost.h +0 -213
- data/ext/pg_query/include/optimizer/geqo.h +0 -90
- data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
- data/ext/pg_query/include/optimizer/optimizer.h +0 -202
- data/ext/pg_query/include/optimizer/paths.h +0 -257
- data/ext/pg_query/include/optimizer/planmain.h +0 -120
- data/ext/pg_query/include/parser/analyze.h +0 -63
- data/ext/pg_query/include/parser/gram.h +0 -1101
- data/ext/pg_query/include/parser/gramparse.h +0 -75
- data/ext/pg_query/include/parser/kwlist.h +0 -487
- data/ext/pg_query/include/parser/parse_agg.h +0 -63
- data/ext/pg_query/include/parser/parse_coerce.h +0 -100
- data/ext/pg_query/include/parser/parse_expr.h +0 -25
- data/ext/pg_query/include/parser/parse_func.h +0 -74
- data/ext/pg_query/include/parser/parse_node.h +0 -339
- data/ext/pg_query/include/parser/parse_oper.h +0 -65
- data/ext/pg_query/include/parser/parse_relation.h +0 -124
- data/ext/pg_query/include/parser/parse_type.h +0 -60
- data/ext/pg_query/include/parser/parser.h +0 -68
- data/ext/pg_query/include/parser/parsetree.h +0 -61
- data/ext/pg_query/include/parser/scanner.h +0 -152
- data/ext/pg_query/include/parser/scansup.h +0 -27
- data/ext/pg_query/include/partitioning/partdefs.h +0 -26
- data/ext/pg_query/include/pg_config.h +0 -1037
- data/ext/pg_query/include/pg_config_manual.h +0 -410
- data/ext/pg_query/include/pg_config_os.h +0 -8
- data/ext/pg_query/include/pg_getopt.h +0 -56
- data/ext/pg_query/include/pg_trace.h +0 -17
- data/ext/pg_query/include/pgstat.h +0 -699
- data/ext/pg_query/include/pgtime.h +0 -94
- data/ext/pg_query/include/pl_gram.h +0 -383
- data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
- data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
- data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -111
- data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -244
- data/ext/pg_query/include/plerrcodes.h +0 -998
- data/ext/pg_query/include/plpgsql.h +0 -1345
- data/ext/pg_query/include/port/atomics/arch-arm.h +0 -32
- data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
- data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
- data/ext/pg_query/include/port/atomics/fallback.h +0 -170
- data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
- data/ext/pg_query/include/port/atomics/generic.h +0 -401
- data/ext/pg_query/include/port/atomics.h +0 -524
- data/ext/pg_query/include/port/pg_bitutils.h +0 -302
- data/ext/pg_query/include/port/pg_bswap.h +0 -161
- data/ext/pg_query/include/port/pg_crc32c.h +0 -101
- data/ext/pg_query/include/port.h +0 -553
- data/ext/pg_query/include/portability/instr_time.h +0 -256
- data/ext/pg_query/include/postgres.h +0 -808
- data/ext/pg_query/include/postgres_ext.h +0 -74
- data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
- data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
- data/ext/pg_query/include/postmaster/bgworker.h +0 -162
- data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
- data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
- data/ext/pg_query/include/postmaster/fork_process.h +0 -17
- data/ext/pg_query/include/postmaster/interrupt.h +0 -32
- data/ext/pg_query/include/postmaster/pgarch.h +0 -73
- data/ext/pg_query/include/postmaster/postmaster.h +0 -78
- data/ext/pg_query/include/postmaster/startup.h +0 -39
- data/ext/pg_query/include/postmaster/syslogger.h +0 -103
- data/ext/pg_query/include/postmaster/walwriter.h +0 -21
- data/ext/pg_query/include/regex/regex.h +0 -186
- data/ext/pg_query/include/replication/logicallauncher.h +0 -29
- data/ext/pg_query/include/replication/logicalproto.h +0 -254
- data/ext/pg_query/include/replication/logicalworker.h +0 -19
- data/ext/pg_query/include/replication/origin.h +0 -73
- data/ext/pg_query/include/replication/reorderbuffer.h +0 -685
- data/ext/pg_query/include/replication/slot.h +0 -230
- data/ext/pg_query/include/replication/syncrep.h +0 -115
- data/ext/pg_query/include/replication/walreceiver.h +0 -472
- data/ext/pg_query/include/replication/walsender.h +0 -74
- data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
- data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -38
- data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
- data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
- data/ext/pg_query/include/storage/backendid.h +0 -37
- data/ext/pg_query/include/storage/block.h +0 -115
- data/ext/pg_query/include/storage/buf.h +0 -46
- data/ext/pg_query/include/storage/bufmgr.h +0 -297
- data/ext/pg_query/include/storage/bufpage.h +0 -457
- data/ext/pg_query/include/storage/condition_variable.h +0 -73
- data/ext/pg_query/include/storage/dsm.h +0 -64
- data/ext/pg_query/include/storage/dsm_impl.h +0 -76
- data/ext/pg_query/include/storage/fd.h +0 -198
- data/ext/pg_query/include/storage/fileset.h +0 -40
- data/ext/pg_query/include/storage/ipc.h +0 -84
- data/ext/pg_query/include/storage/item.h +0 -19
- data/ext/pg_query/include/storage/itemid.h +0 -184
- data/ext/pg_query/include/storage/itemptr.h +0 -208
- data/ext/pg_query/include/storage/large_object.h +0 -100
- data/ext/pg_query/include/storage/latch.h +0 -186
- data/ext/pg_query/include/storage/lmgr.h +0 -115
- data/ext/pg_query/include/storage/lock.h +0 -616
- data/ext/pg_query/include/storage/lockdefs.h +0 -59
- data/ext/pg_query/include/storage/lwlock.h +0 -206
- data/ext/pg_query/include/storage/lwlocknames.h +0 -50
- data/ext/pg_query/include/storage/off.h +0 -57
- data/ext/pg_query/include/storage/pg_sema.h +0 -61
- data/ext/pg_query/include/storage/pg_shmem.h +0 -92
- data/ext/pg_query/include/storage/pmsignal.h +0 -105
- data/ext/pg_query/include/storage/predicate.h +0 -87
- data/ext/pg_query/include/storage/proc.h +0 -461
- data/ext/pg_query/include/storage/procarray.h +0 -98
- data/ext/pg_query/include/storage/proclist_types.h +0 -51
- data/ext/pg_query/include/storage/procsignal.h +0 -71
- data/ext/pg_query/include/storage/relfilenode.h +0 -99
- data/ext/pg_query/include/storage/s_lock.h +0 -1110
- data/ext/pg_query/include/storage/sharedfileset.h +0 -37
- data/ext/pg_query/include/storage/shm_mq.h +0 -86
- data/ext/pg_query/include/storage/shm_toc.h +0 -58
- data/ext/pg_query/include/storage/shmem.h +0 -81
- data/ext/pg_query/include/storage/sinval.h +0 -153
- data/ext/pg_query/include/storage/sinvaladt.h +0 -43
- data/ext/pg_query/include/storage/smgr.h +0 -111
- data/ext/pg_query/include/storage/spin.h +0 -77
- data/ext/pg_query/include/storage/standby.h +0 -98
- data/ext/pg_query/include/storage/standbydefs.h +0 -74
- data/ext/pg_query/include/storage/sync.h +0 -66
- data/ext/pg_query/include/tcop/cmdtag.h +0 -58
- data/ext/pg_query/include/tcop/cmdtaglist.h +0 -218
- data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
- data/ext/pg_query/include/tcop/dest.h +0 -149
- data/ext/pg_query/include/tcop/fastpath.h +0 -20
- data/ext/pg_query/include/tcop/pquery.h +0 -51
- data/ext/pg_query/include/tcop/tcopprot.h +0 -97
- data/ext/pg_query/include/tcop/utility.h +0 -112
- data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
- data/ext/pg_query/include/utils/acl.h +0 -333
- data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
- data/ext/pg_query/include/utils/array.h +0 -464
- data/ext/pg_query/include/utils/backend_progress.h +0 -44
- data/ext/pg_query/include/utils/backend_status.h +0 -321
- data/ext/pg_query/include/utils/builtins.h +0 -127
- data/ext/pg_query/include/utils/bytea.h +0 -28
- data/ext/pg_query/include/utils/catcache.h +0 -231
- data/ext/pg_query/include/utils/date.h +0 -90
- data/ext/pg_query/include/utils/datetime.h +0 -344
- data/ext/pg_query/include/utils/datum.h +0 -76
- data/ext/pg_query/include/utils/dsa.h +0 -123
- data/ext/pg_query/include/utils/dynahash.h +0 -20
- data/ext/pg_query/include/utils/elog.h +0 -470
- data/ext/pg_query/include/utils/errcodes.h +0 -354
- data/ext/pg_query/include/utils/expandeddatum.h +0 -159
- data/ext/pg_query/include/utils/expandedrecord.h +0 -231
- data/ext/pg_query/include/utils/float.h +0 -356
- data/ext/pg_query/include/utils/fmgroids.h +0 -3261
- data/ext/pg_query/include/utils/fmgrprotos.h +0 -2829
- data/ext/pg_query/include/utils/fmgrtab.h +0 -49
- data/ext/pg_query/include/utils/guc.h +0 -469
- data/ext/pg_query/include/utils/guc_tables.h +0 -276
- data/ext/pg_query/include/utils/hsearch.h +0 -153
- data/ext/pg_query/include/utils/inval.h +0 -68
- data/ext/pg_query/include/utils/lsyscache.h +0 -208
- data/ext/pg_query/include/utils/memdebug.h +0 -82
- data/ext/pg_query/include/utils/memutils.h +0 -230
- data/ext/pg_query/include/utils/numeric.h +0 -90
- data/ext/pg_query/include/utils/palloc.h +0 -158
- data/ext/pg_query/include/utils/partcache.h +0 -102
- data/ext/pg_query/include/utils/pg_locale.h +0 -127
- data/ext/pg_query/include/utils/pg_lsn.h +0 -29
- data/ext/pg_query/include/utils/pgstat_internal.h +0 -784
- data/ext/pg_query/include/utils/pidfile.h +0 -56
- data/ext/pg_query/include/utils/plancache.h +0 -236
- data/ext/pg_query/include/utils/portal.h +0 -252
- data/ext/pg_query/include/utils/probes.h +0 -114
- data/ext/pg_query/include/utils/ps_status.h +0 -25
- data/ext/pg_query/include/utils/queryenvironment.h +0 -74
- data/ext/pg_query/include/utils/queryjumble.h +0 -88
- data/ext/pg_query/include/utils/regproc.h +0 -39
- data/ext/pg_query/include/utils/rel.h +0 -695
- data/ext/pg_query/include/utils/relcache.h +0 -153
- data/ext/pg_query/include/utils/reltrigger.h +0 -81
- data/ext/pg_query/include/utils/resowner.h +0 -86
- data/ext/pg_query/include/utils/rls.h +0 -50
- data/ext/pg_query/include/utils/ruleutils.h +0 -47
- data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
- data/ext/pg_query/include/utils/snapmgr.h +0 -179
- data/ext/pg_query/include/utils/snapshot.h +0 -219
- data/ext/pg_query/include/utils/sortsupport.h +0 -391
- data/ext/pg_query/include/utils/syscache.h +0 -224
- data/ext/pg_query/include/utils/timeout.h +0 -95
- data/ext/pg_query/include/utils/timestamp.h +0 -117
- data/ext/pg_query/include/utils/tuplesort.h +0 -291
- data/ext/pg_query/include/utils/tuplestore.h +0 -91
- data/ext/pg_query/include/utils/typcache.h +0 -209
- data/ext/pg_query/include/utils/tzparser.h +0 -39
- data/ext/pg_query/include/utils/varlena.h +0 -41
- data/ext/pg_query/include/utils/wait_event.h +0 -289
- data/ext/pg_query/include/utils/xml.h +0 -84
- data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
- data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
- data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
- data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
- data/ext/pg_query/src_common_pg_prng.c +0 -152
- data/ext/pg_query/src_common_string.c +0 -92
- data/ext/pg_query/src_port_pgsleep.c +0 -69
- data/ext/pg_query/src_port_strnlen.c +0 -39
- /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
- /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
- /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -222,36 +222,37 @@
|
|
222
222
|
K_PG_EXCEPTION_CONTEXT = 354,
|
223
223
|
K_PG_EXCEPTION_DETAIL = 355,
|
224
224
|
K_PG_EXCEPTION_HINT = 356,
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
225
|
+
K_PG_ROUTINE_OID = 357,
|
226
|
+
K_PRINT_STRICT_PARAMS = 358,
|
227
|
+
K_PRIOR = 359,
|
228
|
+
K_QUERY = 360,
|
229
|
+
K_RAISE = 361,
|
230
|
+
K_RELATIVE = 362,
|
231
|
+
K_RETURN = 363,
|
232
|
+
K_RETURNED_SQLSTATE = 364,
|
233
|
+
K_REVERSE = 365,
|
234
|
+
K_ROLLBACK = 366,
|
235
|
+
K_ROW_COUNT = 367,
|
236
|
+
K_ROWTYPE = 368,
|
237
|
+
K_SCHEMA = 369,
|
238
|
+
K_SCHEMA_NAME = 370,
|
239
|
+
K_SCROLL = 371,
|
240
|
+
K_SLICE = 372,
|
241
|
+
K_SQLSTATE = 373,
|
242
|
+
K_STACKED = 374,
|
243
|
+
K_STRICT = 375,
|
244
|
+
K_TABLE = 376,
|
245
|
+
K_TABLE_NAME = 377,
|
246
|
+
K_THEN = 378,
|
247
|
+
K_TO = 379,
|
248
|
+
K_TYPE = 380,
|
249
|
+
K_USE_COLUMN = 381,
|
250
|
+
K_USE_VARIABLE = 382,
|
251
|
+
K_USING = 383,
|
252
|
+
K_VARIABLE_CONFLICT = 384,
|
253
|
+
K_WARNING = 385,
|
254
|
+
K_WHEN = 386,
|
255
|
+
K_WHILE = 387
|
255
256
|
};
|
256
257
|
#endif
|
257
258
|
/* Tokens. */
|
@@ -354,36 +355,37 @@
|
|
354
355
|
#define K_PG_EXCEPTION_CONTEXT 354
|
355
356
|
#define K_PG_EXCEPTION_DETAIL 355
|
356
357
|
#define K_PG_EXCEPTION_HINT 356
|
357
|
-
#define
|
358
|
-
#define
|
359
|
-
#define
|
360
|
-
#define
|
361
|
-
#define
|
362
|
-
#define
|
363
|
-
#define
|
364
|
-
#define
|
365
|
-
#define
|
366
|
-
#define
|
367
|
-
#define
|
368
|
-
#define
|
369
|
-
#define
|
370
|
-
#define
|
371
|
-
#define
|
372
|
-
#define
|
373
|
-
#define
|
374
|
-
#define
|
375
|
-
#define
|
376
|
-
#define
|
377
|
-
#define
|
378
|
-
#define
|
379
|
-
#define
|
380
|
-
#define
|
381
|
-
#define
|
382
|
-
#define
|
383
|
-
#define
|
384
|
-
#define
|
385
|
-
#define
|
386
|
-
#define
|
358
|
+
#define K_PG_ROUTINE_OID 357
|
359
|
+
#define K_PRINT_STRICT_PARAMS 358
|
360
|
+
#define K_PRIOR 359
|
361
|
+
#define K_QUERY 360
|
362
|
+
#define K_RAISE 361
|
363
|
+
#define K_RELATIVE 362
|
364
|
+
#define K_RETURN 363
|
365
|
+
#define K_RETURNED_SQLSTATE 364
|
366
|
+
#define K_REVERSE 365
|
367
|
+
#define K_ROLLBACK 366
|
368
|
+
#define K_ROW_COUNT 367
|
369
|
+
#define K_ROWTYPE 368
|
370
|
+
#define K_SCHEMA 369
|
371
|
+
#define K_SCHEMA_NAME 370
|
372
|
+
#define K_SCROLL 371
|
373
|
+
#define K_SLICE 372
|
374
|
+
#define K_SQLSTATE 373
|
375
|
+
#define K_STACKED 374
|
376
|
+
#define K_STRICT 375
|
377
|
+
#define K_TABLE 376
|
378
|
+
#define K_TABLE_NAME 377
|
379
|
+
#define K_THEN 378
|
380
|
+
#define K_TO 379
|
381
|
+
#define K_TYPE 380
|
382
|
+
#define K_USE_COLUMN 381
|
383
|
+
#define K_USE_VARIABLE 382
|
384
|
+
#define K_USING 383
|
385
|
+
#define K_VARIABLE_CONFLICT 384
|
386
|
+
#define K_WARNING 385
|
387
|
+
#define K_WHEN 386
|
388
|
+
#define K_WHILE 387
|
387
389
|
|
388
390
|
|
389
391
|
|
@@ -395,7 +397,7 @@
|
|
395
397
|
*
|
396
398
|
* pl_gram.y - Parser for the PL/pgSQL procedural language
|
397
399
|
*
|
398
|
-
* Portions Copyright (c) 1996-
|
400
|
+
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
399
401
|
* Portions Copyright (c) 1994, Regents of the University of California
|
400
402
|
*
|
401
403
|
*
|
@@ -431,10 +433,7 @@
|
|
431
433
|
/*
|
432
434
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
433
435
|
* so we can easily have it use palloc instead of malloc. This prevents
|
434
|
-
* memory leaks if we error out during parsing.
|
435
|
-
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
436
|
-
* if possible, so there's not really much problem anyhow, at least if
|
437
|
-
* you're building with gcc.
|
436
|
+
* memory leaks if we error out during parsing.
|
438
437
|
*/
|
439
438
|
#define YYMALLOC palloc
|
440
439
|
#define YYFREE pfree
|
@@ -461,7 +460,6 @@ static PLpgSQL_expr *read_sql_construct(int until,
|
|
461
460
|
RawParseMode parsemode,
|
462
461
|
bool isexpression,
|
463
462
|
bool valid_sql,
|
464
|
-
bool trim,
|
465
463
|
int *startloc,
|
466
464
|
int *endtoken);
|
467
465
|
static PLpgSQL_expr *read_sql_expression(int until,
|
@@ -471,7 +469,8 @@ static PLpgSQL_expr *read_sql_expression2(int until, int until2,
|
|
471
469
|
int *endtoken);
|
472
470
|
static PLpgSQL_expr *read_sql_stmt(void);
|
473
471
|
static PLpgSQL_type *read_datatype(int tok);
|
474
|
-
static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location
|
472
|
+
static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location,
|
473
|
+
PLword *word);
|
475
474
|
static PLpgSQL_stmt_fetch *read_fetch_direction(void);
|
476
475
|
static void complete_direction(PLpgSQL_stmt_fetch *fetch,
|
477
476
|
bool *check_FROM);
|
@@ -524,7 +523,7 @@ static void check_raise_parameters(PLpgSQL_stmt_raise *stmt);
|
|
524
523
|
|
525
524
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
526
525
|
typedef union YYSTYPE
|
527
|
-
#line
|
526
|
+
#line 117 "pl_gram.y"
|
528
527
|
{
|
529
528
|
core_YYSTYPE core_yystype;
|
530
529
|
/* these fields must match core_YYSTYPE: */
|
@@ -576,7 +575,7 @@ typedef union YYSTYPE
|
|
576
575
|
PLpgSQL_case_when *casewhen;
|
577
576
|
}
|
578
577
|
/* Line 193 of yacc.c. */
|
579
|
-
#line
|
578
|
+
#line 530 "pl_gram.c"
|
580
579
|
YYSTYPE;
|
581
580
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
582
581
|
# define YYSTYPE_IS_DECLARED 1
|
@@ -601,7 +600,7 @@ typedef struct YYLTYPE
|
|
601
600
|
|
602
601
|
|
603
602
|
/* Line 216 of yacc.c. */
|
604
|
-
#line
|
603
|
+
#line 555 "pl_gram.c"
|
605
604
|
|
606
605
|
#ifdef short
|
607
606
|
# undef short
|
@@ -818,20 +817,20 @@ union yyalloc
|
|
818
817
|
/* YYFINAL -- State number of the termination state. */
|
819
818
|
#define YYFINAL 3
|
820
819
|
/* YYLAST -- Last index in YYTABLE. */
|
821
|
-
#define YYLAST
|
820
|
+
#define YYLAST 1335
|
822
821
|
|
823
822
|
/* YYNTOKENS -- Number of terminals. */
|
824
|
-
#define YYNTOKENS
|
823
|
+
#define YYNTOKENS 139
|
825
824
|
/* YYNNTS -- Number of nonterminals. */
|
826
825
|
#define YYNNTS 87
|
827
826
|
/* YYNRULES -- Number of rules. */
|
828
|
-
#define YYNRULES
|
827
|
+
#define YYNRULES 253
|
829
828
|
/* YYNRULES -- Number of states. */
|
830
|
-
#define YYNSTATES
|
829
|
+
#define YYNSTATES 334
|
831
830
|
|
832
831
|
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
833
832
|
#define YYUNDEFTOK 2
|
834
|
-
#define YYMAXUTOK
|
833
|
+
#define YYMAXUTOK 387
|
835
834
|
|
836
835
|
#define YYTRANSLATE(YYX) \
|
837
836
|
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
@@ -842,10 +841,10 @@ static const yytype_uint8 yytranslate[] =
|
|
842
841
|
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
843
842
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
844
843
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
845
|
-
2, 2, 2, 2, 2,
|
846
|
-
|
847
|
-
2, 2, 2, 2, 2, 2, 2, 2, 2,
|
848
|
-
2,
|
844
|
+
2, 2, 2, 2, 2, 133, 2, 2, 2, 2,
|
845
|
+
135, 136, 2, 2, 137, 2, 2, 2, 2, 2,
|
846
|
+
2, 2, 2, 2, 2, 2, 2, 2, 2, 134,
|
847
|
+
2, 138, 2, 2, 2, 2, 2, 2, 2, 2,
|
849
848
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
850
849
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
851
850
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
@@ -877,7 +876,7 @@ static const yytype_uint8 yytranslate[] =
|
|
877
876
|
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
|
878
877
|
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
|
879
878
|
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
|
880
|
-
125, 126, 127, 128, 129, 130, 131
|
879
|
+
125, 126, 127, 128, 129, 130, 131, 132
|
881
880
|
};
|
882
881
|
|
883
882
|
#if YYDEBUG
|
@@ -910,57 +909,57 @@ static const yytype_uint16 yyprhs[] =
|
|
910
909
|
544, 546, 548, 550, 552, 554, 556, 558, 560, 562,
|
911
910
|
564, 566, 568, 570, 572, 574, 576, 578, 580, 582,
|
912
911
|
584, 586, 588, 590, 592, 594, 596, 598, 600, 602,
|
913
|
-
604, 606, 608
|
912
|
+
604, 606, 608, 610
|
914
913
|
};
|
915
914
|
|
916
915
|
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
917
916
|
static const yytype_int16 yyrhs[] =
|
918
917
|
{
|
919
|
-
|
920
|
-
-1,
|
921
|
-
|
922
|
-
-1, 22, -1,
|
923
|
-
|
924
|
-
|
925
|
-
-1,
|
926
|
-
|
927
|
-
|
928
|
-
-1, -1, 89,
|
929
|
-
|
930
|
-
|
931
|
-
23, -1, 22, -1,
|
932
|
-
-1, 40, 22, -1, 40,
|
933
|
-
-1, 90, 92, -1,
|
934
|
-
53, -1,
|
935
|
-
|
936
|
-
-1,
|
937
|
-
-1,
|
938
|
-
-1,
|
939
|
-
-1,
|
940
|
-
-1, 36, -1, 56, -1, 24, -1, 72,
|
941
|
-
|
942
|
-
|
943
|
-
-1, 22, -1, 23, -1, 74,
|
944
|
-
60, 74,
|
945
|
-
-1, 58,
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
69,
|
951
|
-
11, -1,
|
952
|
-
|
953
|
-
|
954
|
-
23, -1, 64, -1, 93,
|
955
|
-
79, -1, 87,
|
956
|
-
|
957
|
-
|
918
|
+
140, 0, -1, 141, 145, 144, -1, -1, 141, 142,
|
919
|
+
-1, 133, 94, 57, -1, 133, 103, 143, -1, 133,
|
920
|
+
129, 62, -1, 133, 129, 127, -1, 133, 129, 126,
|
921
|
+
-1, 22, -1, 225, -1, -1, 134, -1, 146, 34,
|
922
|
+
167, 211, 60, 222, -1, 220, -1, 220, 147, -1,
|
923
|
+
220, 147, 148, -1, 52, -1, 148, 149, -1, 149,
|
924
|
+
-1, 150, -1, 52, -1, 25, 224, 26, -1, 159,
|
925
|
+
160, 161, 162, 163, 164, -1, 159, 28, 68, 158,
|
926
|
+
134, -1, -1, 159, 152, 49, 151, 154, 157, 153,
|
927
|
+
-1, -1, 89, 116, -1, 116, -1, -1, -1, 135,
|
928
|
+
155, 136, -1, 156, -1, 155, 137, 156, -1, 159,
|
929
|
+
161, -1, 80, -1, 68, -1, 22, -1, 225, -1,
|
930
|
+
23, -1, 22, -1, 225, -1, -1, 44, -1, -1,
|
931
|
+
-1, 40, 22, -1, 40, 225, -1, 40, 23, -1,
|
932
|
+
-1, 90, 92, -1, 134, -1, 165, -1, 166, -1,
|
933
|
+
53, -1, 138, -1, 15, -1, -1, 167, 168, -1,
|
934
|
+
145, 134, -1, 171, -1, 178, -1, 181, -1, 186,
|
935
|
+
-1, 187, -1, 188, -1, 191, -1, 193, -1, 195,
|
936
|
+
-1, 196, -1, 197, -1, 199, -1, 200, -1, 169,
|
937
|
+
-1, 170, -1, 172, -1, 201, -1, 202, -1, 203,
|
938
|
+
-1, 205, -1, 206, -1, 207, -1, 208, -1, 96,
|
939
|
+
-1, 36, -1, 56, -1, 24, -1, 72, 173, 55,
|
940
|
+
174, 134, -1, -1, 48, -1, 119, -1, 174, 137,
|
941
|
+
175, -1, 175, -1, 177, 166, 176, -1, -1, 24,
|
942
|
+
-1, 22, -1, 23, -1, 74, 218, 167, 179, 180,
|
943
|
+
60, 74, 134, -1, -1, 179, 59, 218, 167, -1,
|
944
|
+
-1, 58, 167, -1, 37, 182, 183, 185, 60, 37,
|
945
|
+
134, -1, -1, 183, 184, -1, 184, -1, 131, 218,
|
946
|
+
167, -1, -1, 58, 167, -1, 221, 83, 198, -1,
|
947
|
+
221, 132, 219, 198, -1, 221, 68, 189, 198, -1,
|
948
|
+
190, 76, -1, 24, -1, 22, -1, 23, -1, 221,
|
949
|
+
69, 190, 192, 76, 31, 219, 198, -1, -1, 117,
|
950
|
+
11, -1, 194, 222, 223, -1, 65, -1, 47, -1,
|
951
|
+
108, -1, 106, -1, 32, -1, 167, 60, 83, 222,
|
952
|
+
134, -1, 75, -1, 78, -1, 84, -1, 22, -1,
|
953
|
+
23, -1, 64, -1, 93, 210, -1, 66, 204, 210,
|
954
|
+
79, -1, 87, 204, 210, 134, -1, -1, 39, 210,
|
955
|
+
134, -1, 92, 134, -1, 43, 209, 134, -1, 111,
|
956
|
+
209, 134, -1, 30, 38, -1, 30, 89, 38, -1,
|
958
957
|
-1, 24, -1, 22, -1, 23, -1, -1, -1, 63,
|
959
|
-
|
960
|
-
|
961
|
-
-1, -1, -1, -1, -1, 25,
|
962
|
-
25,
|
963
|
-
|
958
|
+
212, 213, -1, 213, 214, -1, 214, -1, 131, 215,
|
959
|
+
123, 167, -1, 215, 95, 216, -1, 216, -1, 224,
|
960
|
+
-1, -1, -1, -1, -1, 25, 224, 26, -1, -1,
|
961
|
+
25, 224, 26, -1, -1, 224, -1, 134, -1, 131,
|
962
|
+
217, -1, 22, -1, 225, -1, 24, -1, 27, -1,
|
964
963
|
28, -1, 30, -1, 31, -1, 32, -1, 33, -1,
|
965
964
|
36, -1, 38, -1, 39, -1, 40, -1, 41, -1,
|
966
965
|
42, -1, 43, -1, 44, -1, 45, -1, 46, -1,
|
@@ -975,39 +974,40 @@ static const yytype_int16 yyrhs[] =
|
|
975
974
|
101, -1, 102, -1, 103, -1, 104, -1, 105, -1,
|
976
975
|
106, -1, 107, -1, 108, -1, 109, -1, 110, -1,
|
977
976
|
111, -1, 112, -1, 113, -1, 114, -1, 115, -1,
|
978
|
-
116, -1, 117, -1, 118, -1,
|
979
|
-
|
977
|
+
116, -1, 117, -1, 118, -1, 119, -1, 121, -1,
|
978
|
+
122, -1, 125, -1, 126, -1, 127, -1, 129, -1,
|
979
|
+
130, -1
|
980
980
|
};
|
981
981
|
|
982
982
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
983
983
|
static const yytype_uint16 yyrline[] =
|
984
984
|
{
|
985
|
-
0,
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
985
|
+
0, 360, 360, 366, 367, 370, 374, 383, 387, 391,
|
986
|
+
397, 401, 406, 407, 410, 433, 441, 448, 457, 469,
|
987
|
+
470, 473, 474, 478, 491, 529, 535, 534, 561, 564,
|
988
|
+
568, 575, 581, 584, 615, 619, 625, 633, 634, 636,
|
989
|
+
651, 666, 694, 722, 753, 754, 759, 771, 772, 777,
|
990
|
+
782, 789, 790, 794, 796, 802, 803, 811, 812, 816,
|
991
|
+
817, 827, 829, 831, 833, 835, 837, 839, 841, 843,
|
992
|
+
845, 847, 849, 851, 853, 855, 857, 859, 861, 863,
|
993
|
+
865, 867, 869, 871, 873, 877, 913, 931, 952, 991,
|
994
|
+
1055, 1058, 1062, 1068, 1072, 1078, 1091, 1138, 1156, 1161,
|
995
|
+
1168, 1186, 1189, 1203, 1206, 1212, 1219, 1233, 1237, 1243,
|
996
|
+
1255, 1258, 1273, 1291, 1310, 1344, 1602, 1628, 1642, 1649,
|
997
|
+
1688, 1691, 1697, 1750, 1754, 1760, 1786, 1931, 1955, 1973,
|
998
|
+
1977, 1981, 1985, 1996, 2009, 2073, 2151, 2181, 2194, 2199,
|
999
|
+
2213, 2220, 2234, 2249, 2250, 2251, 2255, 2277, 2282, 2290,
|
1000
|
+
2292, 2291, 2333, 2337, 2343, 2356, 2365, 2371, 2408, 2412,
|
1001
|
+
2416, 2420, 2424, 2432, 2436, 2444, 2447, 2454, 2456, 2463,
|
1002
|
+
2467, 2471, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487,
|
1003
|
+
2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497,
|
1004
|
+
2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507,
|
1005
|
+
2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517,
|
1006
|
+
2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527,
|
1007
|
+
2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537,
|
1008
|
+
2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547,
|
1009
|
+
2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557,
|
1010
|
+
2558, 2559, 2560, 2561
|
1011
1011
|
};
|
1012
1012
|
#endif
|
1013
1013
|
|
@@ -1034,10 +1034,10 @@ static const char *const yytname[] =
|
|
1034
1034
|
"K_NEXT", "K_NO", "K_NOT", "K_NOTICE", "K_NULL", "K_OPEN", "K_OPTION",
|
1035
1035
|
"K_OR", "K_PERFORM", "K_PG_CONTEXT", "K_PG_DATATYPE_NAME",
|
1036
1036
|
"K_PG_EXCEPTION_CONTEXT", "K_PG_EXCEPTION_DETAIL", "K_PG_EXCEPTION_HINT",
|
1037
|
-
"
|
1038
|
-
"
|
1039
|
-
"K_ROW_COUNT", "K_ROWTYPE", "K_SCHEMA", "K_SCHEMA_NAME",
|
1040
|
-
"K_SLICE", "K_SQLSTATE", "K_STACKED", "K_STRICT", "K_TABLE",
|
1037
|
+
"K_PG_ROUTINE_OID", "K_PRINT_STRICT_PARAMS", "K_PRIOR", "K_QUERY",
|
1038
|
+
"K_RAISE", "K_RELATIVE", "K_RETURN", "K_RETURNED_SQLSTATE", "K_REVERSE",
|
1039
|
+
"K_ROLLBACK", "K_ROW_COUNT", "K_ROWTYPE", "K_SCHEMA", "K_SCHEMA_NAME",
|
1040
|
+
"K_SCROLL", "K_SLICE", "K_SQLSTATE", "K_STACKED", "K_STRICT", "K_TABLE",
|
1041
1041
|
"K_TABLE_NAME", "K_THEN", "K_TO", "K_TYPE", "K_USE_COLUMN",
|
1042
1042
|
"K_USE_VARIABLE", "K_USING", "K_VARIABLE_CONFLICT", "K_WARNING",
|
1043
1043
|
"K_WHEN", "K_WHILE", "'#'", "';'", "'('", "')'", "','", "'='", "$accept",
|
@@ -1084,39 +1084,39 @@ static const yytype_uint16 yytoknum[] =
|
|
1084
1084
|
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
|
1085
1085
|
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
|
1086
1086
|
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
|
1087
|
-
385, 386, 35, 59, 40, 41, 44, 61
|
1087
|
+
385, 386, 387, 35, 59, 40, 41, 44, 61
|
1088
1088
|
};
|
1089
1089
|
# endif
|
1090
1090
|
|
1091
1091
|
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
1092
1092
|
static const yytype_uint8 yyr1[] =
|
1093
1093
|
{
|
1094
|
-
0,
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1094
|
+
0, 139, 140, 141, 141, 142, 142, 142, 142, 142,
|
1095
|
+
143, 143, 144, 144, 145, 146, 146, 146, 147, 148,
|
1096
|
+
148, 149, 149, 149, 150, 150, 151, 150, 152, 152,
|
1097
|
+
152, 153, 154, 154, 155, 155, 156, 157, 157, 158,
|
1098
|
+
158, 158, 159, 159, 160, 160, 161, 162, 162, 162,
|
1099
|
+
162, 163, 163, 164, 164, 165, 165, 166, 166, 167,
|
1100
|
+
167, 168, 168, 168, 168, 168, 168, 168, 168, 168,
|
1101
|
+
168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
|
1102
|
+
168, 168, 168, 168, 168, 169, 170, 170, 171, 172,
|
1103
|
+
173, 173, 173, 174, 174, 175, 176, 177, 177, 177,
|
1104
|
+
178, 179, 179, 180, 180, 181, 182, 183, 183, 184,
|
1105
|
+
185, 185, 186, 187, 188, 189, 190, 190, 190, 191,
|
1106
|
+
192, 192, 193, 194, 194, 195, 196, 197, 198, 199,
|
1107
|
+
199, 199, 199, 199, 200, 201, 202, 203, 204, 205,
|
1108
|
+
206, 207, 208, 209, 209, 209, 210, 210, 210, 211,
|
1109
|
+
212, 211, 213, 213, 214, 215, 215, 216, 217, 218,
|
1110
|
+
219, 220, 220, 221, 221, 222, 222, 223, 223, 224,
|
1111
|
+
224, 224, 225, 225, 225, 225, 225, 225, 225, 225,
|
1112
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1113
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1114
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1115
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1116
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1117
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1118
|
+
225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
|
1119
|
+
225, 225, 225, 225
|
1120
1120
|
};
|
1121
1121
|
|
1122
1122
|
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
@@ -1147,7 +1147,7 @@ static const yytype_uint8 yyr2[] =
|
|
1147
1147
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1148
1148
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1149
1149
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1150
|
-
1, 1, 1
|
1150
|
+
1, 1, 1, 1
|
1151
1151
|
};
|
1152
1152
|
|
1153
1153
|
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
@@ -1164,100 +1164,100 @@ static const yytype_uint8 yydefact[] =
|
|
1164
1164
|
220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
|
1165
1165
|
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
|
1166
1166
|
240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
|
1167
|
-
250, 251, 252, 0, 170, 0, 0, 0, 13,
|
1168
|
-
|
1169
|
-
8, 163, 42, 0, 22, 17, 20, 21, 44,
|
1170
|
-
|
1171
|
-
|
1172
|
-
138, 0, 0, 85, 126, 125, 145, 0, 60,
|
1173
|
-
76, 62, 77, 63, 64, 65, 66, 67, 68,
|
1174
|
-
|
1175
|
-
82, 83, 84, 0, 0, 0, 19, 0, 45,
|
1176
|
-
|
1177
|
-
0, 0, 0, 91, 92, 0, 59, 0, 140,
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
158, 167, 122, 14, 117, 118, 116, 59, 0,
|
1182
|
-
163, 112, 59, 39, 41, 0, 40, 32, 0,
|
1183
|
-
59, 59, 107, 0, 144, 0, 156, 157, 152,
|
1184
|
-
|
1185
|
-
115, 0, 0, 0, 113, 25, 0, 0, 48,
|
1186
|
-
49, 0, 0, 163, 163, 0, 0, 59, 89,
|
1187
|
-
|
1188
|
-
|
1189
|
-
55, 0, 155, 163, 93, 95, 163, 59, 0,
|
1190
|
-
|
1191
|
-
|
1167
|
+
250, 251, 252, 253, 0, 170, 0, 0, 0, 13,
|
1168
|
+
2, 59, 18, 16, 162, 5, 10, 6, 11, 7,
|
1169
|
+
9, 8, 163, 42, 0, 22, 17, 20, 21, 44,
|
1170
|
+
43, 132, 133, 88, 0, 127, 86, 106, 0, 145,
|
1171
|
+
124, 87, 150, 134, 123, 138, 90, 159, 129, 130,
|
1172
|
+
131, 138, 0, 0, 85, 126, 125, 145, 0, 60,
|
1173
|
+
75, 76, 62, 77, 63, 64, 65, 66, 67, 68,
|
1174
|
+
69, 165, 70, 71, 72, 73, 74, 78, 79, 80,
|
1175
|
+
81, 82, 83, 84, 0, 0, 0, 19, 0, 45,
|
1176
|
+
0, 30, 0, 46, 0, 0, 147, 148, 146, 0,
|
1177
|
+
0, 0, 0, 0, 91, 92, 0, 59, 0, 140,
|
1178
|
+
135, 0, 61, 0, 166, 165, 0, 0, 59, 160,
|
1179
|
+
23, 0, 29, 26, 47, 164, 159, 110, 108, 139,
|
1180
|
+
143, 0, 141, 0, 151, 153, 0, 0, 163, 0,
|
1181
|
+
142, 158, 167, 122, 14, 117, 118, 116, 59, 0,
|
1182
|
+
120, 163, 112, 59, 39, 41, 0, 40, 32, 0,
|
1183
|
+
51, 59, 59, 107, 0, 144, 0, 156, 157, 152,
|
1184
|
+
136, 98, 99, 97, 0, 94, 0, 103, 137, 168,
|
1185
|
+
114, 115, 0, 0, 0, 113, 25, 0, 0, 48,
|
1186
|
+
50, 49, 0, 0, 163, 163, 0, 0, 59, 89,
|
1187
|
+
0, 58, 57, 96, 59, 159, 0, 121, 0, 165,
|
1188
|
+
0, 34, 46, 38, 37, 31, 52, 56, 53, 24,
|
1189
|
+
54, 55, 0, 155, 163, 93, 95, 163, 59, 0,
|
1190
|
+
160, 0, 33, 0, 36, 27, 105, 163, 0, 59,
|
1191
|
+
128, 35, 100, 119
|
1192
1192
|
};
|
1193
1193
|
|
1194
1194
|
/* YYDEFGOTO[NTERM-NUM]. */
|
1195
1195
|
static const yytype_int16 yydefgoto[] =
|
1196
1196
|
{
|
1197
|
-
-1, 1, 2, 6,
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1197
|
+
-1, 1, 2, 6, 107, 100, 148, 8, 103, 116,
|
1198
|
+
117, 118, 248, 182, 325, 278, 300, 301, 305, 246,
|
1199
|
+
119, 183, 214, 250, 283, 309, 310, 293, 241, 149,
|
1200
|
+
150, 151, 152, 153, 196, 264, 265, 316, 266, 154,
|
1201
|
+
267, 296, 155, 185, 217, 218, 254, 156, 157, 158,
|
1202
|
+
238, 239, 159, 273, 160, 161, 162, 163, 164, 242,
|
1203
|
+
165, 166, 167, 168, 169, 193, 170, 171, 172, 173,
|
1204
|
+
191, 189, 174, 192, 224, 225, 256, 257, 269, 197,
|
1205
|
+
243, 9, 175, 203, 233, 204, 95
|
1206
1206
|
};
|
1207
1207
|
|
1208
1208
|
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
1209
1209
|
STATE-NUM. */
|
1210
|
-
#define YYPACT_NINF -
|
1210
|
+
#define YYPACT_NINF -260
|
1211
1211
|
static const yytype_int16 yypact[] =
|
1212
1212
|
{
|
1213
|
-
-
|
1214
|
-
-
|
1215
|
-
-
|
1216
|
-
-
|
1217
|
-
-
|
1218
|
-
-
|
1219
|
-
-
|
1220
|
-
-
|
1221
|
-
-
|
1222
|
-
-
|
1223
|
-
-
|
1224
|
-
-
|
1225
|
-
-
|
1226
|
-
-
|
1227
|
-
-
|
1228
|
-
-
|
1229
|
-
|
1230
|
-
-
|
1231
|
-
|
1232
|
-
-16, -
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
-
|
1240
|
-
-
|
1241
|
-
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
-
|
1245
|
-
|
1246
|
-
-
|
1213
|
+
-260, 21, -20, -260, 355, -61, -260, -99, 3, 7,
|
1214
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1215
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1216
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1217
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1218
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1219
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1220
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1221
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1222
|
+
-260, -260, -260, -260, 22, -260, 23, 679, -38, -260,
|
1223
|
+
-260, -260, -260, 246, -260, -260, -260, -260, -260, -260,
|
1224
|
+
-260, -260, 1026, -260, 355, -260, 246, -260, -260, -18,
|
1225
|
+
-260, -260, -260, -260, 355, -260, -260, -260, 30, 49,
|
1226
|
+
-260, -260, -260, -260, -260, -260, -37, -260, -260, -260,
|
1227
|
+
-260, -260, -48, 30, -260, -260, -260, 49, -33, -260,
|
1228
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1229
|
+
-260, 355, -260, -260, -260, -260, -260, -260, -260, -260,
|
1230
|
+
-260, -260, -260, -260, 36, -23, 78, -260, 37, -260,
|
1231
|
+
-10, -260, 58, -260, 85, -17, -260, -260, -260, -22,
|
1232
|
+
-19, -16, -15, 30, -260, -260, 62, -260, 30, -260,
|
1233
|
+
-260, -11, -260, -95, -260, 355, 68, 68, -260, -260,
|
1234
|
+
-260, 464, -260, -260, 79, -2, -260, -50, -260, -260,
|
1235
|
+
-260, 86, -260, 355, -15, -260, 48, 71, 894, -6,
|
1236
|
+
-260, -260, -260, -260, -260, -260, -260, -260, -260, 53,
|
1237
|
+
13, 1092, -260, -260, -260, -260, -3, -260, -1, 573,
|
1238
|
+
42, -260, -260, -260, 73, -260, -51, -260, -260, -260,
|
1239
|
+
-260, -260, -260, -260, -76, -260, -12, 15, -260, -260,
|
1240
|
+
-260, -260, 125, 59, 54, -260, -260, 785, -39, -260,
|
1241
|
+
-260, -260, 46, -13, -9, 1158, 102, 355, -260, -260,
|
1242
|
+
71, -260, -260, -260, -260, -260, 80, -260, 110, 355,
|
1243
|
+
-60, -260, -260, -260, -260, -260, -260, -260, -260, -260,
|
1244
|
+
-260, -260, 8, -260, 124, -260, -260, 1224, -260, 69,
|
1245
|
+
-260, 10, -260, 785, -260, -260, -260, 960, 11, -260,
|
1246
|
+
-260, -260, -260, -260
|
1247
1247
|
};
|
1248
1248
|
|
1249
1249
|
/* YYPGOTO[NTERM-NUM]. */
|
1250
1250
|
static const yytype_int16 yypgoto[] =
|
1251
1251
|
{
|
1252
|
-
-
|
1253
|
-
|
1254
|
-
-
|
1255
|
-
-
|
1256
|
-
-
|
1257
|
-
-
|
1258
|
-
-
|
1259
|
-
|
1260
|
-
-
|
1252
|
+
-260, -260, -260, -260, -260, -260, 148, -260, -260, -260,
|
1253
|
+
35, -260, -260, -260, -260, -260, -260, -171, -260, -260,
|
1254
|
+
-259, -260, -145, -260, -260, -260, -260, -124, -97, -260,
|
1255
|
+
-260, -260, -260, -260, -260, -260, -128, -260, -260, -260,
|
1256
|
+
-260, -260, -260, -260, -260, -53, -260, -260, -260, -260,
|
1257
|
+
-260, -42, -260, -260, -260, -260, -260, -260, -260, -221,
|
1258
|
+
-260, -260, -260, -260, -260, 25, -260, -260, -260, -260,
|
1259
|
+
26, -131, -260, -260, -260, -56, -260, -118, -260, -210,
|
1260
|
+
-150, -260, -260, -196, -260, -4, -96
|
1261
1261
|
};
|
1262
1262
|
|
1263
1263
|
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
|
@@ -1267,76 +1267,55 @@ static const yytype_int16 yypgoto[] =
|
|
1267
1267
|
#define YYTABLE_NINF -163
|
1268
1268
|
static const yytype_int16 yytable[] =
|
1269
1269
|
{
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
319,
|
1285
|
-
7,
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
0, 0,
|
1291
|
-
0,
|
1292
|
-
|
1293
|
-
|
1270
|
+
94, 108, 291, 291, 112, 4, 251, 120, 252, 234,
|
1271
|
+
178, 194, 200, 121, 122, 123, 124, 270, 302, 220,
|
1272
|
+
120, 3, 275, 125, 109, -161, 179, 126, 127, 303,
|
1273
|
+
128, -28, -162, 96, 129, 99, 231, 101, 130, 232,
|
1274
|
+
307, 304, 97, -161, 287, 206, 207, 131, 104, -109,
|
1275
|
+
-162, -109, 186, 187, 188, 133, 134, 135, 289, 102,
|
1276
|
+
208, 290, 226, 136, 302, 137, 138, 229, 98, 139,
|
1277
|
+
221, 180, 288, 294, 295, 140, 322, 323, 141, 190,
|
1278
|
+
105, 216, 195, 142, 143, 318, 199, 144, 110, 111,
|
1279
|
+
235, 236, 237, 261, 262, 263, 205, 145, 181, 146,
|
1280
|
+
228, 202, 147, 321, 210, 211, 212, 213, 333, 209,
|
1281
|
+
176, 215, 219, 5, 216, 247, 223, 227, 222, 249,
|
1282
|
+
184, 308, -109, 230, 255, 292, 292, 260, 268, 271,
|
1283
|
+
272, 276, 282, 286, 277, 298, 297, 299, 306, 312,
|
1284
|
+
319, 320, 326, 328, 330, 332, 121, 122, 123, 124,
|
1285
|
+
7, 177, 331, 281, 284, 285, 125, 324, -161, 311,
|
1286
|
+
126, 127, 315, 128, 253, 240, 198, 129, 259, 313,
|
1287
|
+
329, 130, 0, 201, 0, 0, -161, 0, 0, 0,
|
1288
|
+
131, 120, 0, 0, -154, 0, 0, 0, 133, 134,
|
1289
|
+
135, 314, 0, 0, 0, 0, 136, 317, 137, 138,
|
1290
|
+
0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
|
1291
|
+
0, 141, 0, 0, 0, 0, 142, 143, 0, 258,
|
1292
|
+
144, 327, 0, 0, 0, 0, 0, 120, 0, 0,
|
1293
|
+
145, 0, 146, 0, 0, 147, 0, 0, 0, 0,
|
1294
1294
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
1295
|
-
0, 0, 0, 0, -154, 0, 0, 0, 0,
|
1296
|
-
0, 0, 0, 0, 0, 0, 0,
|
1297
|
-
|
1298
|
-
0, 18,
|
1299
|
-
26, 27, 28, 29, 30, 31, 32,
|
1295
|
+
0, 0, 0, 0, 0, -154, 0, 0, 0, 0,
|
1296
|
+
0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
|
1297
|
+
0, 114, 0, 12, 13, 0, 14, 15, 16, 17,
|
1298
|
+
0, 0, 18, 258, 19, 20, 21, 22, 23, 24,
|
1299
|
+
25, 26, 27, 28, 29, 30, 31, 32, 115, 33,
|
1300
|
+
34, 35, 36, 37, 0, 38, 0, 39, 40, 41,
|
1301
|
+
0, 42, 43, 44, 0, 0, 45, 0, 46, 47,
|
1302
|
+
0, 48, 0, 49, 50, 0, 51, 52, 53, 0,
|
1303
|
+
54, 55, 56, 57, 58, 59, 0, 60, 0, 61,
|
1304
|
+
62, 0, 63, 64, 65, 66, 67, 68, 69, 70,
|
1305
|
+
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
|
1306
|
+
81, 82, 83, 84, 85, 86, 0, 87, 88, 0,
|
1307
|
+
0, 89, 90, 91, 0, 92, 93, 10, 0, 11,
|
1308
|
+
0, 0, 12, 13, 0, 14, 15, 16, 17, 0,
|
1309
|
+
0, 18, 0, 19, 20, 21, 22, 23, 24, 25,
|
1310
|
+
26, 27, 28, 29, 30, 31, 32, 0, 33, 34,
|
1300
1311
|
35, 36, 37, 0, 38, 0, 39, 40, 41, 0,
|
1301
1312
|
42, 43, 44, 0, 0, 45, 0, 46, 47, 0,
|
1302
1313
|
48, 0, 49, 50, 0, 51, 52, 53, 0, 54,
|
1303
1314
|
55, 56, 57, 58, 59, 0, 60, 0, 61, 62,
|
1304
1315
|
0, 63, 64, 65, 66, 67, 68, 69, 70, 71,
|
1305
1316
|
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
|
1306
|
-
82, 83, 84, 85, 0,
|
1307
|
-
89, 90, 0,
|
1308
|
-
12, 13, 0, 14, 15, 16, 17, 0, 0, 18,
|
1309
|
-
0, 19, 20, 21, 22, 23, 24, 25, 26, 27,
|
1310
|
-
28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
|
1311
|
-
37, 0, 38, 0, 39, 40, 41, 0, 42, 43,
|
1312
|
-
44, 0, 0, 45, 0, 46, 47, 0, 48, 0,
|
1313
|
-
49, 50, 0, 51, 52, 53, 0, 54, 55, 56,
|
1314
|
-
57, 58, 59, 0, 60, 0, 61, 62, 0, 63,
|
1315
|
-
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
|
1316
|
-
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
|
1317
|
-
84, 85, 0, 86, 87, 0, 0, 88, 89, 90,
|
1318
|
-
0, 91, 92, 243, 244, 0, 0, 0, 12, 13,
|
1319
|
-
0, 14, 15, 16, 17, 0, 0, 18, 0, 19,
|
1320
|
-
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
|
1321
|
-
30, 31, 32, 0, 33, 34, 35, 36, 37, 0,
|
1322
|
-
38, 0, 39, 40, 41, 0, 42, 43, 44, 0,
|
1323
|
-
0, 45, 0, 46, 47, 0, 48, 0, 49, 50,
|
1324
|
-
0, 51, 52, 53, 0, 54, 55, 56, 57, 58,
|
1325
|
-
59, 0, 60, 0, 61, 62, 0, 63, 64, 65,
|
1326
|
-
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
|
1327
|
-
76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
|
1328
|
-
0, 86, 87, 0, 0, 88, 89, 90, 0, 91,
|
1329
|
-
92, 278, 279, 0, 0, 0, 12, 13, 0, 14,
|
1330
|
-
15, 16, 17, 0, 0, 18, 0, 19, 20, 21,
|
1331
|
-
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
1332
|
-
32, 0, 33, 34, 35, 36, 37, 0, 38, 0,
|
1333
|
-
39, 40, 41, 0, 42, 43, 44, 0, 0, 45,
|
1334
|
-
0, 46, 47, 0, 48, 0, 49, 50, 0, 51,
|
1335
|
-
52, 53, 0, 54, 55, 56, 57, 58, 59, 0,
|
1336
|
-
60, 0, 61, 62, 0, 63, 64, 65, 66, 67,
|
1337
|
-
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
|
1338
|
-
78, 79, 80, 81, 82, 83, 84, 85, 0, 86,
|
1339
|
-
87, 0, 0, 88, 89, 90, 105, 91, 92, 0,
|
1317
|
+
82, 83, 84, 85, 86, 0, 87, 88, 0, 0,
|
1318
|
+
89, 90, 91, 0, 92, 93, 244, 245, 0, 0,
|
1340
1319
|
0, 12, 13, 0, 14, 15, 16, 17, 0, 0,
|
1341
1320
|
18, 0, 19, 20, 21, 22, 23, 24, 25, 26,
|
1342
1321
|
27, 28, 29, 30, 31, 32, 0, 33, 34, 35,
|
@@ -1346,8 +1325,19 @@ static const yytype_int16 yytable[] =
|
|
1346
1325
|
56, 57, 58, 59, 0, 60, 0, 61, 62, 0,
|
1347
1326
|
63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
|
1348
1327
|
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
|
1349
|
-
83, 84, 85, 0,
|
1350
|
-
90,
|
1328
|
+
83, 84, 85, 86, 0, 87, 88, 0, 0, 89,
|
1329
|
+
90, 91, 0, 92, 93, 279, 280, 0, 0, 0,
|
1330
|
+
12, 13, 0, 14, 15, 16, 17, 0, 0, 18,
|
1331
|
+
0, 19, 20, 21, 22, 23, 24, 25, 26, 27,
|
1332
|
+
28, 29, 30, 31, 32, 0, 33, 34, 35, 36,
|
1333
|
+
37, 0, 38, 0, 39, 40, 41, 0, 42, 43,
|
1334
|
+
44, 0, 0, 45, 0, 46, 47, 0, 48, 0,
|
1335
|
+
49, 50, 0, 51, 52, 53, 0, 54, 55, 56,
|
1336
|
+
57, 58, 59, 0, 60, 0, 61, 62, 0, 63,
|
1337
|
+
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
|
1338
|
+
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
|
1339
|
+
84, 85, 86, 0, 87, 88, 0, 0, 89, 90,
|
1340
|
+
91, 106, 92, 93, 0, 0, 12, 13, 0, 14,
|
1351
1341
|
15, 16, 17, 0, 0, 18, 0, 19, 20, 21,
|
1352
1342
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
1353
1343
|
32, 0, 33, 34, 35, 36, 37, 0, 38, 0,
|
@@ -1356,130 +1346,114 @@ static const yytype_int16 yytable[] =
|
|
1356
1346
|
52, 53, 0, 54, 55, 56, 57, 58, 59, 0,
|
1357
1347
|
60, 0, 61, 62, 0, 63, 64, 65, 66, 67,
|
1358
1348
|
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
|
1359
|
-
78, 79, 80, 81, 82, 83, 84, 85, 0,
|
1360
|
-
87, 0, 0,
|
1361
|
-
|
1362
|
-
0,
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
0, 0,
|
1375
|
-
|
1376
|
-
|
1377
|
-
0,
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
0, 0, 0,
|
1382
|
-
|
1383
|
-
0, 0, 0,
|
1384
|
-
|
1385
|
-
124,
|
1386
|
-
|
1387
|
-
|
1388
|
-
0, 0,
|
1389
|
-
|
1390
|
-
|
1391
|
-
|
1392
|
-
|
1393
|
-
0,
|
1394
|
-
0, 0,
|
1395
|
-
0,
|
1396
|
-
|
1397
|
-
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1401
|
-
|
1402
|
-
0, 0,
|
1403
|
-
|
1404
|
-
0, 0, 0, 0,
|
1405
|
-
|
1406
|
-
|
1407
|
-
0, 0, 0, 0, 0, 0, 0,
|
1408
|
-
|
1349
|
+
78, 79, 80, 81, 82, 83, 84, 85, 86, 0,
|
1350
|
+
87, 88, 0, 0, 89, 90, 91, 113, 92, 93,
|
1351
|
+
0, 0, 12, 13, 0, 14, 15, 16, 17, 0,
|
1352
|
+
0, 18, 0, 19, 20, 21, 22, 23, 24, 25,
|
1353
|
+
26, 27, 28, 29, 30, 31, 32, 0, 33, 34,
|
1354
|
+
35, 36, 37, 0, 38, 0, 39, 40, 41, 0,
|
1355
|
+
42, 43, 44, 0, 0, 45, 0, 46, 47, 0,
|
1356
|
+
48, 0, 49, 50, 0, 51, 52, 53, 0, 54,
|
1357
|
+
55, 56, 57, 58, 59, 0, 60, 0, 61, 62,
|
1358
|
+
0, 63, 64, 65, 66, 67, 68, 69, 70, 71,
|
1359
|
+
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
|
1360
|
+
82, 83, 84, 85, 86, 0, 87, 88, 0, 0,
|
1361
|
+
89, 90, 91, 0, 92, 93, 121, 122, 123, 124,
|
1362
|
+
0, 0, 0, 0, 0, 0, 125, 0, -161, 0,
|
1363
|
+
126, 127, 0, 128, 0, 0, 0, 129, 0, 0,
|
1364
|
+
0, 130, 0, 0, 0, 0, -161, 0, 0, 0,
|
1365
|
+
131, 0, -101, -101, -101, 0, 0, 0, 133, 134,
|
1366
|
+
135, 0, 0, 0, 0, 0, 136, 0, 137, 138,
|
1367
|
+
0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
|
1368
|
+
0, 141, 121, 122, 123, 124, 142, 143, 0, 0,
|
1369
|
+
144, 0, 125, 0, -161, 0, 126, 127, 0, 128,
|
1370
|
+
145, 0, 146, 129, 0, 147, 0, 130, 0, 0,
|
1371
|
+
0, 0, -161, 0, 0, 0, 131, 0, -102, -102,
|
1372
|
+
-102, 0, 0, 0, 133, 134, 135, 0, 0, 0,
|
1373
|
+
0, 0, 136, 0, 137, 138, 0, 0, 139, 0,
|
1374
|
+
0, 0, 0, 0, 140, 0, 0, 141, 121, 122,
|
1375
|
+
123, 124, 142, 143, 0, 0, 144, 0, 125, 0,
|
1376
|
+
-161, 0, 126, 127, 0, 128, 145, 0, 146, 129,
|
1377
|
+
0, 147, 0, 130, 0, 0, 0, 0, -161, 0,
|
1378
|
+
0, 0, 131, 0, 0, 0, -149, 0, 0, 132,
|
1379
|
+
133, 134, 135, 0, 0, 0, 0, 0, 136, 0,
|
1380
|
+
137, 138, 0, 0, 139, 0, 0, 0, 0, 0,
|
1381
|
+
140, 0, 0, 141, 121, 122, 123, 124, 142, 143,
|
1382
|
+
0, 0, 144, 0, 125, 0, -161, 0, 126, 127,
|
1383
|
+
0, 128, 145, 0, 146, 129, 0, 147, 0, 130,
|
1384
|
+
0, 0, 0, 0, -161, 0, 0, 0, 131, 0,
|
1385
|
+
0, 0, 274, 0, 0, 0, 133, 134, 135, 0,
|
1386
|
+
0, 0, 0, 0, 136, 0, 137, 138, 0, 0,
|
1387
|
+
139, 0, 0, 0, 0, 0, 140, 0, 0, 141,
|
1388
|
+
121, 122, 123, 124, 142, 143, 0, 0, 144, 0,
|
1389
|
+
125, 0, -161, 0, 126, 127, 0, 128, 145, 0,
|
1390
|
+
146, 129, 0, 147, 0, 130, 0, 0, 0, 0,
|
1391
|
+
-161, 0, 0, 0, 131, 0, 0, 0, -111, 0,
|
1392
|
+
0, 0, 133, 134, 135, 0, 0, 0, 0, 0,
|
1393
|
+
136, 0, 137, 138, 0, 0, 139, 0, 0, 0,
|
1394
|
+
0, 0, 140, 0, 0, 141, 121, 122, 123, 124,
|
1395
|
+
142, 143, 0, 0, 144, 0, 125, 0, -161, 0,
|
1396
|
+
126, 127, 0, 128, 145, 0, 146, 129, 0, 147,
|
1397
|
+
0, 130, 0, 0, 0, 0, -161, 0, 0, 0,
|
1398
|
+
131, 0, 0, 0, -104, 0, 0, 0, 133, 134,
|
1399
|
+
135, 0, 0, 0, 0, 0, 136, 0, 137, 138,
|
1400
|
+
0, 0, 139, 0, 0, 0, 0, 0, 140, 0,
|
1401
|
+
0, 141, 0, 0, 0, 0, 142, 143, 0, 0,
|
1402
|
+
144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
1403
|
+
145, 0, 146, 0, 0, 147
|
1409
1404
|
};
|
1410
1405
|
|
1411
1406
|
static const yytype_int16 yycheck[] =
|
1412
1407
|
{
|
1413
|
-
4,
|
1414
|
-
48,
|
1415
|
-
|
1416
|
-
39,
|
1417
|
-
53, 80,
|
1418
|
-
52, 60,
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
2,
|
1429
|
-
36, 37,
|
1430
|
-
|
1431
|
-
56,
|
1432
|
-
66,
|
1408
|
+
4, 97, 15, 15, 101, 25, 216, 103, 58, 205,
|
1409
|
+
28, 48, 143, 22, 23, 24, 25, 238, 277, 38,
|
1410
|
+
116, 0, 243, 32, 62, 34, 44, 36, 37, 68,
|
1411
|
+
39, 49, 34, 94, 43, 134, 131, 34, 47, 134,
|
1412
|
+
53, 80, 103, 52, 95, 68, 69, 56, 26, 58,
|
1413
|
+
52, 60, 22, 23, 24, 64, 65, 66, 134, 52,
|
1414
|
+
83, 137, 193, 72, 323, 74, 75, 198, 129, 78,
|
1415
|
+
89, 89, 123, 58, 59, 84, 136, 137, 87, 30,
|
1416
|
+
57, 131, 119, 92, 93, 295, 134, 96, 126, 127,
|
1417
|
+
22, 23, 24, 22, 23, 24, 60, 106, 116, 108,
|
1418
|
+
197, 134, 111, 299, 26, 68, 116, 49, 329, 132,
|
1419
|
+
114, 26, 134, 133, 131, 211, 131, 55, 134, 40,
|
1420
|
+
124, 134, 131, 134, 38, 138, 138, 79, 134, 76,
|
1421
|
+
117, 134, 90, 60, 135, 76, 11, 83, 92, 37,
|
1422
|
+
60, 31, 134, 74, 134, 134, 22, 23, 24, 25,
|
1423
|
+
2, 116, 323, 249, 251, 252, 32, 302, 34, 283,
|
1424
|
+
36, 37, 290, 39, 217, 207, 141, 43, 224, 287,
|
1425
|
+
320, 47, -1, 147, -1, -1, 52, -1, -1, -1,
|
1426
|
+
56, 277, -1, -1, 60, -1, -1, -1, 64, 65,
|
1427
|
+
66, 288, -1, -1, -1, -1, 72, 294, 74, 75,
|
1433
1428
|
-1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
|
1434
|
-
-1, 87, -1, -1, -1, -1, 92, 93,
|
1435
|
-
96,
|
1436
|
-
|
1429
|
+
-1, 87, -1, -1, -1, -1, 92, 93, -1, 223,
|
1430
|
+
96, 318, -1, -1, -1, -1, -1, 323, -1, -1,
|
1431
|
+
106, -1, 108, -1, -1, 111, -1, -1, -1, -1,
|
1437
1432
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
1438
|
-
-1, -1, -1, -1,
|
1439
|
-
-1, -1, -1, -1, -1, -1, -1,
|
1440
|
-
25, -1, 27, 28, -1, 30, 31, 32, 33,
|
1441
|
-
-1, 36,
|
1442
|
-
45, 46, 47, 48, 49, 50, 51, 52, 53,
|
1433
|
+
-1, -1, -1, -1, -1, 131, -1, -1, -1, -1,
|
1434
|
+
-1, -1, -1, -1, -1, -1, -1, -1, 22, -1,
|
1435
|
+
-1, 25, -1, 27, 28, -1, 30, 31, 32, 33,
|
1436
|
+
-1, -1, 36, 287, 38, 39, 40, 41, 42, 43,
|
1437
|
+
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
|
1438
|
+
54, 55, 56, 57, -1, 59, -1, 61, 62, 63,
|
1439
|
+
-1, 65, 66, 67, -1, -1, 70, -1, 72, 73,
|
1440
|
+
-1, 75, -1, 77, 78, -1, 80, 81, 82, -1,
|
1441
|
+
84, 85, 86, 87, 88, 89, -1, 91, -1, 93,
|
1442
|
+
94, -1, 96, 97, 98, 99, 100, 101, 102, 103,
|
1443
|
+
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
|
1444
|
+
114, 115, 116, 117, 118, 119, -1, 121, 122, -1,
|
1445
|
+
-1, 125, 126, 127, -1, 129, 130, 22, -1, 24,
|
1446
|
+
-1, -1, 27, 28, -1, 30, 31, 32, 33, -1,
|
1447
|
+
-1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
|
1448
|
+
45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
|
1443
1449
|
55, 56, 57, -1, 59, -1, 61, 62, 63, -1,
|
1444
1450
|
65, 66, 67, -1, -1, 70, -1, 72, 73, -1,
|
1445
1451
|
75, -1, 77, 78, -1, 80, 81, 82, -1, 84,
|
1446
1452
|
85, 86, 87, 88, 89, -1, 91, -1, 93, 94,
|
1447
1453
|
-1, 96, 97, 98, 99, 100, 101, 102, 103, 104,
|
1448
1454
|
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
|
1449
|
-
115, 116, 117, 118, -1,
|
1450
|
-
125, 126, -1,
|
1451
|
-
27, 28, -1, 30, 31, 32, 33, -1, -1, 36,
|
1452
|
-
-1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
|
1453
|
-
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
|
1454
|
-
57, -1, 59, -1, 61, 62, 63, -1, 65, 66,
|
1455
|
-
67, -1, -1, 70, -1, 72, 73, -1, 75, -1,
|
1456
|
-
77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
|
1457
|
-
87, 88, 89, -1, 91, -1, 93, 94, -1, 96,
|
1458
|
-
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
|
1459
|
-
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
|
1460
|
-
117, 118, -1, 120, 121, -1, -1, 124, 125, 126,
|
1461
|
-
-1, 128, 129, 22, 23, -1, -1, -1, 27, 28,
|
1462
|
-
-1, 30, 31, 32, 33, -1, -1, 36, -1, 38,
|
1463
|
-
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
|
1464
|
-
49, 50, 51, -1, 53, 54, 55, 56, 57, -1,
|
1465
|
-
59, -1, 61, 62, 63, -1, 65, 66, 67, -1,
|
1466
|
-
-1, 70, -1, 72, 73, -1, 75, -1, 77, 78,
|
1467
|
-
-1, 80, 81, 82, -1, 84, 85, 86, 87, 88,
|
1468
|
-
89, -1, 91, -1, 93, 94, -1, 96, 97, 98,
|
1469
|
-
99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
|
1470
|
-
109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
|
1471
|
-
-1, 120, 121, -1, -1, 124, 125, 126, -1, 128,
|
1472
|
-
129, 22, 23, -1, -1, -1, 27, 28, -1, 30,
|
1473
|
-
31, 32, 33, -1, -1, 36, -1, 38, 39, 40,
|
1474
|
-
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
|
1475
|
-
51, -1, 53, 54, 55, 56, 57, -1, 59, -1,
|
1476
|
-
61, 62, 63, -1, 65, 66, 67, -1, -1, 70,
|
1477
|
-
-1, 72, 73, -1, 75, -1, 77, 78, -1, 80,
|
1478
|
-
81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
|
1479
|
-
91, -1, 93, 94, -1, 96, 97, 98, 99, 100,
|
1480
|
-
101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
|
1481
|
-
111, 112, 113, 114, 115, 116, 117, 118, -1, 120,
|
1482
|
-
121, -1, -1, 124, 125, 126, 22, 128, 129, -1,
|
1455
|
+
115, 116, 117, 118, 119, -1, 121, 122, -1, -1,
|
1456
|
+
125, 126, 127, -1, 129, 130, 22, 23, -1, -1,
|
1483
1457
|
-1, 27, 28, -1, 30, 31, 32, 33, -1, -1,
|
1484
1458
|
36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
|
1485
1459
|
46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
|
@@ -1489,8 +1463,19 @@ static const yytype_int16 yycheck[] =
|
|
1489
1463
|
86, 87, 88, 89, -1, 91, -1, 93, 94, -1,
|
1490
1464
|
96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
|
1491
1465
|
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
|
1492
|
-
116, 117, 118, -1,
|
1493
|
-
126,
|
1466
|
+
116, 117, 118, 119, -1, 121, 122, -1, -1, 125,
|
1467
|
+
126, 127, -1, 129, 130, 22, 23, -1, -1, -1,
|
1468
|
+
27, 28, -1, 30, 31, 32, 33, -1, -1, 36,
|
1469
|
+
-1, 38, 39, 40, 41, 42, 43, 44, 45, 46,
|
1470
|
+
47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
|
1471
|
+
57, -1, 59, -1, 61, 62, 63, -1, 65, 66,
|
1472
|
+
67, -1, -1, 70, -1, 72, 73, -1, 75, -1,
|
1473
|
+
77, 78, -1, 80, 81, 82, -1, 84, 85, 86,
|
1474
|
+
87, 88, 89, -1, 91, -1, 93, 94, -1, 96,
|
1475
|
+
97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
|
1476
|
+
107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
|
1477
|
+
117, 118, 119, -1, 121, 122, -1, -1, 125, 126,
|
1478
|
+
127, 22, 129, 130, -1, -1, 27, 28, -1, 30,
|
1494
1479
|
31, 32, 33, -1, -1, 36, -1, 38, 39, 40,
|
1495
1480
|
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
|
1496
1481
|
51, -1, 53, 54, 55, 56, 57, -1, 59, -1,
|
@@ -1499,63 +1484,68 @@ static const yytype_int16 yycheck[] =
|
|
1499
1484
|
81, 82, -1, 84, 85, 86, 87, 88, 89, -1,
|
1500
1485
|
91, -1, 93, 94, -1, 96, 97, 98, 99, 100,
|
1501
1486
|
101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
|
1502
|
-
111, 112, 113, 114, 115, 116, 117, 118, -1,
|
1503
|
-
121, -1, -1,
|
1504
|
-
|
1505
|
-
-1,
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
-1,
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1487
|
+
111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
|
1488
|
+
121, 122, -1, -1, 125, 126, 127, 22, 129, 130,
|
1489
|
+
-1, -1, 27, 28, -1, 30, 31, 32, 33, -1,
|
1490
|
+
-1, 36, -1, 38, 39, 40, 41, 42, 43, 44,
|
1491
|
+
45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
|
1492
|
+
55, 56, 57, -1, 59, -1, 61, 62, 63, -1,
|
1493
|
+
65, 66, 67, -1, -1, 70, -1, 72, 73, -1,
|
1494
|
+
75, -1, 77, 78, -1, 80, 81, 82, -1, 84,
|
1495
|
+
85, 86, 87, 88, 89, -1, 91, -1, 93, 94,
|
1496
|
+
-1, 96, 97, 98, 99, 100, 101, 102, 103, 104,
|
1497
|
+
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
|
1498
|
+
115, 116, 117, 118, 119, -1, 121, 122, -1, -1,
|
1499
|
+
125, 126, 127, -1, 129, 130, 22, 23, 24, 25,
|
1500
|
+
-1, -1, -1, -1, -1, -1, 32, -1, 34, -1,
|
1513
1501
|
36, 37, -1, 39, -1, -1, -1, 43, -1, -1,
|
1514
1502
|
-1, 47, -1, -1, -1, -1, 52, -1, -1, -1,
|
1515
1503
|
56, -1, 58, 59, 60, -1, -1, -1, 64, 65,
|
1516
1504
|
66, -1, -1, -1, -1, -1, 72, -1, 74, 75,
|
1517
1505
|
-1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
|
1518
|
-
-1, 87,
|
1519
|
-
96, -1, -1,
|
1520
|
-
|
1521
|
-
|
1522
|
-
-1, -1, -1,
|
1523
|
-
-1,
|
1524
|
-
-1, -1, -1,
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1531
|
-
-1, -1,
|
1532
|
-
|
1533
|
-
-1,
|
1534
|
-
92, 93, -1, -1, 96, -1, -1, 22, 23, 24,
|
1535
|
-
25, -1, -1, 105, -1, 107, -1, 32, 110, 34,
|
1536
|
-
-1, 36, 37, -1, 39, -1, -1, -1, 43, -1,
|
1537
|
-
-1, -1, 47, -1, -1, -1, -1, 52, -1, -1,
|
1538
|
-
-1, 56, -1, -1, -1, 60, -1, -1, -1, 64,
|
1539
|
-
65, 66, -1, -1, -1, -1, -1, 72, -1, 74,
|
1540
|
-
75, -1, -1, 78, -1, -1, -1, -1, -1, 84,
|
1541
|
-
-1, -1, 87, -1, -1, -1, -1, 92, 93, -1,
|
1542
|
-
-1, 96, -1, -1, 22, 23, 24, 25, -1, -1,
|
1543
|
-
105, -1, 107, -1, 32, 110, 34, -1, 36, 37,
|
1544
|
-
-1, 39, -1, -1, -1, 43, -1, -1, -1, 47,
|
1506
|
+
-1, 87, 22, 23, 24, 25, 92, 93, -1, -1,
|
1507
|
+
96, -1, 32, -1, 34, -1, 36, 37, -1, 39,
|
1508
|
+
106, -1, 108, 43, -1, 111, -1, 47, -1, -1,
|
1509
|
+
-1, -1, 52, -1, -1, -1, 56, -1, 58, 59,
|
1510
|
+
60, -1, -1, -1, 64, 65, 66, -1, -1, -1,
|
1511
|
+
-1, -1, 72, -1, 74, 75, -1, -1, 78, -1,
|
1512
|
+
-1, -1, -1, -1, 84, -1, -1, 87, 22, 23,
|
1513
|
+
24, 25, 92, 93, -1, -1, 96, -1, 32, -1,
|
1514
|
+
34, -1, 36, 37, -1, 39, 106, -1, 108, 43,
|
1515
|
+
-1, 111, -1, 47, -1, -1, -1, -1, 52, -1,
|
1516
|
+
-1, -1, 56, -1, -1, -1, 60, -1, -1, 63,
|
1517
|
+
64, 65, 66, -1, -1, -1, -1, -1, 72, -1,
|
1518
|
+
74, 75, -1, -1, 78, -1, -1, -1, -1, -1,
|
1519
|
+
84, -1, -1, 87, 22, 23, 24, 25, 92, 93,
|
1520
|
+
-1, -1, 96, -1, 32, -1, 34, -1, 36, 37,
|
1521
|
+
-1, 39, 106, -1, 108, 43, -1, 111, -1, 47,
|
1545
1522
|
-1, -1, -1, -1, 52, -1, -1, -1, 56, -1,
|
1546
1523
|
-1, -1, 60, -1, -1, -1, 64, 65, 66, -1,
|
1547
1524
|
-1, -1, -1, -1, 72, -1, 74, 75, -1, -1,
|
1548
1525
|
78, -1, -1, -1, -1, -1, 84, -1, -1, 87,
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1526
|
+
22, 23, 24, 25, 92, 93, -1, -1, 96, -1,
|
1527
|
+
32, -1, 34, -1, 36, 37, -1, 39, 106, -1,
|
1528
|
+
108, 43, -1, 111, -1, 47, -1, -1, -1, -1,
|
1529
|
+
52, -1, -1, -1, 56, -1, -1, -1, 60, -1,
|
1530
|
+
-1, -1, 64, 65, 66, -1, -1, -1, -1, -1,
|
1531
|
+
72, -1, 74, 75, -1, -1, 78, -1, -1, -1,
|
1532
|
+
-1, -1, 84, -1, -1, 87, 22, 23, 24, 25,
|
1533
|
+
92, 93, -1, -1, 96, -1, 32, -1, 34, -1,
|
1534
|
+
36, 37, -1, 39, 106, -1, 108, 43, -1, 111,
|
1535
|
+
-1, 47, -1, -1, -1, -1, 52, -1, -1, -1,
|
1536
|
+
56, -1, -1, -1, 60, -1, -1, -1, 64, 65,
|
1537
|
+
66, -1, -1, -1, -1, -1, 72, -1, 74, 75,
|
1538
|
+
-1, -1, 78, -1, -1, -1, -1, -1, 84, -1,
|
1539
|
+
-1, 87, -1, -1, -1, -1, 92, 93, -1, -1,
|
1540
|
+
96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
1541
|
+
106, -1, 108, -1, -1, 111
|
1552
1542
|
};
|
1553
1543
|
|
1554
1544
|
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
1555
1545
|
symbol of state STATE-NUM. */
|
1556
1546
|
static const yytype_uint8 yystos[] =
|
1557
1547
|
{
|
1558
|
-
0,
|
1548
|
+
0, 140, 141, 0, 25, 133, 142, 145, 146, 220,
|
1559
1549
|
22, 24, 27, 28, 30, 31, 32, 33, 36, 38,
|
1560
1550
|
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
|
1561
1551
|
49, 50, 51, 53, 54, 55, 56, 57, 59, 61,
|
@@ -1563,32 +1553,32 @@ static const yytype_uint8 yystos[] =
|
|
1563
1553
|
78, 80, 81, 82, 84, 85, 86, 87, 88, 89,
|
1564
1554
|
91, 93, 94, 96, 97, 98, 99, 100, 101, 102,
|
1565
1555
|
103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
|
1566
|
-
113, 114, 115, 116, 117, 118,
|
1567
|
-
126,
|
1568
|
-
|
1569
|
-
126,
|
1570
|
-
|
1571
|
-
56, 63, 64, 65, 66, 72, 74, 75, 78,
|
1572
|
-
87, 92, 93, 96,
|
1573
|
-
169, 170, 171,
|
1574
|
-
193, 194, 195, 196,
|
1575
|
-
205, 206, 207,
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
68,
|
1580
|
-
89,
|
1581
|
-
|
1582
|
-
|
1583
|
-
|
1584
|
-
22, 23, 24,
|
1585
|
-
|
1586
|
-
|
1587
|
-
|
1588
|
-
155,
|
1589
|
-
165, 37,
|
1590
|
-
|
1591
|
-
|
1556
|
+
113, 114, 115, 116, 117, 118, 119, 121, 122, 125,
|
1557
|
+
126, 127, 129, 130, 224, 225, 94, 103, 129, 134,
|
1558
|
+
144, 34, 52, 147, 26, 57, 22, 143, 225, 62,
|
1559
|
+
126, 127, 167, 22, 25, 52, 148, 149, 150, 159,
|
1560
|
+
225, 22, 23, 24, 25, 32, 36, 37, 39, 43,
|
1561
|
+
47, 56, 63, 64, 65, 66, 72, 74, 75, 78,
|
1562
|
+
84, 87, 92, 93, 96, 106, 108, 111, 145, 168,
|
1563
|
+
169, 170, 171, 172, 178, 181, 186, 187, 188, 191,
|
1564
|
+
193, 194, 195, 196, 197, 199, 200, 201, 202, 203,
|
1565
|
+
205, 206, 207, 208, 211, 221, 224, 149, 28, 44,
|
1566
|
+
89, 116, 152, 160, 224, 182, 22, 23, 24, 210,
|
1567
|
+
30, 209, 212, 204, 48, 119, 173, 218, 204, 134,
|
1568
|
+
210, 209, 134, 222, 224, 60, 68, 69, 83, 132,
|
1569
|
+
26, 68, 116, 49, 161, 26, 131, 183, 184, 134,
|
1570
|
+
38, 89, 134, 131, 213, 214, 210, 55, 167, 210,
|
1571
|
+
134, 131, 134, 223, 222, 22, 23, 24, 189, 190,
|
1572
|
+
190, 167, 198, 219, 22, 23, 158, 225, 151, 40,
|
1573
|
+
162, 218, 58, 184, 185, 38, 215, 216, 224, 214,
|
1574
|
+
79, 22, 23, 24, 174, 175, 177, 179, 134, 217,
|
1575
|
+
198, 76, 117, 192, 60, 198, 134, 135, 154, 22,
|
1576
|
+
23, 225, 90, 163, 167, 167, 60, 95, 123, 134,
|
1577
|
+
137, 15, 138, 166, 58, 59, 180, 11, 76, 83,
|
1578
|
+
155, 156, 159, 68, 80, 157, 92, 53, 134, 164,
|
1579
|
+
165, 166, 37, 216, 167, 175, 176, 167, 218, 60,
|
1580
|
+
31, 222, 136, 137, 161, 153, 134, 167, 74, 219,
|
1581
|
+
134, 156, 134, 198
|
1592
1582
|
};
|
1593
1583
|
|
1594
1584
|
#define yyerrok (yyerrstatus = 0)
|
@@ -2429,21 +2419,21 @@ yyreduce:
|
|
2429
2419
|
switch (yyn)
|
2430
2420
|
{
|
2431
2421
|
case 2:
|
2432
|
-
#line
|
2422
|
+
#line 361 "pl_gram.y"
|
2433
2423
|
{
|
2434
2424
|
plpgsql_parse_result = (PLpgSQL_stmt_block *) (yyvsp[(2) - (3)].stmt);
|
2435
2425
|
;}
|
2436
2426
|
break;
|
2437
2427
|
|
2438
2428
|
case 5:
|
2439
|
-
#line
|
2429
|
+
#line 371 "pl_gram.y"
|
2440
2430
|
{
|
2441
2431
|
plpgsql_DumpExecTree = true;
|
2442
2432
|
;}
|
2443
2433
|
break;
|
2444
2434
|
|
2445
2435
|
case 6:
|
2446
|
-
#line
|
2436
|
+
#line 375 "pl_gram.y"
|
2447
2437
|
{
|
2448
2438
|
if (strcmp((yyvsp[(3) - (3)].str), "on") == 0)
|
2449
2439
|
plpgsql_curr_compile->print_strict_params = true;
|
@@ -2455,42 +2445,42 @@ yyreduce:
|
|
2455
2445
|
break;
|
2456
2446
|
|
2457
2447
|
case 7:
|
2458
|
-
#line
|
2448
|
+
#line 384 "pl_gram.y"
|
2459
2449
|
{
|
2460
2450
|
plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR;
|
2461
2451
|
;}
|
2462
2452
|
break;
|
2463
2453
|
|
2464
2454
|
case 8:
|
2465
|
-
#line
|
2455
|
+
#line 388 "pl_gram.y"
|
2466
2456
|
{
|
2467
2457
|
plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE;
|
2468
2458
|
;}
|
2469
2459
|
break;
|
2470
2460
|
|
2471
2461
|
case 9:
|
2472
|
-
#line
|
2462
|
+
#line 392 "pl_gram.y"
|
2473
2463
|
{
|
2474
2464
|
plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN;
|
2475
2465
|
;}
|
2476
2466
|
break;
|
2477
2467
|
|
2478
2468
|
case 10:
|
2479
|
-
#line
|
2469
|
+
#line 398 "pl_gram.y"
|
2480
2470
|
{
|
2481
2471
|
(yyval.str) = (yyvsp[(1) - (1)].word).ident;
|
2482
2472
|
;}
|
2483
2473
|
break;
|
2484
2474
|
|
2485
2475
|
case 11:
|
2486
|
-
#line
|
2476
|
+
#line 402 "pl_gram.y"
|
2487
2477
|
{
|
2488
2478
|
(yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword));
|
2489
2479
|
;}
|
2490
2480
|
break;
|
2491
2481
|
|
2492
2482
|
case 14:
|
2493
|
-
#line
|
2483
|
+
#line 411 "pl_gram.y"
|
2494
2484
|
{
|
2495
2485
|
PLpgSQL_stmt_block *new;
|
2496
2486
|
|
@@ -2513,7 +2503,7 @@ yyreduce:
|
|
2513
2503
|
break;
|
2514
2504
|
|
2515
2505
|
case 15:
|
2516
|
-
#line
|
2506
|
+
#line 434 "pl_gram.y"
|
2517
2507
|
{
|
2518
2508
|
/* done with decls, so resume identifier lookup */
|
2519
2509
|
plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
|
@@ -2524,7 +2514,7 @@ yyreduce:
|
|
2524
2514
|
break;
|
2525
2515
|
|
2526
2516
|
case 16:
|
2527
|
-
#line
|
2517
|
+
#line 442 "pl_gram.y"
|
2528
2518
|
{
|
2529
2519
|
plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
|
2530
2520
|
(yyval.declhdr).label = (yyvsp[(1) - (2)].str);
|
@@ -2534,7 +2524,7 @@ yyreduce:
|
|
2534
2524
|
break;
|
2535
2525
|
|
2536
2526
|
case 17:
|
2537
|
-
#line
|
2527
|
+
#line 449 "pl_gram.y"
|
2538
2528
|
{
|
2539
2529
|
plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL;
|
2540
2530
|
(yyval.declhdr).label = (yyvsp[(1) - (3)].str);
|
@@ -2544,7 +2534,7 @@ yyreduce:
|
|
2544
2534
|
break;
|
2545
2535
|
|
2546
2536
|
case 18:
|
2547
|
-
#line
|
2537
|
+
#line 458 "pl_gram.y"
|
2548
2538
|
{
|
2549
2539
|
/* Forget any variables created before block */
|
2550
2540
|
plpgsql_add_initdatums(NULL);
|
@@ -2557,14 +2547,14 @@ yyreduce:
|
|
2557
2547
|
break;
|
2558
2548
|
|
2559
2549
|
case 22:
|
2560
|
-
#line
|
2550
|
+
#line 475 "pl_gram.y"
|
2561
2551
|
{
|
2562
2552
|
/* We allow useless extra DECLAREs */
|
2563
2553
|
;}
|
2564
2554
|
break;
|
2565
2555
|
|
2566
2556
|
case 23:
|
2567
|
-
#line
|
2557
|
+
#line 479 "pl_gram.y"
|
2568
2558
|
{
|
2569
2559
|
/*
|
2570
2560
|
* Throw a helpful error if user tries to put block
|
@@ -2578,7 +2568,7 @@ yyreduce:
|
|
2578
2568
|
break;
|
2579
2569
|
|
2580
2570
|
case 24:
|
2581
|
-
#line
|
2571
|
+
#line 492 "pl_gram.y"
|
2582
2572
|
{
|
2583
2573
|
PLpgSQL_variable *var;
|
2584
2574
|
|
@@ -2619,7 +2609,7 @@ yyreduce:
|
|
2619
2609
|
break;
|
2620
2610
|
|
2621
2611
|
case 25:
|
2622
|
-
#line
|
2612
|
+
#line 530 "pl_gram.y"
|
2623
2613
|
{
|
2624
2614
|
plpgsql_ns_additem((yyvsp[(4) - (5)].nsitem)->itemtype,
|
2625
2615
|
(yyvsp[(4) - (5)].nsitem)->itemno, (yyvsp[(1) - (5)].varname).name);
|
@@ -2627,18 +2617,14 @@ yyreduce:
|
|
2627
2617
|
break;
|
2628
2618
|
|
2629
2619
|
case 26:
|
2630
|
-
#line
|
2620
|
+
#line 535 "pl_gram.y"
|
2631
2621
|
{ plpgsql_ns_push((yyvsp[(1) - (3)].varname).name, PLPGSQL_LABEL_OTHER); ;}
|
2632
2622
|
break;
|
2633
2623
|
|
2634
2624
|
case 27:
|
2635
|
-
#line
|
2625
|
+
#line 537 "pl_gram.y"
|
2636
2626
|
{
|
2637
2627
|
PLpgSQL_var *new;
|
2638
|
-
PLpgSQL_expr *curname_def;
|
2639
|
-
char buf[NAMEDATALEN * 2 + 64];
|
2640
|
-
char *cp1;
|
2641
|
-
char *cp2;
|
2642
2628
|
|
2643
2629
|
/* pop local namespace for cursor args */
|
2644
2630
|
plpgsql_ns_pop();
|
@@ -2651,29 +2637,6 @@ yyreduce:
|
|
2651
2637
|
NULL),
|
2652
2638
|
true);
|
2653
2639
|
|
2654
|
-
curname_def = palloc0(sizeof(PLpgSQL_expr));
|
2655
|
-
|
2656
|
-
/* Note: refname has been truncated to NAMEDATALEN */
|
2657
|
-
cp1 = new->refname;
|
2658
|
-
cp2 = buf;
|
2659
|
-
/*
|
2660
|
-
* Don't trust standard_conforming_strings here;
|
2661
|
-
* it might change before we use the string.
|
2662
|
-
*/
|
2663
|
-
if (strchr(cp1, '\\') != NULL)
|
2664
|
-
*cp2++ = ESCAPE_STRING_SYNTAX;
|
2665
|
-
*cp2++ = '\'';
|
2666
|
-
while (*cp1)
|
2667
|
-
{
|
2668
|
-
if (SQL_STR_DOUBLE(*cp1, true))
|
2669
|
-
*cp2++ = *cp1;
|
2670
|
-
*cp2++ = *cp1++;
|
2671
|
-
}
|
2672
|
-
strcpy(cp2, "'::pg_catalog.refcursor");
|
2673
|
-
curname_def->query = pstrdup(buf);
|
2674
|
-
curname_def->parseMode = RAW_PARSE_PLPGSQL_EXPR;
|
2675
|
-
new->default_val = curname_def;
|
2676
|
-
|
2677
2640
|
new->cursor_explicit_expr = (yyvsp[(7) - (7)].expr);
|
2678
2641
|
if ((yyvsp[(5) - (7)].datum) == NULL)
|
2679
2642
|
new->cursor_explicit_argrow = -1;
|
@@ -2684,42 +2647,42 @@ yyreduce:
|
|
2684
2647
|
break;
|
2685
2648
|
|
2686
2649
|
case 28:
|
2687
|
-
#line
|
2650
|
+
#line 561 "pl_gram.y"
|
2688
2651
|
{
|
2689
2652
|
(yyval.ival) = 0;
|
2690
2653
|
;}
|
2691
2654
|
break;
|
2692
2655
|
|
2693
2656
|
case 29:
|
2694
|
-
#line
|
2657
|
+
#line 565 "pl_gram.y"
|
2695
2658
|
{
|
2696
2659
|
(yyval.ival) = CURSOR_OPT_NO_SCROLL;
|
2697
2660
|
;}
|
2698
2661
|
break;
|
2699
2662
|
|
2700
2663
|
case 30:
|
2701
|
-
#line
|
2664
|
+
#line 569 "pl_gram.y"
|
2702
2665
|
{
|
2703
2666
|
(yyval.ival) = CURSOR_OPT_SCROLL;
|
2704
2667
|
;}
|
2705
2668
|
break;
|
2706
2669
|
|
2707
2670
|
case 31:
|
2708
|
-
#line
|
2671
|
+
#line 575 "pl_gram.y"
|
2709
2672
|
{
|
2710
2673
|
(yyval.expr) = read_sql_stmt();
|
2711
2674
|
;}
|
2712
2675
|
break;
|
2713
2676
|
|
2714
2677
|
case 32:
|
2715
|
-
#line
|
2678
|
+
#line 581 "pl_gram.y"
|
2716
2679
|
{
|
2717
2680
|
(yyval.datum) = NULL;
|
2718
2681
|
;}
|
2719
2682
|
break;
|
2720
2683
|
|
2721
2684
|
case 33:
|
2722
|
-
#line
|
2685
|
+
#line 585 "pl_gram.y"
|
2723
2686
|
{
|
2724
2687
|
PLpgSQL_row *new;
|
2725
2688
|
int i;
|
@@ -2751,21 +2714,21 @@ yyreduce:
|
|
2751
2714
|
break;
|
2752
2715
|
|
2753
2716
|
case 34:
|
2754
|
-
#line
|
2717
|
+
#line 616 "pl_gram.y"
|
2755
2718
|
{
|
2756
2719
|
(yyval.list) = list_make1((yyvsp[(1) - (1)].datum));
|
2757
2720
|
;}
|
2758
2721
|
break;
|
2759
2722
|
|
2760
2723
|
case 35:
|
2761
|
-
#line
|
2724
|
+
#line 620 "pl_gram.y"
|
2762
2725
|
{
|
2763
2726
|
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].datum));
|
2764
2727
|
;}
|
2765
2728
|
break;
|
2766
2729
|
|
2767
2730
|
case 36:
|
2768
|
-
#line
|
2731
|
+
#line 626 "pl_gram.y"
|
2769
2732
|
{
|
2770
2733
|
(yyval.datum) = (PLpgSQL_datum *)
|
2771
2734
|
plpgsql_build_variable((yyvsp[(1) - (2)].varname).name, (yyvsp[(1) - (2)].varname).lineno,
|
@@ -2774,7 +2737,7 @@ yyreduce:
|
|
2774
2737
|
break;
|
2775
2738
|
|
2776
2739
|
case 39:
|
2777
|
-
#line
|
2740
|
+
#line 637 "pl_gram.y"
|
2778
2741
|
{
|
2779
2742
|
PLpgSQL_nsitem *nsi;
|
2780
2743
|
|
@@ -2792,7 +2755,7 @@ yyreduce:
|
|
2792
2755
|
break;
|
2793
2756
|
|
2794
2757
|
case 40:
|
2795
|
-
#line
|
2758
|
+
#line 652 "pl_gram.y"
|
2796
2759
|
{
|
2797
2760
|
PLpgSQL_nsitem *nsi;
|
2798
2761
|
|
@@ -2810,7 +2773,7 @@ yyreduce:
|
|
2810
2773
|
break;
|
2811
2774
|
|
2812
2775
|
case 41:
|
2813
|
-
#line
|
2776
|
+
#line 667 "pl_gram.y"
|
2814
2777
|
{
|
2815
2778
|
PLpgSQL_nsitem *nsi;
|
2816
2779
|
|
@@ -2839,7 +2802,7 @@ yyreduce:
|
|
2839
2802
|
break;
|
2840
2803
|
|
2841
2804
|
case 42:
|
2842
|
-
#line
|
2805
|
+
#line 695 "pl_gram.y"
|
2843
2806
|
{
|
2844
2807
|
(yyval.varname).name = (yyvsp[(1) - (1)].word).ident;
|
2845
2808
|
(yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
|
@@ -2870,7 +2833,7 @@ yyreduce:
|
|
2870
2833
|
break;
|
2871
2834
|
|
2872
2835
|
case 43:
|
2873
|
-
#line
|
2836
|
+
#line 723 "pl_gram.y"
|
2874
2837
|
{
|
2875
2838
|
(yyval.varname).name = pstrdup((yyvsp[(1) - (1)].keyword));
|
2876
2839
|
(yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
|
@@ -2901,21 +2864,22 @@ yyreduce:
|
|
2901
2864
|
break;
|
2902
2865
|
|
2903
2866
|
case 44:
|
2904
|
-
#line
|
2867
|
+
#line 753 "pl_gram.y"
|
2905
2868
|
{ (yyval.boolean) = false; ;}
|
2906
2869
|
break;
|
2907
2870
|
|
2908
2871
|
case 45:
|
2909
|
-
#line
|
2872
|
+
#line 755 "pl_gram.y"
|
2910
2873
|
{ (yyval.boolean) = true; ;}
|
2911
2874
|
break;
|
2912
2875
|
|
2913
2876
|
case 46:
|
2914
|
-
#line
|
2877
|
+
#line 759 "pl_gram.y"
|
2915
2878
|
{
|
2916
2879
|
/*
|
2917
|
-
* If there's a lookahead token, read_datatype
|
2918
|
-
*
|
2880
|
+
* If there's a lookahead token, read_datatype() will
|
2881
|
+
* consume it, and then we must tell bison to forget
|
2882
|
+
* it.
|
2919
2883
|
*/
|
2920
2884
|
(yyval.dtype) = read_datatype(yychar);
|
2921
2885
|
yyclearin;
|
@@ -2923,12 +2887,12 @@ yyreduce:
|
|
2923
2887
|
break;
|
2924
2888
|
|
2925
2889
|
case 47:
|
2926
|
-
#line
|
2890
|
+
#line 771 "pl_gram.y"
|
2927
2891
|
{ (yyval.oid) = InvalidOid; ;}
|
2928
2892
|
break;
|
2929
2893
|
|
2930
2894
|
case 48:
|
2931
|
-
#line
|
2895
|
+
#line 773 "pl_gram.y"
|
2932
2896
|
{
|
2933
2897
|
(yyval.oid) = get_collation_oid(list_make1(makeString((yyvsp[(2) - (2)].word).ident)),
|
2934
2898
|
false);
|
@@ -2936,7 +2900,7 @@ yyreduce:
|
|
2936
2900
|
break;
|
2937
2901
|
|
2938
2902
|
case 49:
|
2939
|
-
#line
|
2903
|
+
#line 778 "pl_gram.y"
|
2940
2904
|
{
|
2941
2905
|
(yyval.oid) = get_collation_oid(list_make1(makeString(pstrdup((yyvsp[(2) - (2)].keyword)))),
|
2942
2906
|
false);
|
@@ -2944,41 +2908,41 @@ yyreduce:
|
|
2944
2908
|
break;
|
2945
2909
|
|
2946
2910
|
case 50:
|
2947
|
-
#line
|
2911
|
+
#line 783 "pl_gram.y"
|
2948
2912
|
{
|
2949
2913
|
(yyval.oid) = get_collation_oid((yyvsp[(2) - (2)].cword).idents, false);
|
2950
2914
|
;}
|
2951
2915
|
break;
|
2952
2916
|
|
2953
2917
|
case 51:
|
2954
|
-
#line
|
2918
|
+
#line 789 "pl_gram.y"
|
2955
2919
|
{ (yyval.boolean) = false; ;}
|
2956
2920
|
break;
|
2957
2921
|
|
2958
2922
|
case 52:
|
2959
|
-
#line
|
2923
|
+
#line 791 "pl_gram.y"
|
2960
2924
|
{ (yyval.boolean) = true; ;}
|
2961
2925
|
break;
|
2962
2926
|
|
2963
2927
|
case 53:
|
2964
|
-
#line
|
2928
|
+
#line 795 "pl_gram.y"
|
2965
2929
|
{ (yyval.expr) = NULL; ;}
|
2966
2930
|
break;
|
2967
2931
|
|
2968
2932
|
case 54:
|
2969
|
-
#line
|
2933
|
+
#line 797 "pl_gram.y"
|
2970
2934
|
{
|
2971
2935
|
(yyval.expr) = read_sql_expression(';', ";");
|
2972
2936
|
;}
|
2973
2937
|
break;
|
2974
2938
|
|
2975
2939
|
case 59:
|
2976
|
-
#line
|
2940
|
+
#line 816 "pl_gram.y"
|
2977
2941
|
{ (yyval.list) = NIL; ;}
|
2978
2942
|
break;
|
2979
2943
|
|
2980
2944
|
case 60:
|
2981
|
-
#line
|
2945
|
+
#line 818 "pl_gram.y"
|
2982
2946
|
{
|
2983
2947
|
/* don't bother linking null statements into list */
|
2984
2948
|
if ((yyvsp[(2) - (2)].stmt) == NULL)
|
@@ -2989,127 +2953,127 @@ yyreduce:
|
|
2989
2953
|
break;
|
2990
2954
|
|
2991
2955
|
case 61:
|
2992
|
-
#line
|
2956
|
+
#line 828 "pl_gram.y"
|
2993
2957
|
{ (yyval.stmt) = (yyvsp[(1) - (2)].stmt); ;}
|
2994
2958
|
break;
|
2995
2959
|
|
2996
2960
|
case 62:
|
2997
|
-
#line
|
2961
|
+
#line 830 "pl_gram.y"
|
2998
2962
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
2999
2963
|
break;
|
3000
2964
|
|
3001
2965
|
case 63:
|
3002
|
-
#line
|
2966
|
+
#line 832 "pl_gram.y"
|
3003
2967
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3004
2968
|
break;
|
3005
2969
|
|
3006
2970
|
case 64:
|
3007
|
-
#line
|
2971
|
+
#line 834 "pl_gram.y"
|
3008
2972
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3009
2973
|
break;
|
3010
2974
|
|
3011
2975
|
case 65:
|
3012
|
-
#line
|
2976
|
+
#line 836 "pl_gram.y"
|
3013
2977
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3014
2978
|
break;
|
3015
2979
|
|
3016
2980
|
case 66:
|
3017
|
-
#line
|
2981
|
+
#line 838 "pl_gram.y"
|
3018
2982
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3019
2983
|
break;
|
3020
2984
|
|
3021
2985
|
case 67:
|
3022
|
-
#line
|
2986
|
+
#line 840 "pl_gram.y"
|
3023
2987
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3024
2988
|
break;
|
3025
2989
|
|
3026
2990
|
case 68:
|
3027
|
-
#line
|
2991
|
+
#line 842 "pl_gram.y"
|
3028
2992
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3029
2993
|
break;
|
3030
2994
|
|
3031
2995
|
case 69:
|
3032
|
-
#line
|
2996
|
+
#line 844 "pl_gram.y"
|
3033
2997
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3034
2998
|
break;
|
3035
2999
|
|
3036
3000
|
case 70:
|
3037
|
-
#line
|
3001
|
+
#line 846 "pl_gram.y"
|
3038
3002
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3039
3003
|
break;
|
3040
3004
|
|
3041
3005
|
case 71:
|
3042
|
-
#line
|
3006
|
+
#line 848 "pl_gram.y"
|
3043
3007
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3044
3008
|
break;
|
3045
3009
|
|
3046
3010
|
case 72:
|
3047
|
-
#line
|
3011
|
+
#line 850 "pl_gram.y"
|
3048
3012
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3049
3013
|
break;
|
3050
3014
|
|
3051
3015
|
case 73:
|
3052
|
-
#line
|
3016
|
+
#line 852 "pl_gram.y"
|
3053
3017
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3054
3018
|
break;
|
3055
3019
|
|
3056
3020
|
case 74:
|
3057
|
-
#line
|
3021
|
+
#line 854 "pl_gram.y"
|
3058
3022
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3059
3023
|
break;
|
3060
3024
|
|
3061
3025
|
case 75:
|
3062
|
-
#line
|
3026
|
+
#line 856 "pl_gram.y"
|
3063
3027
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3064
3028
|
break;
|
3065
3029
|
|
3066
3030
|
case 76:
|
3067
|
-
#line
|
3031
|
+
#line 858 "pl_gram.y"
|
3068
3032
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3069
3033
|
break;
|
3070
3034
|
|
3071
3035
|
case 77:
|
3072
|
-
#line
|
3036
|
+
#line 860 "pl_gram.y"
|
3073
3037
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3074
3038
|
break;
|
3075
3039
|
|
3076
3040
|
case 78:
|
3077
|
-
#line
|
3041
|
+
#line 862 "pl_gram.y"
|
3078
3042
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3079
3043
|
break;
|
3080
3044
|
|
3081
3045
|
case 79:
|
3082
|
-
#line
|
3046
|
+
#line 864 "pl_gram.y"
|
3083
3047
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3084
3048
|
break;
|
3085
3049
|
|
3086
3050
|
case 80:
|
3087
|
-
#line
|
3051
|
+
#line 866 "pl_gram.y"
|
3088
3052
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3089
3053
|
break;
|
3090
3054
|
|
3091
3055
|
case 81:
|
3092
|
-
#line
|
3056
|
+
#line 868 "pl_gram.y"
|
3093
3057
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3094
3058
|
break;
|
3095
3059
|
|
3096
3060
|
case 82:
|
3097
|
-
#line
|
3061
|
+
#line 870 "pl_gram.y"
|
3098
3062
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3099
3063
|
break;
|
3100
3064
|
|
3101
3065
|
case 83:
|
3102
|
-
#line
|
3066
|
+
#line 872 "pl_gram.y"
|
3103
3067
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3104
3068
|
break;
|
3105
3069
|
|
3106
3070
|
case 84:
|
3107
|
-
#line
|
3071
|
+
#line 874 "pl_gram.y"
|
3108
3072
|
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); ;}
|
3109
3073
|
break;
|
3110
3074
|
|
3111
3075
|
case 85:
|
3112
|
-
#line
|
3076
|
+
#line 878 "pl_gram.y"
|
3113
3077
|
{
|
3114
3078
|
PLpgSQL_stmt_perform *new;
|
3115
3079
|
int startloc;
|
@@ -3130,7 +3094,7 @@ yyreduce:
|
|
3130
3094
|
*/
|
3131
3095
|
new->expr = read_sql_construct(';', 0, 0, ";",
|
3132
3096
|
RAW_PARSE_DEFAULT,
|
3133
|
-
false, false,
|
3097
|
+
false, false,
|
3134
3098
|
&startloc, NULL);
|
3135
3099
|
/* overwrite "perform" ... */
|
3136
3100
|
memcpy(new->expr->query, " SELECT", 7);
|
@@ -3146,7 +3110,7 @@ yyreduce:
|
|
3146
3110
|
break;
|
3147
3111
|
|
3148
3112
|
case 86:
|
3149
|
-
#line
|
3113
|
+
#line 914 "pl_gram.y"
|
3150
3114
|
{
|
3151
3115
|
PLpgSQL_stmt_call *new;
|
3152
3116
|
|
@@ -3167,7 +3131,7 @@ yyreduce:
|
|
3167
3131
|
break;
|
3168
3132
|
|
3169
3133
|
case 87:
|
3170
|
-
#line
|
3134
|
+
#line 932 "pl_gram.y"
|
3171
3135
|
{
|
3172
3136
|
/* use the same structures as for CALL, for simplicity */
|
3173
3137
|
PLpgSQL_stmt_call *new;
|
@@ -3189,7 +3153,7 @@ yyreduce:
|
|
3189
3153
|
break;
|
3190
3154
|
|
3191
3155
|
case 88:
|
3192
|
-
#line
|
3156
|
+
#line 953 "pl_gram.y"
|
3193
3157
|
{
|
3194
3158
|
PLpgSQL_stmt_assign *new;
|
3195
3159
|
RawParseMode pmode;
|
@@ -3221,7 +3185,7 @@ yyreduce:
|
|
3221
3185
|
plpgsql_push_back_token(T_DATUM);
|
3222
3186
|
new->expr = read_sql_construct(';', 0, 0, ";",
|
3223
3187
|
pmode,
|
3224
|
-
false, true,
|
3188
|
+
false, true,
|
3225
3189
|
NULL, NULL);
|
3226
3190
|
|
3227
3191
|
(yyval.stmt) = (PLpgSQL_stmt *) new;
|
@@ -3229,7 +3193,7 @@ yyreduce:
|
|
3229
3193
|
break;
|
3230
3194
|
|
3231
3195
|
case 89:
|
3232
|
-
#line
|
3196
|
+
#line 992 "pl_gram.y"
|
3233
3197
|
{
|
3234
3198
|
PLpgSQL_stmt_getdiag *new;
|
3235
3199
|
ListCell *lc;
|
@@ -3252,6 +3216,7 @@ yyreduce:
|
|
3252
3216
|
{
|
3253
3217
|
/* these fields are disallowed in stacked case */
|
3254
3218
|
case PLPGSQL_GETDIAG_ROW_COUNT:
|
3219
|
+
case PLPGSQL_GETDIAG_ROUTINE_OID:
|
3255
3220
|
if (new->is_stacked)
|
3256
3221
|
ereport(ERROR,
|
3257
3222
|
(errcode(ERRCODE_SYNTAX_ERROR),
|
@@ -3292,42 +3257,42 @@ yyreduce:
|
|
3292
3257
|
break;
|
3293
3258
|
|
3294
3259
|
case 90:
|
3295
|
-
#line
|
3260
|
+
#line 1055 "pl_gram.y"
|
3296
3261
|
{
|
3297
3262
|
(yyval.boolean) = false;
|
3298
3263
|
;}
|
3299
3264
|
break;
|
3300
3265
|
|
3301
3266
|
case 91:
|
3302
|
-
#line
|
3267
|
+
#line 1059 "pl_gram.y"
|
3303
3268
|
{
|
3304
3269
|
(yyval.boolean) = false;
|
3305
3270
|
;}
|
3306
3271
|
break;
|
3307
3272
|
|
3308
3273
|
case 92:
|
3309
|
-
#line
|
3274
|
+
#line 1063 "pl_gram.y"
|
3310
3275
|
{
|
3311
3276
|
(yyval.boolean) = true;
|
3312
3277
|
;}
|
3313
3278
|
break;
|
3314
3279
|
|
3315
3280
|
case 93:
|
3316
|
-
#line
|
3281
|
+
#line 1069 "pl_gram.y"
|
3317
3282
|
{
|
3318
3283
|
(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].diagitem));
|
3319
3284
|
;}
|
3320
3285
|
break;
|
3321
3286
|
|
3322
3287
|
case 94:
|
3323
|
-
#line
|
3288
|
+
#line 1073 "pl_gram.y"
|
3324
3289
|
{
|
3325
3290
|
(yyval.list) = list_make1((yyvsp[(1) - (1)].diagitem));
|
3326
3291
|
;}
|
3327
3292
|
break;
|
3328
3293
|
|
3329
3294
|
case 95:
|
3330
|
-
#line
|
3295
|
+
#line 1079 "pl_gram.y"
|
3331
3296
|
{
|
3332
3297
|
PLpgSQL_diag_item *new;
|
3333
3298
|
|
@@ -3340,13 +3305,16 @@ yyreduce:
|
|
3340
3305
|
break;
|
3341
3306
|
|
3342
3307
|
case 96:
|
3343
|
-
#line
|
3308
|
+
#line 1091 "pl_gram.y"
|
3344
3309
|
{
|
3345
3310
|
int tok = yylex();
|
3346
3311
|
|
3347
3312
|
if (tok_is_keyword(tok, &yylval,
|
3348
3313
|
K_ROW_COUNT, "row_count"))
|
3349
3314
|
(yyval.ival) = PLPGSQL_GETDIAG_ROW_COUNT;
|
3315
|
+
else if (tok_is_keyword(tok, &yylval,
|
3316
|
+
K_PG_ROUTINE_OID, "pg_routine_oid"))
|
3317
|
+
(yyval.ival) = PLPGSQL_GETDIAG_ROUTINE_OID;
|
3350
3318
|
else if (tok_is_keyword(tok, &yylval,
|
3351
3319
|
K_PG_CONTEXT, "pg_context"))
|
3352
3320
|
(yyval.ival) = PLPGSQL_GETDIAG_CONTEXT;
|
@@ -3386,7 +3354,7 @@ yyreduce:
|
|
3386
3354
|
break;
|
3387
3355
|
|
3388
3356
|
case 97:
|
3389
|
-
#line
|
3357
|
+
#line 1139 "pl_gram.y"
|
3390
3358
|
{
|
3391
3359
|
/*
|
3392
3360
|
* In principle we should support a getdiag_target
|
@@ -3407,7 +3375,7 @@ yyreduce:
|
|
3407
3375
|
break;
|
3408
3376
|
|
3409
3377
|
case 98:
|
3410
|
-
#line
|
3378
|
+
#line 1157 "pl_gram.y"
|
3411
3379
|
{
|
3412
3380
|
/* just to give a better message than "syntax error" */
|
3413
3381
|
word_is_not_variable(&((yyvsp[(1) - (1)].word)), (yylsp[(1) - (1)]));
|
@@ -3415,7 +3383,7 @@ yyreduce:
|
|
3415
3383
|
break;
|
3416
3384
|
|
3417
3385
|
case 99:
|
3418
|
-
#line
|
3386
|
+
#line 1162 "pl_gram.y"
|
3419
3387
|
{
|
3420
3388
|
/* just to give a better message than "syntax error" */
|
3421
3389
|
cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
|
@@ -3423,7 +3391,7 @@ yyreduce:
|
|
3423
3391
|
break;
|
3424
3392
|
|
3425
3393
|
case 100:
|
3426
|
-
#line
|
3394
|
+
#line 1169 "pl_gram.y"
|
3427
3395
|
{
|
3428
3396
|
PLpgSQL_stmt_if *new;
|
3429
3397
|
|
@@ -3441,14 +3409,14 @@ yyreduce:
|
|
3441
3409
|
break;
|
3442
3410
|
|
3443
3411
|
case 101:
|
3444
|
-
#line
|
3412
|
+
#line 1186 "pl_gram.y"
|
3445
3413
|
{
|
3446
3414
|
(yyval.list) = NIL;
|
3447
3415
|
;}
|
3448
3416
|
break;
|
3449
3417
|
|
3450
3418
|
case 102:
|
3451
|
-
#line
|
3419
|
+
#line 1190 "pl_gram.y"
|
3452
3420
|
{
|
3453
3421
|
PLpgSQL_if_elsif *new;
|
3454
3422
|
|
@@ -3462,28 +3430,28 @@ yyreduce:
|
|
3462
3430
|
break;
|
3463
3431
|
|
3464
3432
|
case 103:
|
3465
|
-
#line
|
3433
|
+
#line 1203 "pl_gram.y"
|
3466
3434
|
{
|
3467
3435
|
(yyval.list) = NIL;
|
3468
3436
|
;}
|
3469
3437
|
break;
|
3470
3438
|
|
3471
3439
|
case 104:
|
3472
|
-
#line
|
3440
|
+
#line 1207 "pl_gram.y"
|
3473
3441
|
{
|
3474
3442
|
(yyval.list) = (yyvsp[(2) - (2)].list);
|
3475
3443
|
;}
|
3476
3444
|
break;
|
3477
3445
|
|
3478
3446
|
case 105:
|
3479
|
-
#line
|
3447
|
+
#line 1213 "pl_gram.y"
|
3480
3448
|
{
|
3481
3449
|
(yyval.stmt) = make_case((yylsp[(1) - (7)]), (yyvsp[(2) - (7)].expr), (yyvsp[(3) - (7)].list), (yyvsp[(4) - (7)].list));
|
3482
3450
|
;}
|
3483
3451
|
break;
|
3484
3452
|
|
3485
3453
|
case 106:
|
3486
|
-
#line
|
3454
|
+
#line 1219 "pl_gram.y"
|
3487
3455
|
{
|
3488
3456
|
PLpgSQL_expr *expr = NULL;
|
3489
3457
|
int tok = yylex();
|
@@ -3499,21 +3467,21 @@ yyreduce:
|
|
3499
3467
|
break;
|
3500
3468
|
|
3501
3469
|
case 107:
|
3502
|
-
#line
|
3470
|
+
#line 1234 "pl_gram.y"
|
3503
3471
|
{
|
3504
3472
|
(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].casewhen));
|
3505
3473
|
;}
|
3506
3474
|
break;
|
3507
3475
|
|
3508
3476
|
case 108:
|
3509
|
-
#line
|
3477
|
+
#line 1238 "pl_gram.y"
|
3510
3478
|
{
|
3511
3479
|
(yyval.list) = list_make1((yyvsp[(1) - (1)].casewhen));
|
3512
3480
|
;}
|
3513
3481
|
break;
|
3514
3482
|
|
3515
3483
|
case 109:
|
3516
|
-
#line
|
3484
|
+
#line 1244 "pl_gram.y"
|
3517
3485
|
{
|
3518
3486
|
PLpgSQL_case_when *new = palloc(sizeof(PLpgSQL_case_when));
|
3519
3487
|
|
@@ -3525,14 +3493,14 @@ yyreduce:
|
|
3525
3493
|
break;
|
3526
3494
|
|
3527
3495
|
case 110:
|
3528
|
-
#line
|
3496
|
+
#line 1255 "pl_gram.y"
|
3529
3497
|
{
|
3530
3498
|
(yyval.list) = NIL;
|
3531
3499
|
;}
|
3532
3500
|
break;
|
3533
3501
|
|
3534
3502
|
case 111:
|
3535
|
-
#line
|
3503
|
+
#line 1259 "pl_gram.y"
|
3536
3504
|
{
|
3537
3505
|
/*
|
3538
3506
|
* proc_sect could return an empty list, but we
|
@@ -3548,7 +3516,7 @@ yyreduce:
|
|
3548
3516
|
break;
|
3549
3517
|
|
3550
3518
|
case 112:
|
3551
|
-
#line
|
3519
|
+
#line 1274 "pl_gram.y"
|
3552
3520
|
{
|
3553
3521
|
PLpgSQL_stmt_loop *new;
|
3554
3522
|
|
@@ -3567,7 +3535,7 @@ yyreduce:
|
|
3567
3535
|
break;
|
3568
3536
|
|
3569
3537
|
case 113:
|
3570
|
-
#line
|
3538
|
+
#line 1292 "pl_gram.y"
|
3571
3539
|
{
|
3572
3540
|
PLpgSQL_stmt_while *new;
|
3573
3541
|
|
@@ -3587,7 +3555,7 @@ yyreduce:
|
|
3587
3555
|
break;
|
3588
3556
|
|
3589
3557
|
case 114:
|
3590
|
-
#line
|
3558
|
+
#line 1311 "pl_gram.y"
|
3591
3559
|
{
|
3592
3560
|
/* This runs after we've scanned the loop body */
|
3593
3561
|
if ((yyvsp[(3) - (4)].stmt)->cmd_type == PLPGSQL_STMT_FORI)
|
@@ -3622,7 +3590,7 @@ yyreduce:
|
|
3622
3590
|
break;
|
3623
3591
|
|
3624
3592
|
case 115:
|
3625
|
-
#line
|
3593
|
+
#line 1345 "pl_gram.y"
|
3626
3594
|
{
|
3627
3595
|
int tok = yylex();
|
3628
3596
|
int tokloc = yylloc;
|
@@ -3755,7 +3723,6 @@ yyreduce:
|
|
3755
3723
|
RAW_PARSE_DEFAULT,
|
3756
3724
|
true,
|
3757
3725
|
false,
|
3758
|
-
true,
|
3759
3726
|
&expr1loc,
|
3760
3727
|
&tok);
|
3761
3728
|
|
@@ -3864,7 +3831,7 @@ yyreduce:
|
|
3864
3831
|
break;
|
3865
3832
|
|
3866
3833
|
case 116:
|
3867
|
-
#line
|
3834
|
+
#line 1603 "pl_gram.y"
|
3868
3835
|
{
|
3869
3836
|
(yyval.forvariable).name = NameOfDatum(&((yyvsp[(1) - (1)].wdatum)));
|
3870
3837
|
(yyval.forvariable).lineno = plpgsql_location_to_lineno((yylsp[(1) - (1)]));
|
@@ -3893,7 +3860,7 @@ yyreduce:
|
|
3893
3860
|
break;
|
3894
3861
|
|
3895
3862
|
case 117:
|
3896
|
-
#line
|
3863
|
+
#line 1629 "pl_gram.y"
|
3897
3864
|
{
|
3898
3865
|
int tok;
|
3899
3866
|
|
@@ -3910,7 +3877,7 @@ yyreduce:
|
|
3910
3877
|
break;
|
3911
3878
|
|
3912
3879
|
case 118:
|
3913
|
-
#line
|
3880
|
+
#line 1643 "pl_gram.y"
|
3914
3881
|
{
|
3915
3882
|
/* just to give a better message than "syntax error" */
|
3916
3883
|
cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
|
@@ -3918,7 +3885,7 @@ yyreduce:
|
|
3918
3885
|
break;
|
3919
3886
|
|
3920
3887
|
case 119:
|
3921
|
-
#line
|
3888
|
+
#line 1650 "pl_gram.y"
|
3922
3889
|
{
|
3923
3890
|
PLpgSQL_stmt_foreach_a *new;
|
3924
3891
|
|
@@ -3957,21 +3924,21 @@ yyreduce:
|
|
3957
3924
|
break;
|
3958
3925
|
|
3959
3926
|
case 120:
|
3960
|
-
#line
|
3927
|
+
#line 1688 "pl_gram.y"
|
3961
3928
|
{
|
3962
3929
|
(yyval.ival) = 0;
|
3963
3930
|
;}
|
3964
3931
|
break;
|
3965
3932
|
|
3966
3933
|
case 121:
|
3967
|
-
#line
|
3934
|
+
#line 1692 "pl_gram.y"
|
3968
3935
|
{
|
3969
3936
|
(yyval.ival) = (yyvsp[(2) - (2)].ival);
|
3970
3937
|
;}
|
3971
3938
|
break;
|
3972
3939
|
|
3973
3940
|
case 122:
|
3974
|
-
#line
|
3941
|
+
#line 1698 "pl_gram.y"
|
3975
3942
|
{
|
3976
3943
|
PLpgSQL_stmt_exit *new;
|
3977
3944
|
|
@@ -4025,21 +3992,21 @@ yyreduce:
|
|
4025
3992
|
break;
|
4026
3993
|
|
4027
3994
|
case 123:
|
4028
|
-
#line
|
3995
|
+
#line 1751 "pl_gram.y"
|
4029
3996
|
{
|
4030
3997
|
(yyval.boolean) = true;
|
4031
3998
|
;}
|
4032
3999
|
break;
|
4033
4000
|
|
4034
4001
|
case 124:
|
4035
|
-
#line
|
4002
|
+
#line 1755 "pl_gram.y"
|
4036
4003
|
{
|
4037
4004
|
(yyval.boolean) = false;
|
4038
4005
|
;}
|
4039
4006
|
break;
|
4040
4007
|
|
4041
4008
|
case 125:
|
4042
|
-
#line
|
4009
|
+
#line 1761 "pl_gram.y"
|
4043
4010
|
{
|
4044
4011
|
int tok;
|
4045
4012
|
|
@@ -4066,7 +4033,7 @@ yyreduce:
|
|
4066
4033
|
break;
|
4067
4034
|
|
4068
4035
|
case 126:
|
4069
|
-
#line
|
4036
|
+
#line 1787 "pl_gram.y"
|
4070
4037
|
{
|
4071
4038
|
PLpgSQL_stmt_raise *new;
|
4072
4039
|
int tok;
|
@@ -4161,7 +4128,7 @@ yyreduce:
|
|
4161
4128
|
expr = read_sql_construct(',', ';', K_USING,
|
4162
4129
|
", or ; or USING",
|
4163
4130
|
RAW_PARSE_PLPGSQL_EXPR,
|
4164
|
-
true, true,
|
4131
|
+
true, true,
|
4165
4132
|
NULL, &tok);
|
4166
4133
|
new->params = lappend(new->params, expr);
|
4167
4134
|
}
|
@@ -4212,7 +4179,7 @@ yyreduce:
|
|
4212
4179
|
break;
|
4213
4180
|
|
4214
4181
|
case 127:
|
4215
|
-
#line
|
4182
|
+
#line 1932 "pl_gram.y"
|
4216
4183
|
{
|
4217
4184
|
PLpgSQL_stmt_assert *new;
|
4218
4185
|
int tok;
|
@@ -4237,7 +4204,7 @@ yyreduce:
|
|
4237
4204
|
break;
|
4238
4205
|
|
4239
4206
|
case 128:
|
4240
|
-
#line
|
4207
|
+
#line 1956 "pl_gram.y"
|
4241
4208
|
{
|
4242
4209
|
(yyval.loop_body).stmts = (yyvsp[(1) - (5)].list);
|
4243
4210
|
(yyval.loop_body).end_label = (yyvsp[(4) - (5)].str);
|
@@ -4246,28 +4213,28 @@ yyreduce:
|
|
4246
4213
|
break;
|
4247
4214
|
|
4248
4215
|
case 129:
|
4249
|
-
#line
|
4216
|
+
#line 1974 "pl_gram.y"
|
4250
4217
|
{
|
4251
|
-
(yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[(1) - (1)]));
|
4218
|
+
(yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[(1) - (1)]), NULL);
|
4252
4219
|
;}
|
4253
4220
|
break;
|
4254
4221
|
|
4255
4222
|
case 130:
|
4256
|
-
#line
|
4223
|
+
#line 1978 "pl_gram.y"
|
4257
4224
|
{
|
4258
|
-
(yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[(1) - (1)]));
|
4225
|
+
(yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[(1) - (1)]), NULL);
|
4259
4226
|
;}
|
4260
4227
|
break;
|
4261
4228
|
|
4262
4229
|
case 131:
|
4263
|
-
#line
|
4230
|
+
#line 1982 "pl_gram.y"
|
4264
4231
|
{
|
4265
|
-
(yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[(1) - (1)]));
|
4232
|
+
(yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[(1) - (1)]), NULL);
|
4266
4233
|
;}
|
4267
4234
|
break;
|
4268
4235
|
|
4269
4236
|
case 132:
|
4270
|
-
#line
|
4237
|
+
#line 1986 "pl_gram.y"
|
4271
4238
|
{
|
4272
4239
|
int tok;
|
4273
4240
|
|
@@ -4276,12 +4243,12 @@ yyreduce:
|
|
4276
4243
|
if (tok == '=' || tok == COLON_EQUALS ||
|
4277
4244
|
tok == '[' || tok == '.')
|
4278
4245
|
word_is_not_variable(&((yyvsp[(1) - (1)].word)), (yylsp[(1) - (1)]));
|
4279
|
-
(yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[(1) - (1)]));
|
4246
|
+
(yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[(1) - (1)]), &((yyvsp[(1) - (1)].word)));
|
4280
4247
|
;}
|
4281
4248
|
break;
|
4282
4249
|
|
4283
4250
|
case 133:
|
4284
|
-
#line
|
4251
|
+
#line 1997 "pl_gram.y"
|
4285
4252
|
{
|
4286
4253
|
int tok;
|
4287
4254
|
|
@@ -4290,12 +4257,12 @@ yyreduce:
|
|
4290
4257
|
if (tok == '=' || tok == COLON_EQUALS ||
|
4291
4258
|
tok == '[' || tok == '.')
|
4292
4259
|
cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
|
4293
|
-
(yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[(1) - (1)]));
|
4260
|
+
(yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[(1) - (1)]), NULL);
|
4294
4261
|
;}
|
4295
4262
|
break;
|
4296
4263
|
|
4297
4264
|
case 134:
|
4298
|
-
#line
|
4265
|
+
#line 2010 "pl_gram.y"
|
4299
4266
|
{
|
4300
4267
|
PLpgSQL_stmt_dynexecute *new;
|
4301
4268
|
PLpgSQL_expr *expr;
|
@@ -4304,7 +4271,7 @@ yyreduce:
|
|
4304
4271
|
expr = read_sql_construct(K_INTO, K_USING, ';',
|
4305
4272
|
"INTO or USING or ;",
|
4306
4273
|
RAW_PARSE_PLPGSQL_EXPR,
|
4307
|
-
true, true,
|
4274
|
+
true, true,
|
4308
4275
|
NULL, &endtoken);
|
4309
4276
|
|
4310
4277
|
new = palloc(sizeof(PLpgSQL_stmt_dynexecute));
|
@@ -4343,7 +4310,7 @@ yyreduce:
|
|
4343
4310
|
expr = read_sql_construct(',', ';', K_INTO,
|
4344
4311
|
", or ; or INTO",
|
4345
4312
|
RAW_PARSE_PLPGSQL_EXPR,
|
4346
|
-
true, true,
|
4313
|
+
true, true,
|
4347
4314
|
NULL, &endtoken);
|
4348
4315
|
new->params = lappend(new->params, expr);
|
4349
4316
|
} while (endtoken == ',');
|
@@ -4359,7 +4326,7 @@ yyreduce:
|
|
4359
4326
|
break;
|
4360
4327
|
|
4361
4328
|
case 135:
|
4362
|
-
#line
|
4329
|
+
#line 2074 "pl_gram.y"
|
4363
4330
|
{
|
4364
4331
|
PLpgSQL_stmt_open *new;
|
4365
4332
|
int tok;
|
@@ -4438,7 +4405,7 @@ yyreduce:
|
|
4438
4405
|
break;
|
4439
4406
|
|
4440
4407
|
case 136:
|
4441
|
-
#line
|
4408
|
+
#line 2152 "pl_gram.y"
|
4442
4409
|
{
|
4443
4410
|
PLpgSQL_stmt_fetch *fetch = (yyvsp[(2) - (4)].fetch);
|
4444
4411
|
PLpgSQL_variable *target;
|
@@ -4469,7 +4436,7 @@ yyreduce:
|
|
4469
4436
|
break;
|
4470
4437
|
|
4471
4438
|
case 137:
|
4472
|
-
#line
|
4439
|
+
#line 2182 "pl_gram.y"
|
4473
4440
|
{
|
4474
4441
|
PLpgSQL_stmt_fetch *fetch = (yyvsp[(2) - (4)].fetch);
|
4475
4442
|
|
@@ -4482,14 +4449,14 @@ yyreduce:
|
|
4482
4449
|
break;
|
4483
4450
|
|
4484
4451
|
case 138:
|
4485
|
-
#line
|
4452
|
+
#line 2194 "pl_gram.y"
|
4486
4453
|
{
|
4487
4454
|
(yyval.fetch) = read_fetch_direction();
|
4488
4455
|
;}
|
4489
4456
|
break;
|
4490
4457
|
|
4491
4458
|
case 139:
|
4492
|
-
#line
|
4459
|
+
#line 2200 "pl_gram.y"
|
4493
4460
|
{
|
4494
4461
|
PLpgSQL_stmt_close *new;
|
4495
4462
|
|
@@ -4504,7 +4471,7 @@ yyreduce:
|
|
4504
4471
|
break;
|
4505
4472
|
|
4506
4473
|
case 140:
|
4507
|
-
#line
|
4474
|
+
#line 2214 "pl_gram.y"
|
4508
4475
|
{
|
4509
4476
|
/* We do not bother building a node for NULL */
|
4510
4477
|
(yyval.stmt) = NULL;
|
@@ -4512,7 +4479,7 @@ yyreduce:
|
|
4512
4479
|
break;
|
4513
4480
|
|
4514
4481
|
case 141:
|
4515
|
-
#line
|
4482
|
+
#line 2221 "pl_gram.y"
|
4516
4483
|
{
|
4517
4484
|
PLpgSQL_stmt_commit *new;
|
4518
4485
|
|
@@ -4527,7 +4494,7 @@ yyreduce:
|
|
4527
4494
|
break;
|
4528
4495
|
|
4529
4496
|
case 142:
|
4530
|
-
#line
|
4497
|
+
#line 2235 "pl_gram.y"
|
4531
4498
|
{
|
4532
4499
|
PLpgSQL_stmt_rollback *new;
|
4533
4500
|
|
@@ -4542,22 +4509,22 @@ yyreduce:
|
|
4542
4509
|
break;
|
4543
4510
|
|
4544
4511
|
case 143:
|
4545
|
-
#line
|
4512
|
+
#line 2249 "pl_gram.y"
|
4546
4513
|
{ (yyval.ival) = true; ;}
|
4547
4514
|
break;
|
4548
4515
|
|
4549
4516
|
case 144:
|
4550
|
-
#line
|
4517
|
+
#line 2250 "pl_gram.y"
|
4551
4518
|
{ (yyval.ival) = false; ;}
|
4552
4519
|
break;
|
4553
4520
|
|
4554
4521
|
case 145:
|
4555
|
-
#line
|
4522
|
+
#line 2251 "pl_gram.y"
|
4556
4523
|
{ (yyval.ival) = false; ;}
|
4557
4524
|
break;
|
4558
4525
|
|
4559
4526
|
case 146:
|
4560
|
-
#line
|
4527
|
+
#line 2256 "pl_gram.y"
|
4561
4528
|
{
|
4562
4529
|
/*
|
4563
4530
|
* In principle we should support a cursor_variable
|
@@ -4582,7 +4549,7 @@ yyreduce:
|
|
4582
4549
|
break;
|
4583
4550
|
|
4584
4551
|
case 147:
|
4585
|
-
#line
|
4552
|
+
#line 2278 "pl_gram.y"
|
4586
4553
|
{
|
4587
4554
|
/* just to give a better message than "syntax error" */
|
4588
4555
|
word_is_not_variable(&((yyvsp[(1) - (1)].word)), (yylsp[(1) - (1)]));
|
@@ -4590,7 +4557,7 @@ yyreduce:
|
|
4590
4557
|
break;
|
4591
4558
|
|
4592
4559
|
case 148:
|
4593
|
-
#line
|
4560
|
+
#line 2283 "pl_gram.y"
|
4594
4561
|
{
|
4595
4562
|
/* just to give a better message than "syntax error" */
|
4596
4563
|
cword_is_not_variable(&((yyvsp[(1) - (1)].cword)), (yylsp[(1) - (1)]));
|
@@ -4598,12 +4565,12 @@ yyreduce:
|
|
4598
4565
|
break;
|
4599
4566
|
|
4600
4567
|
case 149:
|
4601
|
-
#line
|
4568
|
+
#line 2290 "pl_gram.y"
|
4602
4569
|
{ (yyval.exception_block) = NULL; ;}
|
4603
4570
|
break;
|
4604
4571
|
|
4605
4572
|
case 150:
|
4606
|
-
#line
|
4573
|
+
#line 2292 "pl_gram.y"
|
4607
4574
|
{
|
4608
4575
|
/*
|
4609
4576
|
* We use a mid-rule action to add these
|
@@ -4639,7 +4606,7 @@ yyreduce:
|
|
4639
4606
|
break;
|
4640
4607
|
|
4641
4608
|
case 151:
|
4642
|
-
#line
|
4609
|
+
#line 2325 "pl_gram.y"
|
4643
4610
|
{
|
4644
4611
|
PLpgSQL_exception_block *new = (yyvsp[(2) - (3)].exception_block);
|
4645
4612
|
new->exc_list = (yyvsp[(3) - (3)].list);
|
@@ -4649,21 +4616,21 @@ yyreduce:
|
|
4649
4616
|
break;
|
4650
4617
|
|
4651
4618
|
case 152:
|
4652
|
-
#line
|
4619
|
+
#line 2334 "pl_gram.y"
|
4653
4620
|
{
|
4654
4621
|
(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].exception));
|
4655
4622
|
;}
|
4656
4623
|
break;
|
4657
4624
|
|
4658
4625
|
case 153:
|
4659
|
-
#line
|
4626
|
+
#line 2338 "pl_gram.y"
|
4660
4627
|
{
|
4661
4628
|
(yyval.list) = list_make1((yyvsp[(1) - (1)].exception));
|
4662
4629
|
;}
|
4663
4630
|
break;
|
4664
4631
|
|
4665
4632
|
case 154:
|
4666
|
-
#line
|
4633
|
+
#line 2344 "pl_gram.y"
|
4667
4634
|
{
|
4668
4635
|
PLpgSQL_exception *new;
|
4669
4636
|
|
@@ -4677,7 +4644,7 @@ yyreduce:
|
|
4677
4644
|
break;
|
4678
4645
|
|
4679
4646
|
case 155:
|
4680
|
-
#line
|
4647
|
+
#line 2357 "pl_gram.y"
|
4681
4648
|
{
|
4682
4649
|
PLpgSQL_condition *old;
|
4683
4650
|
|
@@ -4689,14 +4656,14 @@ yyreduce:
|
|
4689
4656
|
break;
|
4690
4657
|
|
4691
4658
|
case 156:
|
4692
|
-
#line
|
4659
|
+
#line 2366 "pl_gram.y"
|
4693
4660
|
{
|
4694
4661
|
(yyval.condition) = (yyvsp[(1) - (1)].condition);
|
4695
4662
|
;}
|
4696
4663
|
break;
|
4697
4664
|
|
4698
4665
|
case 157:
|
4699
|
-
#line
|
4666
|
+
#line 2372 "pl_gram.y"
|
4700
4667
|
{
|
4701
4668
|
if (strcmp((yyvsp[(1) - (1)].str), "sqlstate") != 0)
|
4702
4669
|
{
|
@@ -4733,22 +4700,22 @@ yyreduce:
|
|
4733
4700
|
break;
|
4734
4701
|
|
4735
4702
|
case 158:
|
4736
|
-
#line
|
4703
|
+
#line 2408 "pl_gram.y"
|
4737
4704
|
{ (yyval.expr) = read_sql_expression(';', ";"); ;}
|
4738
4705
|
break;
|
4739
4706
|
|
4740
4707
|
case 159:
|
4741
|
-
#line
|
4708
|
+
#line 2412 "pl_gram.y"
|
4742
4709
|
{ (yyval.expr) = read_sql_expression(K_THEN, "THEN"); ;}
|
4743
4710
|
break;
|
4744
4711
|
|
4745
4712
|
case 160:
|
4746
|
-
#line
|
4713
|
+
#line 2416 "pl_gram.y"
|
4747
4714
|
{ (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); ;}
|
4748
4715
|
break;
|
4749
4716
|
|
4750
4717
|
case 161:
|
4751
|
-
#line
|
4718
|
+
#line 2420 "pl_gram.y"
|
4752
4719
|
{
|
4753
4720
|
plpgsql_ns_push(NULL, PLPGSQL_LABEL_BLOCK);
|
4754
4721
|
(yyval.str) = NULL;
|
@@ -4756,7 +4723,7 @@ yyreduce:
|
|
4756
4723
|
break;
|
4757
4724
|
|
4758
4725
|
case 162:
|
4759
|
-
#line
|
4726
|
+
#line 2425 "pl_gram.y"
|
4760
4727
|
{
|
4761
4728
|
plpgsql_ns_push((yyvsp[(2) - (3)].str), PLPGSQL_LABEL_BLOCK);
|
4762
4729
|
(yyval.str) = (yyvsp[(2) - (3)].str);
|
@@ -4764,7 +4731,7 @@ yyreduce:
|
|
4764
4731
|
break;
|
4765
4732
|
|
4766
4733
|
case 163:
|
4767
|
-
#line
|
4734
|
+
#line 2432 "pl_gram.y"
|
4768
4735
|
{
|
4769
4736
|
plpgsql_ns_push(NULL, PLPGSQL_LABEL_LOOP);
|
4770
4737
|
(yyval.str) = NULL;
|
@@ -4772,7 +4739,7 @@ yyreduce:
|
|
4772
4739
|
break;
|
4773
4740
|
|
4774
4741
|
case 164:
|
4775
|
-
#line
|
4742
|
+
#line 2437 "pl_gram.y"
|
4776
4743
|
{
|
4777
4744
|
plpgsql_ns_push((yyvsp[(2) - (3)].str), PLPGSQL_LABEL_LOOP);
|
4778
4745
|
(yyval.str) = (yyvsp[(2) - (3)].str);
|
@@ -4780,14 +4747,14 @@ yyreduce:
|
|
4780
4747
|
break;
|
4781
4748
|
|
4782
4749
|
case 165:
|
4783
|
-
#line
|
4750
|
+
#line 2444 "pl_gram.y"
|
4784
4751
|
{
|
4785
4752
|
(yyval.str) = NULL;
|
4786
4753
|
;}
|
4787
4754
|
break;
|
4788
4755
|
|
4789
4756
|
case 166:
|
4790
|
-
#line
|
4757
|
+
#line 2448 "pl_gram.y"
|
4791
4758
|
{
|
4792
4759
|
/* label validity will be checked by outer production */
|
4793
4760
|
(yyval.str) = (yyvsp[(1) - (1)].str);
|
@@ -4795,31 +4762,31 @@ yyreduce:
|
|
4795
4762
|
break;
|
4796
4763
|
|
4797
4764
|
case 167:
|
4798
|
-
#line
|
4765
|
+
#line 2455 "pl_gram.y"
|
4799
4766
|
{ (yyval.expr) = NULL; ;}
|
4800
4767
|
break;
|
4801
4768
|
|
4802
4769
|
case 168:
|
4803
|
-
#line
|
4770
|
+
#line 2457 "pl_gram.y"
|
4804
4771
|
{ (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
|
4805
4772
|
break;
|
4806
4773
|
|
4807
4774
|
case 169:
|
4808
|
-
#line
|
4775
|
+
#line 2464 "pl_gram.y"
|
4809
4776
|
{
|
4810
4777
|
(yyval.str) = (yyvsp[(1) - (1)].word).ident;
|
4811
4778
|
;}
|
4812
4779
|
break;
|
4813
4780
|
|
4814
4781
|
case 170:
|
4815
|
-
#line
|
4782
|
+
#line 2468 "pl_gram.y"
|
4816
4783
|
{
|
4817
4784
|
(yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword));
|
4818
4785
|
;}
|
4819
4786
|
break;
|
4820
4787
|
|
4821
4788
|
case 171:
|
4822
|
-
#line
|
4789
|
+
#line 2472 "pl_gram.y"
|
4823
4790
|
{
|
4824
4791
|
if ((yyvsp[(1) - (1)].wdatum).ident == NULL) /* composite name not OK */
|
4825
4792
|
yyerror("syntax error");
|
@@ -4829,7 +4796,7 @@ yyreduce:
|
|
4829
4796
|
|
4830
4797
|
|
4831
4798
|
/* Line 1267 of yacc.c. */
|
4832
|
-
#line
|
4799
|
+
#line 4747 "pl_gram.c"
|
4833
4800
|
default: break;
|
4834
4801
|
}
|
4835
4802
|
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
@@ -5049,7 +5016,7 @@ yyreturn:
|
|
5049
5016
|
}
|
5050
5017
|
|
5051
5018
|
|
5052
|
-
#line
|
5019
|
+
#line 2564 "pl_gram.y"
|
5053
5020
|
|
5054
5021
|
|
5055
5022
|
/*
|
@@ -5128,7 +5095,7 @@ read_sql_expression(int until, const char *expected)
|
|
5128
5095
|
{
|
5129
5096
|
return read_sql_construct(until, 0, 0, expected,
|
5130
5097
|
RAW_PARSE_PLPGSQL_EXPR,
|
5131
|
-
true, true,
|
5098
|
+
true, true, NULL, NULL);
|
5132
5099
|
}
|
5133
5100
|
|
5134
5101
|
/* Convenience routine to read an expression with two possible terminators */
|
@@ -5138,7 +5105,7 @@ read_sql_expression2(int until, int until2, const char *expected,
|
|
5138
5105
|
{
|
5139
5106
|
return read_sql_construct(until, until2, 0, expected,
|
5140
5107
|
RAW_PARSE_PLPGSQL_EXPR,
|
5141
|
-
true, true,
|
5108
|
+
true, true, NULL, endtoken);
|
5142
5109
|
}
|
5143
5110
|
|
5144
5111
|
/* Convenience routine to read a SQL statement that must end with ';' */
|
@@ -5147,7 +5114,7 @@ read_sql_stmt(void)
|
|
5147
5114
|
{
|
5148
5115
|
return read_sql_construct(';', 0, 0, ";",
|
5149
5116
|
RAW_PARSE_DEFAULT,
|
5150
|
-
false, true,
|
5117
|
+
false, true, NULL, NULL);
|
5151
5118
|
}
|
5152
5119
|
|
5153
5120
|
/*
|
@@ -5160,7 +5127,6 @@ read_sql_stmt(void)
|
|
5160
5127
|
* parsemode: raw_parser() mode to use
|
5161
5128
|
* isexpression: whether to say we're reading an "expression" or a "statement"
|
5162
5129
|
* valid_sql: whether to check the syntax of the expr
|
5163
|
-
* trim: trim trailing whitespace
|
5164
5130
|
* startloc: if not NULL, location of first token is stored at *startloc
|
5165
5131
|
* endtoken: if not NULL, ending token is stored at *endtoken
|
5166
5132
|
* (this is only interesting if until2 or until3 isn't zero)
|
@@ -5173,7 +5139,6 @@ read_sql_construct(int until,
|
|
5173
5139
|
RawParseMode parsemode,
|
5174
5140
|
bool isexpression,
|
5175
5141
|
bool valid_sql,
|
5176
|
-
bool trim,
|
5177
5142
|
int *startloc,
|
5178
5143
|
int *endtoken)
|
5179
5144
|
{
|
@@ -5181,6 +5146,7 @@ read_sql_construct(int until,
|
|
5181
5146
|
StringInfoData ds;
|
5182
5147
|
IdentifierLookup save_IdentifierLookup;
|
5183
5148
|
int startlocation = -1;
|
5149
|
+
int endlocation = -1;
|
5184
5150
|
int parenlevel = 0;
|
5185
5151
|
PLpgSQL_expr *expr;
|
5186
5152
|
|
@@ -5231,6 +5197,8 @@ read_sql_construct(int until,
|
|
5231
5197
|
expected),
|
5232
5198
|
parser_errposition(yylloc)));
|
5233
5199
|
}
|
5200
|
+
/* Remember end+1 location of last accepted token */
|
5201
|
+
endlocation = yylloc + plpgsql_token_length();
|
5234
5202
|
}
|
5235
5203
|
|
5236
5204
|
plpgsql_IdentifierLookup = save_IdentifierLookup;
|
@@ -5241,7 +5209,7 @@ read_sql_construct(int until,
|
|
5241
5209
|
*endtoken = tok;
|
5242
5210
|
|
5243
5211
|
/* give helpful complaint about empty input */
|
5244
|
-
if (startlocation >=
|
5212
|
+
if (startlocation >= endlocation)
|
5245
5213
|
{
|
5246
5214
|
if (isexpression)
|
5247
5215
|
yyerror("missing expression");
|
@@ -5249,14 +5217,14 @@ read_sql_construct(int until,
|
|
5249
5217
|
yyerror("missing SQL statement");
|
5250
5218
|
}
|
5251
5219
|
|
5252
|
-
|
5253
|
-
|
5254
|
-
|
5255
|
-
|
5256
|
-
|
5257
|
-
|
5258
|
-
|
5259
|
-
|
5220
|
+
/*
|
5221
|
+
* We save only the text from startlocation to endlocation-1. This
|
5222
|
+
* suppresses the "until" token as well as any whitespace or comments
|
5223
|
+
* following the last accepted token. (We used to strip such trailing
|
5224
|
+
* whitespace by hand, but that causes problems if there's a "-- comment"
|
5225
|
+
* in front of said whitespace.)
|
5226
|
+
*/
|
5227
|
+
plpgsql_append_source_text(&ds, startlocation, endlocation);
|
5260
5228
|
|
5261
5229
|
expr = palloc0(sizeof(PLpgSQL_expr));
|
5262
5230
|
expr->query = pstrdup(ds.data);
|
@@ -5273,13 +5241,17 @@ read_sql_construct(int until,
|
|
5273
5241
|
return expr;
|
5274
5242
|
}
|
5275
5243
|
|
5244
|
+
/*
|
5245
|
+
* Read a datatype declaration, consuming the current lookahead token if any.
|
5246
|
+
* Returns a PLpgSQL_type struct.
|
5247
|
+
*/
|
5276
5248
|
static PLpgSQL_type *
|
5277
5249
|
read_datatype(int tok)
|
5278
5250
|
{
|
5279
5251
|
StringInfoData ds;
|
5280
5252
|
char *type_name;
|
5281
5253
|
int startlocation;
|
5282
|
-
PLpgSQL_type *result;
|
5254
|
+
PLpgSQL_type *result = NULL;
|
5283
5255
|
int parenlevel = 0;
|
5284
5256
|
|
5285
5257
|
/* Should only be called while parsing DECLARE sections */
|
@@ -5289,11 +5261,12 @@ read_datatype(int tok)
|
|
5289
5261
|
if (tok == YYEMPTY)
|
5290
5262
|
tok = yylex();
|
5291
5263
|
|
5264
|
+
/* The current token is the start of what we'll pass to parse_datatype */
|
5292
5265
|
startlocation = yylloc;
|
5293
5266
|
|
5294
5267
|
/*
|
5295
|
-
* If we have a simple or composite identifier, check for %TYPE
|
5296
|
-
*
|
5268
|
+
* If we have a simple or composite identifier, check for %TYPE and
|
5269
|
+
* %ROWTYPE constructs.
|
5297
5270
|
*/
|
5298
5271
|
if (tok == T_WORD)
|
5299
5272
|
{
|
@@ -5305,18 +5278,10 @@ read_datatype(int tok)
|
|
5305
5278
|
tok = yylex();
|
5306
5279
|
if (tok_is_keyword(tok, &yylval,
|
5307
5280
|
K_TYPE, "type"))
|
5308
|
-
{
|
5309
5281
|
result = plpgsql_parse_wordtype(dtname);
|
5310
|
-
if (result)
|
5311
|
-
return result;
|
5312
|
-
}
|
5313
5282
|
else if (tok_is_keyword(tok, &yylval,
|
5314
5283
|
K_ROWTYPE, "rowtype"))
|
5315
|
-
{
|
5316
5284
|
result = plpgsql_parse_wordrowtype(dtname);
|
5317
|
-
if (result)
|
5318
|
-
return result;
|
5319
|
-
}
|
5320
5285
|
}
|
5321
5286
|
}
|
5322
5287
|
else if (plpgsql_token_is_unreserved_keyword(tok))
|
@@ -5329,18 +5294,10 @@ read_datatype(int tok)
|
|
5329
5294
|
tok = yylex();
|
5330
5295
|
if (tok_is_keyword(tok, &yylval,
|
5331
5296
|
K_TYPE, "type"))
|
5332
|
-
{
|
5333
5297
|
result = plpgsql_parse_wordtype(dtname);
|
5334
|
-
if (result)
|
5335
|
-
return result;
|
5336
|
-
}
|
5337
5298
|
else if (tok_is_keyword(tok, &yylval,
|
5338
5299
|
K_ROWTYPE, "rowtype"))
|
5339
|
-
{
|
5340
5300
|
result = plpgsql_parse_wordrowtype(dtname);
|
5341
|
-
if (result)
|
5342
|
-
return result;
|
5343
|
-
}
|
5344
5301
|
}
|
5345
5302
|
}
|
5346
5303
|
else if (tok == T_CWORD)
|
@@ -5353,21 +5310,56 @@ read_datatype(int tok)
|
|
5353
5310
|
tok = yylex();
|
5354
5311
|
if (tok_is_keyword(tok, &yylval,
|
5355
5312
|
K_TYPE, "type"))
|
5356
|
-
{
|
5357
5313
|
result = plpgsql_parse_cwordtype(dtnames);
|
5358
|
-
if (result)
|
5359
|
-
return result;
|
5360
|
-
}
|
5361
5314
|
else if (tok_is_keyword(tok, &yylval,
|
5362
5315
|
K_ROWTYPE, "rowtype"))
|
5363
|
-
{
|
5364
5316
|
result = plpgsql_parse_cwordrowtype(dtnames);
|
5365
|
-
if (result)
|
5366
|
-
return result;
|
5367
|
-
}
|
5368
5317
|
}
|
5369
5318
|
}
|
5370
5319
|
|
5320
|
+
/*
|
5321
|
+
* If we recognized a %TYPE or %ROWTYPE construct, see if it is followed
|
5322
|
+
* by array decoration: [ ARRAY ] [ '[' [ iconst ] ']' [ ... ] ]
|
5323
|
+
*
|
5324
|
+
* Like the core parser, we ignore the specific numbers and sizes of
|
5325
|
+
* dimensions; arrays of different dimensionality are still the same type
|
5326
|
+
* in Postgres.
|
5327
|
+
*/
|
5328
|
+
if (result)
|
5329
|
+
{
|
5330
|
+
bool is_array = false;
|
5331
|
+
|
5332
|
+
tok = yylex();
|
5333
|
+
if (tok_is_keyword(tok, &yylval,
|
5334
|
+
K_ARRAY, "array"))
|
5335
|
+
{
|
5336
|
+
is_array = true;
|
5337
|
+
tok = yylex();
|
5338
|
+
}
|
5339
|
+
while (tok == '[')
|
5340
|
+
{
|
5341
|
+
is_array = true;
|
5342
|
+
tok = yylex();
|
5343
|
+
if (tok == ICONST)
|
5344
|
+
tok = yylex();
|
5345
|
+
if (tok != ']')
|
5346
|
+
yyerror("syntax error, expected \"]\"");
|
5347
|
+
tok = yylex();
|
5348
|
+
}
|
5349
|
+
plpgsql_push_back_token(tok);
|
5350
|
+
|
5351
|
+
if (is_array)
|
5352
|
+
result = plpgsql_build_datatype_arrayof(result);
|
5353
|
+
|
5354
|
+
return result;
|
5355
|
+
}
|
5356
|
+
|
5357
|
+
/*
|
5358
|
+
* Not %TYPE or %ROWTYPE, so scan to the end of the datatype declaration,
|
5359
|
+
* which could include typmod or array decoration. We are not very picky
|
5360
|
+
* here, instead relying on parse_datatype to complain about garbage. But
|
5361
|
+
* we must count parens to handle typmods within cursor_arg correctly.
|
5362
|
+
*/
|
5371
5363
|
while (tok != ';')
|
5372
5364
|
{
|
5373
5365
|
if (tok == 0)
|
@@ -5409,8 +5401,13 @@ read_datatype(int tok)
|
|
5409
5401
|
return result;
|
5410
5402
|
}
|
5411
5403
|
|
5404
|
+
/*
|
5405
|
+
* Read a generic SQL statement. We have already read its first token;
|
5406
|
+
* firsttoken is that token's code and location its starting location.
|
5407
|
+
* If firsttoken == T_WORD, pass its yylval value as "word", else pass NULL.
|
5408
|
+
*/
|
5412
5409
|
static PLpgSQL_stmt *
|
5413
|
-
make_execsql_stmt(int firsttoken, int location)
|
5410
|
+
make_execsql_stmt(int firsttoken, int location, PLword *word)
|
5414
5411
|
{
|
5415
5412
|
StringInfoData ds;
|
5416
5413
|
IdentifierLookup save_IdentifierLookup;
|
@@ -5423,9 +5420,16 @@ make_execsql_stmt(int firsttoken, int location)
|
|
5423
5420
|
bool have_strict = false;
|
5424
5421
|
int into_start_loc = -1;
|
5425
5422
|
int into_end_loc = -1;
|
5423
|
+
int paren_depth = 0;
|
5424
|
+
int begin_depth = 0;
|
5425
|
+
bool in_routine_definition = false;
|
5426
|
+
int token_count = 0;
|
5427
|
+
char tokens[4]; /* records the first few tokens */
|
5426
5428
|
|
5427
5429
|
initStringInfo(&ds);
|
5428
5430
|
|
5431
|
+
memset(tokens, 0, sizeof(tokens));
|
5432
|
+
|
5429
5433
|
/* special lookup mode for identifiers within the SQL text */
|
5430
5434
|
save_IdentifierLookup = plpgsql_IdentifierLookup;
|
5431
5435
|
plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR;
|
@@ -5434,6 +5438,12 @@ make_execsql_stmt(int firsttoken, int location)
|
|
5434
5438
|
* Scan to the end of the SQL command. Identify any INTO-variables
|
5435
5439
|
* clause lurking within it, and parse that via read_into_target().
|
5436
5440
|
*
|
5441
|
+
* The end of the statement is defined by a semicolon ... except that
|
5442
|
+
* semicolons within parentheses or BEGIN/END blocks don't terminate a
|
5443
|
+
* statement. We follow psql's lead in not recognizing BEGIN/END except
|
5444
|
+
* after CREATE [OR REPLACE] {FUNCTION|PROCEDURE}. END can also appear
|
5445
|
+
* within a CASE construct, so we treat CASE/END like BEGIN/END.
|
5446
|
+
*
|
5437
5447
|
* Because INTO is sometimes used in the main SQL grammar, we have to be
|
5438
5448
|
* careful not to take any such usage of INTO as a PL/pgSQL INTO clause.
|
5439
5449
|
* There are currently three such cases:
|
@@ -5459,13 +5469,50 @@ make_execsql_stmt(int firsttoken, int location)
|
|
5459
5469
|
* break this logic again ... beware!
|
5460
5470
|
*/
|
5461
5471
|
tok = firsttoken;
|
5472
|
+
if (tok == T_WORD && strcmp(word->ident, "create") == 0)
|
5473
|
+
tokens[token_count] = 'c';
|
5474
|
+
token_count++;
|
5475
|
+
|
5462
5476
|
for (;;)
|
5463
5477
|
{
|
5464
5478
|
prev_tok = tok;
|
5465
5479
|
tok = yylex();
|
5466
5480
|
if (have_into && into_end_loc < 0)
|
5467
5481
|
into_end_loc = yylloc; /* token after the INTO part */
|
5468
|
-
|
5482
|
+
/* Detect CREATE [OR REPLACE] {FUNCTION|PROCEDURE} */
|
5483
|
+
if (tokens[0] == 'c' && token_count < sizeof(tokens))
|
5484
|
+
{
|
5485
|
+
if (tok == K_OR)
|
5486
|
+
tokens[token_count] = 'o';
|
5487
|
+
else if (tok == T_WORD &&
|
5488
|
+
strcmp(yylval.word.ident, "replace") == 0)
|
5489
|
+
tokens[token_count] = 'r';
|
5490
|
+
else if (tok == T_WORD &&
|
5491
|
+
strcmp(yylval.word.ident, "function") == 0)
|
5492
|
+
tokens[token_count] = 'f';
|
5493
|
+
else if (tok == T_WORD &&
|
5494
|
+
strcmp(yylval.word.ident, "procedure") == 0)
|
5495
|
+
tokens[token_count] = 'f'; /* treat same as "function" */
|
5496
|
+
if (tokens[1] == 'f' ||
|
5497
|
+
(tokens[1] == 'o' && tokens[2] == 'r' && tokens[3] == 'f'))
|
5498
|
+
in_routine_definition = true;
|
5499
|
+
token_count++;
|
5500
|
+
}
|
5501
|
+
/* Track paren nesting (needed for CREATE RULE syntax) */
|
5502
|
+
if (tok == '(')
|
5503
|
+
paren_depth++;
|
5504
|
+
else if (tok == ')' && paren_depth > 0)
|
5505
|
+
paren_depth--;
|
5506
|
+
/* We need track BEGIN/END nesting only in a routine definition */
|
5507
|
+
if (in_routine_definition && paren_depth == 0)
|
5508
|
+
{
|
5509
|
+
if (tok == K_BEGIN || tok == K_CASE)
|
5510
|
+
begin_depth++;
|
5511
|
+
else if (tok == K_END && begin_depth > 0)
|
5512
|
+
begin_depth--;
|
5513
|
+
}
|
5514
|
+
/* Command-ending semicolon? */
|
5515
|
+
if (tok == ';' && paren_depth == 0 && begin_depth == 0)
|
5469
5516
|
break;
|
5470
5517
|
if (tok == 0)
|
5471
5518
|
yyerror("unexpected end of function definition");
|
@@ -5629,11 +5676,11 @@ read_fetch_direction(void)
|
|
5629
5676
|
{
|
5630
5677
|
/*
|
5631
5678
|
* Assume it's a count expression with no preceding keyword.
|
5632
|
-
* Note: we allow this syntax because core SQL does, but
|
5633
|
-
*
|
5634
|
-
*
|
5635
|
-
* Perhaps this can be improved
|
5636
|
-
* lot of work.
|
5679
|
+
* Note: we allow this syntax because core SQL does, but it's
|
5680
|
+
* ambiguous with the case of an omitted direction clause; for
|
5681
|
+
* instance, "MOVE n IN c" will fail if n is a variable, because the
|
5682
|
+
* preceding else-arm will trigger. Perhaps this can be improved
|
5683
|
+
* someday, but it hardly seems worth a lot of work.
|
5637
5684
|
*/
|
5638
5685
|
plpgsql_push_back_token(tok);
|
5639
5686
|
fetch->expr = read_sql_expression2(K_FROM, K_IN,
|
@@ -6123,7 +6170,30 @@ plpgsql_sql_error_callback(void *arg)
|
|
6123
6170
|
* This is handled the same as in check_sql_expr(), and we likewise
|
6124
6171
|
* expect that the given string is a copy from the source text.
|
6125
6172
|
*/
|
6126
|
-
|
6173
|
+
|
6174
|
+
#include "catalog/pg_collation_d.h"
|
6175
|
+
static PLpgSQL_type * parse_datatype(const char *string, int location) {
|
6176
|
+
PLpgSQL_type *typ;
|
6177
|
+
|
6178
|
+
/* Ignore trailing spaces */
|
6179
|
+
size_t len = strlen(string);
|
6180
|
+
while (len > 0 && scanner_isspace(string[len - 1])) --len;
|
6181
|
+
|
6182
|
+
typ = (PLpgSQL_type *) palloc0(sizeof(PLpgSQL_type));
|
6183
|
+
typ->typname = pstrdup(string);
|
6184
|
+
typ->ttype = pg_strncasecmp(string, "RECORD", len) == 0 ? PLPGSQL_TTYPE_REC : PLPGSQL_TTYPE_SCALAR;
|
6185
|
+
if (pg_strncasecmp(string, "REFCURSOR", len) == 0 || pg_strncasecmp(string, "CURSOR", len) == 0)
|
6186
|
+
{
|
6187
|
+
typ->typoid = REFCURSOROID;
|
6188
|
+
}
|
6189
|
+
else if (pg_strncasecmp(string, "TEXT", len) == 0)
|
6190
|
+
{
|
6191
|
+
typ->typoid = TEXTOID;
|
6192
|
+
typ->collation = DEFAULT_COLLATION_OID;
|
6193
|
+
}
|
6194
|
+
return typ;
|
6195
|
+
}
|
6196
|
+
|
6127
6197
|
|
6128
6198
|
|
6129
6199
|
/*
|
@@ -6262,16 +6332,12 @@ read_cursor_args(PLpgSQL_var *cursor, int until)
|
|
6262
6332
|
* Read the value expression. To provide the user with meaningful
|
6263
6333
|
* parse error positions, we check the syntax immediately, instead of
|
6264
6334
|
* checking the final expression that may have the arguments
|
6265
|
-
* reordered.
|
6266
|
-
* otherwise input of the form (param -- comment\n, param) would be
|
6267
|
-
* translated into a form where the second parameter is commented
|
6268
|
-
* out.
|
6335
|
+
* reordered.
|
6269
6336
|
*/
|
6270
6337
|
item = read_sql_construct(',', ')', 0,
|
6271
6338
|
",\" or \")",
|
6272
6339
|
RAW_PARSE_PLPGSQL_EXPR,
|
6273
6340
|
true, true,
|
6274
|
-
false, /* do not trim */
|
6275
6341
|
NULL, &endtoken);
|
6276
6342
|
|
6277
6343
|
argv[argpos] = item->query;
|