pg_query 2.0.3 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +165 -0
  3. data/README.md +67 -29
  4. data/Rakefile +8 -23
  5. data/ext/pg_query/extconf.rb +21 -3
  6. data/ext/pg_query/include/pg_query.h +29 -4
  7. data/ext/pg_query/include/pg_query_enum_defs.c +551 -272
  8. data/ext/pg_query/include/pg_query_fingerprint_conds.c +563 -470
  9. data/ext/pg_query/include/pg_query_fingerprint_defs.c +5403 -3945
  10. data/ext/pg_query/include/pg_query_outfuncs_conds.c +402 -330
  11. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1319 -1059
  12. data/ext/pg_query/include/pg_query_readfuncs_conds.c +141 -118
  13. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1685 -1379
  14. data/ext/pg_query/include/{access → postgres/access}/amapi.h +47 -1
  15. data/ext/pg_query/include/{access → postgres/access}/attmap.h +5 -3
  16. data/ext/pg_query/include/{access → postgres/access}/attnum.h +2 -2
  17. data/ext/pg_query/include/{access → postgres/access}/clog.h +4 -2
  18. data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +6 -9
  19. data/ext/pg_query/include/{access → postgres/access}/detoast.h +1 -11
  20. data/ext/pg_query/include/{access → postgres/access}/genam.h +21 -16
  21. data/ext/pg_query/include/{access → postgres/access}/gin.h +17 -4
  22. data/ext/pg_query/include/{access → postgres/access}/htup.h +1 -1
  23. data/ext/pg_query/include/{access → postgres/access}/htup_details.h +80 -88
  24. data/ext/pg_query/include/{access → postgres/access}/itup.h +61 -52
  25. data/ext/pg_query/include/{access → postgres/access}/parallel.h +2 -2
  26. data/ext/pg_query/include/{access → postgres/access}/printtup.h +1 -1
  27. data/ext/pg_query/include/{access → postgres/access}/relation.h +1 -1
  28. data/ext/pg_query/include/{access → postgres/access}/relscan.h +17 -2
  29. data/ext/pg_query/include/postgres/access/rmgr.h +62 -0
  30. data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +24 -24
  31. data/ext/pg_query/include/{access → postgres/access}/sdir.h +12 -3
  32. data/ext/pg_query/include/{access → postgres/access}/skey.h +1 -1
  33. data/ext/pg_query/include/{access → postgres/access}/stratnum.h +4 -2
  34. data/ext/pg_query/include/{access → postgres/access}/sysattr.h +1 -1
  35. data/ext/pg_query/include/{access → postgres/access}/table.h +2 -1
  36. data/ext/pg_query/include/{access → postgres/access}/tableam.h +337 -62
  37. data/ext/pg_query/include/postgres/access/toast_compression.h +73 -0
  38. data/ext/pg_query/include/{access → postgres/access}/transam.h +123 -13
  39. data/ext/pg_query/include/postgres/access/tsmapi.h +82 -0
  40. data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +5 -2
  41. data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +2 -2
  42. data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +60 -100
  43. data/ext/pg_query/include/{access → postgres/access}/twophase.h +5 -1
  44. data/ext/pg_query/include/{access → postgres/access}/xact.h +99 -32
  45. data/ext/pg_query/include/{access → postgres/access}/xlog.h +69 -165
  46. data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +147 -73
  47. data/ext/pg_query/include/postgres/access/xlogbackup.h +41 -0
  48. data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +13 -40
  49. data/ext/pg_query/include/postgres/access/xlogprefetcher.h +55 -0
  50. data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +154 -37
  51. data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +34 -13
  52. data/ext/pg_query/include/postgres/access/xlogrecovery.h +158 -0
  53. data/ext/pg_query/include/postgres/archive/archive_module.h +59 -0
  54. data/ext/pg_query/include/{c.h → postgres/c.h} +245 -188
  55. data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +6 -3
  56. data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +6 -2
  57. data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +14 -19
  58. data/ext/pg_query/include/postgres/catalog/genbki.h +143 -0
  59. data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +20 -5
  60. data/ext/pg_query/include/postgres/catalog/indexing.h +54 -0
  61. data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +5 -3
  62. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +73 -3
  63. data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +12 -7
  64. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +14 -10
  65. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +2 -1
  66. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +4 -1
  67. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +3 -1
  68. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +45 -26
  69. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +19 -16
  70. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +7 -2
  71. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +19 -9
  72. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +45 -15
  73. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +31 -2
  74. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +35 -8
  75. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +21 -3
  76. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +39 -13
  77. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +10 -4
  78. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +13 -5
  79. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +8 -5
  80. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +4 -1
  81. data/ext/pg_query/include/postgres/catalog/pg_database.h +124 -0
  82. data/ext/pg_query/include/postgres/catalog/pg_database_d.h +52 -0
  83. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +11 -7
  84. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +3 -1
  85. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +9 -3
  86. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +3 -1
  87. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +17 -7
  88. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +20 -17
  89. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +10 -5
  90. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +3 -1
  91. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +7 -2
  92. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +3 -1
  93. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +8 -5
  94. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +3 -1
  95. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +21 -16
  96. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +37 -1
  97. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +8 -4
  98. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +6 -2
  99. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +20 -9
  100. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +2 -1
  101. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +20 -11
  102. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +10 -8
  103. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +49 -6
  104. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +3 -1
  105. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +6 -1
  106. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +5 -1
  107. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +19 -12
  108. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +2 -1
  109. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +19 -5
  110. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +7 -2
  111. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +8 -5
  112. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +3 -1
  113. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +24 -8
  114. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +4 -1
  115. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +6 -3
  116. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +3 -1
  117. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +8 -3
  118. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +3 -1
  119. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +6 -3
  120. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +3 -1
  121. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +6 -3
  122. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +3 -1
  123. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +56 -24
  124. data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +70 -31
  125. data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +9 -7
  126. data/ext/pg_query/include/{commands → postgres/commands}/async.h +4 -5
  127. data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +3 -1
  128. data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +12 -24
  129. data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +2 -2
  130. data/ext/pg_query/include/{commands → postgres/commands}/explain.h +3 -1
  131. data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +1 -1
  132. data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +6 -4
  133. data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +36 -25
  134. data/ext/pg_query/include/{commands → postgres/commands}/user.h +10 -4
  135. data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +140 -47
  136. data/ext/pg_query/include/postgres/common/cryptohash.h +39 -0
  137. data/ext/pg_query/include/{common → postgres/common}/file_perm.h +4 -4
  138. data/ext/pg_query/include/{common → postgres/common}/hashfn.h +1 -1
  139. data/ext/pg_query/include/postgres/common/int.h +437 -0
  140. data/ext/pg_query/include/{common → postgres/common}/keywords.h +2 -6
  141. data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +2 -2
  142. data/ext/pg_query/include/postgres/common/pg_prng.h +61 -0
  143. data/ext/pg_query/include/{common → postgres/common}/relpath.h +21 -14
  144. data/ext/pg_query/include/postgres/common/scram-common.h +70 -0
  145. data/ext/pg_query/include/postgres/common/sha2.h +32 -0
  146. data/ext/pg_query/include/postgres/common/string.h +44 -0
  147. data/ext/pg_query/include/postgres/common/unicode_east_asian_fw_table.h +125 -0
  148. data/ext/pg_query/include/{common/unicode_combining_table.h → postgres/common/unicode_nonspacing_table.h} +138 -8
  149. data/ext/pg_query/include/postgres/copyfuncs.funcs.c +5013 -0
  150. data/ext/pg_query/include/postgres/copyfuncs.switch.c +938 -0
  151. data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +50 -4
  152. data/ext/pg_query/include/postgres/equalfuncs.funcs.c +3097 -0
  153. data/ext/pg_query/include/postgres/equalfuncs.switch.c +785 -0
  154. data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +1 -1
  155. data/ext/pg_query/include/{executor → postgres/executor}/executor.h +98 -32
  156. data/ext/pg_query/include/{executor → postgres/executor}/functions.h +17 -3
  157. data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +33 -16
  158. data/ext/pg_query/include/{executor → postgres/executor}/spi.h +42 -4
  159. data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +1 -1
  160. data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +18 -11
  161. data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +33 -8
  162. data/ext/pg_query/include/postgres/foreign/fdwapi.h +294 -0
  163. data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +22 -10
  164. data/ext/pg_query/include/postgres/gram.h +1127 -0
  165. data/ext/pg_query/include/{parser → postgres}/gramparse.h +4 -4
  166. data/ext/pg_query/include/{jit → postgres/jit}/jit.h +12 -12
  167. data/ext/pg_query/include/postgres/kwlist_d.h +1119 -0
  168. data/ext/pg_query/include/postgres/lib/dshash.h +115 -0
  169. data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +454 -22
  170. data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +1 -1
  171. data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +158 -33
  172. data/ext/pg_query/include/postgres/lib/sort_template.h +432 -0
  173. data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +3 -3
  174. data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +12 -4
  175. data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +5 -4
  176. data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +54 -8
  177. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +45 -17
  178. data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +31 -20
  179. data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +26 -71
  180. data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +2 -2
  181. data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +25 -13
  182. data/ext/pg_query/include/postgres/libpq/sasl.h +136 -0
  183. data/ext/pg_query/include/postgres/libpq/scram.h +37 -0
  184. data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +125 -25
  185. data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +1 -1
  186. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +96 -65
  187. data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +11 -7
  188. data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +351 -103
  189. data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +8 -4
  190. data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +1 -1
  191. data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +19 -6
  192. data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +11 -6
  193. data/ext/pg_query/include/postgres/nodes/miscnodes.h +56 -0
  194. data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +89 -29
  195. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +100 -496
  196. data/ext/pg_query/include/postgres/nodes/nodetags.h +471 -0
  197. data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +3 -3
  198. data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +678 -207
  199. data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +1282 -454
  200. data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +103 -73
  201. data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +474 -133
  202. data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +754 -254
  203. data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +1 -1
  204. data/ext/pg_query/include/postgres/nodes/queryjumble.h +86 -0
  205. data/ext/pg_query/include/postgres/nodes/replnodes.h +111 -0
  206. data/ext/pg_query/include/postgres/nodes/supportnodes.h +346 -0
  207. data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +1 -1
  208. data/ext/pg_query/include/postgres/nodes/value.h +90 -0
  209. data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +14 -5
  210. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +9 -7
  211. data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +1 -1
  212. data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +31 -28
  213. data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +29 -12
  214. data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +15 -17
  215. data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +20 -5
  216. data/ext/pg_query/include/postgres/parser/kwlist.h +498 -0
  217. data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +5 -8
  218. data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +6 -1
  219. data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +2 -3
  220. data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +2 -1
  221. data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +41 -11
  222. data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +3 -5
  223. data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +11 -5
  224. data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +4 -3
  225. data/ext/pg_query/include/postgres/parser/parser.h +68 -0
  226. data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +1 -1
  227. data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +2 -2
  228. data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +2 -5
  229. data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +1 -1
  230. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +216 -228
  231. data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +80 -58
  232. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  233. data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +6 -6
  234. data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +1 -1
  235. data/ext/pg_query/include/postgres/pgstat.h +778 -0
  236. data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +16 -6
  237. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +116 -116
  238. data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +1 -1
  239. data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +10 -10
  240. data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +3 -3
  241. data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +60 -60
  242. data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +9 -1
  243. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +79 -86
  244. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +9 -3
  245. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  246. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +21 -21
  247. data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +2 -2
  248. data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +3 -3
  249. data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +3 -3
  250. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  251. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  252. data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +1 -1
  253. data/ext/pg_query/include/{port → postgres/port}/atomics.h +2 -7
  254. data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +129 -16
  255. data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +1 -1
  256. data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +1 -1
  257. data/ext/pg_query/include/postgres/port/simd.h +375 -0
  258. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  259. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  260. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  261. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  262. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  263. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  264. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  265. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  266. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  267. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  268. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  269. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  270. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  271. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  272. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  273. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  274. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  275. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  276. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  277. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  278. data/ext/pg_query/include/{port.h → postgres/port.h} +107 -111
  279. data/ext/pg_query/include/postgres/portability/instr_time.h +197 -0
  280. data/ext/pg_query/include/postgres/postgres.h +579 -0
  281. data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -1
  282. data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +17 -20
  283. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +3 -2
  284. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +2 -2
  285. data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +6 -6
  286. data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +1 -1
  287. data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +7 -10
  288. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +21 -17
  289. data/ext/pg_query/include/postgres/postmaster/startup.h +41 -0
  290. data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +16 -11
  291. data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +5 -3
  292. data/ext/pg_query/include/{regex → postgres/regex}/regex.h +27 -22
  293. data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +8 -5
  294. data/ext/pg_query/include/postgres/replication/logicalproto.h +274 -0
  295. data/ext/pg_query/include/postgres/replication/logicalworker.h +32 -0
  296. data/ext/pg_query/include/{replication → postgres/replication}/origin.h +8 -8
  297. data/ext/pg_query/include/postgres/replication/reorderbuffer.h +753 -0
  298. data/ext/pg_query/include/{replication → postgres/replication}/slot.h +42 -12
  299. data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +6 -12
  300. data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +158 -20
  301. data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +20 -20
  302. data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +1 -1
  303. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +1 -6
  304. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +11 -2
  305. data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +1 -1
  306. data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +3 -3
  307. data/ext/pg_query/include/{storage → postgres/storage}/block.h +24 -37
  308. data/ext/pg_query/include/{storage → postgres/storage}/buf.h +1 -1
  309. data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +196 -95
  310. data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +152 -101
  311. data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +14 -3
  312. data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +6 -6
  313. data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +6 -2
  314. data/ext/pg_query/include/{storage → postgres/storage}/fd.h +48 -14
  315. data/ext/pg_query/include/postgres/storage/fileset.h +40 -0
  316. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +5 -2
  317. data/ext/pg_query/include/{storage → postgres/storage}/item.h +1 -1
  318. data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +1 -1
  319. data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +96 -57
  320. data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +2 -2
  321. data/ext/pg_query/include/{storage → postgres/storage}/latch.h +17 -13
  322. data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +7 -1
  323. data/ext/pg_query/include/{storage → postgres/storage}/lock.h +37 -25
  324. data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +4 -4
  325. data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +21 -33
  326. data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -1
  327. data/ext/pg_query/include/{storage → postgres/storage}/off.h +1 -1
  328. data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +1 -1
  329. data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +9 -7
  330. data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +15 -4
  331. data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +5 -5
  332. data/ext/pg_query/include/{storage → postgres/storage}/proc.h +200 -67
  333. data/ext/pg_query/include/postgres/storage/procarray.h +99 -0
  334. data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +1 -1
  335. data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +5 -7
  336. data/ext/pg_query/include/postgres/storage/relfilelocator.h +99 -0
  337. data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +118 -298
  338. data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +3 -11
  339. data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +5 -4
  340. data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +1 -1
  341. data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +1 -23
  342. data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +5 -5
  343. data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +4 -2
  344. data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +21 -17
  345. data/ext/pg_query/include/{storage → postgres/storage}/spin.h +2 -2
  346. data/ext/pg_query/include/{storage → postgres/storage}/standby.h +17 -9
  347. data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +2 -2
  348. data/ext/pg_query/include/{storage → postgres/storage}/sync.h +9 -5
  349. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +7 -2
  350. data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +3 -2
  351. data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +1 -1
  352. data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +1 -3
  353. data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +1 -2
  354. data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +7 -1
  355. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +19 -14
  356. data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +7 -3
  357. data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +3 -5
  358. data/ext/pg_query/include/{utils → postgres/utils}/acl.h +37 -71
  359. data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +1 -1
  360. data/ext/pg_query/include/{utils → postgres/utils}/array.h +26 -2
  361. data/ext/pg_query/include/postgres/utils/backend_progress.h +45 -0
  362. data/ext/pg_query/include/postgres/utils/backend_status.h +342 -0
  363. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +20 -11
  364. data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +3 -2
  365. data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +1 -1
  366. data/ext/pg_query/include/{utils → postgres/utils}/date.h +37 -9
  367. data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +48 -27
  368. data/ext/pg_query/include/{utils → postgres/utils}/datum.h +9 -1
  369. data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +5 -1
  370. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +154 -48
  371. data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +2 -0
  372. data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +14 -3
  373. data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +14 -4
  374. data/ext/pg_query/include/{utils → postgres/utils}/float.h +13 -12
  375. data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +1353 -696
  376. data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +243 -18
  377. data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +6 -5
  378. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +120 -121
  379. data/ext/pg_query/include/postgres/utils/guc_hooks.h +163 -0
  380. data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +71 -21
  381. data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +15 -11
  382. data/ext/pg_query/include/{utils → postgres/utils}/inval.h +7 -3
  383. data/ext/pg_query/include/postgres/utils/logtape.h +77 -0
  384. data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +16 -1
  385. data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +1 -1
  386. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +14 -53
  387. data/ext/pg_query/include/postgres/utils/memutils_internal.h +136 -0
  388. data/ext/pg_query/include/postgres/utils/memutils_memorychunk.h +237 -0
  389. data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +38 -9
  390. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +33 -4
  391. data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +3 -2
  392. data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +37 -21
  393. data/ext/pg_query/include/postgres/utils/pgstat_internal.h +814 -0
  394. data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +6 -5
  395. data/ext/pg_query/include/{utils → postgres/utils}/portal.h +12 -1
  396. data/ext/pg_query/include/{utils → postgres/utils}/probes.h +59 -59
  397. data/ext/pg_query/include/postgres/utils/ps_status.h +47 -0
  398. data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +1 -1
  399. data/ext/pg_query/include/postgres/utils/regproc.h +39 -0
  400. data/ext/pg_query/include/{utils → postgres/utils}/rel.h +129 -61
  401. data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +21 -14
  402. data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +1 -1
  403. data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +1 -1
  404. data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +9 -1
  405. data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +1 -1
  406. data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +38 -15
  407. data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +14 -1
  408. data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +117 -2
  409. data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +9 -1
  410. data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +11 -4
  411. data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +46 -15
  412. data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +209 -41
  413. data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +2 -2
  414. data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +24 -17
  415. data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +17 -3
  416. data/ext/pg_query/include/postgres/utils/wait_event.h +294 -0
  417. data/ext/pg_query/include/{utils → postgres/utils}/xml.h +18 -8
  418. data/ext/pg_query/include/{postgres.h → postgres/varatt.h} +65 -471
  419. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +7494 -6382
  420. data/ext/pg_query/include/protobuf/pg_query.pb.h +116922 -84792
  421. data/ext/pg_query/include/protobuf-c/protobuf-c.h +7 -3
  422. data/ext/pg_query/include/protobuf-c.h +7 -3
  423. data/ext/pg_query/pg_query.c +10 -1
  424. data/ext/pg_query/pg_query.pb-c.c +21026 -17002
  425. data/ext/pg_query/pg_query_deparse.c +1 -9896
  426. data/ext/pg_query/pg_query_fingerprint.c +162 -50
  427. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  428. data/ext/pg_query/pg_query_internal.h +1 -1
  429. data/ext/pg_query/pg_query_json_plpgsql.c +56 -12
  430. data/ext/pg_query/pg_query_normalize.c +259 -64
  431. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  432. data/ext/pg_query/pg_query_outfuncs_json.c +71 -16
  433. data/ext/pg_query/pg_query_outfuncs_protobuf.c +73 -12
  434. data/ext/pg_query/pg_query_parse.c +47 -5
  435. data/ext/pg_query/pg_query_parse_plpgsql.c +86 -21
  436. data/ext/pg_query/pg_query_readfuncs_protobuf.c +43 -8
  437. data/ext/pg_query/pg_query_ruby.c +6 -1
  438. data/ext/pg_query/pg_query_ruby_freebsd.sym +2 -0
  439. data/ext/pg_query/pg_query_scan.c +3 -2
  440. data/ext/pg_query/pg_query_split.c +6 -5
  441. data/ext/pg_query/postgres_deparse.c +11067 -0
  442. data/ext/pg_query/postgres_deparse.h +9 -0
  443. data/ext/pg_query/protobuf-c.c +34 -27
  444. data/ext/pg_query/src_backend_catalog_namespace.c +27 -10
  445. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  446. data/ext/pg_query/src_backend_commands_define.c +11 -1
  447. data/ext/pg_query/src_backend_nodes_bitmapset.c +13 -70
  448. data/ext/pg_query/src_backend_nodes_copyfuncs.c +103 -5894
  449. data/ext/pg_query/src_backend_nodes_equalfuncs.c +102 -3830
  450. data/ext/pg_query/src_backend_nodes_extensible.c +6 -29
  451. data/ext/pg_query/src_backend_nodes_list.c +99 -12
  452. data/ext/pg_query/src_backend_nodes_makefuncs.c +99 -4
  453. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +325 -131
  454. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  455. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  456. data/ext/pg_query/src_backend_parser_gram.c +36104 -32074
  457. data/ext/pg_query/src_backend_parser_parser.c +53 -8
  458. data/ext/pg_query/src_backend_parser_scan.c +4893 -3701
  459. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  460. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  461. data/ext/pg_query/src_backend_tcop_postgres.c +133 -105
  462. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  463. data/ext/pg_query/src_backend_utils_adt_datum.c +17 -7
  464. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  465. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  466. data/ext/pg_query/src_backend_utils_adt_numutils.c +489 -0
  467. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +187 -19
  468. data/ext/pg_query/src_backend_utils_error_assert.c +17 -18
  469. data/ext/pg_query/src_backend_utils_error_elog.c +513 -318
  470. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +44 -17
  471. data/ext/pg_query/src_backend_utils_init_globals.c +9 -6
  472. data/ext/pg_query/src_backend_utils_mb_mbutils.c +74 -131
  473. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +492 -0
  474. data/ext/pg_query/src_backend_utils_mmgr_alignedalloc.c +163 -0
  475. data/ext/pg_query/src_backend_utils_mmgr_aset.c +453 -314
  476. data/ext/pg_query/src_backend_utils_mmgr_generation.c +1039 -0
  477. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +549 -76
  478. data/ext/pg_query/src_backend_utils_mmgr_slab.c +1021 -0
  479. data/ext/pg_query/src_common_encnames.c +4 -1
  480. data/ext/pg_query/src_common_hashfn.c +420 -0
  481. data/ext/pg_query/src_common_keywords.c +15 -2
  482. data/ext/pg_query/src_common_kwlist_d.h +545 -498
  483. data/ext/pg_query/src_common_kwlookup.c +1 -1
  484. data/ext/pg_query/src_common_psprintf.c +1 -1
  485. data/ext/pg_query/src_common_stringinfo.c +4 -4
  486. data/ext/pg_query/src_common_wchar.c +717 -113
  487. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  488. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +3 -18
  489. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1136 -1195
  490. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  491. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  492. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  493. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +60 -60
  494. data/ext/pg_query/src_port_pg_bitutils.c +103 -40
  495. data/ext/pg_query/src_port_pgstrcasecmp.c +29 -1
  496. data/ext/pg_query/src_port_qsort.c +12 -224
  497. data/ext/pg_query/src_port_snprintf.c +51 -29
  498. data/ext/pg_query/src_port_strerror.c +9 -19
  499. data/ext/pg_query/src_port_strlcpy.c +79 -0
  500. data/lib/pg_query/deparse.rb +7 -1
  501. data/lib/pg_query/filter_columns.rb +7 -5
  502. data/lib/pg_query/fingerprint.rb +21 -9
  503. data/lib/pg_query/node.rb +18 -13
  504. data/lib/pg_query/param_refs.rb +1 -1
  505. data/lib/pg_query/parse.rb +141 -50
  506. data/lib/pg_query/pg_query_pb.rb +175 -3031
  507. data/lib/pg_query/treewalker.rb +26 -2
  508. data/lib/pg_query/truncate.rb +54 -8
  509. data/lib/pg_query/version.rb +1 -1
  510. data/lib/pg_query.rb +0 -1
  511. metadata +443 -380
  512. data/ext/pg_query/guc-file.c +0 -0
  513. data/ext/pg_query/include/access/rmgr.h +0 -35
  514. data/ext/pg_query/include/access/xloginsert.h +0 -64
  515. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  516. data/ext/pg_query/include/catalog/genbki.h +0 -64
  517. data/ext/pg_query/include/catalog/indexing.h +0 -366
  518. data/ext/pg_query/include/commands/variable.h +0 -38
  519. data/ext/pg_query/include/common/ip.h +0 -37
  520. data/ext/pg_query/include/common/string.h +0 -19
  521. data/ext/pg_query/include/getaddrinfo.h +0 -162
  522. data/ext/pg_query/include/kwlist_d.h +0 -1072
  523. data/ext/pg_query/include/nodes/value.h +0 -61
  524. data/ext/pg_query/include/parser/gram.h +0 -1067
  525. data/ext/pg_query/include/parser/kwlist.h +0 -477
  526. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  527. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  528. data/ext/pg_query/include/parser/parse_target.h +0 -46
  529. data/ext/pg_query/include/parser/parser.h +0 -41
  530. data/ext/pg_query/include/pg_config_os.h +0 -8
  531. data/ext/pg_query/include/pgstat.h +0 -1487
  532. data/ext/pg_query/include/portability/instr_time.h +0 -256
  533. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  534. data/ext/pg_query/include/replication/logicalproto.h +0 -110
  535. data/ext/pg_query/include/replication/logicalworker.h +0 -19
  536. data/ext/pg_query/include/replication/reorderbuffer.h +0 -467
  537. data/ext/pg_query/include/storage/relfilenode.h +0 -99
  538. data/ext/pg_query/include/utils/dynahash.h +0 -19
  539. data/ext/pg_query/include/utils/pg_lsn.h +0 -29
  540. data/ext/pg_query/include/utils/pidfile.h +0 -56
  541. data/ext/pg_query/include/utils/ps_status.h +0 -25
  542. data/ext/pg_query/include/utils/regproc.h +0 -28
  543. data/ext/pg_query/include/utils/rls.h +0 -50
  544. data/ext/pg_query/include/utils/tzparser.h +0 -39
  545. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  546. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  547. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2230
  548. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +0 -370
  549. data/ext/pg_query/src_backend_utils_hash_dynahash.c +0 -1086
  550. data/ext/pg_query/src_backend_utils_misc_guc.c +0 -1831
  551. data/ext/pg_query/src_common_string.c +0 -86
  552. data/ext/pg_query/src_port_erand48.c +0 -127
  553. data/ext/pg_query/src_port_pgsleep.c +0 -69
  554. data/ext/pg_query/src_port_random.c +0 -31
  555. data/ext/pg_query/src_port_strnlen.c +0 -39
  556. data/lib/pg_query/json_field_names.rb +0 -1402
  557. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
