pg_query 2.0.3 → 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 (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -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 +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  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 +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  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 +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -11,7 +11,7 @@
11
11
  * Functions to convert stored expressions/querytrees back to
12
12
  * source text
13
13
  *
14
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
15
15
  * Portions Copyright (c) 1994, Regents of the University of California
16
16
  *
17
17
  *
@@ -31,8 +31,6 @@
31
31
  #include "access/relation.h"
32
32
  #include "access/sysattr.h"
33
33
  #include "access/table.h"
34
- #include "catalog/dependency.h"
35
- #include "catalog/indexing.h"
36
34
  #include "catalog/pg_aggregate.h"
37
35
  #include "catalog/pg_am.h"
38
36
  #include "catalog/pg_authid.h"
@@ -62,6 +60,7 @@
62
60
  #include "parser/parse_func.h"
63
61
  #include "parser/parse_node.h"
64
62
  #include "parser/parse_oper.h"
63
+ #include "parser/parse_relation.h"
65
64
  #include "parser/parser.h"
66
65
  #include "parser/parsetree.h"
67
66
  #include "rewrite/rewriteHandler.h"
@@ -99,6 +98,11 @@
99
98
  #define PRETTYFLAG_INDENT 0x0002
100
99
  #define PRETTYFLAG_SCHEMA 0x0004
101
100
 
101
+ /* Standard conversion of a "bool pretty" option to detailed flags */
102
+ #define GET_PRETTY_FLAGS(pretty) \
103
+ ((pretty) ? (PRETTYFLAG_PAREN | PRETTYFLAG_INDENT | PRETTYFLAG_SCHEMA) \
104
+ : PRETTYFLAG_INDENT)
105
+
102
106
  /* Default line length for pretty-print wrapping: 0 means wrap always */
103
107
  #define WRAP_COLUMN_DEFAULT 0
104
108
 
@@ -181,6 +185,10 @@ typedef struct
181
185
  List *outer_tlist; /* referent for OUTER_VAR Vars */
182
186
  List *inner_tlist; /* referent for INNER_VAR Vars */
183
187
  List *index_tlist; /* referent for INDEX_VAR Vars */
188
+ /* Special namespace representing a function signature: */
189
+ char *funcname;
190
+ int numargs;
191
+ char **argnames;
184
192
  } deparse_namespace;
185
193
 
