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
@@ -0,0 +1,489 @@
1
+ /*--------------------------------------------------------------------
2
+ * Symbols referenced in this file:
3
+ * - pg_strtoint32_safe
4
+ * - hexlookup
5
+ *--------------------------------------------------------------------
6
+ */
7
+
8
+ /*-------------------------------------------------------------------------
9
+ *
10
+ * numutils.c
11
+ * utility functions for I/O of built-in numeric types.
12
+ *
13
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
14
+ * Portions Copyright (c) 1994, Regents of the University of California
15
+ *
16
+ *
17
+ * IDENTIFICATION
18
+ * src/backend/utils/adt/numutils.c
19
+ *
20
+ *-------------------------------------------------------------------------
21
+ */
22
+ #include "postgres.h"
23
+
24
+ #include <math.h>
25
+ #include <limits.h>
26
+ #include <ctype.h>
27
+
28
+ #include "common/int.h"
29
+ #include "utils/builtins.h"
30
+ #include "port/pg_bitutils.h"
31
+
32
+ /*
33
+ * A table of all two-digit numbers. This is used to speed up decimal digit
34
+ * generation by copying pairs of digits into the final output.
35
+ */
36
+
37
+
38
+ /*
39
+ * Adapted from http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog10
40
+ */
41
+
42
+
43
+
44
+
45
+ static const int8 hexlookup[128] = {
46
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
47
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
48
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
49
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,
50
+ -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
51
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
52
+ -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
53
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
54
+ };
55
+
56
+ /*
57
+ * Convert input string to a signed 16 bit integer. Input strings may be
58
+ * expressed in base-10, hexadecimal, octal, or binary format, all of which
59
+ * can be prefixed by an optional sign character, either '+' (the default) or
60
+ * '-' for negative numbers. Hex strings are recognized by the digits being
61
+ * prefixed by 0x or 0X while octal strings are recognized by the 0o or 0O
62
+ * prefix. The binary representation is recognized by the 0b or 0B prefix.
63
+ *
64
+ * Allows any number of leading or trailing whitespace characters. Digits may
65
+ * optionally be separated by a single underscore character. These can only
66
+ * come between digits and not before or after the digits. Underscores have
67
+ * no effect on the return value and are supported only to assist in improving
68
+ * the human readability of the input strings.
69
+ *
70
+ * pg_strtoint16() will throw ereport() upon bad input format or overflow;
71
+ * while pg_strtoint16_safe() instead returns such complaints in *escontext,
72
+ * if it's an ErrorSaveContext.
73
+ *
74
+ * NB: Accumulate input as an unsigned number, to deal with two's complement
75
+ * representation of the most negative number, which can't be represented as a
76
+ * signed positive number.
77
+ */
78
+
79
+
80
+
81
+
82
+ /*
83
+ * Convert input string to a signed 32 bit integer. Input strings may be
84
+ * expressed in base-10, hexadecimal, octal, or binary format, all of which
85
+ * can be prefixed by an optional sign character, either '+' (the default) or
86
+ * '-' for negative numbers. Hex strings are recognized by the digits being
87
+ * prefixed by 0x or 0X while octal strings are recognized by the 0o or 0O
88
+ * prefix. The binary representation is recognized by the 0b or 0B prefix.
89
+ *
90
+ * Allows any number of leading or trailing whitespace characters. Digits may
91
+ * optionally be separated by a single underscore character. These can only
92
+ * come between digits and not before or after the digits. Underscores have
93
+ * no effect on the return value and are supported only to assist in improving
94
+ * the human readability of the input strings.
95
+ *
96
+ * pg_strtoint32() will throw ereport() upon bad input format or overflow;
97
+ * while pg_strtoint32_safe() instead returns such complaints in *escontext,
98
+ * if it's an ErrorSaveContext.
99
+ *
100
+ * NB: Accumulate input as an unsigned number, to deal with two's complement
101
+ * representation of the most negative number, which can't be represented as a
102
+ * signed positive number.
103
+ */
104
+
105
+
106
+ int32
107
+ pg_strtoint32_safe(const char *s, Node *escontext)
108
+ {
109
+ const char *ptr = s;
110
+ const char *firstdigit;
111
+ uint32 tmp = 0;
112
+ bool neg = false;
113
+ unsigned char digit;
114
+
115
+ /*
116
+ * The majority of cases are likely to be base-10 digits without any
117
+ * underscore separator characters. We'll first try to parse the string
118
+ * with the assumption that's the case and only fallback on a slower
119
+ * implementation which handles hex, octal and binary strings and
120
+ * underscores if the fastpath version cannot parse the string.
121
+ */
122
+
123
+ /* leave it up to the slow path to look for leading spaces */
124
+
125
+ if (*ptr == '-')
126
+ {
127
+ ptr++;
128
+ neg = true;
129
+ }
130
+
131
+ /* a leading '+' is uncommon so leave that for the slow path */
132
+
133
+ /* process the first digit */
134
+ digit = (*ptr - '0');
135
+
136
+ /*
137
+ * Exploit unsigned arithmetic to save having to check both the upper and
138
+ * lower bounds of the digit.
139
+ */
140
+ if (likely(digit < 10))
141
+ {
142
+ ptr++;
143
+ tmp = digit;
144
+ }
145
+ else
146
+ {
147
+ /* we need at least one digit */
148
+ goto slow;
149
+ }
150
+
151
+ /* process remaining digits */
152
+ for (;;)
153
+ {
154
+ digit = (*ptr - '0');
155
+
156
+ if (digit >= 10)
157
+ break;
158
+
159
+ ptr++;
160
+
161
+ if (unlikely(tmp > -(PG_INT32_MIN / 10)))
162
+ goto out_of_range;
163
+
164
+ tmp = tmp * 10 + digit;
165
+ }
166
+
167
+ /* when the string does not end in a digit, let the slow path handle it */
168
+ if (unlikely(*ptr != '\0'))
169
+ goto slow;
170
+
171
+ if (neg)
172
+ {
173
+ /* check the negative equivalent will fit without overflowing */
174
+ if (unlikely(tmp > (uint32) (-(PG_INT32_MIN + 1)) + 1))
175
+ goto out_of_range;
176
+ return -((int32) tmp);
177
+ }
178
+
179
+ if (unlikely(tmp > PG_INT32_MAX))
180
+ goto out_of_range;
181
+
182
+ return (int32) tmp;
183
+
184
+ slow:
185
+ tmp = 0;
186
+ ptr = s;
187
+ /* no need to reset neg */
188
+
189
+ /* skip leading spaces */
190
+ while (isspace((unsigned char) *ptr))
191
+ ptr++;
192
+
193
+ /* handle sign */
194
+ if (*ptr == '-')
195
+ {
196
+ ptr++;
197
+ neg = true;
198
+ }
199
+ else if (*ptr == '+')
200
+ ptr++;
201
+
202
+ /* process digits */
203
+ if (ptr[0] == '0' && (ptr[1] == 'x' || ptr[1] == 'X'))
204
+ {
205
+ firstdigit = ptr += 2;
206
+
207
+ for (;;)
208
+ {
209
+ if (isxdigit((unsigned char) *ptr))
210
+ {
211
+ if (unlikely(tmp > -(PG_INT32_MIN / 16)))
212
+ goto out_of_range;
213
+
214
+ tmp = tmp * 16 + hexlookup[(unsigned char) *ptr++];
215
+ }
216
+ else if (*ptr == '_')
217
+ {
218
+ /* underscore must be followed by more digits */
219
+ ptr++;
220
+ if (*ptr == '\0' || !isxdigit((unsigned char) *ptr))
221
+ goto invalid_syntax;
222
+ }
223
+ else
224
+ break;
225
+ }
226
+ }
227
+ else if (ptr[0] == '0' && (ptr[1] == 'o' || ptr[1] == 'O'))
228
+ {
229
+ firstdigit = ptr += 2;
230
+
231
+ for (;;)
232
+ {
233
+ if (*ptr >= '0' && *ptr <= '7')
234
+ {
235
+ if (unlikely(tmp > -(PG_INT32_MIN / 8)))
236
+ goto out_of_range;
237
+
238
+ tmp = tmp * 8 + (*ptr++ - '0');
239
+ }
240
+ else if (*ptr == '_')
241
+ {
242
+ /* underscore must be followed by more digits */
243
+ ptr++;
244
+ if (*ptr == '\0' || *ptr < '0' || *ptr > '7')
245
+ goto invalid_syntax;
246
+ }
247
+ else
248
+ break;
249
+ }
250
+ }
251
+ else if (ptr[0] == '0' && (ptr[1] == 'b' || ptr[1] == 'B'))
252
+ {
253
+ firstdigit = ptr += 2;
254
+
255
+ for (;;)
256
+ {
257
+ if (*ptr >= '0' && *ptr <= '1')
258
+ {
259
+ if (unlikely(tmp > -(PG_INT32_MIN / 2)))
260
+ goto out_of_range;
261
+
262
+ tmp = tmp * 2 + (*ptr++ - '0');
263
+ }
264
+ else if (*ptr == '_')
265
+ {
266
+ /* underscore must be followed by more digits */
267
+ ptr++;
268
+ if (*ptr == '\0' || *ptr < '0' || *ptr > '1')
269
+ goto invalid_syntax;
270
+ }
271
+ else
272
+ break;
273
+ }
274
+ }
275
+ else
276
+ {
277
+ firstdigit = ptr;
278
+
279
+ for (;;)
280
+ {
281
+ if (*ptr >= '0' && *ptr <= '9')
282
+ {
283
+ if (unlikely(tmp > -(PG_INT32_MIN / 10)))
284
+ goto out_of_range;
285
+
286
+ tmp = tmp * 10 + (*ptr++ - '0');
287
+ }
288
+ else if (*ptr == '_')
289
+ {
290
+ /* underscore may not be first */
291
+ if (unlikely(ptr == firstdigit))
292
+ goto invalid_syntax;
293
+ /* and it must be followed by more digits */
294
+ ptr++;
295
+ if (*ptr == '\0' || !isdigit((unsigned char) *ptr))
296
+ goto invalid_syntax;
297
+ }
298
+ else
299
+ break;
300
+ }
301
+ }
302
+
303
+ /* require at least one digit */
304
+ if (unlikely(ptr == firstdigit))
305
+ goto invalid_syntax;
306
+
307
+ /* allow trailing whitespace, but not other trailing chars */
308
+ while (isspace((unsigned char) *ptr))
309
+ ptr++;
310
+
311
+ if (unlikely(*ptr != '\0'))
312
+ goto invalid_syntax;
313
+
314
+ if (neg)
315
+ {
316
+ /* check the negative equivalent will fit without overflowing */
317
+ if (tmp > (uint32) (-(PG_INT32_MIN + 1)) + 1)
318
+ goto out_of_range;
319
+ return -((int32) tmp);
320
+ }
321
+
322
+ if (tmp > PG_INT32_MAX)
323
+ goto out_of_range;
324
+
325
+ return (int32) tmp;
326
+
327
+ out_of_range:
328
+ ereturn(escontext, 0,
329
+ (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
330
+ errmsg("value \"%s\" is out of range for type %s",
331
+ s, "integer")));
332
+
333
+ invalid_syntax:
334
+ ereturn(escontext, 0,
335
+ (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
336
+ errmsg("invalid input syntax for type %s: \"%s\"",
337
+ "integer", s)));
338
+ }
339
+
340
+ /*
341
+ * Convert input string to a signed 64 bit integer. Input strings may be
342
+ * expressed in base-10, hexadecimal, octal, or binary format, all of which
343
+ * can be prefixed by an optional sign character, either '+' (the default) or
344
+ * '-' for negative numbers. Hex strings are recognized by the digits being
345
+ * prefixed by 0x or 0X while octal strings are recognized by the 0o or 0O
346
+ * prefix. The binary representation is recognized by the 0b or 0B prefix.
347
+ *
348
+ * Allows any number of leading or trailing whitespace characters. Digits may
349
+ * optionally be separated by a single underscore character. These can only
350
+ * come between digits and not before or after the digits. Underscores have
351
+ * no effect on the return value and are supported only to assist in improving
352
+ * the human readability of the input strings.
353
+ *
354
+ * pg_strtoint64() will throw ereport() upon bad input format or overflow;
355
+ * while pg_strtoint64_safe() instead returns such complaints in *escontext,
356
+ * if it's an ErrorSaveContext.
357
+ *
358
+ * NB: Accumulate input as an unsigned number, to deal with two's complement
359
+ * representation of the most negative number, which can't be represented as a
360
+ * signed positive number.
361
+ */
362
+
363
+
364
+
365
+
366
+ /*
367
+ * Convert input string to an unsigned 32 bit integer.
368
+ *
369
+ * Allows any number of leading or trailing whitespace characters.
370
+ *
371
+ * If endloc isn't NULL, store a pointer to the rest of the string there,
372
+ * so that caller can parse the rest. Otherwise, it's an error if anything
373
+ * but whitespace follows.
374
+ *
375
+ * typname is what is reported in error messges.
376
+ *
377
+ * If escontext points to an ErrorSaveContext node, that is filled instead
378
+ * of throwing an error; the caller must check SOFT_ERROR_OCCURRED()
379
+ * to detect errors.
380
+ */
381
+ #if PG_UINT32_MAX != ULONG_MAX
382
+ #endif
383
+
384
+ /*
385
+ * Convert input string to an unsigned 64 bit integer.
386
+ *
387
+ * Allows any number of leading or trailing whitespace characters.
388
+ *
389
+ * If endloc isn't NULL, store a pointer to the rest of the string there,
390
+ * so that caller can parse the rest. Otherwise, it's an error if anything
391
+ * but whitespace follows.
392
+ *
393
+ * typname is what is reported in error messges.
394
+ *
395
+ * If escontext points to an ErrorSaveContext node, that is filled instead
396
+ * of throwing an error; the caller must check SOFT_ERROR_OCCURRED()
397
+ * to detect errors.
398
+ */
399
+
400
+
401
+ /*
402
+ * pg_itoa: converts a signed 16-bit integer to its string representation
403
+ * and returns strlen(a).
404
+ *
405
+ * Caller must ensure that 'a' points to enough memory to hold the result
406
+ * (at least 7 bytes, counting a leading sign and trailing NUL).
407
+ *
408
+ * It doesn't seem worth implementing this separately.
409
+ */
410
+
411
+
412
+ /*
413
+ * pg_ultoa_n: converts an unsigned 32-bit integer to its string representation,
414
+ * not NUL-terminated, and returns the length of that string representation
415
+ *
416
+ * Caller must ensure that 'a' points to enough memory to hold the result (at
417
+ * least 10 bytes)
418
+ */
419
+
420
+
421
+ /*
422
+ * pg_ltoa: converts a signed 32-bit integer to its string representation and
423
+ * returns strlen(a).
424
+ *
425
+ * It is the caller's responsibility to ensure that a is at least 12 bytes long,
426
+ * which is enough room to hold a minus sign, a maximally long int32, and the
427
+ * above terminating NUL.
428
+ */
429
+
430
+
431
+ /*
432
+ * Get the decimal representation, not NUL-terminated, and return the length of
433
+ * same. Caller must ensure that a points to at least MAXINT8LEN bytes.
434
+ */
435
+
436
+
437
+ /*
438
+ * pg_lltoa: converts a signed 64-bit integer to its string representation and
439
+ * returns strlen(a).
440
+ *
441
+ * Caller must ensure that 'a' points to enough memory to hold the result
442
+ * (at least MAXINT8LEN + 1 bytes, counting a leading sign and trailing NUL).
443
+ */
444
+
445
+
446
+
447
+ /*
448
+ * pg_ultostr_zeropad
449
+ * Converts 'value' into a decimal string representation stored at 'str'.
450
+ * 'minwidth' specifies the minimum width of the result; any extra space
451
+ * is filled up by prefixing the number with zeros.
452
+ *
453
+ * Returns the ending address of the string result (the last character written
454
+ * plus 1). Note that no NUL terminator is written.
455
+ *
456
+ * The intended use-case for this function is to build strings that contain
457
+ * multiple individual numbers, for example:
458
+ *
459
+ * str = pg_ultostr_zeropad(str, hours, 2);
460
+ * *str++ = ':';
461
+ * str = pg_ultostr_zeropad(str, mins, 2);
462
+ * *str++ = ':';
463
+ * str = pg_ultostr_zeropad(str, secs, 2);
464
+ * *str = '\0';
465
+ *
466
+ * Note: Caller must ensure that 'str' points to enough memory to hold the
467
+ * result.
468
+ */
469
+
470
+
471
+ /*
472
+ * pg_ultostr
473
+ * Converts 'value' into a decimal string representation stored at 'str'.
474
+ *
475
+ * Returns the ending address of the string result (the last character written
476
+ * plus 1). Note that no NUL terminator is written.
477
+ *
478
+ * The intended use-case for this function is to build strings that contain
479
+ * multiple individual numbers, for example:
480
+ *
481
+ * str = pg_ultostr(str, a);
482
+ * *str++ = ' ';
483
+ * str = pg_ultostr(str, b);
484
+ * *str = '\0';
485
+ *
486
+ * Note: Caller must ensure that 'str' points to enough memory to hold the
487
+ * result.
488
+ */
489
+
@@ -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-2022, 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
  *