@@ -4,7 +4,7 @@
4
4
  * definition of the "aggregate" system catalog (pg_aggregate)
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/catalog/pg_aggregate.h
@@ -44,25 +44,25 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
44
44
  regproc aggtransfn BKI_LOOKUP(pg_proc);
45
45
 
46
46
  /* final function (0 if none) */
47
- regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
47
+ regproc aggfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
48
48
 
49
49
  /* combine function (0 if none) */
50
- regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
50
+ regproc aggcombinefn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
51
51
 
52
52
  /* function to convert transtype to bytea (0 if none) */
53
- regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
53
+ regproc aggserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
54
54
 
55
55
  /* function to convert bytea to transtype (0 if none) */
56
- regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
56
+ regproc aggdeserialfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
57
57
 
58
58
  /* forward function for moving-aggregate mode (0 if none) */
59
- regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
59
+ regproc aggmtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
60
60
 
61
61
  /* inverse function for moving-aggregate mode (0 if none) */
62
- regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
62
+ regproc aggminvtransfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
63
63
 
64
64
  /* final function for moving-aggregate mode (0 if none) */
65
- regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
65
+ regproc aggmfinalfn BKI_DEFAULT(-) BKI_LOOKUP_OPT(pg_proc);
66
66
 