186
194
  /*
@@ -346,7 +354,8 @@ static char *pg_get_indexdef_worker(Oid indexrelid, int colno,
346
354
  bool attrsOnly, bool keysOnly,
347
355
  bool showTblSpc, bool inherits,
348
356
  int prettyFlags, bool missing_ok);
349
- static char *pg_get_statisticsobj_worker(Oid statextid, bool missing_ok);
357
+ static char *pg_get_statisticsobj_worker(Oid statextid, bool columns_only,
358
+ bool missing_ok);
350
359
  static char *pg_get_partkeydef_worker(Oid relid, int prettyFlags,
351
360
  bool attrsOnly, bool missing_ok);
352
361
  static char *pg_get_constraintdef_worker(Oid constraintId, bool fullCommand,
@@ -357,6 +366,7 @@ static int print_function_arguments(StringInfo buf, HeapTuple proctup,
357
366
  bool print_table_args, bool print_defaults);
358
367
  static void print_function_rettype(StringInfo buf, HeapTuple proctup);
359
368
  static void print_function_trftypes(StringInfo buf, HeapTuple proctup);
369
+ static void print_function_sqlbody(StringInfo buf, HeapTuple proctup);
360
370
  static void set_rtable_names(deparse_namespace *dpns, List *parent_namespaces,
361
371
  Bitmapset *rels_used);
362
372
  static void set_deparse_for_query(deparse_namespace *dpns, Query *query,
@@ -379,6 +389,8 @@ static void identify_join_columns(JoinExpr *j, RangeTblEntry *jrte,
379
389
  deparse_columns *colinfo);
380
390
  static char *get_rtable_name(int rtindex, deparse_context *context);
381
391
  static void set_deparse_plan(deparse_namespace *dpns, Plan *plan);
392
+ static Plan *find_recursive_union(deparse_namespace *dpns,
393
+ WorkTableScan *wtscan);
382
394
  static void push_child_plan(deparse_namespace *dpns, Plan *plan,
383
395
  deparse_namespace *save_dpns);
384
396
  static void pop_child_plan(deparse_namespace *dpns,
@@ -392,26 +404,31 @@ static void make_ruledef(StringInfo buf, HeapTuple ruletup, TupleDesc rulettc,
392
404
  static void make_viewdef(StringInfo buf, HeapTuple ruletup, TupleDesc rulettc,
393
405
  int prettyFlags, int wrapColumn);
394
406
  static void get_query_def(Query *query, StringInfo buf, List *parentnamespace,
395
- TupleDesc resultDesc,
407
+ TupleDesc resultDesc, bool colNamesVisible,
396
408
  int prettyFlags, int wrapColumn, int startIndent);
397
409
  static void get_values_def(List *values_lists, deparse_context *context);
398
410
  static void get_with_clause(Query *query, deparse_context *context);
399
411
  static void get_select_query_def(Query *query, deparse_context *context,
400
- TupleDesc resultDesc);
401
- static void get_insert_query_def(Query *query, deparse_context *context);
402
- static void get_update_query_def(Query *query, deparse_context *context);
412
+ TupleDesc resultDesc, bool colNamesVisible);
413
+ static void get_insert_query_def(Query *query, deparse_context *context,
414
+ bool colNamesVisible);
415
+ static void get_update_query_def(Query *query, deparse_context *context,
416
+ bool colNamesVisible);
403
417
  static void get_update_query_targetlist_def(Query *query, List *targetList,
404
418
  deparse_context *context,
405
419
  RangeTblEntry *rte);
406
- static void get_delete_query_def(Query *query, deparse_context *context);
420
+ static void get_delete_query_def(Query *query, deparse_context *context,
421
+ bool colNamesVisible);
422
+ static void get_merge_query_def(Query *query, deparse_context *context,
423
+ bool colNamesVisible);
407
424
  static void get_utility_query_def(Query *query, deparse_context *context);
408
425
  static void get_basic_select_query(Query *query, deparse_context *context,
409
- TupleDesc resultDesc);
426
+ TupleDesc resultDesc, bool colNamesVisible);
410
427
  static void get_target_list(List *targetList, deparse_context *context,
411
- TupleDesc resultDesc);
428
+ TupleDesc resultDesc, bool colNamesVisible);
412
429
  static void get_setop_query(Node *setOp, Query *query,
413
430
  deparse_context *context,
414
- TupleDesc resultDesc);
431
+ TupleDesc resultDesc, bool colNamesVisible);
415
432
  static Node *get_rule_sortgroupclause(Index ref, List *tlist,
416
433
  bool force_colno,
417
434
  deparse_context *context);
@@ -440,6 +457,8 @@ static void get_rule_expr(Node *node, deparse_context *context,
440
457
  bool showimplicit);
441
458
  static void get_rule_expr_toplevel(Node *node, deparse_context *context,
442
459
  bool showimplicit);
460
+ static void get_rule_list_toplevel(List *lst, deparse_context *context,
461
+ bool showimplicit);
443
462
  static void get_rule_expr_funccall(Node *node, deparse_context *context,
444
463
  bool showimplicit);
445
464
  static bool looks_like_function(Node *node);
@@ -448,15 +467,31 @@ static void get_func_expr(FuncExpr *expr, deparse_context *context,
448
467
  bool showimplicit);
449
468
  static void get_agg_expr(Aggref *aggref, deparse_context *context,
450
469
  Aggref *original_aggref);
470
+ static void get_agg_expr_helper(Aggref *aggref, deparse_context *context,
471
+ Aggref *original_aggref, const char *funcname,
472
+ const char *options, bool is_json_objectagg);
451
473
  static void get_agg_combine_expr(Node *node, deparse_context *context,
452
474
  void *callback_arg);
453
475
  static void get_windowfunc_expr(WindowFunc *wfunc, deparse_context *context);
476
+ static void get_windowfunc_expr_helper(WindowFunc *wfunc, deparse_context *context,
477
+ const char *funcname, const char *options,
478
+ bool is_json_objectagg);
479
+ static bool get_func_sql_syntax(FuncExpr *expr, deparse_context *context);
454
480
  static void get_coercion_expr(Node *arg, deparse_context *context,
455
481
  Oid resulttype, int32 resulttypmod,
456
482
  Node *parentNode);
457
483
  static void get_const_expr(Const *constval, deparse_context *context,
458
484
  int showtype);
459
485
  static void get_const_collation(Const *constval, deparse_context *context);
486
+ static void get_json_format(JsonFormat *format, StringInfo buf);
487
+ static void get_json_constructor(JsonConstructorExpr *ctor,
488
+ deparse_context *context, bool showimplicit);
489
+ static void get_json_constructor_options(JsonConstructorExpr *ctor,
490
+ StringInfo buf);
491
+ static void get_json_agg_constructor(JsonConstructorExpr *ctor,
492
+ deparse_context *context,
493
+ const char *funcname,
494
+ bool is_json_objectagg);
460
495
  static void simple_quote_literal(StringInfo buf, const char *val);
461
496
  static void get_sublink_expr(SubLink *sublink, deparse_context *context);
462
497
  static void get_tablefunc(TableFunc *tf, deparse_context *context,
@@ -465,6 +500,8 @@ static void get_from_clause(Query *query, const char *prefix,
465
500
  deparse_context *context);
466
501
  static void get_from_clause_item(Node *jtnode, Query *query,
467
502
  deparse_context *context);
503
+ static void get_rte_alias(RangeTblEntry *rte, int varno, bool use_as,
504
+ deparse_context *context);
468
505
  static void get_column_alias_list(deparse_columns *colinfo,
469
506
  deparse_context *context);
470
507
  static void get_from_clause_coldeflist(RangeTblFunction *rtfunc,
@@ -566,6 +603,9 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
566
603
  /* Internal version that just reports the key-column definitions */
