pg_query 2.2.0 → 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.
Files changed (895) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +86 -0
  3. data/README.md +57 -31
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/ext_symbols_freebsd.sym +1 -0
  6. data/ext/pg_query/ext_symbols_freebsd_with_ruby_abi_version.sym +2 -0
  7. data/ext/pg_query/ext_symbols_openbsd.sym +1 -0
  8. data/ext/pg_query/ext_symbols_openbsd_with_ruby_abi_version.sym +2 -0
  9. data/ext/pg_query/ext_symbols_with_ruby_abi_version.sym +2 -0
  10. data/ext/pg_query/extconf.rb +33 -9
  11. data/ext/pg_query/include/pg_query.h +30 -4
  12. data/ext/pg_query/include/pg_query_enum_defs.c +839 -290
  13. data/ext/pg_query/include/pg_query_fingerprint_conds.c +638 -481
  14. data/ext/pg_query/include/pg_query_fingerprint_defs.c +6786 -4193
  15. data/ext/pg_query/include/pg_query_outfuncs_conds.c +450 -330
  16. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1489 -1044
  17. data/ext/pg_query/include/pg_query_readfuncs_conds.c +157 -118
  18. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1933 -1410
  19. data/ext/pg_query/include/postgres/access/amapi.h +303 -0
  20. data/ext/pg_query/include/postgres/access/attmap.h +54 -0
  21. data/ext/pg_query/include/postgres/access/attnum.h +64 -0
  22. data/ext/pg_query/include/postgres/access/brin_internal.h +116 -0
  23. data/ext/pg_query/include/postgres/access/brin_tuple.h +112 -0
  24. data/ext/pg_query/include/postgres/access/clog.h +62 -0
  25. data/ext/pg_query/include/postgres/access/commit_ts.h +73 -0
  26. data/ext/pg_query/include/postgres/access/detoast.h +82 -0
  27. data/ext/pg_query/include/postgres/access/genam.h +246 -0
  28. data/ext/pg_query/include/postgres/access/gin.h +91 -0
  29. data/ext/pg_query/include/postgres/access/htup.h +89 -0
  30. data/ext/pg_query/include/postgres/access/htup_details.h +811 -0
  31. data/ext/pg_query/include/postgres/access/itup.h +170 -0
  32. data/ext/pg_query/include/postgres/access/parallel.h +81 -0
  33. data/ext/pg_query/include/postgres/access/printtup.h +35 -0
  34. data/ext/pg_query/include/postgres/access/relation.h +28 -0
  35. data/ext/pg_query/include/postgres/access/relscan.h +191 -0
  36. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  37. data/ext/pg_query/include/postgres/access/rmgrlist.h +49 -0
  38. data/ext/pg_query/include/postgres/access/sdir.h +67 -0
  39. data/ext/pg_query/include/postgres/access/skey.h +151 -0
  40. data/ext/pg_query/include/postgres/access/slru.h +218 -0
  41. data/ext/pg_query/include/postgres/access/stratnum.h +85 -0
  42. data/ext/pg_query/include/postgres/access/sysattr.h +29 -0
  43. data/ext/pg_query/include/postgres/access/table.h +28 -0
  44. data/ext/pg_query/include/postgres/access/tableam.h +2110 -0
  45. data/ext/pg_query/include/postgres/access/tidstore.h +50 -0
  46. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  47. data/ext/pg_query/include/postgres/access/transam.h +418 -0
  48. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  49. data/ext/pg_query/include/postgres/access/tupconvert.h +54 -0
  50. data/ext/pg_query/include/postgres/access/tupdesc.h +154 -0
  51. data/ext/pg_query/include/postgres/access/tupmacs.h +207 -0
  52. data/ext/pg_query/include/postgres/access/twophase.h +65 -0
  53. data/ext/pg_query/include/postgres/access/xact.h +530 -0
  54. data/ext/pg_query/include/postgres/access/xlog.h +310 -0
  55. data/ext/pg_query/include/postgres/access/xlog_internal.h +405 -0
  56. data/ext/pg_query/include/postgres/access/xlogbackup.h +43 -0
  57. data/ext/pg_query/include/postgres/access/xlogdefs.h +82 -0
  58. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  59. data/ext/pg_query/include/postgres/access/xlogreader.h +444 -0
  60. data/ext/pg_query/include/postgres/access/xlogrecord.h +248 -0
  61. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  62. data/ext/pg_query/include/postgres/archive/archive_module.h +67 -0
  63. data/ext/pg_query/include/postgres/c.h +1374 -0
  64. data/ext/pg_query/include/postgres/catalog/catalog.h +47 -0
  65. data/ext/pg_query/include/postgres/catalog/catversion.h +62 -0
  66. data/ext/pg_query/include/postgres/catalog/dependency.h +228 -0
  67. data/ext/pg_query/include/postgres/catalog/genbki.h +149 -0
  68. data/ext/pg_query/include/postgres/catalog/index.h +218 -0
  69. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  70. data/ext/pg_query/include/postgres/catalog/namespace.h +189 -0
  71. data/ext/pg_query/include/postgres/catalog/objectaccess.h +267 -0
  72. data/ext/pg_query/include/postgres/catalog/objectaddress.h +93 -0
  73. data/ext/pg_query/include/postgres/catalog/pg_aggregate.h +182 -0
  74. data/ext/pg_query/include/postgres/catalog/pg_aggregate_d.h +78 -0
  75. data/ext/pg_query/include/postgres/catalog/pg_am.h +66 -0
  76. data/ext/pg_query/include/postgres/catalog/pg_am_d.h +47 -0
  77. data/ext/pg_query/include/postgres/catalog/pg_attribute.h +240 -0
  78. data/ext/pg_query/include/postgres/catalog/pg_attribute_d.h +62 -0
  79. data/ext/pg_query/include/postgres/catalog/pg_authid.h +66 -0
  80. data/ext/pg_query/include/postgres/catalog/pg_authid_d.h +60 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_class.h +235 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_class_d.h +134 -0
  83. data/ext/pg_query/include/postgres/catalog/pg_collation.h +106 -0
  84. data/ext/pg_query/include/postgres/catalog/pg_collation_d.h +66 -0
  85. data/ext/pg_query/include/postgres/catalog/pg_constraint.h +278 -0
  86. data/ext/pg_query/include/postgres/catalog/pg_constraint_d.h +74 -0
  87. data/ext/pg_query/include/postgres/catalog/pg_control.h +260 -0
  88. data/ext/pg_query/include/postgres/catalog/pg_conversion.h +79 -0
  89. data/ext/pg_query/include/postgres/catalog/pg_conversion_d.h +38 -0
  90. data/ext/pg_query/include/postgres/catalog/pg_database.h +129 -0
  91. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +53 -0
  92. data/ext/pg_query/include/postgres/catalog/pg_depend.h +77 -0
  93. data/ext/pg_query/include/postgres/catalog/pg_depend_d.h +36 -0
  94. data/ext/pg_query/include/postgres/catalog/pg_event_trigger.h +60 -0
  95. data/ext/pg_query/include/postgres/catalog/pg_event_trigger_d.h +36 -0
  96. data/ext/pg_query/include/postgres/catalog/pg_index.h +92 -0
  97. data/ext/pg_query/include/postgres/catalog/pg_index_d.h +59 -0
  98. data/ext/pg_query/include/postgres/catalog/pg_language.h +75 -0
  99. data/ext/pg_query/include/postgres/catalog/pg_language_d.h +41 -0
  100. data/ext/pg_query/include/postgres/catalog/pg_namespace.h +67 -0
  101. data/ext/pg_query/include/postgres/catalog/pg_namespace_d.h +36 -0
  102. data/ext/pg_query/include/postgres/catalog/pg_opclass.h +91 -0
  103. data/ext/pg_query/include/postgres/catalog/pg_opclass_d.h +51 -0
  104. data/ext/pg_query/include/postgres/catalog/pg_operator.h +124 -0
  105. data/ext/pg_query/include/postgres/catalog/pg_operator_d.h +142 -0
  106. data/ext/pg_query/include/postgres/catalog/pg_opfamily.h +67 -0
  107. data/ext/pg_query/include/postgres/catalog/pg_opfamily_d.h +51 -0
  108. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table.h +76 -0
  109. data/ext/pg_query/include/postgres/catalog/pg_partitioned_table_d.h +36 -0
  110. data/ext/pg_query/include/postgres/catalog/pg_proc.h +223 -0
  111. data/ext/pg_query/include/postgres/catalog/pg_proc_d.h +101 -0
  112. data/ext/pg_query/include/postgres/catalog/pg_publication.h +161 -0
  113. data/ext/pg_query/include/postgres/catalog/pg_publication_d.h +38 -0
  114. data/ext/pg_query/include/postgres/catalog/pg_replication_origin.h +65 -0
  115. data/ext/pg_query/include/postgres/catalog/pg_replication_origin_d.h +33 -0
  116. data/ext/pg_query/include/postgres/catalog/pg_statistic.h +288 -0
  117. data/ext/pg_query/include/postgres/catalog/pg_statistic_d.h +199 -0
  118. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext.h +91 -0
  119. data/ext/pg_query/include/postgres/catalog/pg_statistic_ext_d.h +45 -0
  120. data/ext/pg_query/include/postgres/catalog/pg_transform.h +51 -0
  121. data/ext/pg_query/include/postgres/catalog/pg_transform_d.h +34 -0
  122. data/ext/pg_query/include/postgres/catalog/pg_trigger.h +153 -0
  123. data/ext/pg_query/include/postgres/catalog/pg_trigger_d.h +109 -0
  124. data/ext/pg_query/include/postgres/catalog/pg_ts_config.h +56 -0
  125. data/ext/pg_query/include/postgres/catalog/pg_ts_config_d.h +34 -0
  126. data/ext/pg_query/include/postgres/catalog/pg_ts_dict.h +62 -0
  127. data/ext/pg_query/include/postgres/catalog/pg_ts_dict_d.h +35 -0
  128. data/ext/pg_query/include/postgres/catalog/pg_ts_parser.h +63 -0
  129. data/ext/pg_query/include/postgres/catalog/pg_ts_parser_d.h +37 -0
  130. data/ext/pg_query/include/postgres/catalog/pg_ts_template.h +54 -0
  131. data/ext/pg_query/include/postgres/catalog/pg_ts_template_d.h +34 -0
  132. data/ext/pg_query/include/postgres/catalog/pg_type.h +407 -0
  133. data/ext/pg_query/include/postgres/catalog/pg_type_d.h +324 -0
  134. data/ext/pg_query/include/postgres/catalog/storage.h +50 -0
  135. data/ext/pg_query/include/postgres/catalog/syscache_ids.h +104 -0
  136. data/ext/pg_query/include/postgres/commands/async.h +49 -0
  137. data/ext/pg_query/include/postgres/commands/dbcommands.h +37 -0
  138. data/ext/pg_query/include/postgres/commands/defrem.h +161 -0
  139. data/ext/pg_query/include/postgres/commands/event_trigger.h +97 -0
  140. data/ext/pg_query/include/postgres/commands/explain.h +145 -0
  141. data/ext/pg_query/include/postgres/commands/prepare.h +61 -0
  142. data/ext/pg_query/include/postgres/commands/tablespace.h +69 -0
  143. data/ext/pg_query/include/postgres/commands/trigger.h +288 -0
  144. data/ext/pg_query/include/postgres/commands/user.h +43 -0
  145. data/ext/pg_query/include/postgres/commands/vacuum.h +388 -0
  146. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  147. data/ext/pg_query/include/postgres/common/file_perm.h +56 -0
  148. data/ext/pg_query/include/postgres/common/file_utils.h +65 -0
  149. data/ext/pg_query/include/postgres/common/hashfn.h +119 -0
  150. data/ext/pg_query/include/postgres/common/hashfn_unstable.h +407 -0
  151. data/ext/pg_query/include/postgres/common/int.h +512 -0
  152. data/ext/pg_query/include/postgres/common/keywords.h +29 -0
  153. data/ext/pg_query/include/postgres/common/kwlookup.h +44 -0
  154. data/ext/pg_query/include/postgres/common/pg_prng.h +62 -0
  155. data/ext/pg_query/include/postgres/common/relpath.h +97 -0
  156. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  157. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  158. data/ext/pg_query/include/postgres/common/string.h +44 -0
  159. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +124 -0
  160. data/ext/pg_query/include/postgres/common/unicode_nonspacing_table.h +326 -0
  161. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5261 -0
  162. data/ext/pg_query/include/postgres/copyfuncs.switch.c +989 -0
  163. data/ext/pg_query/include/postgres/datatype/timestamp.h +269 -0
  164. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3310 -0
  165. data/ext/pg_query/include/postgres/equalfuncs.switch.c +836 -0
  166. data/ext/pg_query/include/postgres/executor/execdesc.h +70 -0
  167. data/ext/pg_query/include/postgres/executor/executor.h +681 -0
  168. data/ext/pg_query/include/postgres/executor/functions.h +56 -0
  169. data/ext/pg_query/include/postgres/executor/instrument.h +120 -0
  170. data/ext/pg_query/include/postgres/executor/spi.h +207 -0
  171. data/ext/pg_query/include/postgres/executor/tablefunc.h +67 -0
  172. data/ext/pg_query/include/postgres/executor/tuptable.h +523 -0
  173. data/ext/pg_query/include/postgres/fmgr.h +800 -0
  174. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  175. data/ext/pg_query/include/postgres/funcapi.h +360 -0
  176. data/ext/pg_query/include/postgres/gram.h +1168 -0
  177. data/ext/pg_query/include/postgres/gramparse.h +75 -0
  178. data/ext/pg_query/include/postgres/jit/jit.h +106 -0
  179. data/ext/pg_query/include/postgres/kwlist_d.h +1164 -0
  180. data/ext/pg_query/include/postgres/lib/dshash.h +130 -0
  181. data/ext/pg_query/include/postgres/lib/ilist.h +1159 -0
  182. data/ext/pg_query/include/postgres/lib/pairingheap.h +102 -0
  183. data/ext/pg_query/include/postgres/lib/simplehash.h +1206 -0
  184. data/ext/pg_query/include/postgres/lib/sort_template.h +445 -0
  185. data/ext/pg_query/include/postgres/lib/stringinfo.h +243 -0
  186. data/ext/pg_query/include/postgres/libpq/auth.h +37 -0
  187. data/ext/pg_query/include/postgres/libpq/crypt.h +47 -0
  188. data/ext/pg_query/include/postgres/libpq/hba.h +186 -0
  189. data/ext/pg_query/include/postgres/libpq/libpq-be.h +361 -0
  190. data/ext/pg_query/include/postgres/libpq/libpq.h +143 -0
  191. data/ext/pg_query/include/postgres/libpq/pqcomm.h +169 -0
  192. data/ext/pg_query/include/postgres/libpq/pqformat.h +209 -0
  193. data/ext/pg_query/include/postgres/libpq/pqsignal.h +54 -0
  194. data/ext/pg_query/include/postgres/libpq/protocol.h +89 -0
  195. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  196. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  197. data/ext/pg_query/include/postgres/mb/pg_wchar.h +793 -0
  198. data/ext/pg_query/include/postgres/mb/stringinfo_mb.h +24 -0
  199. data/ext/pg_query/include/postgres/miscadmin.h +527 -0
  200. data/ext/pg_query/include/postgres/nodes/bitmapset.h +140 -0
  201. data/ext/pg_query/include/postgres/nodes/execnodes.h +2855 -0
  202. data/ext/pg_query/include/postgres/nodes/extensible.h +164 -0
  203. data/ext/pg_query/include/postgres/nodes/lockoptions.h +61 -0
  204. data/ext/pg_query/include/postgres/nodes/makefuncs.h +127 -0
  205. data/ext/pg_query/include/postgres/nodes/memnodes.h +152 -0
  206. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  207. data/ext/pg_query/include/postgres/nodes/nodeFuncs.h +222 -0
  208. data/ext/pg_query/include/postgres/nodes/nodes.h +435 -0
  209. data/ext/pg_query/include/postgres/nodes/nodetags.h +491 -0
  210. data/ext/pg_query/include/postgres/nodes/params.h +170 -0
  211. data/ext/pg_query/include/postgres/nodes/parsenodes.h +4233 -0
  212. data/ext/pg_query/include/postgres/nodes/pathnodes.h +3438 -0
  213. data/ext/pg_query/include/postgres/nodes/pg_list.h +686 -0
  214. data/ext/pg_query/include/postgres/nodes/plannodes.h +1593 -0
  215. data/ext/pg_query/include/postgres/nodes/primnodes.h +2339 -0
  216. data/ext/pg_query/include/postgres/nodes/print.h +34 -0
  217. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  218. data/ext/pg_query/include/postgres/nodes/replnodes.h +132 -0
  219. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  220. data/ext/pg_query/include/postgres/nodes/tidbitmap.h +75 -0
  221. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  222. data/ext/pg_query/include/postgres/optimizer/cost.h +216 -0
  223. data/ext/pg_query/include/postgres/optimizer/geqo.h +90 -0
  224. data/ext/pg_query/include/postgres/optimizer/geqo_gene.h +45 -0
  225. data/ext/pg_query/include/postgres/optimizer/optimizer.h +205 -0
  226. data/ext/pg_query/include/postgres/optimizer/paths.h +271 -0
  227. data/ext/pg_query/include/postgres/optimizer/planmain.h +123 -0
  228. data/ext/pg_query/include/postgres/parser/analyze.h +66 -0
  229. data/ext/pg_query/include/postgres/parser/kwlist.h +518 -0
  230. data/ext/pg_query/include/postgres/parser/parse_agg.h +65 -0
  231. data/ext/pg_query/include/postgres/parser/parse_coerce.h +105 -0
  232. data/ext/pg_query/include/postgres/parser/parse_expr.h +25 -0
  233. data/ext/pg_query/include/postgres/parser/parse_func.h +74 -0
  234. data/ext/pg_query/include/postgres/parser/parse_node.h +358 -0
  235. data/ext/pg_query/include/postgres/parser/parse_oper.h +68 -0
  236. data/ext/pg_query/include/postgres/parser/parse_relation.h +129 -0
  237. data/ext/pg_query/include/postgres/parser/parse_type.h +61 -0
  238. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  239. data/ext/pg_query/include/postgres/parser/parsetree.h +61 -0
  240. data/ext/pg_query/include/postgres/parser/scanner.h +152 -0
  241. data/ext/pg_query/include/postgres/parser/scansup.h +27 -0
  242. data/ext/pg_query/include/postgres/partitioning/partdefs.h +26 -0
  243. data/ext/pg_query/include/postgres/pg_config.h +985 -0
  244. data/ext/pg_query/include/postgres/pg_config_manual.h +385 -0
  245. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  246. data/ext/pg_query/include/postgres/pg_getopt.h +56 -0
  247. data/ext/pg_query/include/postgres/pg_trace.h +17 -0
  248. data/ext/pg_query/include/postgres/pgstat.h +780 -0
  249. data/ext/pg_query/include/postgres/pgtime.h +94 -0
  250. data/ext/pg_query/include/postgres/pl_gram.h +385 -0
  251. data/ext/pg_query/include/postgres/pl_reserved_kwlist.h +52 -0
  252. data/ext/pg_query/include/postgres/pl_reserved_kwlist_d.h +114 -0
  253. data/ext/pg_query/include/postgres/pl_unreserved_kwlist.h +112 -0
  254. data/ext/pg_query/include/postgres/pl_unreserved_kwlist_d.h +246 -0
  255. data/ext/pg_query/include/postgres/plerrcodes.h +998 -0
  256. data/ext/pg_query/include/postgres/plpgsql.h +1342 -0
  257. data/ext/pg_query/include/postgres/port/atomics/arch-arm.h +32 -0
  258. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  259. data/ext/pg_query/include/postgres/port/atomics/arch-ppc.h +256 -0
  260. data/ext/pg_query/include/postgres/port/atomics/arch-x86.h +254 -0
  261. data/ext/pg_query/include/postgres/port/atomics/fallback.h +170 -0
  262. data/ext/pg_query/include/postgres/port/atomics/generic-gcc.h +323 -0
  263. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +119 -0
  264. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +121 -0
  265. data/ext/pg_query/include/postgres/port/atomics/generic.h +437 -0
  266. data/ext/pg_query/include/postgres/port/atomics.h +606 -0
  267. data/ext/pg_query/include/postgres/port/pg_bitutils.h +421 -0
  268. data/ext/pg_query/include/postgres/port/pg_bswap.h +161 -0
  269. data/ext/pg_query/include/postgres/port/pg_crc32c.h +110 -0
  270. data/ext/pg_query/include/postgres/port/pg_iovec.h +117 -0
  271. data/ext/pg_query/include/postgres/port/simd.h +422 -0
  272. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  273. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  276. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  278. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  279. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  280. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  281. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +34 -0
  282. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  283. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  284. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  285. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  286. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  287. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  288. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  289. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  290. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  291. data/ext/pg_query/include/postgres/port/win32_port.h +582 -0
  292. data/ext/pg_query/include/postgres/port.h +555 -0
  293. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  294. data/ext/pg_query/include/postgres/postgres.h +579 -0
  295. data/ext/pg_query/include/postgres/postgres_ext.h +73 -0
  296. data/ext/pg_query/include/postgres/postmaster/autovacuum.h +69 -0
  297. data/ext/pg_query/include/postgres/postmaster/bgworker.h +164 -0
  298. data/ext/pg_query/include/postgres/postmaster/bgworker_internals.h +60 -0
  299. data/ext/pg_query/include/postgres/postmaster/bgwriter.h +45 -0
  300. data/ext/pg_query/include/postgres/postmaster/interrupt.h +32 -0
  301. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  302. data/ext/pg_query/include/postgres/postmaster/postmaster.h +101 -0
  303. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  304. data/ext/pg_query/include/postgres/postmaster/syslogger.h +101 -0
  305. data/ext/pg_query/include/postgres/postmaster/walsummarizer.h +35 -0
  306. data/ext/pg_query/include/postgres/postmaster/walwriter.h +23 -0
  307. data/ext/pg_query/include/postgres/regex/regex.h +272 -0
  308. data/ext/pg_query/include/postgres/replication/logicallauncher.h +34 -0
  309. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  310. data/ext/pg_query/include/postgres/replication/logicalworker.h +33 -0
  311. data/ext/pg_query/include/postgres/replication/origin.h +73 -0
  312. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +734 -0
  313. data/ext/pg_query/include/postgres/replication/slot.h +289 -0
  314. data/ext/pg_query/include/postgres/replication/slotsync.h +38 -0
  315. data/ext/pg_query/include/postgres/replication/syncrep.h +109 -0
  316. data/ext/pg_query/include/postgres/replication/walreceiver.h +504 -0
  317. data/ext/pg_query/include/postgres/replication/walsender.h +76 -0
  318. data/ext/pg_query/include/postgres/rewrite/prs2lock.h +46 -0
  319. data/ext/pg_query/include/postgres/rewrite/rewriteHandler.h +41 -0
  320. data/ext/pg_query/include/postgres/rewrite/rewriteManip.h +96 -0
  321. data/ext/pg_query/include/postgres/rewrite/rewriteSupport.h +26 -0
  322. data/ext/pg_query/include/postgres/storage/block.h +108 -0
  323. data/ext/pg_query/include/postgres/storage/buf.h +46 -0
  324. data/ext/pg_query/include/postgres/storage/bufmgr.h +411 -0
  325. data/ext/pg_query/include/postgres/storage/bufpage.h +510 -0
  326. data/ext/pg_query/include/postgres/storage/condition_variable.h +73 -0
  327. data/ext/pg_query/include/postgres/storage/dsm.h +61 -0
  328. data/ext/pg_query/include/postgres/storage/dsm_impl.h +79 -0
  329. data/ext/pg_query/include/postgres/storage/fd.h +219 -0
  330. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  331. data/ext/pg_query/include/postgres/storage/ipc.h +87 -0
  332. data/ext/pg_query/include/postgres/storage/item.h +19 -0
  333. data/ext/pg_query/include/postgres/storage/itemid.h +184 -0
  334. data/ext/pg_query/include/postgres/storage/itemptr.h +245 -0
  335. data/ext/pg_query/include/postgres/storage/large_object.h +100 -0
  336. data/ext/pg_query/include/postgres/storage/latch.h +196 -0
  337. data/ext/pg_query/include/postgres/storage/lmgr.h +126 -0
  338. data/ext/pg_query/include/postgres/storage/lock.h +624 -0
  339. data/ext/pg_query/include/postgres/storage/lockdefs.h +61 -0
  340. data/ext/pg_query/include/postgres/storage/lwlock.h +228 -0
  341. data/ext/pg_query/include/postgres/storage/lwlocknames.h +47 -0
  342. data/ext/pg_query/include/postgres/storage/off.h +57 -0
  343. data/ext/pg_query/include/postgres/storage/pg_sema.h +61 -0
  344. data/ext/pg_query/include/postgres/storage/pg_shmem.h +93 -0
  345. data/ext/pg_query/include/postgres/storage/pmsignal.h +105 -0
  346. data/ext/pg_query/include/postgres/storage/predicate.h +83 -0
  347. data/ext/pg_query/include/postgres/storage/proc.h +488 -0
  348. data/ext/pg_query/include/postgres/storage/procarray.h +103 -0
  349. data/ext/pg_query/include/postgres/storage/proclist_types.h +53 -0
  350. data/ext/pg_query/include/postgres/storage/procnumber.h +43 -0
  351. data/ext/pg_query/include/postgres/storage/procsignal.h +75 -0
  352. data/ext/pg_query/include/postgres/storage/read_stream.h +65 -0
  353. data/ext/pg_query/include/postgres/storage/relfilelocator.h +100 -0
  354. data/ext/pg_query/include/postgres/storage/s_lock.h +847 -0
  355. data/ext/pg_query/include/postgres/storage/sharedfileset.h +37 -0
  356. data/ext/pg_query/include/postgres/storage/shm_mq.h +86 -0
  357. data/ext/pg_query/include/postgres/storage/shm_toc.h +58 -0
  358. data/ext/pg_query/include/postgres/storage/shmem.h +59 -0
  359. data/ext/pg_query/include/postgres/storage/sinval.h +153 -0
  360. data/ext/pg_query/include/postgres/storage/smgr.h +130 -0
  361. data/ext/pg_query/include/postgres/storage/spin.h +77 -0
  362. data/ext/pg_query/include/postgres/storage/standby.h +109 -0
  363. data/ext/pg_query/include/postgres/storage/standbydefs.h +74 -0
  364. data/ext/pg_query/include/postgres/storage/sync.h +66 -0
  365. data/ext/pg_query/include/postgres/tcop/cmdtag.h +62 -0
  366. data/ext/pg_query/include/postgres/tcop/cmdtaglist.h +219 -0
  367. data/ext/pg_query/include/postgres/tcop/deparse_utility.h +108 -0
  368. data/ext/pg_query/include/postgres/tcop/dest.h +148 -0
  369. data/ext/pg_query/include/postgres/tcop/fastpath.h +20 -0
  370. data/ext/pg_query/include/postgres/tcop/pquery.h +51 -0
  371. data/ext/pg_query/include/postgres/tcop/tcopprot.h +98 -0
  372. data/ext/pg_query/include/postgres/tcop/utility.h +112 -0
  373. data/ext/pg_query/include/postgres/tsearch/ts_cache.h +96 -0
  374. data/ext/pg_query/include/postgres/utils/acl.h +290 -0
  375. data/ext/pg_query/include/postgres/utils/aclchk_internal.h +45 -0
  376. data/ext/pg_query/include/postgres/utils/array.h +481 -0
  377. data/ext/pg_query/include/postgres/utils/ascii.h +84 -0
  378. data/ext/pg_query/include/postgres/utils/backend_progress.h +46 -0
  379. data/ext/pg_query/include/postgres/utils/backend_status.h +340 -0
  380. data/ext/pg_query/include/postgres/utils/builtins.h +139 -0
  381. data/ext/pg_query/include/postgres/utils/bytea.h +28 -0
  382. data/ext/pg_query/include/postgres/utils/catcache.h +231 -0
  383. data/ext/pg_query/include/postgres/utils/date.h +118 -0
  384. data/ext/pg_query/include/postgres/utils/datetime.h +367 -0
  385. data/ext/pg_query/include/postgres/utils/datum.h +76 -0
  386. data/ext/pg_query/include/postgres/utils/dsa.h +166 -0
  387. data/ext/pg_query/include/postgres/utils/elog.h +540 -0
  388. data/ext/pg_query/include/postgres/utils/errcodes.h +352 -0
  389. data/ext/pg_query/include/postgres/utils/expandeddatum.h +170 -0
  390. data/ext/pg_query/include/postgres/utils/expandedrecord.h +241 -0
  391. data/ext/pg_query/include/postgres/utils/float.h +357 -0
  392. data/ext/pg_query/include/postgres/utils/fmgroids.h +3347 -0
  393. data/ext/pg_query/include/postgres/utils/fmgrprotos.h +2904 -0
  394. data/ext/pg_query/include/postgres/utils/fmgrtab.h +49 -0
  395. data/ext/pg_query/include/postgres/utils/guc.h +456 -0
  396. data/ext/pg_query/include/postgres/utils/guc_hooks.h +184 -0
  397. data/ext/pg_query/include/postgres/utils/guc_tables.h +323 -0
  398. data/ext/pg_query/include/postgres/utils/hsearch.h +153 -0
  399. data/ext/pg_query/include/postgres/utils/injection_point.h +44 -0
  400. data/ext/pg_query/include/postgres/utils/inval.h +68 -0
  401. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  402. data/ext/pg_query/include/postgres/utils/lsyscache.h +215 -0
  403. data/ext/pg_query/include/postgres/utils/memdebug.h +82 -0
  404. data/ext/pg_query/include/postgres/utils/memutils.h +193 -0
  405. data/ext/pg_query/include/postgres/utils/memutils_internal.h +176 -0
  406. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +253 -0
  407. data/ext/pg_query/include/postgres/utils/numeric.h +110 -0
  408. data/ext/pg_query/include/postgres/utils/palloc.h +151 -0
  409. data/ext/pg_query/include/postgres/utils/partcache.h +103 -0
  410. data/ext/pg_query/include/postgres/utils/pg_locale.h +136 -0
  411. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +827 -0
  412. data/ext/pg_query/include/postgres/utils/plancache.h +238 -0
  413. data/ext/pg_query/include/postgres/utils/portal.h +252 -0
  414. data/ext/pg_query/include/postgres/utils/probes.h +114 -0
  415. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  416. data/ext/pg_query/include/postgres/utils/queryenvironment.h +74 -0
  417. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  418. data/ext/pg_query/include/postgres/utils/rel.h +711 -0
  419. data/ext/pg_query/include/postgres/utils/relcache.h +155 -0
  420. data/ext/pg_query/include/postgres/utils/reltrigger.h +81 -0
  421. data/ext/pg_query/include/postgres/utils/resowner.h +167 -0
  422. data/ext/pg_query/include/postgres/utils/ruleutils.h +52 -0
  423. data/ext/pg_query/include/postgres/utils/sharedtuplestore.h +61 -0
  424. data/ext/pg_query/include/postgres/utils/snapmgr.h +130 -0
  425. data/ext/pg_query/include/postgres/utils/snapshot.h +219 -0
  426. data/ext/pg_query/include/postgres/utils/sortsupport.h +391 -0
  427. data/ext/pg_query/include/postgres/utils/syscache.h +136 -0
  428. data/ext/pg_query/include/postgres/utils/timeout.h +96 -0
  429. data/ext/pg_query/include/postgres/utils/timestamp.h +147 -0
  430. data/ext/pg_query/include/postgres/utils/tuplesort.h +472 -0
  431. data/ext/pg_query/include/postgres/utils/tuplestore.h +88 -0
  432. data/ext/pg_query/include/postgres/utils/typcache.h +210 -0
  433. data/ext/pg_query/include/postgres/utils/varlena.h +53 -0
  434. data/ext/pg_query/include/postgres/utils/wait_event.h +108 -0
  435. data/ext/pg_query/include/postgres/utils/wait_event_types.h +218 -0
  436. data/ext/pg_query/include/postgres/utils/xml.h +94 -0
  437. data/ext/pg_query/include/postgres/varatt.h +358 -0
  438. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +8077 -6217
  439. data/ext/pg_query/include/protobuf/pg_query.pb.h +132024 -88124
  440. data/ext/pg_query/pg_query.c +10 -1
  441. data/ext/pg_query/pg_query.pb-c.c +24028 -17173
  442. data/ext/pg_query/pg_query_deparse.c +1 -9902
  443. data/ext/pg_query/pg_query_fingerprint.c +42 -18
  444. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  445. data/ext/pg_query/pg_query_internal.h +1 -1
  446. data/ext/pg_query/pg_query_json_plpgsql.c +1 -25
  447. data/ext/pg_query/pg_query_normalize.c +44 -3
  448. data/ext/pg_query/pg_query_outfuncs_json.c +62 -16
  449. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  450. data/ext/pg_query/pg_query_parse.c +47 -5
  451. data/ext/pg_query/pg_query_parse_plpgsql.c +19 -18
  452. data/ext/pg_query/pg_query_readfuncs_protobuf.c +45 -10
  453. data/ext/pg_query/pg_query_ruby.c +5 -0
  454. data/ext/pg_query/pg_query_scan.c +4 -3
  455. data/ext/pg_query/pg_query_split.c +6 -5
  456. data/ext/pg_query/postgres_deparse.c +11496 -0
  457. data/ext/pg_query/postgres_deparse.h +9 -0
  458. data/ext/pg_query/src_backend_catalog_namespace.c +262 -71
  459. data/ext/pg_query/src_backend_catalog_pg_proc.c +3 -2
  460. data/ext/pg_query/src_backend_commands_define.c +12 -3
  461. data/ext/pg_query/src_backend_nodes_bitmapset.c +142 -156
  462. data/ext/pg_query/src_backend_nodes_copyfuncs.c +100 -5881
  463. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3831
  464. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  465. data/ext/pg_query/src_backend_nodes_list.c +89 -18
  466. data/ext/pg_query/src_backend_nodes_makefuncs.c +138 -4
  467. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +433 -132
  468. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  469. data/ext/pg_query/src_backend_parser_gram.c +45255 -38885
  470. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  471. data/ext/pg_query/src_backend_parser_scan.c +6999 -3438
  472. data/ext/pg_query/src_backend_parser_scansup.c +5 -28
  473. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  474. data/ext/pg_query/src_backend_tcop_postgres.c +156 -114
  475. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  476. data/ext/pg_query/src_backend_utils_adt_datum.c +14 -2
  477. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  478. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  479. data/ext/pg_query/src_backend_utils_adt_numutils.c +488 -0
  480. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +247 -34
  481. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  482. data/ext/pg_query/src_backend_utils_error_elog.c +543 -343
  483. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +47 -18
  484. data/ext/pg_query/src_backend_utils_init_globals.c +22 -7
  485. data/ext/pg_query/src_backend_utils_mb_mbutils.c +84 -148
  486. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +502 -0
  487. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +166 -0
  488. data/ext/pg_query/src_backend_utils_mmgr_aset.c +708 -499
  489. data/ext/pg_query/src_backend_utils_mmgr_bump.c +728 -0
  490. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1115 -0
  491. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +710 -218
  492. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1079 -0
  493. data/ext/pg_query/src_common_encnames.c +46 -44
  494. data/ext/pg_query/src_common_hashfn.c +3 -3
  495. data/ext/pg_query/src_common_keywords.c +15 -2
  496. data/ext/pg_query/src_common_kwlist_d.h +602 -510
  497. data/ext/pg_query/src_common_kwlookup.c +1 -1
  498. data/ext/pg_query/src_common_psprintf.c +3 -3
  499. data/ext/pg_query/src_common_stringinfo.c +21 -4
  500. data/ext/pg_query/src_common_wchar.c +754 -178
  501. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +143 -24
  502. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  503. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1295 -1255
  504. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  505. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  506. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +20 -2
  507. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  508. data/ext/pg_query/src_port_pg_bitutils.c +283 -54
  509. data/ext/pg_query/src_port_pgstrcasecmp.c +57 -1
  510. data/ext/pg_query/src_port_qsort.c +12 -224
  511. data/ext/pg_query/src_port_snprintf.c +56 -39
  512. data/ext/pg_query/src_port_strerror.c +9 -21
  513. data/ext/pg_query/src_port_strlcpy.c +79 -0
  514. data/lib/pg_query/filter_columns.rb +1 -1
  515. data/lib/pg_query/fingerprint.rb +10 -9
  516. data/lib/pg_query/node.rb +18 -13
  517. data/lib/pg_query/param_refs.rb +3 -3
  518. data/lib/pg_query/parse.rb +25 -15
  519. data/lib/pg_query/parse_error.rb +1 -0
  520. data/lib/pg_query/pg_query_pb.rb +181 -3038
  521. data/lib/pg_query/scan.rb +1 -0
  522. data/lib/pg_query/treewalker.rb +55 -8
  523. data/lib/pg_query/truncate.rb +19 -21
  524. data/lib/pg_query/version.rb +1 -1
  525. metadata +447 -436
  526. data/ext/pg_query/guc-file.c +0 -0
  527. data/ext/pg_query/include/access/amapi.h +0 -246
  528. data/ext/pg_query/include/access/attmap.h +0 -52
  529. data/ext/pg_query/include/access/attnum.h +0 -64
  530. data/ext/pg_query/include/access/clog.h +0 -61
  531. data/ext/pg_query/include/access/commit_ts.h +0 -77
  532. data/ext/pg_query/include/access/detoast.h +0 -92
  533. data/ext/pg_query/include/access/genam.h +0 -228
  534. data/ext/pg_query/include/access/gin.h +0 -78
  535. data/ext/pg_query/include/access/htup.h +0 -89
  536. data/ext/pg_query/include/access/htup_details.h +0 -819
  537. data/ext/pg_query/include/access/itup.h +0 -161
  538. data/ext/pg_query/include/access/parallel.h +0 -82
  539. data/ext/pg_query/include/access/printtup.h +0 -35
  540. data/ext/pg_query/include/access/relation.h +0 -28
  541. data/ext/pg_query/include/access/relscan.h +0 -176
  542. data/ext/pg_query/include/access/rmgr.h +0 -35
  543. data/ext/pg_query/include/access/rmgrlist.h +0 -49
  544. data/ext/pg_query/include/access/sdir.h +0 -58
  545. data/ext/pg_query/include/access/skey.h +0 -151
  546. data/ext/pg_query/include/access/stratnum.h +0 -83
  547. data/ext/pg_query/include/access/sysattr.h +0 -29
  548. data/ext/pg_query/include/access/table.h +0 -27
  549. data/ext/pg_query/include/access/tableam.h +0 -1825
  550. data/ext/pg_query/include/access/transam.h +0 -265
  551. data/ext/pg_query/include/access/tupconvert.h +0 -51
  552. data/ext/pg_query/include/access/tupdesc.h +0 -154
  553. data/ext/pg_query/include/access/tupmacs.h +0 -247
  554. data/ext/pg_query/include/access/twophase.h +0 -63
  555. data/ext/pg_query/include/access/xact.h +0 -469
  556. data/ext/pg_query/include/access/xlog.h +0 -398
  557. data/ext/pg_query/include/access/xlog_internal.h +0 -339
  558. data/ext/pg_query/include/access/xlogdefs.h +0 -109
  559. data/ext/pg_query/include/access/xloginsert.h +0 -64
  560. data/ext/pg_query/include/access/xlogreader.h +0 -337
  561. data/ext/pg_query/include/access/xlogrecord.h +0 -227
  562. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  563. data/ext/pg_query/include/c.h +0 -1334
  564. data/ext/pg_query/include/catalog/catalog.h +0 -42
  565. data/ext/pg_query/include/catalog/catversion.h +0 -58
  566. data/ext/pg_query/include/catalog/dependency.h +0 -277
  567. data/ext/pg_query/include/catalog/genbki.h +0 -64
  568. data/ext/pg_query/include/catalog/index.h +0 -199
  569. data/ext/pg_query/include/catalog/indexing.h +0 -366
  570. data/ext/pg_query/include/catalog/namespace.h +0 -188
  571. data/ext/pg_query/include/catalog/objectaccess.h +0 -197
  572. data/ext/pg_query/include/catalog/objectaddress.h +0 -84
  573. data/ext/pg_query/include/catalog/pg_aggregate.h +0 -176
  574. data/ext/pg_query/include/catalog/pg_aggregate_d.h +0 -77
  575. data/ext/pg_query/include/catalog/pg_am.h +0 -60
  576. data/ext/pg_query/include/catalog/pg_am_d.h +0 -45
  577. data/ext/pg_query/include/catalog/pg_attribute.h +0 -204
  578. data/ext/pg_query/include/catalog/pg_attribute_d.h +0 -59
  579. data/ext/pg_query/include/catalog/pg_authid.h +0 -58
  580. data/ext/pg_query/include/catalog/pg_authid_d.h +0 -49
  581. data/ext/pg_query/include/catalog/pg_class.h +0 -200
  582. data/ext/pg_query/include/catalog/pg_class_d.h +0 -103
  583. data/ext/pg_query/include/catalog/pg_collation.h +0 -73
  584. data/ext/pg_query/include/catalog/pg_collation_d.h +0 -45
  585. data/ext/pg_query/include/catalog/pg_constraint.h +0 -247
  586. data/ext/pg_query/include/catalog/pg_constraint_d.h +0 -67
  587. data/ext/pg_query/include/catalog/pg_control.h +0 -252
  588. data/ext/pg_query/include/catalog/pg_conversion.h +0 -72
  589. data/ext/pg_query/include/catalog/pg_conversion_d.h +0 -35
  590. data/ext/pg_query/include/catalog/pg_depend.h +0 -73
  591. data/ext/pg_query/include/catalog/pg_depend_d.h +0 -34
  592. data/ext/pg_query/include/catalog/pg_event_trigger.h +0 -51
  593. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +0 -34
  594. data/ext/pg_query/include/catalog/pg_index.h +0 -80
  595. data/ext/pg_query/include/catalog/pg_index_d.h +0 -56
  596. data/ext/pg_query/include/catalog/pg_language.h +0 -67
  597. data/ext/pg_query/include/catalog/pg_language_d.h +0 -39
  598. data/ext/pg_query/include/catalog/pg_namespace.h +0 -59
  599. data/ext/pg_query/include/catalog/pg_namespace_d.h +0 -34
  600. data/ext/pg_query/include/catalog/pg_opclass.h +0 -85
  601. data/ext/pg_query/include/catalog/pg_opclass_d.h +0 -49
  602. data/ext/pg_query/include/catalog/pg_operator.h +0 -104
  603. data/ext/pg_query/include/catalog/pg_operator_d.h +0 -106
  604. data/ext/pg_query/include/catalog/pg_opfamily.h +0 -60
  605. data/ext/pg_query/include/catalog/pg_opfamily_d.h +0 -47
  606. data/ext/pg_query/include/catalog/pg_partitioned_table.h +0 -63
  607. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +0 -35
  608. data/ext/pg_query/include/catalog/pg_proc.h +0 -211
  609. data/ext/pg_query/include/catalog/pg_proc_d.h +0 -99
  610. data/ext/pg_query/include/catalog/pg_publication.h +0 -118
  611. data/ext/pg_query/include/catalog/pg_publication_d.h +0 -36
  612. data/ext/pg_query/include/catalog/pg_replication_origin.h +0 -57
  613. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +0 -29
  614. data/ext/pg_query/include/catalog/pg_statistic.h +0 -275
  615. data/ext/pg_query/include/catalog/pg_statistic_d.h +0 -194
  616. data/ext/pg_query/include/catalog/pg_statistic_ext.h +0 -74
  617. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +0 -40
  618. data/ext/pg_query/include/catalog/pg_transform.h +0 -45
  619. data/ext/pg_query/include/catalog/pg_transform_d.h +0 -32
  620. data/ext/pg_query/include/catalog/pg_trigger.h +0 -137
  621. data/ext/pg_query/include/catalog/pg_trigger_d.h +0 -106
  622. data/ext/pg_query/include/catalog/pg_ts_config.h +0 -50
  623. data/ext/pg_query/include/catalog/pg_ts_config_d.h +0 -32
  624. data/ext/pg_query/include/catalog/pg_ts_dict.h +0 -54
  625. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +0 -33
  626. data/ext/pg_query/include/catalog/pg_ts_parser.h +0 -57
  627. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +0 -35
  628. data/ext/pg_query/include/catalog/pg_ts_template.h +0 -48
  629. data/ext/pg_query/include/catalog/pg_ts_template_d.h +0 -32
  630. data/ext/pg_query/include/catalog/pg_type.h +0 -373
  631. data/ext/pg_query/include/catalog/pg_type_d.h +0 -285
  632. data/ext/pg_query/include/catalog/storage.h +0 -48
  633. data/ext/pg_query/include/commands/async.h +0 -54
  634. data/ext/pg_query/include/commands/dbcommands.h +0 -35
  635. data/ext/pg_query/include/commands/defrem.h +0 -173
  636. data/ext/pg_query/include/commands/event_trigger.h +0 -88
  637. data/ext/pg_query/include/commands/explain.h +0 -127
  638. data/ext/pg_query/include/commands/prepare.h +0 -61
  639. data/ext/pg_query/include/commands/tablespace.h +0 -69
  640. data/ext/pg_query/include/commands/trigger.h +0 -285
  641. data/ext/pg_query/include/commands/user.h +0 -37
  642. data/ext/pg_query/include/commands/vacuum.h +0 -293
  643. data/ext/pg_query/include/commands/variable.h +0 -38
  644. data/ext/pg_query/include/common/file_perm.h +0 -56
  645. data/ext/pg_query/include/common/hashfn.h +0 -104
  646. data/ext/pg_query/include/common/ip.h +0 -37
  647. data/ext/pg_query/include/common/keywords.h +0 -33
  648. data/ext/pg_query/include/common/kwlookup.h +0 -44
  649. data/ext/pg_query/include/common/relpath.h +0 -90
  650. data/ext/pg_query/include/common/string.h +0 -19
  651. data/ext/pg_query/include/common/unicode_combining_table.h +0 -196
  652. data/ext/pg_query/include/datatype/timestamp.h +0 -197
  653. data/ext/pg_query/include/executor/execdesc.h +0 -70
  654. data/ext/pg_query/include/executor/executor.h +0 -620
  655. data/ext/pg_query/include/executor/functions.h +0 -41
  656. data/ext/pg_query/include/executor/instrument.h +0 -101
  657. data/ext/pg_query/include/executor/spi.h +0 -175
  658. data/ext/pg_query/include/executor/tablefunc.h +0 -67
  659. data/ext/pg_query/include/executor/tuptable.h +0 -487
  660. data/ext/pg_query/include/fmgr.h +0 -775
  661. data/ext/pg_query/include/funcapi.h +0 -348
  662. data/ext/pg_query/include/getaddrinfo.h +0 -162
  663. data/ext/pg_query/include/jit/jit.h +0 -105
  664. data/ext/pg_query/include/kwlist_d.h +0 -1072
  665. data/ext/pg_query/include/lib/ilist.h +0 -727
  666. data/ext/pg_query/include/lib/pairingheap.h +0 -102
  667. data/ext/pg_query/include/lib/simplehash.h +0 -1059
  668. data/ext/pg_query/include/lib/stringinfo.h +0 -161
  669. data/ext/pg_query/include/libpq/auth.h +0 -29
  670. data/ext/pg_query/include/libpq/crypt.h +0 -46
  671. data/ext/pg_query/include/libpq/hba.h +0 -140
  672. data/ext/pg_query/include/libpq/libpq-be.h +0 -326
  673. data/ext/pg_query/include/libpq/libpq.h +0 -134
  674. data/ext/pg_query/include/libpq/pqcomm.h +0 -208
  675. data/ext/pg_query/include/libpq/pqformat.h +0 -210
  676. data/ext/pg_query/include/libpq/pqsignal.h +0 -42
  677. data/ext/pg_query/include/mb/pg_wchar.h +0 -673
  678. data/ext/pg_query/include/mb/stringinfo_mb.h +0 -24
  679. data/ext/pg_query/include/miscadmin.h +0 -489
  680. data/ext/pg_query/include/nodes/bitmapset.h +0 -122
  681. data/ext/pg_query/include/nodes/execnodes.h +0 -2523
  682. data/ext/pg_query/include/nodes/extensible.h +0 -160
  683. data/ext/pg_query/include/nodes/lockoptions.h +0 -61
  684. data/ext/pg_query/include/nodes/makefuncs.h +0 -108
  685. data/ext/pg_query/include/nodes/memnodes.h +0 -108
  686. data/ext/pg_query/include/nodes/nodeFuncs.h +0 -162
  687. data/ext/pg_query/include/nodes/nodes.h +0 -842
  688. data/ext/pg_query/include/nodes/params.h +0 -170
  689. data/ext/pg_query/include/nodes/parsenodes.h +0 -3580
  690. data/ext/pg_query/include/nodes/pathnodes.h +0 -2557
  691. data/ext/pg_query/include/nodes/pg_list.h +0 -606
  692. data/ext/pg_query/include/nodes/plannodes.h +0 -1266
  693. data/ext/pg_query/include/nodes/primnodes.h +0 -1541
  694. data/ext/pg_query/include/nodes/print.h +0 -34
  695. data/ext/pg_query/include/nodes/tidbitmap.h +0 -75
  696. data/ext/pg_query/include/nodes/value.h +0 -61
  697. data/ext/pg_query/include/optimizer/cost.h +0 -206
  698. data/ext/pg_query/include/optimizer/geqo.h +0 -88
  699. data/ext/pg_query/include/optimizer/geqo_gene.h +0 -45
  700. data/ext/pg_query/include/optimizer/optimizer.h +0 -194
  701. data/ext/pg_query/include/optimizer/paths.h +0 -257
  702. data/ext/pg_query/include/optimizer/planmain.h +0 -119
  703. data/ext/pg_query/include/parser/analyze.h +0 -49
  704. data/ext/pg_query/include/parser/gram.h +0 -1067
  705. data/ext/pg_query/include/parser/gramparse.h +0 -75
  706. data/ext/pg_query/include/parser/kwlist.h +0 -477
  707. data/ext/pg_query/include/parser/parse_agg.h +0 -68
  708. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  709. data/ext/pg_query/include/parser/parse_coerce.h +0 -98
  710. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  711. data/ext/pg_query/include/parser/parse_expr.h +0 -26
  712. data/ext/pg_query/include/parser/parse_func.h +0 -73
  713. data/ext/pg_query/include/parser/parse_node.h +0 -327
  714. data/ext/pg_query/include/parser/parse_oper.h +0 -67
  715. data/ext/pg_query/include/parser/parse_relation.h +0 -123
  716. data/ext/pg_query/include/parser/parse_target.h +0 -46
  717. data/ext/pg_query/include/parser/parse_type.h +0 -60
  718. data/ext/pg_query/include/parser/parser.h +0 -41
  719. data/ext/pg_query/include/parser/parsetree.h +0 -61
  720. data/ext/pg_query/include/parser/scanner.h +0 -152
  721. data/ext/pg_query/include/parser/scansup.h +0 -30
  722. data/ext/pg_query/include/partitioning/partdefs.h +0 -26
  723. data/ext/pg_query/include/pg_config.h +0 -995
  724. data/ext/pg_query/include/pg_config_manual.h +0 -357
  725. data/ext/pg_query/include/pg_config_os.h +0 -8
  726. data/ext/pg_query/include/pg_getopt.h +0 -56
  727. data/ext/pg_query/include/pg_trace.h +0 -17
  728. data/ext/pg_query/include/pgstat.h +0 -1488
  729. data/ext/pg_query/include/pgtime.h +0 -84
  730. data/ext/pg_query/include/pl_gram.h +0 -385
  731. data/ext/pg_query/include/pl_reserved_kwlist.h +0 -52
  732. data/ext/pg_query/include/pl_reserved_kwlist_d.h +0 -114
  733. data/ext/pg_query/include/pl_unreserved_kwlist.h +0 -112
  734. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +0 -246
  735. data/ext/pg_query/include/plerrcodes.h +0 -990
  736. data/ext/pg_query/include/plpgsql.h +0 -1347
  737. data/ext/pg_query/include/port/atomics/arch-arm.h +0 -26
  738. data/ext/pg_query/include/port/atomics/arch-ppc.h +0 -254
  739. data/ext/pg_query/include/port/atomics/arch-x86.h +0 -252
  740. data/ext/pg_query/include/port/atomics/fallback.h +0 -170
  741. data/ext/pg_query/include/port/atomics/generic-gcc.h +0 -286
  742. data/ext/pg_query/include/port/atomics/generic.h +0 -401
  743. data/ext/pg_query/include/port/atomics.h +0 -524
  744. data/ext/pg_query/include/port/pg_bitutils.h +0 -272
  745. data/ext/pg_query/include/port/pg_bswap.h +0 -161
  746. data/ext/pg_query/include/port/pg_crc32c.h +0 -101
  747. data/ext/pg_query/include/port.h +0 -528
  748. data/ext/pg_query/include/portability/instr_time.h +0 -256
  749. data/ext/pg_query/include/postgres.h +0 -764
  750. data/ext/pg_query/include/postgres_ext.h +0 -74
  751. data/ext/pg_query/include/postmaster/autovacuum.h +0 -83
  752. data/ext/pg_query/include/postmaster/bgworker.h +0 -161
  753. data/ext/pg_query/include/postmaster/bgworker_internals.h +0 -64
  754. data/ext/pg_query/include/postmaster/bgwriter.h +0 -45
  755. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  756. data/ext/pg_query/include/postmaster/interrupt.h +0 -32
  757. data/ext/pg_query/include/postmaster/pgarch.h +0 -39
  758. data/ext/pg_query/include/postmaster/postmaster.h +0 -77
  759. data/ext/pg_query/include/postmaster/syslogger.h +0 -98
  760. data/ext/pg_query/include/postmaster/walwriter.h +0 -21
  761. data/ext/pg_query/include/regex/regex.h +0 -184
  762. data/ext/pg_query/include/replication/logicallauncher.h +0 -31
  763. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  764. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  765. data/ext/pg_query/include/replication/origin.h +0 -73
  766. data/ext/pg_query/include/replication/reorderbuffer.h +0 -468
  767. data/ext/pg_query/include/replication/slot.h +0 -219
  768. data/ext/pg_query/include/replication/syncrep.h +0 -115
  769. data/ext/pg_query/include/replication/walreceiver.h +0 -340
  770. data/ext/pg_query/include/replication/walsender.h +0 -74
  771. data/ext/pg_query/include/rewrite/prs2lock.h +0 -46
  772. data/ext/pg_query/include/rewrite/rewriteHandler.h +0 -40
  773. data/ext/pg_query/include/rewrite/rewriteManip.h +0 -87
  774. data/ext/pg_query/include/rewrite/rewriteSupport.h +0 -26
  775. data/ext/pg_query/include/storage/backendid.h +0 -37
  776. data/ext/pg_query/include/storage/block.h +0 -121
  777. data/ext/pg_query/include/storage/buf.h +0 -46
  778. data/ext/pg_query/include/storage/bufmgr.h +0 -292
  779. data/ext/pg_query/include/storage/bufpage.h +0 -459
  780. data/ext/pg_query/include/storage/condition_variable.h +0 -62
  781. data/ext/pg_query/include/storage/dsm.h +0 -61
  782. data/ext/pg_query/include/storage/dsm_impl.h +0 -75
  783. data/ext/pg_query/include/storage/fd.h +0 -168
  784. data/ext/pg_query/include/storage/ipc.h +0 -81
  785. data/ext/pg_query/include/storage/item.h +0 -19
  786. data/ext/pg_query/include/storage/itemid.h +0 -184
  787. data/ext/pg_query/include/storage/itemptr.h +0 -206
  788. data/ext/pg_query/include/storage/large_object.h +0 -100
  789. data/ext/pg_query/include/storage/latch.h +0 -190
  790. data/ext/pg_query/include/storage/lmgr.h +0 -114
  791. data/ext/pg_query/include/storage/lock.h +0 -613
  792. data/ext/pg_query/include/storage/lockdefs.h +0 -59
  793. data/ext/pg_query/include/storage/lwlock.h +0 -233
  794. data/ext/pg_query/include/storage/lwlocknames.h +0 -51
  795. data/ext/pg_query/include/storage/off.h +0 -57
  796. data/ext/pg_query/include/storage/pg_sema.h +0 -61
  797. data/ext/pg_query/include/storage/pg_shmem.h +0 -90
  798. data/ext/pg_query/include/storage/pmsignal.h +0 -94
  799. data/ext/pg_query/include/storage/predicate.h +0 -87
  800. data/ext/pg_query/include/storage/proc.h +0 -347
  801. data/ext/pg_query/include/storage/proclist_types.h +0 -51
  802. data/ext/pg_query/include/storage/procsignal.h +0 -75
  803. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  804. data/ext/pg_query/include/storage/s_lock.h +0 -1071
  805. data/ext/pg_query/include/storage/sharedfileset.h +0 -45
  806. data/ext/pg_query/include/storage/shm_mq.h +0 -85
  807. data/ext/pg_query/include/storage/shm_toc.h +0 -58
  808. data/ext/pg_query/include/storage/shmem.h +0 -81
  809. data/ext/pg_query/include/storage/sinval.h +0 -153
  810. data/ext/pg_query/include/storage/sinvaladt.h +0 -43
  811. data/ext/pg_query/include/storage/smgr.h +0 -109
  812. data/ext/pg_query/include/storage/spin.h +0 -77
  813. data/ext/pg_query/include/storage/standby.h +0 -91
  814. data/ext/pg_query/include/storage/standbydefs.h +0 -74
  815. data/ext/pg_query/include/storage/sync.h +0 -62
  816. data/ext/pg_query/include/tcop/cmdtag.h +0 -58
  817. data/ext/pg_query/include/tcop/cmdtaglist.h +0 -217
  818. data/ext/pg_query/include/tcop/deparse_utility.h +0 -108
  819. data/ext/pg_query/include/tcop/dest.h +0 -149
  820. data/ext/pg_query/include/tcop/fastpath.h +0 -21
  821. data/ext/pg_query/include/tcop/pquery.h +0 -51
  822. data/ext/pg_query/include/tcop/tcopprot.h +0 -89
  823. data/ext/pg_query/include/tcop/utility.h +0 -108
  824. data/ext/pg_query/include/tsearch/ts_cache.h +0 -98
  825. data/ext/pg_query/include/utils/acl.h +0 -312
  826. data/ext/pg_query/include/utils/aclchk_internal.h +0 -45
  827. data/ext/pg_query/include/utils/array.h +0 -459
  828. data/ext/pg_query/include/utils/builtins.h +0 -128
  829. data/ext/pg_query/include/utils/bytea.h +0 -27
  830. data/ext/pg_query/include/utils/catcache.h +0 -231
  831. data/ext/pg_query/include/utils/date.h +0 -90
  832. data/ext/pg_query/include/utils/datetime.h +0 -343
  833. data/ext/pg_query/include/utils/datum.h +0 -68
  834. data/ext/pg_query/include/utils/dsa.h +0 -123
  835. data/ext/pg_query/include/utils/dynahash.h +0 -19
  836. data/ext/pg_query/include/utils/elog.h +0 -439
  837. data/ext/pg_query/include/utils/errcodes.h +0 -352
  838. data/ext/pg_query/include/utils/expandeddatum.h +0 -159
  839. data/ext/pg_query/include/utils/expandedrecord.h +0 -231
  840. data/ext/pg_query/include/utils/float.h +0 -356
  841. data/ext/pg_query/include/utils/fmgroids.h +0 -2657
  842. data/ext/pg_query/include/utils/fmgrprotos.h +0 -2646
  843. data/ext/pg_query/include/utils/fmgrtab.h +0 -48
  844. data/ext/pg_query/include/utils/guc.h +0 -443
  845. data/ext/pg_query/include/utils/guc_tables.h +0 -272
  846. data/ext/pg_query/include/utils/hsearch.h +0 -149
  847. data/ext/pg_query/include/utils/inval.h +0 -65
  848. data/ext/pg_query/include/utils/lsyscache.h +0 -198
  849. data/ext/pg_query/include/utils/memdebug.h +0 -82
  850. data/ext/pg_query/include/utils/memutils.h +0 -225
  851. data/ext/pg_query/include/utils/numeric.h +0 -76
  852. data/ext/pg_query/include/utils/palloc.h +0 -136
  853. data/ext/pg_query/include/utils/partcache.h +0 -102
  854. data/ext/pg_query/include/utils/pg_locale.h +0 -119
  855. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  856. data/ext/pg_query/include/utils/pidfile.h +0 -56
  857. data/ext/pg_query/include/utils/plancache.h +0 -235
  858. data/ext/pg_query/include/utils/portal.h +0 -254
  859. data/ext/pg_query/include/utils/probes.h +0 -114
  860. data/ext/pg_query/include/utils/ps_status.h +0 -25
  861. data/ext/pg_query/include/utils/queryenvironment.h +0 -74
  862. data/ext/pg_query/include/utils/regproc.h +0 -28
  863. data/ext/pg_query/include/utils/rel.h +0 -643
  864. data/ext/pg_query/include/utils/relcache.h +0 -150
  865. data/ext/pg_query/include/utils/reltrigger.h +0 -81
  866. data/ext/pg_query/include/utils/resowner.h +0 -86
  867. data/ext/pg_query/include/utils/rls.h +0 -50
  868. data/ext/pg_query/include/utils/ruleutils.h +0 -44
  869. data/ext/pg_query/include/utils/sharedtuplestore.h +0 -61
  870. data/ext/pg_query/include/utils/snapmgr.h +0 -159
  871. data/ext/pg_query/include/utils/snapshot.h +0 -206
  872. data/ext/pg_query/include/utils/sortsupport.h +0 -276
  873. data/ext/pg_query/include/utils/syscache.h +0 -219
  874. data/ext/pg_query/include/utils/timeout.h +0 -88
  875. data/ext/pg_query/include/utils/timestamp.h +0 -116
  876. data/ext/pg_query/include/utils/tuplesort.h +0 -277
  877. data/ext/pg_query/include/utils/tuplestore.h +0 -91
  878. data/ext/pg_query/include/utils/typcache.h +0 -202
  879. data/ext/pg_query/include/utils/tzparser.h +0 -39
  880. data/ext/pg_query/include/utils/varlena.h +0 -39
  881. data/ext/pg_query/include/utils/xml.h +0 -84
  882. data/ext/pg_query/pg_query_ruby_freebsd.sym +0 -2
  883. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -659
  884. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  885. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  886. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  887. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  888. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1832
  889. data/ext/pg_query/src_common_string.c +0 -86
  890. data/ext/pg_query/src_port_erand48.c +0 -127
  891. data/ext/pg_query/src_port_pgsleep.c +0 -69
  892. data/ext/pg_query/src_port_random.c +0 -31
  893. data/ext/pg_query/src_port_strnlen.c +0 -39
  894. /data/ext/pg_query/{pg_query_ruby.sym → ext_symbols.sym} +0 -0
  895. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -0,0 +1,238 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * plancache.h