67
67
  /* true to pass extra dummy arguments to aggfinalfn */
68
68
  bool aggfinalextra BKI_DEFAULT(f);
@@ -77,7 +77,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
77
77
  char aggmfinalmodify BKI_DEFAULT(r);
78
78
 
79
79
  /* associated sort operator (0 if none) */
80
- Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP(pg_operator);
80
+ Oid aggsortop BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_operator);
81
81
 
82
82
  /* type of aggregate's transition (state) data */
83
83
  Oid aggtranstype BKI_LOOKUP(pg_type);
@@ -86,7 +86,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
86
86
  int32 aggtransspace BKI_DEFAULT(0);
87
87
 
88
88
  /* type of moving-aggregate state data (0 if none) */
89
- Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
89
+ Oid aggmtranstype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
90
90
 
91
91
  /* estimated size of moving-agg state (0 for default est) */
92
92
  int32 aggmtransspace BKI_DEFAULT(0);
@@ -108,6 +108,10 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
108
108
  */
109
109
  typedef FormData_pg_aggregate *Form_pg_aggregate;
110
110
 
111
+ DECLARE_TOAST(pg_aggregate, 4159, 4160);
112
+
113
+ DECLARE_UNIQUE_INDEX_PKEY(pg_aggregate_fnoid_index, 2650, AggregateFnoidIndexId, on pg_aggregate using btree(aggfnoid oid_ops));
114
+
111
115
  #ifdef EXPOSE_TO_CLIENT_CODE
