pg_query 4.2.3 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (528) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +6 -8
  4. data/Rakefile +3 -4
  5. data/ext/pg_query/extconf.rb +14 -6
  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} +156 -217
  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_fingerprint.c +12 -8
  420. data/ext/pg_query/pg_query_fingerprint.h +1 -1
  421. data/ext/pg_query/pg_query_internal.h +1 -1
  422. data/ext/pg_query/pg_query_json_plpgsql.c +1 -0
  423. data/ext/pg_query/pg_query_normalize.c +1 -1
  424. data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
  425. data/ext/pg_query/pg_query_outfuncs_protobuf.c +3 -2
  426. data/ext/pg_query/pg_query_parse.c +47 -5
  427. data/ext/pg_query/pg_query_parse_plpgsql.c +7 -5
  428. data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
  429. data/ext/pg_query/pg_query_ruby.c +5 -0
  430. data/ext/pg_query/pg_query_scan.c +1 -1
  431. data/ext/pg_query/pg_query_split.c +3 -3
  432. data/ext/pg_query/postgres_deparse.c +503 -105
  433. data/ext/pg_query/src_backend_catalog_namespace.c +7 -2
  434. data/ext/pg_query/src_backend_catalog_pg_proc.c +1 -1
  435. data/ext/pg_query/src_backend_commands_define.c +1 -1
  436. data/ext/pg_query/src_backend_nodes_bitmapset.c +11 -70
  437. data/ext/pg_query/src_backend_nodes_copyfuncs.c +96 -6202
  438. data/ext/pg_query/src_backend_nodes_equalfuncs.c +95 -4068
  439. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  440. data/ext/pg_query/src_backend_nodes_list.c +14 -2
  441. data/ext/pg_query/src_backend_nodes_makefuncs.c +95 -1
  442. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +283 -132
  443. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  444. data/ext/pg_query/src_backend_nodes_value.c +1 -1
  445. data/ext/pg_query/src_backend_parser_gram.c +33208 -31806
  446. data/ext/pg_query/src_backend_parser_parser.c +28 -2
  447. data/ext/pg_query/src_backend_parser_scan.c +4318 -3329
  448. data/ext/pg_query/src_backend_parser_scansup.c +1 -1
  449. data/ext/pg_query/src_backend_storage_ipc_ipc.c +1 -1
  450. data/ext/pg_query/src_backend_tcop_postgres.c +66 -87
  451. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +1 -1
  452. data/ext/pg_query/src_backend_utils_adt_datum.c +5 -7
  453. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  454. data/ext/pg_query/src_backend_utils_adt_format_type.c +1 -1
  455. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  456. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +79 -5
  457. data/ext/pg_query/src_backend_utils_error_assert.c +4 -7
  458. data/ext/pg_query/src_backend_utils_error_elog.c +371 -249
  459. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +33 -1
  460. data/ext/pg_query/src_backend_utils_init_globals.c +6 -3
  461. data/ext/pg_query/src_backend_utils_mb_mbutils.c +21 -67
  462. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  463. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  464. data/ext/pg_query/src_backend_utils_mmgr_aset.c +449 -312
  465. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  466. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +398 -49
  467. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  468. data/ext/pg_query/src_common_encnames.c +4 -1
  469. data/ext/pg_query/src_common_hashfn.c +1 -1
  470. data/ext/pg_query/src_common_keywords.c +1 -1
  471. data/ext/pg_query/src_common_kwlist_d.h +534 -510
  472. data/ext/pg_query/src_common_kwlookup.c +1 -1
  473. data/ext/pg_query/src_common_psprintf.c +1 -1
  474. data/ext/pg_query/src_common_stringinfo.c +4 -4
  475. data/ext/pg_query/src_common_wchar.c +9 -8
  476. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +1 -1
  477. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -1
  478. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +661 -694
  479. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  480. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +1 -1
  481. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +1 -1
  482. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +48 -46
  483. data/ext/pg_query/src_port_pg_bitutils.c +79 -5
  484. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  485. data/ext/pg_query/src_port_snprintf.c +6 -10
  486. data/ext/pg_query/src_port_strerror.c +1 -1
  487. data/ext/pg_query/src_port_strlcpy.c +79 -0
  488. data/lib/pg_query/fingerprint.rb +2 -3
  489. data/lib/pg_query/node.rb +16 -11
  490. data/lib/pg_query/parse.rb +1 -1
  491. data/lib/pg_query/pg_query_pb.rb +166 -3191
  492. data/lib/pg_query/treewalker.rb +23 -5
  493. data/lib/pg_query/version.rb +1 -1
  494. metadata +432 -383
  495. data/ext/pg_query/guc-file.c +0 -0
  496. data/ext/pg_query/include/catalog/pg_parameter_acl.h +0 -60
  497. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +0 -34
  498. data/ext/pg_query/include/commands/variable.h +0 -38
  499. data/ext/pg_query/include/common/ip.h +0 -31
  500. data/ext/pg_query/include/getaddrinfo.h +0 -162
  501. data/ext/pg_query/include/kwlist_d.h +0 -1095
  502. data/ext/pg_query/include/parser/gram.h +0 -1101
  503. data/ext/pg_query/include/pg_config_os.h +0 -8
  504. data/ext/pg_query/include/portability/instr_time.h +0 -256
  505. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  506. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  507. data/ext/pg_query/include/postmaster/pgarch.h +0 -73
  508. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  509. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  510. data/ext/pg_query/include/utils/dynahash.h +0 -20
  511. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  512. data/ext/pg_query/include/utils/pidfile.h +0 -56
  513. data/ext/pg_query/include/utils/ps_status.h +0 -25
  514. data/ext/pg_query/include/utils/rls.h +0 -50
  515. data/ext/pg_query/include/utils/tzparser.h +0 -39
  516. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2201
  517. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -371
  518. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1116
  519. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1993
  520. data/ext/pg_query/src_common_pg_prng.c +0 -152
  521. data/ext/pg_query/src_common_string.c +0 -92
  522. data/ext/pg_query/src_port_pgsleep.c +0 -69
  523. data/ext/pg_query/src_port_strnlen.c +0 -39
  524. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  525. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
  526. /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
  527. /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
  528. /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);