567
604
 
568
605
 
606
+ /* Internal version, extensible with flags to control its behavior */
607
+
608
+
569
609
  /*
570
610
  * Internal workhorse to decompile an index definition.
571
611
  *
@@ -574,23 +614,52 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
574
614
  */
575
615
 
576
616
 
617
+ /* ----------
618
+ * pg_get_querydef
619
+ *
620
+ * Public entry point to deparse one query parsetree.
621
+ * The pretty flags are determined by GET_PRETTY_FLAGS(pretty).
622
+ *
623
+ * The result is a palloc'd C string.
624
+ * ----------
625
+ */
626
+
627
+
577
628
  /*
578
629
  * pg_get_statisticsobjdef
579
630
  * Get the definition of an extended statistics object
580
631
  */
581
632
 
582
633
 
634
+ /*
635
+ * Internal version for use by ALTER TABLE.
636
+ * Includes a tablespace clause in the result.
637
+ * Returns a palloc'd C string; no pretty-printing.
638
+ */
639
+
640
+
641
+ /*
642
+ * pg_get_statisticsobjdef_columns
643
+ * Get columns and expressions for an extended statistics object
644
+ */
645
+
646
+
583
647
  /*
584
648
  * Internal workhorse to decompile an extended statistics object.
585
649
  */
586
650
 
587
651
 
652
+ /*
653
+ * Generate text array of expressions for statistics object.
654
+ */
655
+
656
+
588
657
  /*
589
658
  * pg_get_partkeydef
590
659
  *
591
660
  * Returns the partition key specification, ie, the following:
592
661
  *
593
- * PARTITION BY { RANGE | LIST | HASH } (column opt_collation opt_opclass [, ...])
662
+ * { RANGE | LIST | HASH } (column opt_collation opt_opclass [, ...])
594
663
  */
595
664
 
596
665
 
@@ -657,6 +726,12 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
657
726
  * the one specified by the second parameter. This is sufficient for
658
727
  * partial indexes, column default expressions, etc. We also support
659
728
  * Var-free expressions, for which the OID can be InvalidOid.
729
+ *
730
+ * We expect this function to work, or throw a reasonably clean error,
731
+ * for any node tree that can appear in a catalog pg_node_tree column.
732
+ * Query trees, such as those appearing in pg_rewrite.ev_action, are
733
+ * not supported. Nor are expressions in more than one relation, which
734
+ * can appear in places like pg_rewrite.ev_qual.
660
735
  * ----------
661
736
  */
662
737
 
@@ -691,8 +766,8 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
691
766
  *
692
767
  * Note: if you change the output format of this function, be careful not
693
768
  * to break psql's rules (in \ef and \sf) for identifying the start of the
694
- * function body. To wit: the function body starts on a line that begins
695
- * with "AS ", and no preceding line will look like that.
769
+ * function body. To wit: the function body starts on a line that begins with
770
+ * "AS ", "BEGIN ", or "RETURN ", and no preceding line will look like that.
696
771
  */
697
772
 
698
773
 
@@ -750,6 +825,10 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
750
825
 
751
826
 
752
827
 
828
+
829
+
830
+
831
+
753
832
  /*
754
833
  * deparse_expression - General utility for deparsing expressions
755
834
  *
@@ -969,13 +1048,20 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
969
1048
  * of a given Plan node
970
1049
  *
971
1050
  * This sets the plan, outer_plan, inner_plan, outer_tlist, inner_tlist,
972
- * and index_tlist fields. Caller is responsible for adjusting the ancestors
1051
+ * and index_tlist fields. Caller must already have adjusted the ancestors
973
1052
  * list if necessary. Note that the rtable, subplans, and ctes fields do
974
1053
  * not need to change when shifting attention to different plan nodes in a
975
1054
  * single plan tree.
976
1055
  */