112
116
 
113
117
  /*
@@ -3,7 +3,7 @@
3
3
  * pg_aggregate_d.h
4
4
  * Macro definitions for pg_aggregate
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -19,6 +19,7 @@
19
19
  #define PG_AGGREGATE_D_H
20
20
 
21
21
  #define AggregateRelationId 2600
22
+ #define AggregateFnoidIndexId 2650
22
23
 
23
24
  #define Anum_pg_aggregate_aggfnoid 1
24
25
  #define Anum_pg_aggregate_aggkind 2
@@ -4,7 +4,7 @@
4
4
  * definition of the "access method" system catalog (pg_am)
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/catalog/pg_am.h
@@ -47,6 +47,9 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
47
47
  */
48
48
  typedef FormData_pg_am *Form_pg_am;
49
49
 
50
+ DECLARE_UNIQUE_INDEX(pg_am_name_index, 2651, AmNameIndexId, on pg_am using btree(amname name_ops));
51
+ DECLARE_UNIQUE_INDEX_PKEY(pg_am_oid_index, 2652, AmOidIndexId, on pg_am using btree(oid oid_ops));
52
+
50
53
  #ifdef EXPOSE_TO_CLIENT_CODE
51
54
 
52
55
  /*
@@ -3,7 +3,7 @@
3
3
  * pg_am_d.h
4
4
  * Macro definitions for pg_am
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -19,6 +19,8 @@
19
19
  #define PG_AM_D_H
20
20
 
21
21
  #define AccessMethodRelationId 2601
22
+ #define AmNameIndexId 2651
23
+ #define AmOidIndexId 2652
22
24
 
23
25
  #define Anum_pg_am_oid 1
24
26
  #define Anum_pg_am_amname 2
@@ -8,7 +8,7 @@
8
8
  * relations need be included.
9
9
  *
10
10
  *
11
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
12
12
  * Portions Copyright (c) 1994, Regents of the University of California
13
13
  *
14
14
  * src/include/catalog/pg_attribute.h
@@ -36,7 +36,8 @@
36
36
  */