4
+ * Plan cache definitions.
5
+ *
6
+ * See plancache.c for comments.
7
+ *
8
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1994, Regents of the University of California
10
+ *
11
+ * src/include/utils/plancache.h
12
+ *
13
+ *-------------------------------------------------------------------------
14
+ */
15
+ #ifndef PLANCACHE_H
16
+ #define PLANCACHE_H
17
+
18
+ #include "access/tupdesc.h"
19
+ #include "lib/ilist.h"
20
+ #include "nodes/params.h"
21
+ #include "tcop/cmdtag.h"
22
+ #include "utils/queryenvironment.h"
23
+ #include "utils/resowner.h"
24
+
25
+
26
+ /* Forward declaration, to avoid including parsenodes.h here */
27
+ struct RawStmt;
28
+
29
+ /* possible values for plan_cache_mode */
30
+ typedef enum
31
+ {
32
+ PLAN_CACHE_MODE_AUTO,
33
+ PLAN_CACHE_MODE_FORCE_GENERIC_PLAN,
34
+ PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN,
35
+ } PlanCacheMode;
36
+
37
+ /* GUC parameter */
38
+ extern PGDLLIMPORT int plan_cache_mode;
39
+
40
+ #define CACHEDPLANSOURCE_MAGIC 195726186
41
+ #define CACHEDPLAN_MAGIC 953717834
42
+ #define CACHEDEXPR_MAGIC 838275847
43
+
44
+ /*
45
+ * CachedPlanSource (which might better have been called CachedQuery)
46
+ * represents a SQL query that we expect to use multiple times. It stores
47
+ * the query source text, the raw parse tree, and the analyzed-and-rewritten
48
+ * query tree, as well as adjunct data. Cache invalidation can happen as a
49
+ * result of DDL affecting objects used by the query. In that case we discard
50
+ * the analyzed-and-rewritten query tree, and rebuild it when next needed.
51
+ *
52
+ * An actual execution plan, represented by CachedPlan, is derived from the
53
+ * CachedPlanSource when we need to execute the query. The plan could be
54
+ * either generic (usable with any set of plan parameters) or custom (for a
55
+ * specific set of parameters). plancache.c contains the logic that decides
56
+ * which way to do it for any particular execution. If we are using a generic
57
+ * cached plan then it is meant to be re-used across multiple executions, so
58
+ * callers must always treat CachedPlans as read-only.
59
+ *
60
+ * Once successfully built and "saved", CachedPlanSources typically live
61
+ * for the life of the backend, although they can be dropped explicitly.
62
+ * CachedPlans are reference-counted and go away automatically when the last
63
+ * reference is dropped. A CachedPlan can outlive the CachedPlanSource it
64
+ * was created from.
65
+ *
66
+ * An "unsaved" CachedPlanSource can be used for generating plans, but it
67
+ * lives in transient storage and will not be updated in response to sinval
68
+ * events.
69
+ *
70
+ * CachedPlans made from saved CachedPlanSources are likewise in permanent
71
+ * storage, so to avoid memory leaks, the reference-counted references to them
72
+ * must be held in permanent data structures or ResourceOwners. CachedPlans
73
+ * made from unsaved CachedPlanSources are in children of the caller's
74
+ * memory context, so references to them should not be longer-lived than
75
+ * that context. (Reference counting is somewhat pro forma in that case,
76
+ * though it may be useful if the CachedPlan can be discarded early.)
77
+ *
78
+ * A CachedPlanSource has two associated memory contexts: one that holds the
79
+ * struct itself, the query source text and the raw parse tree, and another
80
+ * context that holds the rewritten query tree and associated data. This
81
+ * allows the query tree to be discarded easily when it is invalidated.
82
+ *
83
+ * Some callers wish to use the CachedPlan API even with one-shot queries
84
+ * that have no reason to be saved at all. We therefore support a "oneshot"
85
+ * variant that does no data copying or invalidation checking. In this case
86
+ * there are no separate memory contexts: the CachedPlanSource struct and
87
+ * all subsidiary data live in the caller's CurrentMemoryContext, and there
88
+ * is no way to free memory short of clearing that entire context. A oneshot
89
+ * plan is always treated as unsaved.
90
+ *
91
+ * Note: the string referenced by commandTag is not subsidiary storage;
92
+ * it is assumed to be a compile-time-constant string. As with portals,
93
+ * commandTag shall be NULL if and only if the original query string (before
94
+ * rewriting) was an empty string.
95
+ */
96
+ typedef struct CachedPlanSource
97
+ {
98
+ int magic; /* should equal CACHEDPLANSOURCE_MAGIC */
99
+ struct RawStmt *raw_parse_tree; /* output of raw_parser(), or NULL */
100
+ const char *query_string; /* source text of query */
101
+ CommandTag commandTag; /* 'nuff said */
102
+ Oid *param_types; /* array of parameter type OIDs, or NULL */
103
+ int num_params; /* length of param_types array */
104
+ ParserSetupHook parserSetup; /* alternative parameter spec method */
105
+ void *parserSetupArg;
106
+ int cursor_options; /* cursor options used for planning */
107
+ bool fixed_result; /* disallow change in result tupdesc? */
108
+ TupleDesc resultDesc; /* result type; NULL = doesn't return tuples */
109
+ MemoryContext context; /* memory context holding all above */
110
+ /* These fields describe the current analyzed-and-rewritten query tree: */
111
+ List *query_list; /* list of Query nodes, or NIL if not valid */
112
+ List *relationOids; /* OIDs of relations the queries depend on */
113
+ List *invalItems; /* other dependencies, as PlanInvalItems */
114
+ struct SearchPathMatcher *search_path; /* search_path used for parsing
115
+ * and planning */
116
+ MemoryContext query_context; /* context holding the above, or NULL */
117
+ Oid rewriteRoleId; /* Role ID we did rewriting for */
118
+ bool rewriteRowSecurity; /* row_security used during rewrite */
119
+ bool dependsOnRLS; /* is rewritten query specific to the above? */
120
+ /* If we have a generic plan, this is a reference-counted link to it: */
121
+ struct CachedPlan *gplan; /* generic plan, or NULL if not valid */
122
+ /* Some state flags: */
123
+ bool is_oneshot; /* is it a "oneshot" plan? */
124
+ bool is_complete; /* has CompleteCachedPlan been done? */
125
+ bool is_saved; /* has CachedPlanSource been "saved"? */
126
+ bool is_valid; /* is the query_list currently valid? */
127
+ int generation; /* increments each time we create a plan */
128
+ /* If CachedPlanSource has been saved, it is a member of a global list */
129
+ dlist_node node; /* list link, if is_saved */
130
+ /* State kept to help decide whether to use custom or generic plans: */
131
+ double generic_cost; /* cost of generic plan, or -1 if not known */
132
+ double total_custom_cost; /* total cost of custom plans so far */
133
+ int64 num_custom_plans; /* # of custom plans included in total */
134
+ int64 num_generic_plans; /* # of generic plans */
135
+ } CachedPlanSource;
136
+
137
+ /*
138
+ * CachedPlan represents an execution plan derived from a CachedPlanSource.
139
+ * The reference count includes both the link from the parent CachedPlanSource
140
+ * (if any), and any active plan executions, so the plan can be discarded
141
+ * exactly when refcount goes to zero. Both the struct itself and the
142
+ * subsidiary data live in the context denoted by the context field.
143
+ * This makes it easy to free a no-longer-needed cached plan. (However,
144
+ * if is_oneshot is true, the context does not belong solely to the CachedPlan
145
+ * so no freeing is possible.)
146
+ */
147
+ typedef struct CachedPlan
148
+ {
149
+ int magic; /* should equal CACHEDPLAN_MAGIC */
150
+ List *stmt_list; /* list of PlannedStmts */
151
+ bool is_oneshot; /* is it a "oneshot" plan? */
152
+ bool is_saved; /* is CachedPlan in a long-lived context? */
153
+ bool is_valid; /* is the stmt_list currently valid? */
154
+ Oid planRoleId; /* Role ID the plan was created for */
155
+ bool dependsOnRole; /* is plan specific to that role? */
156
+ TransactionId saved_xmin; /* if valid, replan when TransactionXmin
157
+ * changes from this value */
158
+ int generation; /* parent's generation number for this plan */
159
+ int refcount; /* count of live references to this struct */
160
+ MemoryContext context; /* context containing this CachedPlan */
161
+ } CachedPlan;
162
+
163
+ /*
164
+ * CachedExpression is a low-overhead mechanism for caching the planned form
165
+ * of standalone scalar expressions. While such expressions are not usually
166
+ * subject to cache invalidation events, that can happen, for example because
167
+ * of replacement of a SQL function that was inlined into the expression.
168
+ * The plancache takes care of storing the expression tree and marking it
169
+ * invalid if a cache invalidation occurs, but the caller must notice the
170
+ * !is_valid status and discard the obsolete expression without reusing it.
171
+ * We do not store the original parse tree, only the planned expression;
172
+ * this is an optimization based on the assumption that we usually will not
173
+ * need to replan for the life of the session.
174
+ */
175
+ typedef struct CachedExpression
176
+ {
177
+ int magic; /* should equal CACHEDEXPR_MAGIC */
178
+ Node *expr; /* planned form of expression */
179
+ bool is_valid; /* is the expression still valid? */
180
+ /* remaining fields should be treated as private to plancache.c: */
181
+ List *relationOids; /* OIDs of relations the expr depends on */
182
+ List *invalItems; /* other dependencies, as PlanInvalItems */
183
+ MemoryContext context; /* context containing this CachedExpression */
184
+ dlist_node node; /* link in global list of CachedExpressions */
185
+ } CachedExpression;
186
+
187
+
188
+ extern void InitPlanCache(void);
189
+ extern void ResetPlanCache(void);
190
+
191
+ extern void ReleaseAllPlanCacheRefsInOwner(ResourceOwner owner);
192
+
193
+ extern CachedPlanSource *CreateCachedPlan(struct RawStmt *raw_parse_tree,
194
+ const char *query_string,
195
+ CommandTag commandTag);
196
+ extern CachedPlanSource *CreateOneShotCachedPlan(struct RawStmt *raw_parse_tree,
197
+ const char *query_string,
198
+ CommandTag commandTag);
199
+ extern void CompleteCachedPlan(CachedPlanSource *plansource,
200
+ List *querytree_list,
201
+ MemoryContext querytree_context,
202
+ Oid *param_types,
203
+ int num_params,
204
+ ParserSetupHook parserSetup,
205
+ void *parserSetupArg,
206
+ int cursor_options,
207
+ bool fixed_result);
208
+
209
+ extern void SaveCachedPlan(CachedPlanSource *plansource);
210
+ extern void DropCachedPlan(CachedPlanSource *plansource);
211
+
212
+ extern void CachedPlanSetParentContext(CachedPlanSource *plansource,
213
+ MemoryContext newcontext);
214
+
215
+ extern CachedPlanSource *CopyCachedPlan(CachedPlanSource *plansource);
216
+
217
+ extern bool CachedPlanIsValid(CachedPlanSource *plansource);
218
+
219
+ extern List *CachedPlanGetTargetList(CachedPlanSource *plansource,
220
+ QueryEnvironment *queryEnv);
221
+
222
+ extern CachedPlan *GetCachedPlan(CachedPlanSource *plansource,
223
+ ParamListInfo boundParams,
224
+ ResourceOwner owner,
225
+ QueryEnvironment *queryEnv);
226
+ extern void ReleaseCachedPlan(CachedPlan *plan, ResourceOwner owner);
227
+
228
+ extern bool CachedPlanAllowsSimpleValidityCheck(CachedPlanSource *plansource,
229
+ CachedPlan *plan,
230
+ ResourceOwner owner);
231
+ extern bool CachedPlanIsSimplyValid(CachedPlanSource *plansource,
232
+ CachedPlan *plan,
233
+ ResourceOwner owner);
234
+
235
+ extern CachedExpression *GetCachedExpression(Node *expr);
236
+ extern void FreeCachedExpression(CachedExpression *cexpr);
237
+
238
+ #endif /* PLANCACHE_H */
@@ -0,0 +1,252 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * portal.h
4
+ * POSTGRES portal definitions.
5
+ *
6
+ * A portal is an abstraction which represents the execution state of
7
+ * a running or runnable query. Portals support both SQL-level CURSORs
8
+ * and protocol-level portals.
9
+ *
10
+ * Scrolling (nonsequential access) and suspension of execution are allowed
11
+ * only for portals that contain a single SELECT-type query. We do not want
12
+ * to let the client suspend an update-type query partway through! Because
13
+ * the query rewriter does not allow arbitrary ON SELECT rewrite rules,
14
+ * only queries that were originally update-type could produce multiple
15
+ * plan trees; so the restriction to a single query is not a problem
16
+ * in practice.
17
+ *
18
+ * For SQL cursors, we support three kinds of scroll behavior:
19
+ *
20
+ * (1) Neither NO SCROLL nor SCROLL was specified: to remain backward
21
+ * compatible, we allow backward fetches here, unless it would
22
+ * impose additional runtime overhead to do so.
23
+ *
24
+ * (2) NO SCROLL was specified: don't allow any backward fetches.
25
+ *
26
+ * (3) SCROLL was specified: allow all kinds of backward fetches, even
27
+ * if we need to take a performance hit to do so. (The planner sticks
28
+ * a Materialize node atop the query plan if needed.)
29
+ *
30
+ * Case #1 is converted to #2 or #3 by looking at the query itself and
31
+ * determining if scrollability can be supported without additional
32
+ * overhead.
33
+ *
34
+ * Protocol-level portals have no nonsequential-fetch API and so the
35
+ * distinction doesn't matter for them. They are always initialized
36
+ * to look like NO SCROLL cursors.
37
+ *
38
+ *
39
+ * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
40
+ * Portions Copyright (c) 1994, Regents of the University of California
41
+ *
42
+ * src/include/utils/portal.h
43
+ *
44
+ *-------------------------------------------------------------------------
45
+ */
46
+ #ifndef PORTAL_H
47
+ #define PORTAL_H
48
+
49
+ #include "datatype/timestamp.h"
50
+ #include "executor/execdesc.h"
51
+ #include "tcop/cmdtag.h"
52
+ #include "utils/plancache.h"
53
+ #include "utils/resowner.h"
54
+
55
+ /*
56
+ * We have several execution strategies for Portals, depending on what
57
+ * query or queries are to be executed. (Note: in all cases, a Portal
58
+ * executes just a single source-SQL query, and thus produces just a
59
+ * single result from the user's viewpoint. However, the rule rewriter
60
+ * may expand the single source query to zero or many actual queries.)
61
+ *
62
+ * PORTAL_ONE_SELECT: the portal contains one single SELECT query. We run
63
+ * the Executor incrementally as results are demanded. This strategy also
64
+ * supports holdable cursors (the Executor results can be dumped into a
65
+ * tuplestore for access after transaction completion).
66
+ *
67
+ * PORTAL_ONE_RETURNING: the portal contains a single INSERT/UPDATE/DELETE/
68
+ * MERGE query with a RETURNING clause (plus possibly auxiliary queries added
69
+ * by rule rewriting). On first execution, we run the portal to completion
70
+ * and dump the primary query's results into the portal tuplestore; the
71
+ * results are then returned to the client as demanded. (We can't support
72
+ * suspension of the query partway through, because the AFTER TRIGGER code
73
+ * can't cope, and also because we don't want to risk failing to execute
74
+ * all the auxiliary queries.)
75
+ *
76
+ * PORTAL_ONE_MOD_WITH: the portal contains one single SELECT query, but
77
+ * it has data-modifying CTEs. This is currently treated the same as the
78
+ * PORTAL_ONE_RETURNING case because of the possibility of needing to fire
79
+ * triggers. It may act more like PORTAL_ONE_SELECT in future.
80
+ *
81
+ * PORTAL_UTIL_SELECT: the portal contains a utility statement that returns
82
+ * a SELECT-like result (for example, EXPLAIN or SHOW). On first execution,
83
+ * we run the statement and dump its results into the portal tuplestore;
84
+ * the results are then returned to the client as demanded.
85
+ *
86
+ * PORTAL_MULTI_QUERY: all other cases. Here, we do not support partial
87
+ * execution: the portal's queries will be run to completion on first call.
88
+ */
89
+ typedef enum PortalStrategy
90
+ {
91
+ PORTAL_ONE_SELECT,
92
+ PORTAL_ONE_RETURNING,
93
+ PORTAL_ONE_MOD_WITH,
94
+ PORTAL_UTIL_SELECT,
95
+ PORTAL_MULTI_QUERY,
96
+ } PortalStrategy;
97
+
98
+ /*
99
+ * A portal is always in one of these states. It is possible to transit
100
+ * from ACTIVE back to READY if the query is not run to completion;
101
+ * otherwise we never back up in status.
102
+ */
103
+ typedef enum PortalStatus
104
+ {
105
+ PORTAL_NEW, /* freshly created */
106
+ PORTAL_DEFINED, /* PortalDefineQuery done */
107
+ PORTAL_READY, /* PortalStart complete, can run it */
108
+ PORTAL_ACTIVE, /* portal is running (can't delete it) */
109
+ PORTAL_DONE, /* portal is finished (don't re-run it) */
110
+ PORTAL_FAILED, /* portal got error (can't re-run it) */
111
+ } PortalStatus;
112
+
113
+ typedef struct PortalData *Portal;
114
+
115
+ typedef struct PortalData
116
+ {
117
+ /* Bookkeeping data */
118
+ const char *name; /* portal's name */
119
+ const char *prepStmtName; /* source prepared statement (NULL if none) */
120
+ MemoryContext portalContext; /* subsidiary memory for portal */
121
+ ResourceOwner resowner; /* resources owned by portal */
122
+ void (*cleanup) (Portal portal); /* cleanup hook */
123
+
124
+ /*
125
+ * State data for remembering which subtransaction(s) the portal was
126
+ * created or used in. If the portal is held over from a previous
127
+ * transaction, both subxids are InvalidSubTransactionId. Otherwise,
128
+ * createSubid is the creating subxact and activeSubid is the last subxact
129
+ * in which we ran the portal.
130
+ */
131
+ SubTransactionId createSubid; /* the creating subxact */
132
+ SubTransactionId activeSubid; /* the last subxact with activity */
133
+ int createLevel; /* creating subxact's nesting level */
134
+
135
+ /* The query or queries the portal will execute */
136
+ const char *sourceText; /* text of query (as of 8.4, never NULL) */
137
+ CommandTag commandTag; /* command tag for original query */
138
+ QueryCompletion qc; /* command completion data for executed query */
139
+ List *stmts; /* list of PlannedStmts */
140
+ CachedPlan *cplan; /* CachedPlan, if stmts are from one */
141
+
142
+ ParamListInfo portalParams; /* params to pass to query */
143
+ QueryEnvironment *queryEnv; /* environment for query */
144
+
145
+ /* Features/options */
146
+ PortalStrategy strategy; /* see above */
147
+ int cursorOptions; /* DECLARE CURSOR option bits */
148
+ bool run_once; /* unused */
149
+
150
+ /* Status data */
151
+ PortalStatus status; /* see above */
152
+ bool portalPinned; /* a pinned portal can't be dropped */
153
+ bool autoHeld; /* was automatically converted from pinned to
154
+ * held (see HoldPinnedPortals()) */
155
+
156
+ /* If not NULL, Executor is active; call ExecutorEnd eventually: */
157
+ QueryDesc *queryDesc; /* info needed for executor invocation */
158
+
159
+ /* If portal returns tuples, this is their tupdesc: */
160
+ TupleDesc tupDesc; /* descriptor for result tuples */
161
+ /* and these are the format codes to use for the columns: */
162
+ int16 *formats; /* a format code for each column */
163
+
164
+ /*
165
+ * Outermost ActiveSnapshot for execution of the portal's queries. For
166
+ * all but a few utility commands, we require such a snapshot to exist.
167
+ * This ensures that TOAST references in query results can be detoasted,
168
+ * and helps to reduce thrashing of the process's exposed xmin.
169
+ */
170
+ Snapshot portalSnapshot; /* active snapshot, or NULL if none */
171
+
172
+ /*
173
+ * Where we store tuples for a held cursor or a PORTAL_ONE_RETURNING,
174
+ * PORTAL_ONE_MOD_WITH, or PORTAL_UTIL_SELECT query. (A cursor held past
175
+ * the end of its transaction no longer has any active executor state.)
176
+ */
177
+ Tuplestorestate *holdStore; /* store for holdable cursors */
178
+ MemoryContext holdContext; /* memory containing holdStore */
179
+
180
+ /*
181
+ * Snapshot under which tuples in the holdStore were read. We must keep a
182
+ * reference to this snapshot if there is any possibility that the tuples
183
+ * contain TOAST references, because releasing the snapshot could allow
184
+ * recently-dead rows to be vacuumed away, along with any toast data
185
+ * belonging to them. In the case of a held cursor, we avoid needing to
186
+ * keep such a snapshot by forcibly detoasting the data.
187
+ */
188
+ Snapshot holdSnapshot; /* registered snapshot, or NULL if none */
189
+
190
+ /*
191
+ * atStart, atEnd and portalPos indicate the current cursor position.
192
+ * portalPos is zero before the first row, N after fetching N'th row of
193
+ * query. After we run off the end, portalPos = # of rows in query, and
194
+ * atEnd is true. Note that atStart implies portalPos == 0, but not the
195
+ * reverse: we might have backed up only as far as the first row, not to
196
+ * the start. Also note that various code inspects atStart and atEnd, but
197
+ * only the portal movement routines should touch portalPos.
198
+ */
199
+ bool atStart;
200
+ bool atEnd;
201
+ uint64 portalPos;
202
+
203
+ /* Presentation data, primarily used by the pg_cursors system view */
204
+ TimestampTz creation_time; /* time at which this portal was defined */
205
+ bool visible; /* include this portal in pg_cursors? */
206
+ } PortalData;
207
+
208
+ /*
209
+ * PortalIsValid
210
+ * True iff portal is valid.
211
+ */
212
+ #define PortalIsValid(p) PointerIsValid(p)
213
+
214
+
215
+ /* Prototypes for functions in utils/mmgr/portalmem.c */
216
+ extern void EnablePortalManager(void);
217
+ extern bool PreCommit_Portals(bool isPrepare);
218
+ extern void AtAbort_Portals(void);
219
+ extern void AtCleanup_Portals(void);
220
+ extern void PortalErrorCleanup(void);
221
+ extern void AtSubCommit_Portals(SubTransactionId mySubid,
222
+ SubTransactionId parentSubid,
223
+ int parentLevel,
224
+ ResourceOwner parentXactOwner);
225
+ extern void AtSubAbort_Portals(SubTransactionId mySubid,
226
+ SubTransactionId parentSubid,
227
+ ResourceOwner myXactOwner,
228
+ ResourceOwner parentXactOwner);
229
+ extern void AtSubCleanup_Portals(SubTransactionId mySubid);
230
+ extern Portal CreatePortal(const char *name, bool allowDup, bool dupSilent);
231
+ extern Portal CreateNewPortal(void);
232
+ extern void PinPortal(Portal portal);
233
+ extern void UnpinPortal(Portal portal);
234
+ extern void MarkPortalActive(Portal portal);
235
+ extern void MarkPortalDone(Portal portal);
236
+ extern void MarkPortalFailed(Portal portal);
237
+ extern void PortalDrop(Portal portal, bool isTopCommit);
238
+ extern Portal GetPortalByName(const char *name);
239
+ extern void PortalDefineQuery(Portal portal,
240
+ const char *prepStmtName,
241
+ const char *sourceText,
242
+ CommandTag commandTag,
243
+ List *stmts,
244
+ CachedPlan *cplan);
245
+ extern PlannedStmt *PortalGetPrimaryStmt(Portal portal);
246
+ extern void PortalCreateHoldStore(Portal portal);
247
+ extern void PortalHashTableDeleteAll(void);
248
+ extern bool ThereAreNoReadyPortals(void);
249
+ extern void HoldPinnedPortals(void);
250
+ extern void ForgetPortalSnapshots(void);
251
+
252
+ #endif /* PORTAL_H */
@@ -0,0 +1,114 @@
1
+ #define TRACE_POSTGRESQL_TRANSACTION_START(INT1) do {} while (0)
2
+ #define TRACE_POSTGRESQL_TRANSACTION_START_ENABLED() (0)
3
+ #define TRACE_POSTGRESQL_TRANSACTION_COMMIT(INT1) do {} while (0)
4
+ #define TRACE_POSTGRESQL_TRANSACTION_COMMIT_ENABLED() (0)
5
+ #define TRACE_POSTGRESQL_TRANSACTION_ABORT(INT1) do {} while (0)
6
+ #define TRACE_POSTGRESQL_TRANSACTION_ABORT_ENABLED() (0)
7
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE(INT1, INT2) do {} while (0)
8
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_ENABLED() (0)
9
+ #define TRACE_POSTGRESQL_LWLOCK_RELEASE(INT1) do {} while (0)
10
+ #define TRACE_POSTGRESQL_LWLOCK_RELEASE_ENABLED() (0)
11
+ #define TRACE_POSTGRESQL_LWLOCK_WAIT_START(INT1, INT2) do {} while (0)
12
+ #define TRACE_POSTGRESQL_LWLOCK_WAIT_START_ENABLED() (0)
13
+ #define TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(INT1, INT2) do {} while (0)
14
+ #define TRACE_POSTGRESQL_LWLOCK_WAIT_DONE_ENABLED() (0)
15
+ #define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE(INT1, INT2) do {} while (0)
16
+ #define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_ENABLED() (0)
17
+ #define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL(INT1, INT2) do {} while (0)
18
+ #define TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL_ENABLED() (0)
19
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT(INT1, INT2) do {} while (0)
20
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_ENABLED() (0)
21
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL(INT1, INT2) do {} while (0)
22
+ #define TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL_ENABLED() (0)
23
+ #define TRACE_POSTGRESQL_LOCK_WAIT_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
24
+ #define TRACE_POSTGRESQL_LOCK_WAIT_START_ENABLED() (0)
25
+ #define TRACE_POSTGRESQL_LOCK_WAIT_DONE(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
26
+ #define TRACE_POSTGRESQL_LOCK_WAIT_DONE_ENABLED() (0)
27
+ #define TRACE_POSTGRESQL_QUERY_PARSE_START(INT1) do {} while (0)
28
+ #define TRACE_POSTGRESQL_QUERY_PARSE_START_ENABLED() (0)
29
+ #define TRACE_POSTGRESQL_QUERY_PARSE_DONE(INT1) do {} while (0)
30
+ #define TRACE_POSTGRESQL_QUERY_PARSE_DONE_ENABLED() (0)
31
+ #define TRACE_POSTGRESQL_QUERY_REWRITE_START(INT1) do {} while (0)
32
+ #define TRACE_POSTGRESQL_QUERY_REWRITE_START_ENABLED() (0)
33
+ #define TRACE_POSTGRESQL_QUERY_REWRITE_DONE(INT1) do {} while (0)
34
+ #define TRACE_POSTGRESQL_QUERY_REWRITE_DONE_ENABLED() (0)
35
+ #define TRACE_POSTGRESQL_QUERY_PLAN_START() do {} while (0)
36
+ #define TRACE_POSTGRESQL_QUERY_PLAN_START_ENABLED() (0)
37
+ #define TRACE_POSTGRESQL_QUERY_PLAN_DONE() do {} while (0)
38
+ #define TRACE_POSTGRESQL_QUERY_PLAN_DONE_ENABLED() (0)
39
+ #define TRACE_POSTGRESQL_QUERY_EXECUTE_START() do {} while (0)
40
+ #define TRACE_POSTGRESQL_QUERY_EXECUTE_START_ENABLED() (0)
41
+ #define TRACE_POSTGRESQL_QUERY_EXECUTE_DONE() do {} while (0)
42
+ #define TRACE_POSTGRESQL_QUERY_EXECUTE_DONE_ENABLED() (0)
43
+ #define TRACE_POSTGRESQL_QUERY_START(INT1) do {} while (0)
44
+ #define TRACE_POSTGRESQL_QUERY_START_ENABLED() (0)
45
+ #define TRACE_POSTGRESQL_QUERY_DONE(INT1) do {} while (0)
46
+ #define TRACE_POSTGRESQL_QUERY_DONE_ENABLED() (0)
47
+ #define TRACE_POSTGRESQL_STATEMENT_STATUS(INT1) do {} while (0)
48
+ #define TRACE_POSTGRESQL_STATEMENT_STATUS_ENABLED() (0)
49
+ #define TRACE_POSTGRESQL_SORT_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
50
+ #define TRACE_POSTGRESQL_SORT_START_ENABLED() (0)
51
+ #define TRACE_POSTGRESQL_SORT_DONE(INT1, INT2) do {} while (0)
52
+ #define TRACE_POSTGRESQL_SORT_DONE_ENABLED() (0)
53
+ #define TRACE_POSTGRESQL_BUFFER_READ_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
54
+ #define TRACE_POSTGRESQL_BUFFER_READ_START_ENABLED() (0)
55
+ #define TRACE_POSTGRESQL_BUFFER_READ_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7) do {} while (0)
56
+ #define TRACE_POSTGRESQL_BUFFER_READ_DONE_ENABLED() (0)
57
+ #define TRACE_POSTGRESQL_BUFFER_FLUSH_START(INT1, INT2, INT3, INT4, INT5) do {} while (0)
58
+ #define TRACE_POSTGRESQL_BUFFER_FLUSH_START_ENABLED() (0)
59
+ #define TRACE_POSTGRESQL_BUFFER_FLUSH_DONE(INT1, INT2, INT3, INT4, INT5) do {} while (0)
60
+ #define TRACE_POSTGRESQL_BUFFER_FLUSH_DONE_ENABLED() (0)
61
+ #define TRACE_POSTGRESQL_BUFFER_EXTEND_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
62
+ #define TRACE_POSTGRESQL_BUFFER_EXTEND_START_ENABLED() (0)
63
+ #define TRACE_POSTGRESQL_BUFFER_EXTEND_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7) do {} while (0)
64
+ #define TRACE_POSTGRESQL_BUFFER_EXTEND_DONE_ENABLED() (0)
65
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START(INT1) do {} while (0)
66
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_START_ENABLED() (0)
67
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_SYNC_START() do {} while (0)
68
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_SYNC_START_ENABLED() (0)
69
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE() do {} while (0)
70
+ #define TRACE_POSTGRESQL_BUFFER_CHECKPOINT_DONE_ENABLED() (0)
71
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_START(INT1, INT2) do {} while (0)
72
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_START_ENABLED() (0)
73
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_WRITTEN(INT1) do {} while (0)
74
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_WRITTEN_ENABLED() (0)
75
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_DONE(INT1, INT2, INT3) do {} while (0)
76
+ #define TRACE_POSTGRESQL_BUFFER_SYNC_DONE_ENABLED() (0)
77
+ #define TRACE_POSTGRESQL_DEADLOCK_FOUND() do {} while (0)
78
+ #define TRACE_POSTGRESQL_DEADLOCK_FOUND_ENABLED() (0)
79
+ #define TRACE_POSTGRESQL_CHECKPOINT_START(INT1) do {} while (0)
80
+ #define TRACE_POSTGRESQL_CHECKPOINT_START_ENABLED() (0)
81
+ #define TRACE_POSTGRESQL_CHECKPOINT_DONE(INT1, INT2, INT3, INT4, INT5) do {} while (0)
82
+ #define TRACE_POSTGRESQL_CHECKPOINT_DONE_ENABLED() (0)
83
+ #define TRACE_POSTGRESQL_CLOG_CHECKPOINT_START(INT1) do {} while (0)
84
+ #define TRACE_POSTGRESQL_CLOG_CHECKPOINT_START_ENABLED() (0)
85
+ #define TRACE_POSTGRESQL_CLOG_CHECKPOINT_DONE(INT1) do {} while (0)
86
+ #define TRACE_POSTGRESQL_CLOG_CHECKPOINT_DONE_ENABLED() (0)
87
+ #define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_START(INT1) do {} while (0)
88
+ #define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_START_ENABLED() (0)
89
+ #define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_DONE(INT1) do {} while (0)
90
+ #define TRACE_POSTGRESQL_SUBTRANS_CHECKPOINT_DONE_ENABLED() (0)
91
+ #define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_START(INT1) do {} while (0)
92
+ #define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_START_ENABLED() (0)
93
+ #define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_DONE(INT1) do {} while (0)
94
+ #define TRACE_POSTGRESQL_MULTIXACT_CHECKPOINT_DONE_ENABLED() (0)
95
+ #define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_START() do {} while (0)
96
+ #define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_START_ENABLED() (0)
97
+ #define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_DONE() do {} while (0)
98
+ #define TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_DONE_ENABLED() (0)
99
+ #define TRACE_POSTGRESQL_SMGR_MD_READ_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
100
+ #define TRACE_POSTGRESQL_SMGR_MD_READ_START_ENABLED() (0)
101
+ #define TRACE_POSTGRESQL_SMGR_MD_READ_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7, INT8) do {} while (0)
102
+ #define TRACE_POSTGRESQL_SMGR_MD_READ_DONE_ENABLED() (0)
103
+ #define TRACE_POSTGRESQL_SMGR_MD_WRITE_START(INT1, INT2, INT3, INT4, INT5, INT6) do {} while (0)
104
+ #define TRACE_POSTGRESQL_SMGR_MD_WRITE_START_ENABLED() (0)
105
+ #define TRACE_POSTGRESQL_SMGR_MD_WRITE_DONE(INT1, INT2, INT3, INT4, INT5, INT6, INT7, INT8) do {} while (0)
106
+ #define TRACE_POSTGRESQL_SMGR_MD_WRITE_DONE_ENABLED() (0)
107
+ #define TRACE_POSTGRESQL_WAL_INSERT(INT1, INT2) do {} while (0)
108
+ #define TRACE_POSTGRESQL_WAL_INSERT_ENABLED() (0)
109
+ #define TRACE_POSTGRESQL_WAL_SWITCH() do {} while (0)
110
+ #define TRACE_POSTGRESQL_WAL_SWITCH_ENABLED() (0)
111
+ #define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_START() do {} while (0)
112
+ #define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_START_ENABLED() (0)
113
+ #define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_DONE() do {} while (0)
114
+ #define TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_DONE_ENABLED() (0)
@@ -0,0 +1,47 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * ps_status.h
4
+ *
5
+ * Declarations for backend/utils/misc/ps_status.c
6
+ *
7
+ * src/include/utils/ps_status.h
8
+ *
9
+ *-------------------------------------------------------------------------
10
+ */
11
+
12
+ #ifndef PS_STATUS_H
13
+ #define PS_STATUS_H
14
+
15
+ /* disabled on Windows as the performance overhead can be significant */
16
+ #ifdef WIN32
17
+ #define DEFAULT_UPDATE_PROCESS_TITLE false
18
+ #else
19
+ #define DEFAULT_UPDATE_PROCESS_TITLE true
20
+ #endif
21
+
22
+ extern PGDLLIMPORT bool update_process_title;
23
+
24
+ extern char **save_ps_display_args(int argc, char **argv);
25
+
26
+ extern void init_ps_display(const char *fixed_part);
27
+
28
+ extern void set_ps_display_suffix(const char *suffix);
29
+
30
+ extern void set_ps_display_remove_suffix(void);
31
+
32
+ extern void set_ps_display_with_len(const char *activity, size_t len);
33
+
34
+ /*
35
+ * set_ps_display
36
+ * inlined to allow strlen to be evaluated during compilation when
37
+ * passing string constants.
38
+ */
39
+ static inline void
40
+ set_ps_display(const char *activity)
41
+ {
42
+ set_ps_display_with_len(activity, strlen(activity));
43
+ }
44
+
45
+ extern const char *get_ps_display(int *displen);
46
+
47
+ #endif /* PS_STATUS_H */