@@ -419,6 +419,8 @@ static void get_update_query_targetlist_def(Query *query, List *targetList,
419
419
  RangeTblEntry *rte);
420
420
  static void get_delete_query_def(Query *query, deparse_context *context,
421
421
  bool colNamesVisible);
422
+ static void get_merge_query_def(Query *query, deparse_context *context,
423
+ bool colNamesVisible);
422
424
  static void get_utility_query_def(Query *query, deparse_context *context);
423
425
  static void get_basic_select_query(Query *query, deparse_context *context,
424
426
  TupleDesc resultDesc, bool colNamesVisible);
@@ -465,9 +467,15 @@ static void get_func_expr(FuncExpr *expr, deparse_context *context,
465
467
  bool showimplicit);
466
468
  static void get_agg_expr(Aggref *aggref, deparse_context *context,
467
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);
468
473
  static void get_agg_combine_expr(Node *node, deparse_context *context,
469
474
  void *callback_arg);
470
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);
471
479
  static bool get_func_sql_syntax(FuncExpr *expr, deparse_context *context);
472
480
  static void get_coercion_expr(Node *arg, deparse_context *context,
473
481
  Oid resulttype, int32 resulttypmod,
@@ -475,6 +483,15 @@ static void get_coercion_expr(Node *arg, deparse_context *context,
475
483
  static void get_const_expr(Const *constval, deparse_context *context,
476
484
  int showtype);
477
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);
478
495
  static void simple_quote_literal(StringInfo buf, const char *val);
479
496
  static void get_sublink_expr(SubLink *sublink, deparse_context *context);
480
497
  static void get_tablefunc(TableFunc *tf, deparse_context *context,
@@ -483,6 +500,8 @@ static void get_from_clause(Query *query, const char *prefix,
483
500
  deparse_context *context);
484
501
  static void get_from_clause_item(Node *jtnode, Query *query,
485
502
  deparse_context *context);
503
+ static void get_rte_alias(RangeTblEntry *rte, int varno, bool use_as,
504
+ deparse_context *context);
486
505
  static void get_column_alias_list(deparse_columns *colinfo,
487
506
  deparse_context *context);
488
507
  static void get_from_clause_coldeflist(RangeTblFunction *rtfunc,
@@ -584,6 +603,9 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
584
603
  /* Internal version that just reports the key-column definitions */
585
604
 
586
605
 
606
+ /* Internal version, extensible with flags to control its behavior */
607
+
608
+
587
609
  /*
588
610
  * Internal workhorse to decompile an index definition.
589
611
  *
@@ -637,7 +659,7 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
637
659
  *
638
660
  * Returns the partition key specification, ie, the following:
639
661
  *
640
- * PARTITION BY { RANGE | LIST | HASH } (column opt_collation opt_opclass [, ...])
662
+ * { RANGE | LIST | HASH } (column opt_collation opt_opclass [, ...])
641
663
  */
642
664
 
643
665
 
@@ -744,8 +766,8 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
744
766
  *
745
767
  * Note: if you change the output format of this function, be careful not
746
768
  * to break psql's rules (in \ef and \sf) for identifying the start of the
747
- * function body. To wit: the function body starts on a line that begins
748
- * 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.
749
771
  */
750
772
 
751
773
 
@@ -1214,6 +1236,13 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1214
1236
 
1215
1237
 
1216
1238
 
1239
+ /* ----------
1240
+ * get_merge_query_def - Parse back a MERGE parsetree
1241
+ * ----------
1242
+ */
1243
+
1244
+
1245
+
1217
1246
  /* ----------
1218
1247
  * get_utility_query_def - Parse back a UTILITY parsetree
1219
1248
  * ----------
@@ -1413,6 +1442,12 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1413
1442
  */
1414
1443
 
1415
1444
 
1445
+ /*
1446
+ * get_agg_expr_helper - subroutine for get_agg_expr and
1447
+ * get_json_agg_constructor
1448
+ */
1449
+
1450
+
1416
1451
  /*
1417
1452
  * This is a helper function for get_agg_expr(). It's used when we deparse
1418
1453
  * a combining Aggref; resolve_special_varno locates the corresponding partial
@@ -1425,6 +1460,13 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1425
1460
  */
1426
1461
 
1427
1462
 
1463
+
1464
+ /*
1465
+ * get_windowfunc_expr_helper - subroutine for get_windowfunc_expr and
1466
+ * get_json_agg_constructor
1467
+ */
1468
+
1469
+
1428
1470
  /*
1429
1471
  * get_func_sql_syntax - Parse back a SQL-syntax function call
1430
1472
  *
@@ -1463,6 +1505,31 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1463
1505
  */
1464
1506
 
1465
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
+
1466
1533
  /*
1467
1534
  * simple_quote_literal - Format a string as a SQL literal, append to buf
1468
1535
  */
@@ -1494,6 +1561,13 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1494
1561
 
1495
1562
 
1496
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
+
1497
1571
  /*
1498
1572
  * get_column_alias_list - print column alias list for an RTE
1499
1573
  *
@@ -1533,7 +1607,7 @@ static void get_reloptions(StringInfo buf, Datum reloptions);
1533
1607
 
1534
1608
  /*
1535
1609
  * generate_opclass_name
1536
- * Compute the name to display for a opclass specified by OID
1610
+ * Compute the name to display for an opclass specified by OID
1537
1611
  *
1538
1612
  * The result includes all necessary quoting and schema-prefixing.
1539
1613
  */
@@ -9,7 +9,7 @@
9
9
  * assert.c
10
10
  * Assert support code.
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
  *
@@ -34,20 +34,17 @@
34
34
  */
35
35
  void
36
36
  ExceptionalCondition(const char *conditionName,
37
- const char *errorType,
38
37
  const char *fileName,
39
38
  int lineNumber)
40
39
  {
41
40
  /* Report the failure on stderr (or local equivalent) */
42
41
  if (!PointerIsValid(conditionName)
43
- || !PointerIsValid(fileName)
44
- || !PointerIsValid(errorType))
42
+ || !PointerIsValid(fileName))
45
43
  write_stderr("TRAP: ExceptionalCondition: bad arguments in PID %d\n",
46
44
  (int) getpid());
47
45
  else
48
- write_stderr("TRAP: %s(\"%s\", File: \"%s\", Line: %d, PID: %d)\n",
49
- errorType, conditionName,
50
- fileName, lineNumber, (int) getpid());
46
+ write_stderr("TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n",
47
+ conditionName, fileName, lineNumber, (int) getpid());
51
48
 
52
49
  /* Usually this shouldn't be needed, but make sure the msg went out */
53
50
  fflush(stderr);