37
37
  CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,AttributeRelation_Rowtype_Id) BKI_SCHEMA_MACRO
38
38
  {
39
- Oid attrelid; /* OID of relation containing this attribute */
39
+ Oid attrelid BKI_LOOKUP(pg_class); /* OID of relation containing
40
+ * this attribute */
40
41
  NameData attname; /* name of attribute */
41
42
 
42
43
  /*
@@ -44,18 +45,12 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
44
45
  * defines the data type of this attribute (e.g. int4). Information in
45
46
  * that instance is redundant with the attlen, attbyval, and attalign
46
47
  * attributes of this instance, so they had better match or Postgres will
47
- * fail.
48
+ * fail. In an entry for a dropped column, this field is set to zero
49
+ * since the pg_type entry may no longer exist; but we rely on attlen,
50
+ * attbyval, and attalign to still tell us how large the values in the
51
+ * table are.
48
52
  */
49
- Oid atttypid;
50
-
51
- /*
52
- * attstattarget is the target number of statistics datapoints to collect
53
- * during VACUUM ANALYZE of this column. A zero here indicates that we do
54
- * not wish to collect any stats about this column. A "-1" here indicates
55
- * that no value has been explicitly set for this column, so ANALYZE
56
- * should use the default setting.
57
- */
58
- int32 attstattarget BKI_DEFAULT(-1);
53
+ Oid atttypid BKI_LOOKUP_OPT(pg_type);
59
54
 
60
55
  /*
61
56
  * attlen is a copy of the typlen field from pg_type for this attribute.
@@ -78,12 +73,6 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
78
73
  */
79
74
  int16 attnum;
80
75
 
81
- /*
82
- * attndims is the declared number of dimensions, if an array type,
83
- * otherwise zero.
84
- */
85
- int32 attndims;
86
-
87
76
  /*
88
77
  * fastgetattr() uses attcacheoff to cache byte offsets of attributes in
89
78
  * heap tuples. The value actually stored in pg_attribute (-1) indicates
@@ -101,12 +90,24 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
101
90
  */
102
91
  int32 atttypmod BKI_DEFAULT(-1);
103
92
 
93
+ /*
94
+ * attndims is the declared number of dimensions, if an array type,
95
+ * otherwise zero.
96
+ */
97
+ int16 attndims;
98
+
104
99
  /*
105
100
  * attbyval is a copy of the typbyval field from pg_type for this
106
101
  * attribute. See atttypid comments above.
107
102
  */
108
103
  bool attbyval;
109
104
 
105
+ /*
106
+ * attalign is a copy of the typalign field from pg_type for this
107
+ * attribute. See atttypid comments above.
108
+ */
109
+ char attalign;
110
+
110
111
  /*----------
111
112
  * attstorage tells for VARLENA attributes, what the heap access
112
113
  * methods can do to it if a given tuple doesn't fit into a page.
@@ -116,10 +117,14 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
116
117
  char attstorage;
117
118
 
118
119
  /*
119
- * attalign is a copy of the typalign field from pg_type for this
120
- * attribute. See atttypid comments above.
120
+ * attcompression sets the current compression method of the attribute.
121
+ * Typically this is InvalidCompressionMethod ('\0') to specify use of the
122
+ * current default setting (see default_toast_compression). Otherwise,
123
+ * 'p' selects pglz compression, while 'l' selects LZ4 compression.
124
+ * However, this field is ignored whenever attstorage does not allow
125
+ * compression.
121
126
  */
122
- char attalign;
127
+ char attcompression BKI_DEFAULT('\0');
123
128
 
124
129
  /* This flag represents the "NOT NULL" constraint */
125
130
  bool attnotnull;
@@ -151,10 +156,21 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
151
156
  bool attislocal BKI_DEFAULT(t);
152
157
 
153
158
  /* Number of times inherited from direct parent relation(s) */
154
- int32 attinhcount BKI_DEFAULT(0);
159
+ int16 attinhcount BKI_DEFAULT(0);
160
+
161
+ /*
162
+ * attstattarget is the target number of statistics datapoints to collect
163
+ * during VACUUM ANALYZE of this column. A zero here indicates that we do
164
+ * not wish to collect any stats about this column. A "-1" here indicates
165
+ * that no value has been explicitly set for this column, so ANALYZE
166
+ * should use the default setting.
167
+ *
168
+ * int16 is sufficient because the max value is currently 10000.
169
+ */
170
+ int16 attstattarget BKI_DEFAULT(-1);
155
171
 
156
- /* attribute's collation */
157
- Oid attcollation;
172
+ /* attribute's collation, if any */
173
+ Oid attcollation BKI_LOOKUP_OPT(pg_collation);
158
174
 
159
175
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
160
176
  /* NOTE: The following fields are not present in tuple descriptors. */
@@ -180,7 +196,7 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
180
196
  * ATTRIBUTE_FIXED_PART_SIZE is the size of the fixed-layout,
181
197
  * guaranteed-not-null part of a pg_attribute row. This is in fact as much
182
198
  * of the row as gets copied into tuple descriptors, so don't expect you
183
- * can access fields beyond attcollation except in a real tuple!
199
+ * can access the variable-length fields except in a real tuple!
184
200
  */
185
201
  #define ATTRIBUTE_FIXED_PART_SIZE \
186
202
  (offsetof(FormData_pg_attribute,attcollation) + sizeof(Oid))
@@ -192,6 +208,9 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
192
208
  */
193
209
  typedef FormData_pg_attribute *Form_pg_attribute;
194
210
 
211
+ DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index, 2658, AttributeRelidNameIndexId, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
212
+ DECLARE_UNIQUE_INDEX_PKEY(pg_attribute_relid_attnum_index, 2659, AttributeRelidNumIndexId, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
213
+
195
214
  #ifdef EXPOSE_TO_CLIENT_CODE
196
215
 
197
216
  #define ATTRIBUTE_IDENTITY_ALWAYS 'a'
@@ -3,7 +3,7 @@
3
3
  * pg_attribute_d.h
4
4
  * Macro definitions for pg_attribute
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -20,19 +20,21 @@
20
20
 
21
21
  #define AttributeRelationId 1249
22
22
  #define AttributeRelation_Rowtype_Id 75
23
+ #define AttributeRelidNameIndexId 2658
24
+ #define AttributeRelidNumIndexId 2659
23
25
 
24
26
  #define Anum_pg_attribute_attrelid 1
25
27
  #define Anum_pg_attribute_attname 2
26
28
  #define Anum_pg_attribute_atttypid 3
27
- #define Anum_pg_attribute_attstattarget 4
28
- #define Anum_pg_attribute_attlen 5
29
- #define Anum_pg_attribute_attnum 6
30
- #define Anum_pg_attribute_attndims 7
31
- #define Anum_pg_attribute_attcacheoff 8
32
- #define Anum_pg_attribute_atttypmod 9
33
- #define Anum_pg_attribute_attbyval 10
29
+ #define Anum_pg_attribute_attlen 4
30
+ #define Anum_pg_attribute_attnum 5
31
+ #define Anum_pg_attribute_attcacheoff 6
32
+ #define Anum_pg_attribute_atttypmod 7
33
+ #define Anum_pg_attribute_attndims 8
34
+ #define Anum_pg_attribute_attbyval 9
35
+ #define Anum_pg_attribute_attalign 10
34
36
  #define Anum_pg_attribute_attstorage 11
35
- #define Anum_pg_attribute_attalign 12
37
+ #define Anum_pg_attribute_attcompression 12
36
38
  #define Anum_pg_attribute_attnotnull 13
37
39
  #define Anum_pg_attribute_atthasdef 14
38
40
  #define Anum_pg_attribute_atthasmissing 15
@@ -41,13 +43,14 @@
41
43
  #define Anum_pg_attribute_attisdropped 18
42
44
  #define Anum_pg_attribute_attislocal 19
43
45
  #define Anum_pg_attribute_attinhcount 20
44
- #define Anum_pg_attribute_attcollation 21
45
- #define Anum_pg_attribute_attacl 22
46
- #define Anum_pg_attribute_attoptions 23
47
- #define Anum_pg_attribute_attfdwoptions 24
48
- #define Anum_pg_attribute_attmissingval 25
49
-
50
- #define Natts_pg_attribute 25
46
+ #define Anum_pg_attribute_attstattarget 21
47
+ #define Anum_pg_attribute_attcollation 22
48
+ #define Anum_pg_attribute_attacl 23
49
+ #define Anum_pg_attribute_attoptions 24
50
+ #define Anum_pg_attribute_attfdwoptions 25
51
+ #define Anum_pg_attribute_attmissingval 26
52
+
53
+ #define Natts_pg_attribute 26
51
54
 
52
55
 
53
56
  #define ATTRIBUTE_IDENTITY_ALWAYS 'a'
@@ -6,7 +6,7 @@
6
6
  * pg_shadow and pg_group are now publicly accessible views on pg_authid.
7
7
  *
8
8
  *
9
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
9
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
10
10
  * Portions Copyright (c) 1994, Regents of the University of California
11
11
  *
12
12
  * src/include/catalog/pg_authid.h
@@ -38,7 +38,7 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
38
38
  bool rolcreatedb; /* allowed to create databases? */
39
39
  bool rolcanlogin; /* allowed to log in as session user? */
40
40
  bool rolreplication; /* role used for streaming replication */
41
- bool rolbypassrls; /* bypasses row level security? */
41
+ bool rolbypassrls; /* bypasses row-level security? */
42
42
  int32 rolconnlimit; /* max connections allowed (-1=no limit) */
43
43
 
44
44
  /* remaining fields may be null; use heap_getattr to read them! */
@@ -55,4 +55,9 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID(284
55
55
  */
56
56
  typedef FormData_pg_authid *Form_pg_authid;
57
57
 
58
+ DECLARE_TOAST_WITH_MACRO(pg_authid, 4175, 4176, PgAuthidToastTable, PgAuthidToastIndex);
59
+
60
+ DECLARE_UNIQUE_INDEX(pg_authid_rolname_index, 2676, AuthIdRolnameIndexId, on pg_authid using btree(rolname name_ops));
61
+ DECLARE_UNIQUE_INDEX_PKEY(pg_authid_oid_index, 2677, AuthIdOidIndexId, on pg_authid using btree(oid oid_ops));
62
+
58
63
  #endif /* PG_AUTHID_H */
@@ -3,7 +3,7 @@
3
3
  * pg_authid_d.h
4
4
  * Macro definitions for pg_authid
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -20,6 +20,10 @@
20
20
 
21
21
  #define AuthIdRelationId 1260
22
22
  #define AuthIdRelation_Rowtype_Id 2842
23
+ #define PgAuthidToastTable 4175
24
+ #define PgAuthidToastIndex 4176
25
+ #define AuthIdRolnameIndexId 2676
26
+ #define AuthIdOidIndexId 2677
23
27
 
24
28
  #define Anum_pg_authid_oid 1
25
29
  #define Anum_pg_authid_rolname 2
@@ -37,13 +41,19 @@
37
41
  #define Natts_pg_authid 12
38
42
 
39
43
  #define BOOTSTRAP_SUPERUSERID 10
40
- #define DEFAULT_ROLE_MONITOR 3373
41
- #define DEFAULT_ROLE_READ_ALL_SETTINGS 3374
42
- #define DEFAULT_ROLE_READ_ALL_STATS 3375
43
- #define DEFAULT_ROLE_STAT_SCAN_TABLES 3377
44
- #define DEFAULT_ROLE_READ_SERVER_FILES 4569
45
- #define DEFAULT_ROLE_WRITE_SERVER_FILES 4570
46
- #define DEFAULT_ROLE_EXECUTE_SERVER_PROGRAM 4571
47
- #define DEFAULT_ROLE_SIGNAL_BACKENDID 4200
44
+ #define ROLE_PG_DATABASE_OWNER 6171
45
+ #define ROLE_PG_READ_ALL_DATA 6181
46
+ #define ROLE_PG_WRITE_ALL_DATA 6182
47
+ #define ROLE_PG_MONITOR 3373
48
+ #define ROLE_PG_READ_ALL_SETTINGS 3374
49
+ #define ROLE_PG_READ_ALL_STATS 3375
50
+ #define ROLE_PG_STAT_SCAN_TABLES 3377
51
+ #define ROLE_PG_READ_SERVER_FILES 4569
52
+ #define ROLE_PG_WRITE_SERVER_FILES 4570
53
+ #define ROLE_PG_EXECUTE_SERVER_PROGRAM 4571
54
+ #define ROLE_PG_SIGNAL_BACKEND 4200
55
+ #define ROLE_PG_CHECKPOINT 4544
56
+ #define ROLE_PG_USE_RESERVED_CONNECTIONS 4550
57
+ #define ROLE_PG_CREATE_SUBSCRIPTION 6304
48
58
 
49
59
  #endif /* PG_AUTHID_D_H */
@@ -4,7 +4,7 @@
4
4
  * definition of the "relation" system catalog (pg_class)
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/catalog/pg_class.h
@@ -38,38 +38,38 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
38
38
  NameData relname;
39
39
 
40
40
  /* OID of namespace containing this class */
41
- Oid relnamespace BKI_DEFAULT(PGNSP);
41
+ Oid relnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
42
42
 
43
- /* OID of entry in pg_type for table's implicit row type */
44
- Oid reltype BKI_LOOKUP(pg_type);
43
+ /* OID of entry in pg_type for relation's implicit row type, if any */
44
+ Oid reltype BKI_LOOKUP_OPT(pg_type);
45
45
 
46
- /* OID of entry in pg_type for underlying composite type */
47
- Oid reloftype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
46
+ /* OID of entry in pg_type for underlying composite type, if any */
47
+ Oid reloftype BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_type);
48
48
 
49
49
  /* class owner */
50
- Oid relowner BKI_DEFAULT(PGUID);
50
+ Oid relowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
51
51
 
52
52
  /* access method; 0 if not a table / index */
53
- Oid relam BKI_DEFAULT(heap) BKI_LOOKUP(pg_am);
53
+ Oid relam BKI_DEFAULT(heap) BKI_LOOKUP_OPT(pg_am);
54
54
 
55
55
  /* identifier of physical storage file */
56
56
  /* relfilenode == 0 means it is a "mapped" relation, see relmapper.c */
57
57
  Oid relfilenode BKI_DEFAULT(0);
58
58
 
59
59
  /* identifier of table space for relation (0 means default for database) */
60
- Oid reltablespace BKI_DEFAULT(0) BKI_LOOKUP(pg_tablespace);
60
+ Oid reltablespace BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_tablespace);
61
61
 
62
62
  /* # of blocks (not always up-to-date) */
63
63
  int32 relpages BKI_DEFAULT(0);
64
64
 
65
- /* # of tuples (not always up-to-date) */
66
- float4 reltuples BKI_DEFAULT(0);
65
+ /* # of tuples (not always up-to-date; -1 means "unknown") */
66
+ float4 reltuples BKI_DEFAULT(-1);
67
67
 
68
68
  /* # of all-visible blocks (not always up-to-date) */
69
69
  int32 relallvisible BKI_DEFAULT(0);
70
70
 
71
71
  /* OID of toast table; 0 if none */
72
- Oid reltoastrelid BKI_DEFAULT(0);
72
+ Oid reltoastrelid BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_class);
73
73
 