977
1056
 
978
1057
 
1058
+ /*
1059
+ * Locate the ancestor plan node that is the RecursiveUnion generating
1060
+ * the WorkTableScan's work table. We can match on wtParam, since that
1061
+ * should be unique within the plan tree.
1062
+ */
1063
+
1064
+
979
1065
  /*
980
1066
  * push_child_plan: temporarily transfer deparsing attention to a child plan
981
1067
  *
@@ -1037,8 +1123,18 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1037
1123
  /* ----------
1038
1124
  * get_query_def - Parse back one query parsetree
1039
1125
  *
1040
- * If resultDesc is not NULL, then it is the output tuple descriptor for
1041
- * the view represented by a SELECT query.
1126
+ * query: parsetree to be displayed
1127
+ * buf: output text is appended to buf
1128
+ * parentnamespace: list (initially empty) of outer-level deparse_namespace's
1129
+ * resultDesc: if not NULL, the output tuple descriptor for the view
1130
+ * represented by a SELECT query. We use the column names from it
1131
+ * to label SELECT output columns, in preference to names in the query
1132
+ * colNamesVisible: true if the surrounding context cares about the output
1133
+ * column names at all (as, for example, an EXISTS() context does not);
1134
+ * when false, we can suppress dummy column labels such as "?column?"
1135
+ * prettyFlags: bitmask of PRETTYFLAG_XXX options
1136
+ * wrapColumn: maximum line length, or -1 to disable wrapping
1137
+ * startIndent: initial indentation amount
1042
1138
  * ----------
1043
1139
  */
1044
1140
 
@@ -1074,6 +1170,8 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1074
1170
  * get_target_list - Parse back a SELECT target list
1075
1171
  *
1076
1172
  * This is also used for RETURNING lists in INSERT/UPDATE/DELETE.
1173
+ *
1174
+ * resultDesc and colNamesVisible are as for get_query_def()
1077
1175
  * ----------
1078
1176
  */
1079
1177
 
@@ -1138,6 +1236,13 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1138
1236
 
1139
1237
 
1140
1238
 
1239
+ /* ----------
1240
+ * get_merge_query_def - Parse back a MERGE parsetree
1241
+ * ----------
1242
+ */
1243
+
1244
+
1245
+
1141
1246
  /* ----------
1142
1247
  * get_utility_query_def - Parse back a UTILITY parsetree
1143
1248
  * ----------
@@ -1291,6 +1396,16 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1291
1396
  */
1292
1397
 
1293
1398
 
1399
+ /*
1400
+ * get_rule_list_toplevel - Parse back a list of toplevel expressions
1401
+ *
1402
+ * Apply get_rule_expr_toplevel() to each element of a List.
1403
+ *
1404
+ * This adds commas between the expressions, but caller is responsible
1405
+ * for printing surrounding decoration.
1406
+ */
1407
+
1408
+
1294
1409
  /*
1295
1410
  * get_rule_expr_funccall - Parse back a function-call expression
1296
1411
  *
@@ -1327,6 +1442,12 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1327
1442
  */
1328
1443
 
1329
1444
 
1445
+ /*
1446
+ * get_agg_expr_helper - subroutine for get_agg_expr and
1447
+ * get_json_agg_constructor
1448
+ */
1449
+
1450
+
1330
1451
  /*
1331
1452
  * This is a helper function for get_agg_expr(). It's used when we deparse
1332
1453
  * a combining Aggref; resolve_special_varno locates the corresponding partial
@@ -1339,6 +1460,21 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1339
1460
  */
1340
1461
 
1341
1462
 
1463
+
1464
+ /*
1465
+ * get_windowfunc_expr_helper - subroutine for get_windowfunc_expr and
1466
+ * get_json_agg_constructor
1467
+ */
1468
+
1469
+
1470
+ /*
1471
+ * get_func_sql_syntax - Parse back a SQL-syntax function call
1472
+ *
1473
+ * Returns true if we successfully deparsed, false if we did not
1474
+ * recognize the function.
1475
+ */
1476
+
1477
+
1342
1478
  /* ----------
1343
1479
  * get_coercion_expr
1344
1480
  *
@@ -1369,6 +1505,31 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1369
1505
  */
1370
1506
 
1371
1507
 
