pg_query 4.2.1 → 5.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 (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +6 -8
  4. data/Rakefile +5 -6
  5. data/ext/pg_query/extconf.rb +14 -4
  6. data/ext/pg_query/include/pg_query.h +27 -3
  7. data/ext/pg_query/include/pg_query_enum_defs.c +311 -149
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +545 -489
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5092 -4432
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +385 -343
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1294 -1161
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +137 -123
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1657 -1496
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +3 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +1 -1
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +1 -1
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +1 -1
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -1
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +7 -5
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +16 -3
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +6 -2
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -58
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +1 -1
  29. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +2 -2
  30. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  31. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  32. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  34. data/ext/pg_query/include/{access → postgres/access}/table.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/tableam.h +68 -45
  36. data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +1 -1
  37. data/ext/pg_query/include/{access → postgres/access}/transam.h +1 -1
  38. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  39. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  40. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +58 -98
  42. data/ext/pg_query/include/{access → postgres/access}/twophase.h +2 -2
  43. data/ext/pg_query/include/{access → postgres/access}/xact.h +25 -18
  44. data/ext/pg_query/include/{access → postgres/access}/xlog.h +15 -16
  45. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +100 -62
  46. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  47. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +6 -25
  48. data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +1 -1
  49. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +7 -6
  50. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +17 -5
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +4 -3
  52. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  53. data/ext/pg_query/include/{c.h → postgres/c.h} +144 -156
  54. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +4 -3
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +5 -4
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +7 -6
  58. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +4 -4
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +1 -1
  60. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +2 -2
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +10 -8
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +3 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +1 -1
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +1 -1
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +1 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +1 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +19 -17
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -19
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +1 -1
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +3 -1
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +1 -1
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +1 -1
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +3 -1
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +4 -3
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +2 -2
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +1 -1
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +9 -1
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +2 -2
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +1 -1
  80. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  81. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  82. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +1 -1
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +1 -1
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +1 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +1 -1
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +1 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +1 -1
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +1 -1
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +1 -1
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +1 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +1 -1
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +1 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +1 -1
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +1 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +1 -1
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +3 -2
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +4 -2
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +1 -1
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +1 -1
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +1 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +1 -1
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +2 -5
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +1 -1
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +1 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +1 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +1 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +1 -1
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +1 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +1 -1
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +1 -1
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +1 -1
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +1 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +1 -1
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +1 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +1 -1
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +1 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +1 -1
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +1 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +1 -1
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +1 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +1 -1
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +1 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +1 -1
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +6 -6
  125. data/ext/pg_query/include/{commands → postgres/commands}/async.h +1 -1
  126. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +2 -1
  127. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +2 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +1 -1
  129. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  130. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +4 -4
  132. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +15 -14
  133. data/ext/pg_query/include/{commands → postgres/commands}/user.h +9 -3
  134. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +60 -14
  135. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  136. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +1 -1
  137. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  138. data/ext/pg_query/include/postgres/common/int.h +437 -0
  139. data/ext/pg_query/include/{common → postgres/common}/keywords.h +1 -1
  140. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  141. data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +3 -2
  142. data/ext/pg_query/include/{common → postgres/common}/relpath.h +20 -13
  143. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  144. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  145. data/ext/pg_query/include/{common → postgres/common}/string.h +5 -3
  146. data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +10 -10
  147. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +31 -13
  148. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  149. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  150. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +11 -4
  151. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  152. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  153. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  154. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +34 -17
  155. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +1 -1
  156. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +1 -1
  157. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +2 -2
  158. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  159. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  160. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +21 -2
  161. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  162. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +12 -12
  163. data/ext/pg_query/include/postgres/gram.h +1127 -0
  164. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  165. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +2 -2
  166. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  167. data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +4 -1
  168. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +435 -22
  169. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  170. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +9 -9
  171. data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +1 -1
  172. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  173. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +8 -2
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +1 -1
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +24 -17
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +36 -25
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +1 -1
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +10 -41
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +22 -10
  181. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  182. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  183. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +35 -18
  184. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  185. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +27 -15
  186. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +83 -30
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +5 -3
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +14 -2
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +7 -4
  192. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  193. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +96 -511
  195. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  196. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +377 -139
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1090 -440
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +30 -7
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +367 -124
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +670 -222
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  203. data/ext/pg_query/include/{utils → postgres/nodes}/queryjumble.h +5 -7
  204. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  205. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  206. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +12 -2
  208. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +6 -4
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +1 -1
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +8 -8
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +16 -7
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +3 -6
  214. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +4 -3
  215. data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +12 -1
  216. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +4 -2
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +3 -1
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +1 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +1 -1
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +22 -4
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -3
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +8 -3
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  224. data/ext/pg_query/include/{parser → postgres/parser}/parser.h +4 -4
  225. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  226. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  227. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +1 -1
  228. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  229. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +158 -218
  230. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +8 -46
  231. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  232. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +1 -1
  233. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  234. data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +173 -94
  235. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +3 -3
  236. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +66 -64
  237. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  238. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +1 -1
  239. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +2 -1
  240. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +48 -46
  241. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +28 -33
  242. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +3 -3
  243. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  245. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +1 -1
  248. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  249. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  250. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  251. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  252. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +62 -25
  253. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  254. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  255. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  256. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  257. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  258. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  259. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  260. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  261. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  264. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  268. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  269. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  270. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  275. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  276. data/ext/pg_query/include/{port.h → postgres/port.h} +42 -75
  277. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  278. data/ext/pg_query/include/postgres/postgres.h +579 -0
  279. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  280. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +1 -4
  281. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +2 -2
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +1 -1
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +2 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  285. data/ext/pg_query/include/postgres/postmaster/pgarch.h +36 -0
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +6 -3
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +3 -1
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +2 -2
  289. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +3 -1
  290. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +9 -6
  291. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +6 -1
  292. data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +30 -10
  293. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  294. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +4 -4
  295. data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +113 -45
  296. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +25 -6
  297. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +2 -8
  298. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +15 -9
  299. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +13 -13
  300. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  301. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -4
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  304. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +1 -1
  305. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -31
  306. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  307. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +183 -87
  308. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +146 -93
  309. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +2 -2
  310. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +3 -6
  311. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +4 -1
  312. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +24 -20
  313. data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +1 -1
  314. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +2 -2
  315. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  316. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  317. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +94 -57
  318. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +9 -1
  320. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +6 -1
  321. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +21 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +3 -3
  323. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +16 -2
  324. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  325. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  326. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +1 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +2 -2
  329. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +22 -17
  330. data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +3 -2
  331. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  332. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +3 -1
  333. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +66 -309
  335. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +1 -1
  336. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +1 -1
  337. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  338. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  339. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +3 -3
  340. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  341. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +12 -10
  342. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +1 -1
  343. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +9 -8
  344. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +1 -1
  345. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +3 -3
  346. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  347. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +1 -1
  348. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -1
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +3 -6
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +1 -1
  354. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +2 -4
  355. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +26 -81
  356. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  357. data/ext/pg_query/include/{utils → postgres/utils}/array.h +19 -1
  358. data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +2 -1
  359. data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +24 -3
  360. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +15 -6
  361. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +1 -1
  362. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  363. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  364. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +41 -21
  365. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  367. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +104 -29
  368. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  369. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  370. data/ext/pg_query/include/{utils → postgres/utils}/float.h +7 -6
  371. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +54 -1
  372. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +45 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +1 -1
  374. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +59 -86
  375. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  376. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +49 -3
  377. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +1 -1
  378. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +3 -3
  379. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +5 -1
  381. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  382. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +7 -51
  383. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  384. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  385. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +20 -5
  386. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +9 -2
  387. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  388. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +22 -14
  389. data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +37 -7
  390. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +1 -1
  391. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +1 -1
  392. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +6 -6
  393. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  395. data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +3 -3
  396. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +60 -43
  397. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +13 -8
  398. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  399. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  400. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +6 -1
  401. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  402. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +4 -2
  403. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +2 -2
  405. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +4 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +1 -1
  407. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +41 -11
  408. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +189 -35
  409. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +1 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +1 -1
  411. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +13 -1
  412. data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +9 -4
  413. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +15 -5
  414. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +7 -457
  415. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +6186 -5585
  416. data/ext/pg_query/include/protobuf/pg_query.pb.h +112443 -91222
  417. data/ext/pg_query/pg_query.c +10 -1
  418. data/ext/pg_query/pg_query.pb-c.c +19755 -17757
  419. data/ext/pg_query/pg_query_deparse.c +1 -10635
  420. data/ext/pg_query/pg_query_fingerprint.c +12 -8
  421. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  422. data/ext/pg_query/pg_query_internal.h +1 -1
  423. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  424. data/ext/pg_query/pg_query_normalize.c +1 -1
  425. data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
  426. data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
  427. data/ext/pg_query/pg_query_parse.c +47 -5
  428. data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
  429. data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
  430. data/ext/pg_query/pg_query_ruby.c +5 -0
  431. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  432. data/ext/pg_query/pg_query_scan.c +1 -1
  433. data/ext/pg_query/pg_query_split.c +3 -3
  434. data/ext/pg_query/postgres_deparse.c +11067 -0
  435. data/ext/pg_query/postgres_deparse.h +9 -0
  436. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  437. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  438. data/ext/pg_query/src_backend_commands_define.c +1 -1
  439. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  440. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  441. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  442. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  443. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  444. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  445. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  446. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  447. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  448. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  449. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  450. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  451. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  452. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  453. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  454. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  455. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  456. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  457. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  458. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  459. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  460. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  461. data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
  462. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  463. data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
  464. data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
  465. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  466. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  467. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  468. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  469. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  470. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  471. data/ext/pg_query/src_common_encnames.c +4 -1
  472. data/ext/pg_query/src_common_hashfn.c +1 -1
  473. data/ext/pg_query/src_common_keywords.c +1 -1
  474. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  475. data/ext/pg_query/src_common_kwlookup.c +1 -1
  476. data/ext/pg_query/src_common_psprintf.c +1 -1
  477. data/ext/pg_query/src_common_stringinfo.c +4 -4
  478. data/ext/pg_query/src_common_wchar.c +9 -8
  479. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  480. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  481. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  482. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  483. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  484. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  485. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  486. data/ext/pg_query/src_port_pg_bitutils.c +79 -5
  487. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  488. data/ext/pg_query/src_port_snprintf.c +6 -10
  489. data/ext/pg_query/src_port_strerror.c +1 -1
  490. data/ext/pg_query/src_port_strlcpy.c +79 -0
  491. data/lib/pg_query/fingerprint.rb +2 -3
  492. data/lib/pg_query/node.rb +16 -11
  493. data/lib/pg_query/parse.rb +1 -1
  494. data/lib/pg_query/pg_query_pb.rb +166 -3191
  495. data/lib/pg_query/treewalker.rb +23 -5
  496. data/lib/pg_query/version.rb +1 -1
  497. metadata +432 -380
  498. data/ext/pg_query/guc-file.c +0 -0
  499. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  500. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  501. data/ext/pg_query/include/commands/variable.h +0 -38
  502. data/ext/pg_query/include/common/ip.h +0 -31
  503. data/ext/pg_query/include/getaddrinfo.h +0 -162
  504. data/ext/pg_query/include/kwlist_d.h +0 -1095
  505. data/ext/pg_query/include/parser/gram.h +0 -1101
  506. data/ext/pg_query/include/pg_config_os.h +0 -8
  507. data/ext/pg_query/include/portability/instr_time.h +0 -256
  508. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  509. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  510. data/ext/pg_query/include/postmaster/pgarch.h +0 -73
  511. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  512. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  513. data/ext/pg_query/include/utils/dynahash.h +0 -20
  514. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  515. data/ext/pg_query/include/utils/pidfile.h +0 -56
  516. data/ext/pg_query/include/utils/ps_status.h +0 -25
  517. data/ext/pg_query/include/utils/rls.h +0 -50
  518. data/ext/pg_query/include/utils/tzparser.h +0 -39
  519. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
  520. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  521. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  522. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  523. data/ext/pg_query/src_common_pg_prng.c +0 -152
  524. data/ext/pg_query/src_common_string.c +0 -92
  525. data/ext/pg_query/src_port_pgsleep.c +0 -69
  526. data/ext/pg_query/src_port_strnlen.c +0 -39
  527. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  528. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
  529. /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
  530. /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
  531. /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
@@ -9,7 +9,7 @@
9
9
  * fmgr.c
10
10
  * The Postgres function manager.
11
11
  *
12
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
12
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
13
13
  * Portions Copyright (c) 1994, Regents of the University of California
14
14
  *
15
15
  *
@@ -29,6 +29,7 @@
29
29
  #include "lib/stringinfo.h"
30
30
  #include "miscadmin.h"
31
31
  #include "nodes/makefuncs.h"
32
+ #include "nodes/miscnodes.h"
32
33
  #include "nodes/nodeFuncs.h"
33
34
  #include "pgstat.h"
34
35
  #include "utils/acl.h"
@@ -366,6 +367,37 @@ FunctionCall6Coll(FmgrInfo *flinfo, Oid collation, Datum arg1, Datum arg2,
366
367
  */
367
368
 
368
369
 
370
+ /*
371
+ * Call a previously-looked-up datatype input function, with non-exception
372
+ * handling of "soft" errors.
373
+ *
374
+ * This is basically like InputFunctionCall, but the converted Datum is
375
+ * returned into *result while the function result is true for success or
376
+ * false for failure. Also, the caller may pass an ErrorSaveContext node.
377
+ * (We declare that as "fmNodePtr" to avoid including nodes.h in fmgr.h.)
378
+ *
379
+ * If escontext points to an ErrorSaveContext, any "soft" errors detected by
380
+ * the input function will be reported by filling the escontext struct and
381
+ * returning false. (The caller can choose to test SOFT_ERROR_OCCURRED(),
382
+ * but checking the function result instead is usually cheaper.)
383
+ *
384
+ * If escontext does not point to an ErrorSaveContext, errors are reported
385
+ * via ereport(ERROR), so that there is no functional difference from
386
+ * InputFunctionCall; the result will always be true if control returns.
387
+ */
388
+
389
+
390
+ /*
391
+ * Call a directly-named datatype input function, with non-exception
392
+ * handling of "soft" errors.
393
+ *
394
+ * This is like InputFunctionCallSafe, except that it is given a direct
395
+ * pointer to the C function to call. We assume that that function is
396
+ * strict. Also, the function cannot be one that needs to
397
+ * look at FmgrInfo, since there won't be any.
398
+ */
399
+
400
+
369
401
  /*
370
402
  * Call a previously-looked-up datatype output function.
371
403
  *
@@ -13,7 +13,7 @@
13
13
  * globals.c
14
14
  * global variable declarations
15
15
  *
16
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
16
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
17
17
  * Portions Copyright (c) 1994, Regents of the University of California
18
18
  *
19
19
  *
@@ -91,7 +91,7 @@ __thread volatile uint32 CritSectionCount = 0;
91
91
  /* full path to lib directory */
92
92
 
93
93
  #ifdef EXEC_BACKEND
94
- char postgres_exec_path[MAXPGPATH]; /* full path to backend */
94
+ /* full path to backend */
95
95
 
96
96
  /* note: currently this is not valid in backend processes */
97
97
  #endif
@@ -154,7 +154,10 @@ __thread bool ExitOnAnyError = false;
154
154
 
155
155
 
156
156
 
157
- /* GUC parameters for vacuum */
157
+ /* GUC parameters for vacuum */
158
+
159
+
160
+
158
161
 
159
162
 
160
163
 
@@ -17,6 +17,8 @@
17
17
  * - pg_mbstrlen_with_len
18
18
  * - pg_mblen
19
19
  * - SetDatabaseEncoding
20
+ * - GetMessageEncoding
21
+ * - MessageEncoding
20
22
  *--------------------------------------------------------------------
21
23
  */
22
24
 
@@ -45,7 +47,7 @@
45
47
  * the result is validly encoded according to the destination encoding.
46
48
  *
47
49
  *
48
- * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
50
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
49
51
  * Portions Copyright (c) 1994, Regents of the University of California
50
52
  *
51
53
  *
@@ -62,6 +64,7 @@
62
64
  #include "utils/builtins.h"
63
65
  #include "utils/memutils.h"
64
66
  #include "utils/syscache.h"
67
+ #include "varatt.h"
65
68
 
66
69
  /*
67
70
  * We maintain a simple linked list caching the fmgr lookup info for the
@@ -104,6 +107,7 @@ static __thread const pg_enc2name *ClientEncoding = &pg_enc2name_tbl[PG_SQL_ASCI
104
107
 
105
108
  static __thread const pg_enc2name *DatabaseEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
106
109
 
110
+ static __thread const pg_enc2name *MessageEncoding = &pg_enc2name_tbl[PG_SQL_ASCII];
107
111
 
108
112
 
109
113
  /*
@@ -184,7 +188,7 @@ pg_get_client_encoding(void)
184
188
  *
185
189
  * The output is null-terminated.
186
190
  *
187
- * If destlen < srclen * MAX_CONVERSION_LENGTH + 1, the converted output
191
+ * If destlen < srclen * MAX_CONVERSION_INPUT_LENGTH + 1, the converted output
188
192
  * wouldn't necessarily fit in the output buffer, and the function will not
189
193
  * convert the whole input.
190
194
  *
@@ -339,12 +343,20 @@ pg_unicode_to_server(pg_wchar c, unsigned char *s)
339
343
  FunctionCall6(Utf8ToServerConvProc,
340
344
  Int32GetDatum(PG_UTF8),
341
345
  Int32GetDatum(server_encoding),
342
- CStringGetDatum(c_as_utf8),
343
- CStringGetDatum(s),
346
+ CStringGetDatum((char *) c_as_utf8),
347
+ CStringGetDatum((char *) s),
344
348
  Int32GetDatum(c_as_utf8_len),
345
349
  BoolGetDatum(false));
346
350
  }
347
351
 
352
+ /*
353
+ * Convert a single Unicode code point into a string in the server encoding.
354
+ *
355
+ * Same as pg_unicode_to_server(), except that we don't throw errors,
356
+ * but simply return false on conversion failure.
357
+ */
358
+
359
+
348
360
 
349
361
  /* convert a multibyte string to a wchar */
350
362
 
@@ -586,7 +598,11 @@ GetDatabaseEncodingName(void)
586
598
  * not attached to a database, and under a database encoding lacking iconv
587
599
  * support (MULE_INTERNAL).
588
600
  */
589
-
601
+ int
602
+ GetMessageEncoding(void)
603
+ {
604
+ return MessageEncoding->encoding;
605
+ }
590
606
 
591
607
 
592
608
  /*
@@ -761,68 +777,6 @@ report_invalid_encoding(int encoding, const char *mbstr, int len)
761
777
  * null. Returns NULL iff failed. Before MessageEncoding initialization, "str"
762
778
  * should be ASCII-only; this will function as though MessageEncoding is UTF8.
763
779
  */
764
- WCHAR *
765
- pgwin32_message_to_UTF16(const char *str, int len, int *utf16len)
766
- {
767
- int msgenc = GetMessageEncoding();
768
- WCHAR *utf16;
769
- int dstlen;
770
- UINT codepage;
771
-
772
- if (msgenc == PG_SQL_ASCII)
773
- /* No conversion is possible, and SQL_ASCII is never utf16. */
774
- return NULL;
775
780
 
776
- codepage = pg_enc2name_tbl[msgenc].codepage;
777
-
778
- /*
779
- * Use MultiByteToWideChar directly if there is a corresponding codepage,
780
- * or double conversion through UTF8 if not. Double conversion is needed,
781
- * for example, in an ENCODING=LATIN8, LC_CTYPE=C database.
782
- */
783
- if (codepage != 0)
784
- {
785
- utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
786
- dstlen = MultiByteToWideChar(codepage, 0, str, len, utf16, len);
787
- utf16[dstlen] = (WCHAR) 0;
788
- }
789
- else
790
- {
791
- char *utf8;
792
-
793
- /*
794
- * XXX pg_do_encoding_conversion() requires a transaction. In the
795
- * absence of one, hope for the input to be valid UTF8.
796
- */
797
- if (IsTransactionState())
798
- {
799
- utf8 = (char *) pg_do_encoding_conversion((unsigned char *) str,
800
- len,
801
- msgenc,
802
- PG_UTF8);
803
- if (utf8 != str)
804
- len = strlen(utf8);
805
- }
806
- else
807
- utf8 = (char *) str;
808
-
809
- utf16 = (WCHAR *) palloc(sizeof(WCHAR) * (len + 1));
810
- dstlen = MultiByteToWideChar(CP_UTF8, 0, utf8, len, utf16, len);
811
- utf16[dstlen] = (WCHAR) 0;
812
-
813
- if (utf8 != str)
814
- pfree(utf8);
815
- }
816
-
817
- if (dstlen == 0 && len > 0)
818
- {
819
- pfree(utf16);
820
- return NULL; /* error */
821
- }
822
-
823
- if (utf16len)
824
- *utf16len = dstlen;
825
- return utf16;
826
- }
827
781
 
828
782
  #endif /* WIN32 */
@@ -0,0 +1,492 @@
1
+ /*--------------------------------------------------------------------
2
+ * Symbols referenced in this file:
3
+ * - log_min_messages
4
+ * - backtrace_functions
5
+ * - check_function_bodies
6
+ *--------------------------------------------------------------------
7
+ */
8
+
9
+ /*--------------------------------------------------------------------
10
+ *
11
+ * guc_tables.c
12
+ *
13
+ * Static tables for the Grand Unified Configuration scheme.
14
+ *
15
+ * Many of these tables are const. However, ConfigureNamesBool[]
16
+ * and so on are not, because the structs in those arrays are actually
17
+ * the live per-variable state data that guc.c manipulates. While many of
18
+ * their fields are intended to be constant, some fields change at runtime.
19
+ *
20
+ *
21
+ * Copyright (c) 2000-2023, PostgreSQL Global Development Group
22
+ * Written by Peter Eisentraut <peter_e@gmx.net>.
23
+ *
24
+ * IDENTIFICATION
25
+ * src/backend/utils/misc/guc_tables.c
26
+ *
27
+ *--------------------------------------------------------------------
28
+ */
29
+ #include "postgres.h"
30
+
31
+ #include <float.h>
32
+ #include <limits.h>
33
+ #ifdef HAVE_SYSLOG
34
+ #include <syslog.h>
35
+ #endif
36
+
37
+ #include "access/commit_ts.h"
38
+ #include "access/gin.h"
39
+ #include "access/toast_compression.h"
40
+ #include "access/twophase.h"
41
+ #include "access/xlog_internal.h"
42
+ #include "access/xlogprefetcher.h"
43
+ #include "access/xlogrecovery.h"
44
+ #include "archive/archive_module.h"
45
+ #include "catalog/namespace.h"
46
+ #include "catalog/storage.h"
47
+ #include "commands/async.h"
48
+ #include "commands/tablespace.h"
49
+ #include "commands/trigger.h"
50
+ #include "commands/user.h"
51
+ #include "commands/vacuum.h"
52
+ #include "common/scram-common.h"
53
+ #include "jit/jit.h"
54
+ #include "libpq/auth.h"
55
+ #include "libpq/libpq.h"
56
+ #include "libpq/scram.h"
57
+ #include "nodes/queryjumble.h"
58
+ #include "optimizer/cost.h"
59
+ #include "optimizer/geqo.h"
60
+ #include "optimizer/optimizer.h"
61
+ #include "optimizer/paths.h"
62
+ #include "optimizer/planmain.h"
63
+ #include "parser/parse_expr.h"
64
+ #include "parser/parser.h"
65
+ #include "pgstat.h"
66
+ #include "postmaster/autovacuum.h"
67
+ #include "postmaster/bgworker_internals.h"
68
+ #include "postmaster/bgwriter.h"
69
+ #include "postmaster/postmaster.h"
70
+ #include "postmaster/startup.h"
71
+ #include "postmaster/syslogger.h"
72
+ #include "postmaster/walwriter.h"
73
+ #include "replication/logicallauncher.h"
74
+ #include "replication/slot.h"
75
+ #include "replication/syncrep.h"
76
+ #include "storage/bufmgr.h"
77
+ #include "storage/large_object.h"
78
+ #include "storage/pg_shmem.h"
79
+ #include "storage/predicate.h"
80
+ #include "storage/standby.h"
81
+ #include "tcop/tcopprot.h"
82
+ #include "tsearch/ts_cache.h"
83
+ #include "utils/builtins.h"
84
+ #include "utils/bytea.h"
85
+ #include "utils/float.h"
86
+ #include "utils/guc_hooks.h"
87
+ #include "utils/guc_tables.h"
88
+ #include "utils/memutils.h"
89
+ #include "utils/pg_locale.h"
90
+ #include "utils/portal.h"
91
+ #include "utils/ps_status.h"
92
+ #include "utils/inval.h"
93
+ #include "utils/xml.h"
94
+
95
+ /* This value is normally passed in from the Makefile */
96
+ #ifndef PG_KRB_SRVTAB
97
+ #define PG_KRB_SRVTAB ""
98
+ #endif
99
+
100
+ /* XXX these should appear in other modules' header files */
101
+ extern bool Log_disconnections;
102
+ extern int CommitDelay;
103
+ extern int CommitSiblings;
104
+ extern char *default_tablespace;
105
+ extern char *temp_tablespaces;
106
+ extern bool ignore_checksum_failure;
107
+ extern bool ignore_invalid_pages;
108
+
109
+ #ifdef TRACE_SYNCSCAN
110
+ extern bool trace_syncscan;
111
+ #endif
112
+ #ifdef DEBUG_BOUNDED_SORT
113
+ extern bool optimize_bounded_sort;
114
+ #endif
115
+
116
+ /*
117
+ * Options for enum values defined in this module.
118
+ *
119
+ * NOTE! Option values may not contain double quotes!
120
+ */
121
+
122
+
123
+
124
+ StaticAssertDecl(lengthof(bytea_output_options) == (BYTEA_OUTPUT_HEX + 2),
125
+ "array length mismatch");
126
+
127
+ /*
128
+ * We have different sets for client and server message level options because
129
+ * they sort slightly different (see "log" level), and because "fatal"/"panic"
130
+ * aren't sensible for client_min_messages.
131
+ */
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ StaticAssertDecl(lengthof(intervalstyle_options) == (INTSTYLE_ISO_8601 + 2),
141
+ "array length mismatch");
142
+
143
+
144
+
145
+ StaticAssertDecl(lengthof(log_error_verbosity_options) == (PGERROR_VERBOSE + 2),
146
+ "array length mismatch");
147
+
148
+
149
+
150
+ StaticAssertDecl(lengthof(log_statement_options) == (LOGSTMT_ALL + 2),
151
+ "array length mismatch");
152
+
153
+
154
+
155
+
156
+
157
+ StaticAssertDecl(lengthof(session_replication_role_options) == (SESSION_REPLICATION_ROLE_LOCAL + 2),
158
+ "array length mismatch");
159
+
160
+ #ifdef HAVE_SYSLOG
161
+ #else
162
+ #endif
163
+
164
+
165
+
166
+ StaticAssertDecl(lengthof(track_function_options) == (TRACK_FUNC_ALL + 2),
167
+ "array length mismatch");
168
+
169
+
170
+
171
+ StaticAssertDecl(lengthof(stats_fetch_consistency) == (PGSTAT_FETCH_CONSISTENCY_SNAPSHOT + 2),
172
+ "array length mismatch");
173
+
174
+
175
+
176
+ StaticAssertDecl(lengthof(xmlbinary_options) == (XMLBINARY_HEX + 2),
177
+ "array length mismatch");
178
+
179
+
180
+
181
+ StaticAssertDecl(lengthof(xmloption_options) == (XMLOPTION_CONTENT + 2),
182
+ "array length mismatch");
183
+
184
+ /*
185
+ * Although only "on", "off", and "safe_encoding" are documented, we
186
+ * accept all the likely variants of "on" and "off".
187
+ */
188
+
189
+
190
+ /*
191
+ * Although only "on", "off", and "auto" are documented, we accept
192
+ * all the likely variants of "on" and "off".
193
+ */
194
+
195
+
196
+ /*
197
+ * Although only "on", "off", and "partition" are documented, we
198
+ * accept all the likely variants of "on" and "off".
199
+ */
200
+
201
+
202
+ /*
203
+ * Although only "on", "off", "remote_apply", "remote_write", and "local" are
204
+ * documented, we accept all the likely variants of "on" and "off".
205
+ */
206
+
207
+
208
+ /*
209
+ * Although only "on", "off", "try" are documented, we accept all the likely
210
+ * variants of "on" and "off".
211
+ */
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ StaticAssertDecl(lengthof(ssl_protocol_versions_info) == (PG_TLS1_3_VERSION + 2),
227
+ "array length mismatch");
228
+
229
+ #ifdef HAVE_SYNCFS
230
+ #endif
231
+
232
+ #ifndef WIN32
233
+ #endif
234
+ #ifndef EXEC_BACKEND
235
+ #endif
236
+ #ifdef WIN32
237
+ #endif
238
+
239
+ #ifdef USE_LZ4
240
+ #endif
241
+
242
+ #ifdef USE_LZ4
243
+ #endif
244
+ #ifdef USE_ZSTD
245
+ #endif
246
+
247
+ /*
248
+ * Options for enum values stored in other modules
249
+ */
250
+ extern const struct config_enum_entry wal_level_options[];
251
+ extern const struct config_enum_entry archive_mode_options[];
252
+ extern const struct config_enum_entry recovery_target_action_options[];
253
+ extern const struct config_enum_entry sync_method_options[];
254
+ extern const struct config_enum_entry dynamic_shared_memory_options[];
255
+
256
+ /*
257
+ * GUC option variables that are exported from this module
258
+ */
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ /* this is sort of all three above
269
+ * together */
270
+
271
+
272
+
273
+
274
+ __thread bool check_function_bodies = true;
275
+
276
+
277
+ /*
278
+ * This GUC exists solely for backward compatibility, check its definition for
279
+ * details.
280
+ */
281
+
282
+
283
+
284
+
285
+ __thread int log_min_messages = WARNING;
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+ __thread char *backtrace_functions;
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ /*
317
+ * SSL renegotiation was been removed in PostgreSQL 9.5, but we tolerate it
318
+ * being set to zero (meaning never renegotiate) for backward compatibility.
319
+ * This avoids breaking compatibility with clients that have never supported
320
+ * renegotiation and therefore always try to zero it.
321
+ */
322
+
323
+
324
+ /*
325
+ * This really belongs in pg_shmem.c, but is defined here so that it doesn't
326
+ * need to be duplicated in all the different implementations of pg_shmem.c.
327
+ */
328
+
329
+
330
+
331
+ /*
332
+ * These variables are all dummies that don't do anything, except in some
333
+ * cases provide the value for SHOW to display. The real state is elsewhere
334
+ * and is kept in sync by assign_hooks.
335
+ */
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+ #ifdef HAVE_SYSLOG
346
+ #define DEFAULT_SYSLOG_FACILITY LOG_LOCAL0
347
+ #else
348
+ #define DEFAULT_SYSLOG_FACILITY 0
349
+ #endif
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+ #ifdef USE_ASSERT_CHECKING
369
+ #define DEFAULT_ASSERT_ENABLED true
370
+ #else
371
+ #define DEFAULT_ASSERT_ENABLED false
372
+ #endif
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+ /* should be static, but commands/variable.c needs to get at this */
382
+
383
+
384
+ /* should be static, but guc.c needs to get at this */
385
+
386
+
387
+
388
+ /*
389
+ * Displayable names for context types (enum GucContext)
390
+ *
391
+ * Note: these strings are deliberately not localized.
392
+ */
393
+
394
+
395
+ StaticAssertDecl(lengthof(GucContext_Names) == (PGC_USERSET + 1),
396
+ "array length mismatch");
397
+
398
+ /*
399
+ * Displayable names for source types (enum GucSource)
400
+ *
401
+ * Note: these strings are deliberately not localized.
402
+ */
403
+
404
+
405
+ StaticAssertDecl(lengthof(GucSource_Names) == (PGC_S_SESSION + 1),
406
+ "array length mismatch");
407
+
408
+ /*
409
+ * Displayable names for the groupings defined in enum config_group
410
+ */
411
+
412
+
413
+ StaticAssertDecl(lengthof(config_group_names) == (DEVELOPER_OPTIONS + 2),
414
+ "array length mismatch");
415
+
416
+ /*
417
+ * Displayable names for GUC variable types (enum config_type)
418
+ *
419
+ * Note: these strings are deliberately not localized.
420
+ */
421
+
422
+
423
+ StaticAssertDecl(lengthof(config_type_names) == (PGC_ENUM + 1),
424
+ "array length mismatch");
425
+
426
+
427
+ /*
428
+ * Contents of GUC tables
429
+ *
430
+ * See src/backend/utils/misc/README for design notes.
431
+ *
432
+ * TO ADD AN OPTION:
433
+ *
434
+ * 1. Declare a global variable of type bool, int, double, or char*
435
+ * and make use of it.
436
+ *
437
+ * 2. Decide at what times it's safe to set the option. See guc.h for
438
+ * details.
439
+ *
440
+ * 3. Decide on a name, a default value, upper and lower bounds (if
441
+ * applicable), etc.
442
+ *
443
+ * 4. Add a record below.
444
+ *
445
+ * 5. Add it to src/backend/utils/misc/postgresql.conf.sample, if
446
+ * appropriate.
447
+ *
448
+ * 6. Don't forget to document the option (at least in config.sgml).
449
+ *
450
+ * 7. If it's a new GUC_LIST_QUOTE option, you must add it to
451
+ * variable_is_guc_list_quote() in src/bin/pg_dump/dumputils.c.
452
+ */
453
+
454
+ #ifdef BTREE_BUILD_STATS
455
+ #endif
456
+ #ifdef LOCK_DEBUG
457
+ #endif
458
+ #ifdef TRACE_SORT
459
+ #endif
460
+ #ifdef TRACE_SYNCSCAN
461
+ #endif
462
+ #ifdef DEBUG_BOUNDED_SORT
463
+ #endif
464
+ #ifdef WAL_DEBUG
465
+ #endif
466
+
467
+
468
+ #ifdef LOCK_DEBUG
469
+ #endif
470
+ #ifdef DISCARD_CACHES_ENABLED
471
+ #if defined(CLOBBER_CACHE_RECURSIVELY)
472
+ #else
473
+ #endif
474
+ #else /* not DISCARD_CACHES_ENABLED */
475
+ #endif /* not DISCARD_CACHES_ENABLED */
476
+
477
+
478
+
479
+
480
+
481
+ #ifdef USE_SSL
482
+ #else
483
+ #endif
484
+ #ifdef USE_OPENSSL
485
+ #else
486
+ #endif
487
+ #ifdef USE_SSL
488
+ #else
489
+ #endif
490
+
491
+
492
+