74
74
  /* T if has (or has had) any indexes */
75
75
  bool relhasindex BKI_DEFAULT(f);
@@ -119,8 +119,8 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
119
119
  /* is relation a partition? */
120
120
  bool relispartition BKI_DEFAULT(f);
121
121
 
122
- /* heap for rewrite during DDL, link to original rel */
123
- Oid relrewrite BKI_DEFAULT(0);
122
+ /* link to original rel during table rewrite; otherwise 0 */
123
+ Oid relrewrite BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_class);
124
124
 
125
125
  /* all Xids < this are frozen in this rel */
126
126
  TransactionId relfrozenxid BKI_DEFAULT(3); /* FirstNormalTransactionId */
@@ -152,6 +152,10 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
152
152
  */
153
153
  typedef FormData_pg_class *Form_pg_class;
154
154
 
155
+ DECLARE_UNIQUE_INDEX_PKEY(pg_class_oid_index, 2662, ClassOidIndexId, on pg_class using btree(oid oid_ops));
156
+ DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index, 2663, ClassNameNspIndexId, on pg_class using btree(relname name_ops, relnamespace oid_ops));
157
+ DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, ClassTblspcRelfilenodeIndexId, on pg_class using btree(reltablespace oid_ops, relfilenode oid_ops));
158
+
155
159
  #ifdef EXPOSE_TO_CLIENT_CODE