1508
+ /*
1509
+ * get_json_format - Parse back a JsonFormat node
1510
+ */
1511
+
1512
+
1513
+ /*
1514
+ * get_json_returning - Parse back a JsonReturning structure
1515
+ */
1516
+
1517
+
1518
+ /*
1519
+ * get_json_constructor - Parse back a JsonConstructorExpr node
1520
+ */
1521
+
1522
+
1523
+ /*
1524
+ * Append options, if any, to the JSON constructor being deparsed
1525
+ */
1526
+
1527
+
1528
+ /*
1529
+ * get_json_agg_constructor - Parse back an aggregate JsonConstructorExpr node
1530
+ */
1531
+
1532
+
1372
1533
  /*
1373
1534
  * simple_quote_literal - Format a string as a SQL literal, append to buf
1374
1535
  */
@@ -1400,6 +1561,13 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1400
1561
 
1401
1562
 
1402
1563
 
1564
+ /*
1565
+ * get_rte_alias - print the relation's alias, if needed
1566
+ *
1567
+ * If printed, the alias is preceded by a space, or by " AS " if use_as is true.
1568
+ */
1569
+
1570
+
1403
1571
  /*
1404
1572
  * get_column_alias_list - print column alias list for an RTE
1405
1573
  *
@@ -1439,7 +1607,7 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1439
1607
 
1440
1608
  /*
1441
1609
  * generate_opclass_name
1442
- * Compute the name to display for a opclass specified by OID
1610
+ * Compute the name to display for an opclass specified by OID
1443
1611
  *
1444
1612
  * The result includes all necessary quoting and schema-prefixing.
1445
1613
  */
@@ -7,18 +7,15 @@
7
7
  /*-------------------------------------------------------------------------
8
8
  *
9
9
  * assert.c
10
- * Assert code.
10
+ * Assert support code.
11
11
  *
12
- * Portions Copyright (c) 1996-2020, 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
  *
16
16
  * IDENTIFICATION
17
17
  * src/backend/utils/error/assert.c
18
18
  *
19
- * NOTE
20
- * This should eventually work with elog()
21
- *
22
19
  *-------------------------------------------------------------------------
23
20
  */
24
21
  #include "postgres.h"
@@ -30,27 +27,29 @@
30
27
 
31
28
  /*
32
29
  * ExceptionalCondition - Handles the failure of an Assert()
30
+ *
31
+ * We intentionally do not go through elog() here, on the grounds of
32
+ * wanting to minimize the amount of infrastructure that has to be
33
+ * working to report an assertion failure.
33
34
  */
34
35
  void
35
36
  ExceptionalCondition(const char *conditionName,
36
- const char *errorType,
37
37
  const char *fileName,
38
38
  int lineNumber)
39
39
  {
40
+ /* Report the failure on stderr (or local equivalent) */
40
41
  if (!PointerIsValid(conditionName)
41
- || !PointerIsValid(fileName)
42
- || !PointerIsValid(errorType))
43
- write_stderr("TRAP: ExceptionalCondition: bad arguments\n");
42
+ || !PointerIsValid(fileName))
43
+ write_stderr("TRAP: ExceptionalCondition: bad arguments in PID %d\n",
44
+ (int) getpid());
44
45
  else
45
- {
46
- write_stderr("TRAP: %s(\"%s\", File: \"%s\", Line: %d)\n",
47
- errorType, conditionName,
48
- fileName, lineNumber);
49
- }
46
+ write_stderr("TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n",
47
+ conditionName, fileName, lineNumber, (int) getpid());
50
48
 
51
49
  /* Usually this shouldn't be needed, but make sure the msg went out */
52
50
  fflush(stderr);
53
51
 
52
+ /* If we have support for it, dump a simple backtrace */
54
53
  #ifdef HAVE_BACKTRACE_SYMBOLS
55
54
  {
56
55
  void *buf[100];
@@ -61,12 +60,12 @@ ExceptionalCondition(const char *conditionName,
61
60
  }
62
61
  #endif
63
62
 
64
- #ifdef SLEEP_ON_ASSERT
65
-
66
63
  /*
67
- * It would be nice to use pg_usleep() here, but only does 2000 sec or 33
68
- * minutes, which seems too short.
64
+ * If configured to do so, sleep indefinitely to allow user to attach a
65
+ * debugger. It would be nice to use pg_usleep() here, but that can sleep
66
+ * at most 2G usec or ~33 minutes, which seems too short.
69
67
  */
68
+ #ifdef SLEEP_ON_ASSERT
70
69
  sleep(1000000);
71
70
  #endif
72
71