156
160
 
157
161
  #define RELKIND_RELATION 'r' /* ordinary table */
@@ -178,7 +182,7 @@ typedef FormData_pg_class *Form_pg_class;
178
182
  /*
179
183
  * an explicitly chosen candidate key's columns are used as replica identity.
180
184
  * Note this will still be set if the index has been dropped; in that case it
181
- * has the same meaning as 'd'.
185
+ * has the same meaning as 'n'.
182
186
  */
183
187
  #define REPLICA_IDENTITY_INDEX 'i'
184
188
 
@@ -194,6 +198,32 @@ typedef FormData_pg_class *Form_pg_class;
194
198
  (relkind) == RELKIND_TOASTVALUE || \
195
199
  (relkind) == RELKIND_MATVIEW)
196
200
 
201
+ #define RELKIND_HAS_PARTITIONS(relkind) \
202
+ ((relkind) == RELKIND_PARTITIONED_TABLE || \
203
+ (relkind) == RELKIND_PARTITIONED_INDEX)
204
+
205
+ /*
206
+ * Relation kinds that support tablespaces: All relation kinds with storage
207
+ * support tablespaces, except that we don't support moving sequences around
208
+ * into different tablespaces. Partitioned tables and indexes don't have
209
+ * physical storage, but they have a tablespace settings so that their
210
+ * children can inherit it.
211
+ */
212
+ #define RELKIND_HAS_TABLESPACE(relkind) \
213
+ ((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \
214
+ && (relkind) != RELKIND_SEQUENCE)
215
+
216
+ /*
217
+ * Relation kinds with a table access method (rd_tableam). Although sequences
218
+ * use the heap table AM, they are enough of a special case in most uses that
219
+ * they are not included here.
220
+ */
221
+ #define RELKIND_HAS_TABLE_AM(relkind) \
222
+ ((relkind) == RELKIND_RELATION || \
223
+ (relkind) == RELKIND_TOASTVALUE || \
224
+ (relkind) == RELKIND_MATVIEW)
225
+
226
+ extern int errdetail_relkind_not_supported(char relkind);
197
227
 
198
228
  #endif /* EXPOSE_TO_CLIENT_CODE */
199
229
 
@@ -3,7 +3,7 @@
3
3
  * pg_class_d.h
4
4
  * Macro definitions for pg_class
5
5
  *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
7
  * Portions Copyright (c) 1994, Regents of the University of California
8
8
  *
9
9
  * NOTES
@@ -20,6 +20,9 @@
20
20
 
21
21
  #define RelationRelationId 1259
22
22
  #define RelationRelation_Rowtype_Id 83
23
+ #define ClassOidIndexId 2662
24
+ #define ClassNameNspIndexId 2663
25
+ #define ClassTblspcRelfilenodeIndexId 3455
23
26
 
24
27
  #define Anum_pg_class_oid 1
25
28
  #define Anum_pg_class_relname 2
@@ -82,7 +85,7 @@
82
85
  /*
83
86
  * an explicitly chosen candidate key's columns are used as replica identity.
84
87
  * Note this will still be set if the index has been dropped; in that case it
85
- * has the same meaning as 'd'.
88
+ * has the same meaning as 'n'.
86
89
  */
87
90
  #define REPLICA_IDENTITY_INDEX 'i'
88
91
 
@@ -98,6 +101,32 @@
98
101
  (relkind) == RELKIND_TOASTVALUE || \
99
102
  (relkind) == RELKIND_MATVIEW)
100
103
 
104
+ #define RELKIND_HAS_PARTITIONS(relkind) \
105
+ ((relkind) == RELKIND_PARTITIONED_TABLE || \
106
+ (relkind) == RELKIND_PARTITIONED_INDEX)
107
+
108
+ /*
109
+ * Relation kinds that support tablespaces: All relation kinds with storage
110
+ * support tablespaces, except that we don't support moving sequences around
111
+ * into different tablespaces. Partitioned tables and indexes don't have
112
+ * physical storage, but they have a tablespace settings so that their
113
+ * children can inherit it.
114
+ */
115
+ #define RELKIND_HAS_TABLESPACE(relkind) \
116
+ ((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \
117
+ && (relkind) != RELKIND_SEQUENCE)
118
+
119
+ /*
120
+ * Relation kinds with a table access method (rd_tableam). Although sequences
121
+ * use the heap table AM, they are enough of a special case in most uses that
122
+ * they are not included here.
123
+ */
124
+ #define RELKIND_HAS_TABLE_AM(relkind) \
125
+ ((relkind) == RELKIND_RELATION || \
126
+ (relkind) == RELKIND_TOASTVALUE || \
127
+ (relkind) == RELKIND_MATVIEW)
128
+
129
+ extern int errdetail_relkind_not_supported(char relkind);
101
130
 
102
131
 
103
132
  #endif /* PG_CLASS_D_H */
@@ -4,7 +4,7 @@
4
4
  * definition of the "collation" system catalog (pg_collation)
5
5
  *
6
6
  *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
8
8
  * Portions Copyright (c) 1994, Regents of the University of California
9
9
  *
10
10
  * src/include/catalog/pg_collation.h
@@ -30,16 +30,23 @@ CATALOG(pg_collation,3456,CollationRelationId)
30
30
  {
31
31
  Oid oid; /* oid */
32
32
  NameData collname; /* collation name */
33
- Oid collnamespace; /* OID of namespace containing collation */
34
- Oid collowner; /* owner of collation */
33
+
34
+ /* OID of namespace containing this collation */
35
+ Oid collnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace);
36
+
37
+ /* owner of collation */
38
+ Oid collowner BKI_DEFAULT(POSTGRES) BKI_LOOKUP(pg_authid);
35
39
  char collprovider; /* see constants below */
36
40
  bool collisdeterministic BKI_DEFAULT(t);
37
41
  int32 collencoding; /* encoding for this collation; -1 = "all" */
38
- NameData collcollate; /* LC_COLLATE setting */
39
- NameData collctype; /* LC_CTYPE setting */
40
42
  #ifdef CATALOG_VARLEN /* variable-length fields start here */
41
- text collversion; /* provider-dependent version of collation
42
- * data */
43
+ text collcollate BKI_DEFAULT(_null_); /* LC_COLLATE setting */
44
+ text collctype BKI_DEFAULT(_null_); /* LC_CTYPE setting */
45
+ text colliculocale BKI_DEFAULT(_null_); /* ICU locale ID */
46
+ text collicurules BKI_DEFAULT(_null_); /* ICU collation rules */
47
+ text collversion BKI_DEFAULT(_null_); /* provider-dependent
48
+ * version of collation
49
+ * data */
43
50
  #endif
44
51
  } FormData_pg_collation;
45
52
 
@@ -50,12 +57,31 @@ CATALOG(pg_collation,3456,CollationRelationId)
50
57
  */
51
58
  typedef FormData_pg_collation *Form_pg_collation;
52
59
 
60
+ DECLARE_TOAST(pg_collation, 6175, 6176);
61
+
62
+ DECLARE_UNIQUE_INDEX(pg_collation_name_enc_nsp_index, 3164, CollationNameEncNspIndexId, on pg_collation using btree(collname name_ops, collencoding int4_ops, collnamespace oid_ops));
63
+ DECLARE_UNIQUE_INDEX_PKEY(pg_collation_oid_index, 3085, CollationOidIndexId, on pg_collation using btree(oid oid_ops));
64
+
53
65
  #ifdef EXPOSE_TO_CLIENT_CODE
54
66
 
55
67
  #define COLLPROVIDER_DEFAULT 'd'
56
68
  #define COLLPROVIDER_ICU 'i'
57
69
  #define COLLPROVIDER_LIBC 'c'
58
70
 
71
+ static inline const char *
72
+ collprovider_name(char c)
73
+ {
74
+ switch (c)
75
+ {
76
+ case COLLPROVIDER_ICU:
77
+ return "icu";
78
+ case COLLPROVIDER_LIBC:
79
+ return "libc";
80
+ default:
81
+ return "???";
82
+ }
83
+ }
84
+
59
85
  #endif /* EXPOSE_TO_CLIENT_CODE */
60
86
 
61
87
 
@@ -65,9 +91,10 @@ extern Oid CollationCreate(const char *collname, Oid collnamespace,
65
91
  bool collisdeterministic,
66
92
  int32 collencoding,
67
93
  const char *collcollate, const char *collctype,
94
+ const char *colliculocale,
95
+ const char *collicurules,
68
96
  const char *collversion,
69
97
  bool if_not_exists,
70
98
  bool quiet);
71
- extern void RemoveCollationById(Oid collationOid);
72
99
 
73
100
  #endif /* PG_COLLATION_H */