yb_ddl_parser 0.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 (926) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +177 -0
  3. data/LICENSES/Apache-2.0.txt +4 -0
  4. data/LICENSES/PostgreSQL.txt +24 -0
  5. data/README.md +93 -0
  6. data/THIRD_PARTY_NOTICES.md +47 -0
  7. data/VERSION +1 -0
  8. data/ext/yb_ddl_parser/extconf.rb +41 -0
  9. data/ext/yb_ddl_parser/vendor/compat/postgres/pg_config.h +1021 -0
  10. data/ext/yb_ddl_parser/vendor/compat/postgres/pg_config_ext.h +8 -0
  11. data/ext/yb_ddl_parser/vendor/compat/postgres/pg_config_os.h +8 -0
  12. data/ext/yb_ddl_parser/vendor/compat/postgres/yb/yql/pggate/util/ybc_util.h +53 -0
  13. data/ext/yb_ddl_parser/vendor/compat/postgres/yb/yql/pggate/ybc_dist_trace.h +12 -0
  14. data/ext/yb_ddl_parser/vendor/compat/postgres/yb/yql/pggate/ybc_gflags.h +17 -0
  15. data/ext/yb_ddl_parser/vendor/compat/postgres/yb/yql/pggate/ybc_pg_typedefs.h +184 -0
  16. data/ext/yb_ddl_parser/vendor/compat/postgres/yb/yql/pggate/ybc_pggate.h +6 -0
  17. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/nodes/list.c +1676 -0
  18. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/nodes/makefuncs.c +824 -0
  19. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/nodes/nodes.c +31 -0
  20. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/nodes/outfuncs.c +4948 -0
  21. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/nodes/value.c +83 -0
  22. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/parser/gram.c +52142 -0
  23. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/parser/gram.h +1135 -0
  24. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/parser/parser.c +501 -0
  25. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/parser/scan.c +9319 -0
  26. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/backend/parser/scansup.c +127 -0
  27. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/common/keywords.c +48 -0
  28. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/common/kwlist_d.h +1128 -0
  29. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/common/kwlookup.c +85 -0
  30. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/amapi.h +399 -0
  31. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/amvalidate.h +40 -0
  32. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/attmap.h +53 -0
  33. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/attnum.h +64 -0
  34. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin.h +55 -0
  35. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_internal.h +115 -0
  36. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_page.h +96 -0
  37. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_pageops.h +38 -0
  38. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_revmap.h +41 -0
  39. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_tuple.h +112 -0
  40. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/brin_xlog.h +151 -0
  41. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/bufmask.h +32 -0
  42. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/clog.h +63 -0
  43. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/commit_ts.h +74 -0
  44. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/detoast.h +82 -0
  45. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/genam.h +267 -0
  46. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/generic_xlog.h +45 -0
  47. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gin.h +78 -0
  48. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gin_private.h +500 -0
  49. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/ginblock.h +346 -0
  50. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/ginxlog.h +216 -0
  51. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gist.h +248 -0
  52. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gist_private.h +571 -0
  53. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gistscan.h +24 -0
  54. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/gistxlog.h +114 -0
  55. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/hash.h +485 -0
  56. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/hash_xlog.h +267 -0
  57. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/heapam.h +242 -0
  58. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/heapam_xlog.h +420 -0
  59. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/heaptoast.h +151 -0
  60. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/hio.h +43 -0
  61. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/htup.h +90 -0
  62. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/htup_details.h +812 -0
  63. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/itup.h +181 -0
  64. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/multixact.h +164 -0
  65. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/nbtree.h +1293 -0
  66. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/nbtxlog.h +351 -0
  67. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/parallel.h +82 -0
  68. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/printsimple.h +23 -0
  69. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/printtup.h +35 -0
  70. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/relation.h +28 -0
  71. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/reloptions.h +275 -0
  72. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/relscan.h +242 -0
  73. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/rewriteheap.h +57 -0
  74. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/rmgr.h +62 -0
  75. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/rmgrlist.h +49 -0
  76. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/sdir.h +58 -0
  77. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/session.h +44 -0
  78. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/skey.h +229 -0
  79. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/slru.h +174 -0
  80. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/spgist.h +229 -0
  81. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/spgist_private.h +549 -0
  82. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/spgxlog.h +257 -0
  83. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/stratnum.h +85 -0
  84. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/subtrans.h +29 -0
  85. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/syncscan.h +25 -0
  86. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/sysattr.h +45 -0
  87. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/table.h +28 -0
  88. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tableam.h +2127 -0
  89. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/timeline.h +44 -0
  90. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/toast_compression.h +73 -0
  91. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/toast_helper.h +116 -0
  92. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/toast_internals.h +63 -0
  93. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/transam.h +403 -0
  94. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tsmapi.h +82 -0
  95. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tupconvert.h +54 -0
  96. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tupdesc.h +154 -0
  97. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tupdesc_details.h +28 -0
  98. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/tupmacs.h +247 -0
  99. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/twophase.h +65 -0
  100. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/twophase_rmgr.h +40 -0
  101. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/valid.h +69 -0
  102. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/visibilitymap.h +42 -0
  103. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/visibilitymapdefs.h +25 -0
  104. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xact.h +586 -0
  105. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlog.h +305 -0
  106. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlog_internal.h +366 -0
  107. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogarchive.h +35 -0
  108. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogdefs.h +101 -0
  109. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xloginsert.h +66 -0
  110. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogprefetcher.h +55 -0
  111. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogreader.h +450 -0
  112. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogrecord.h +236 -0
  113. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogrecovery.h +157 -0
  114. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogstats.h +43 -0
  115. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/xlogutils.h +118 -0
  116. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/yb_pg_inherits_scan.h +36 -0
  117. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/yb_scan.h +421 -0
  118. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/yb_sys_scan_base.h +41 -0
  119. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/ybgin.h +75 -0
  120. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/access/ybgin_private.h +51 -0
  121. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/backup/backup_manifest.h +54 -0
  122. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/backup/basebackup.h +39 -0
  123. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/backup/basebackup_sink.h +301 -0
  124. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/backup/basebackup_target.h +66 -0
  125. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/bootstrap/bootstrap.h +62 -0
  126. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/bootstrap/yb_bootstrap.h +44 -0
  127. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/c.h +1424 -0
  128. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/binary_upgrade.h +42 -0
  129. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/catalog.h +70 -0
  130. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/catversion.h +59 -0
  131. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/dependency.h +296 -0
  132. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/genbki.h +143 -0
  133. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/heap.h +165 -0
  134. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/index.h +268 -0
  135. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/indexing.h +57 -0
  136. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/namespace.h +190 -0
  137. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/objectaccess.h +265 -0
  138. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/objectaddress.h +93 -0
  139. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/partition.h +34 -0
  140. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_aggregate.h +180 -0
  141. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_aggregate_d.h +78 -0
  142. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_am.h +63 -0
  143. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_am_d.h +49 -0
  144. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_amop.h +102 -0
  145. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_amop_d.h +44 -0
  146. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_amproc.h +73 -0
  147. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_amproc_d.h +35 -0
  148. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_attrdef.h +70 -0
  149. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_attrdef_d.h +33 -0
  150. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_attribute.h +221 -0
  151. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_attribute_d.h +62 -0
  152. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_auth_members.h +48 -0
  153. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_auth_members_d.h +34 -0
  154. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_authid.h +63 -0
  155. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_authid_d.h +60 -0
  156. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_cast.h +102 -0
  157. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_cast_d.h +64 -0
  158. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_class.h +240 -0
  159. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_class_d.h +142 -0
  160. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_collation.h +98 -0
  161. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_collation_d.h +62 -0
  162. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_constraint.h +276 -0
  163. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_constraint_d.h +73 -0
  164. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_control.h +250 -0
  165. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_conversion.h +75 -0
  166. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_conversion_d.h +38 -0
  167. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_database.h +121 -0
  168. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_database_d.h +51 -0
  169. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_db_role_setting.h +61 -0
  170. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_db_role_setting_d.h +33 -0
  171. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_default_acl.h +73 -0
  172. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_default_acl_d.h +47 -0
  173. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_depend.h +77 -0
  174. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_depend_d.h +36 -0
  175. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_description.h +73 -0
  176. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_description_d.h +32 -0
  177. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_enum.h +66 -0
  178. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_enum_d.h +34 -0
  179. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_event_trigger.h +57 -0
  180. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_event_trigger_d.h +36 -0
  181. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_extension.h +59 -0
  182. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_extension_d.h +37 -0
  183. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_data_wrapper.h +58 -0
  184. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_data_wrapper_d.h +36 -0
  185. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_server.h +55 -0
  186. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_server_d.h +37 -0
  187. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_table.h +49 -0
  188. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_foreign_table_d.h +31 -0
  189. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_index.h +93 -0
  190. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_index_d.h +62 -0
  191. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_inherits.h +66 -0
  192. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_inherits_d.h +33 -0
  193. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_init_privs.h +83 -0
  194. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_init_privs_d.h +33 -0
  195. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_language.h +72 -0
  196. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_language_d.h +41 -0
  197. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_largeobject.h +53 -0
  198. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_largeobject_d.h +31 -0
  199. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_largeobject_metadata.h +51 -0
  200. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_largeobject_metadata_d.h +31 -0
  201. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_namespace.h +64 -0
  202. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_namespace_d.h +36 -0
  203. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_opclass.h +88 -0
  204. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_opclass_d.h +65 -0
  205. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_operator.h +107 -0
  206. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_operator_d.h +142 -0
  207. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_opfamily.h +63 -0
  208. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_opfamily_d.h +59 -0
  209. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_parameter_acl.h +60 -0
  210. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_parameter_acl_d.h +34 -0
  211. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_partitioned_table.h +74 -0
  212. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_partitioned_table_d.h +36 -0
  213. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_policy.h +58 -0
  214. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_policy_d.h +37 -0
  215. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_proc.h +220 -0
  216. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_proc_d.h +101 -0
  217. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication.h +168 -0
  218. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication_d.h +38 -0
  219. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication_namespace.h +47 -0
  220. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication_namespace_d.h +32 -0
  221. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication_rel.h +54 -0
  222. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_publication_rel_d.h +35 -0
  223. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_range.h +72 -0
  224. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_range_d.h +36 -0
  225. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_replication_origin.h +62 -0
  226. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_replication_origin_d.h +33 -0
  227. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_rewrite.h +59 -0
  228. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_rewrite_d.h +37 -0
  229. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_seclabel.h +45 -0
  230. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_seclabel_d.h +33 -0
  231. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_sequence.h +44 -0
  232. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_sequence_d.h +36 -0
  233. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shdepend.h +78 -0
  234. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shdepend_d.h +36 -0
  235. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shdescription.h +65 -0
  236. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shdescription_d.h +33 -0
  237. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shseclabel.h +46 -0
  238. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_shseclabel_d.h +35 -0
  239. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic.h +282 -0
  240. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic_d.h +195 -0
  241. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic_ext.h +88 -0
  242. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic_ext_d.h +45 -0
  243. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic_ext_data.h +60 -0
  244. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_statistic_ext_data_d.h +34 -0
  245. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_subscription.h +131 -0
  246. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_subscription_d.h +46 -0
  247. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_subscription_rel.h +94 -0
  248. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_subscription_rel_d.h +51 -0
  249. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_tablespace.h +55 -0
  250. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_tablespace_d.h +38 -0
  251. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_transform.h +48 -0
  252. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_transform_d.h +34 -0
  253. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_trigger.h +153 -0
  254. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_trigger_d.h +109 -0
  255. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_config.h +53 -0
  256. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_config_d.h +34 -0
  257. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_config_map.h +49 -0
  258. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_config_map_d.h +32 -0
  259. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_dict.h +59 -0
  260. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_dict_d.h +35 -0
  261. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_parser.h +60 -0
  262. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_parser_d.h +37 -0
  263. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_template.h +51 -0
  264. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_ts_template_d.h +34 -0
  265. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_type.h +411 -0
  266. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_type_d.h +324 -0
  267. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_user_mapping.h +55 -0
  268. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_user_mapping_d.h +33 -0
  269. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_catalog_version.h +53 -0
  270. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_catalog_version_d.h +32 -0
  271. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_invalidation_messages.h +55 -0
  272. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_invalidation_messages_d.h +33 -0
  273. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_logical_client_version.h +46 -0
  274. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_logical_client_version_d.h +31 -0
  275. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_migration.h +58 -0
  276. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_migration_d.h +32 -0
  277. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_profile.h +47 -0
  278. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_profile_d.h +34 -0
  279. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_role_profile.h +58 -0
  280. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_role_profile_d.h +35 -0
  281. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_tablegroup.h +50 -0
  282. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/pg_yb_tablegroup_d.h +35 -0
  283. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/schemapg.h +276 -0
  284. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/storage.h +50 -0
  285. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/storage_xlog.h +59 -0
  286. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/system_fk_info.h +253 -0
  287. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/toasting.h +30 -0
  288. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/yb_catalog_version.h +65 -0
  289. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/yb_logical_client_version.h +40 -0
  290. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/yb_oid_assignment.h +39 -0
  291. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/catalog/yb_type.h +68 -0
  292. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/alter.h +35 -0
  293. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/async.h +62 -0
  294. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/cluster.h +55 -0
  295. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/collationcmds.h +25 -0
  296. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/comment.h +45 -0
  297. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/conversioncmds.h +23 -0
  298. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/copy.h +120 -0
  299. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/copyfrom_internal.h +176 -0
  300. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/createas.h +34 -0
  301. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/dbcommands.h +36 -0
  302. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/dbcommands_xlog.h +60 -0
  303. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/defrem.h +169 -0
  304. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/discard.h +20 -0
  305. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/event_trigger.h +96 -0
  306. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/explain.h +159 -0
  307. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/extension.h +55 -0
  308. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/lockcmds.h +24 -0
  309. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/matview.h +34 -0
  310. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/policy.h +41 -0
  311. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/portalcmds.h +34 -0
  312. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/prepare.h +62 -0
  313. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/proclang.h +23 -0
  314. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/progress.h +173 -0
  315. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/publicationcmds.h +39 -0
  316. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/schemacmds.h +29 -0
  317. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/seclabel.h +34 -0
  318. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/sequence.h +70 -0
  319. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/subscriptioncmds.h +29 -0
  320. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/tablecmds.h +108 -0
  321. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/tablespace.h +82 -0
  322. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/trigger.h +323 -0
  323. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/typecmds.h +61 -0
  324. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/user.h +37 -0
  325. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/vacuum.h +340 -0
  326. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/variable.h +50 -0
  327. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/view.h +25 -0
  328. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/yb_cmds.h +168 -0
  329. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/yb_profile.h +51 -0
  330. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/commands/yb_tablegroup.h +45 -0
  331. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/archive.h +21 -0
  332. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/base64.h +19 -0
  333. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/checksum_helper.h +72 -0
  334. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/compression.h +45 -0
  335. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/config_info.h +21 -0
  336. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/connect.h +28 -0
  337. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/controldata_utils.h +19 -0
  338. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/cryptohash.h +39 -0
  339. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/fe_memutils.h +73 -0
  340. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/file_perm.h +56 -0
  341. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/file_utils.h +40 -0
  342. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/hashfn.h +104 -0
  343. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/hmac.h +30 -0
  344. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/int.h +441 -0
  345. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/int128.h +276 -0
  346. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/ip.h +31 -0
  347. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/jsonapi.h +169 -0
  348. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/keywords.h +29 -0
  349. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/kwlookup.h +44 -0
  350. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/link-canary.h +17 -0
  351. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/logging.h +158 -0
  352. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/md5.h +37 -0
  353. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/openssl.h +49 -0
  354. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/pg_lzcompress.h +93 -0
  355. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/pg_prng.h +60 -0
  356. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/pg_yb_common.h +160 -0
  357. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/pg_yb_param_status_flags.h +33 -0
  358. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/relpath.h +90 -0
  359. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/restricted_token.h +24 -0
  360. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/saslprep.h +30 -0
  361. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/scram-common.h +62 -0
  362. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/sha1.h +21 -0
  363. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/sha2.h +32 -0
  364. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/shortest_dec.h +63 -0
  365. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/string.h +42 -0
  366. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_combining_table.h +308 -0
  367. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_east_asian_fw_table.h +125 -0
  368. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_norm.h +39 -0
  369. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_norm_hashfunc.h +2956 -0
  370. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_norm_table.h +9042 -0
  371. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/unicode_normprops_table.h +7849 -0
  372. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/common/username.h +15 -0
  373. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/datatype/timestamp.h +236 -0
  374. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execAsync.h +25 -0
  375. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execExpr.h +792 -0
  376. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execParallel.h +51 -0
  377. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execPartition.h +134 -0
  378. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execdebug.h +130 -0
  379. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/execdesc.h +77 -0
  380. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/executor.h +718 -0
  381. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/functions.h +61 -0
  382. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/hashjoin.h +363 -0
  383. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/instrument.h +154 -0
  384. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeAgg.h +333 -0
  385. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeAppend.h +30 -0
  386. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeBitmapAnd.h +24 -0
  387. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeBitmapHeapscan.h +32 -0
  388. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeBitmapIndexscan.h +24 -0
  389. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeBitmapOr.h +24 -0
  390. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeCtescan.h +23 -0
  391. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeCustom.h +42 -0
  392. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeForeignscan.h +44 -0
  393. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeFunctionscan.h +23 -0
  394. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeGather.h +24 -0
  395. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeGatherMerge.h +26 -0
  396. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeGroup.h +23 -0
  397. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeHash.h +79 -0
  398. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeHashjoin.h +34 -0
  399. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeIncrementalSort.h +28 -0
  400. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeIndexonlyscan.h +36 -0
  401. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeIndexscan.h +47 -0
  402. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeLimit.h +23 -0
  403. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeLockRows.h +26 -0
  404. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeMaterial.h +25 -0
  405. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeMemoize.h +32 -0
  406. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeMergeAppend.h +23 -0
  407. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeMergejoin.h +23 -0
  408. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeModifyTable.h +33 -0
  409. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeNamedtuplestorescan.h +23 -0
  410. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeNestloop.h +23 -0
  411. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeProjectSet.h +23 -0
  412. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeRecursiveunion.h +23 -0
  413. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeResult.h +25 -0
  414. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSamplescan.h +23 -0
  415. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSeqscan.h +31 -0
  416. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSetOp.h +23 -0
  417. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSort.h +32 -0
  418. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSubplan.h +29 -0
  419. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeSubqueryscan.h +23 -0
  420. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeTableFuncscan.h +23 -0
  421. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeTidrangescan.h +24 -0
  422. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeTidscan.h +23 -0
  423. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeUnique.h +23 -0
  424. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeValuesscan.h +23 -0
  425. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeWindowAgg.h +23 -0
  426. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeWorktablescan.h +23 -0
  427. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeYbBatchedNestloop.h +33 -0
  428. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeYbBitmapIndexscan.h +24 -0
  429. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeYbBitmapTablescan.h +22 -0
  430. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/nodeYbSeqscan.h +45 -0
  431. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/spi.h +214 -0
  432. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/spi_priv.h +105 -0
  433. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/tablefunc.h +67 -0
  434. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/tqueue.h +32 -0
  435. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/tstoreReceiver.h +31 -0
  436. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/tuptable.h +515 -0
  437. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/ybExpr.h +64 -0
  438. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/ybFunction.h +41 -0
  439. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/ybModifyTable.h +281 -0
  440. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/executor/ybOptimizeModifyTable.h +40 -0
  441. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/archive.h +21 -0
  442. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/cancel.h +32 -0
  443. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/conditional.h +102 -0
  444. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/connect_utils.h +48 -0
  445. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/mbprint.h +29 -0
  446. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/option_utils.h +26 -0
  447. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/parallel_slot.h +77 -0
  448. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/print.h +220 -0
  449. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/psqlscan.h +90 -0
  450. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/psqlscan_int.h +157 -0
  451. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/query_utils.h +26 -0
  452. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/recovery_gen.h +28 -0
  453. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/simple_list.h +70 -0
  454. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fe_utils/string_utils.h +69 -0
  455. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/fmgr.h +788 -0
  456. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/foreign/fdwapi.h +294 -0
  457. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/foreign/foreign.h +84 -0
  458. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/funcapi.h +409 -0
  459. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/getaddrinfo.h +162 -0
  460. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/getopt_long.h +36 -0
  461. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/jit/SectionMemoryManager.h +226 -0
  462. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/jit/jit.h +105 -0
  463. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/jit/llvmjit.h +169 -0
  464. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/jit/llvmjit_backport.h +25 -0
  465. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/jit/llvmjit_emit.h +336 -0
  466. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/binaryheap.h +54 -0
  467. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/bipartite_match.h +46 -0
  468. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/bloomfilter.h +27 -0
  469. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/dshash.h +112 -0
  470. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/hyperloglog.h +68 -0
  471. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/ilist.h +746 -0
  472. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/integerset.h +24 -0
  473. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/knapsack.h +16 -0
  474. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/pairingheap.h +102 -0
  475. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/qunique.h +67 -0
  476. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/rbtree.h +79 -0
  477. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/simplehash.h +1187 -0
  478. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/sort_template.h +441 -0
  479. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/lib/stringinfo.h +161 -0
  480. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/auth.h +31 -0
  481. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/be-fsstubs.h +32 -0
  482. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/be-gssapi-common.h +30 -0
  483. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/crypt.h +53 -0
  484. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/hba.h +191 -0
  485. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/ifaddr.h +30 -0
  486. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/libpq-be.h +365 -0
  487. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/libpq-fs.h +24 -0
  488. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/libpq.h +147 -0
  489. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/pqcomm.h +194 -0
  490. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/pqformat.h +210 -0
  491. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/pqmq.h +24 -0
  492. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/pqsignal.h +42 -0
  493. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/sasl.h +136 -0
  494. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/scram.h +30 -0
  495. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/libpq/yb_pqcomm_extensions.h +24 -0
  496. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/mb/pg_wchar.h +703 -0
  497. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/mb/stringinfo_mb.h +24 -0
  498. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/miscadmin.h +558 -0
  499. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/bitmapset.h +122 -0
  500. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/execnodes.h +3130 -0
  501. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/extensible.h +162 -0
  502. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/lockoptions.h +61 -0
  503. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/makefuncs.h +109 -0
  504. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/memnodes.h +113 -0
  505. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/nodeFuncs.h +165 -0
  506. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/nodes.h +897 -0
  507. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/params.h +170 -0
  508. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/parsenodes.h +3955 -0
  509. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/pathnodes.h +2984 -0
  510. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/pg_list.h +621 -0
  511. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/plannodes.h +1681 -0
  512. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/primnodes.h +1608 -0
  513. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/print.h +34 -0
  514. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/readfuncs.h +40 -0
  515. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/replnodes.h +111 -0
  516. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/subscripting.h +167 -0
  517. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/supportnodes.h +302 -0
  518. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/tidbitmap.h +84 -0
  519. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/value.h +80 -0
  520. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/ybbitmatrix.h +54 -0
  521. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/nodes/ybtidbitmap.h +89 -0
  522. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/appendinfo.h +50 -0
  523. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/clauses.h +62 -0
  524. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/cost.h +309 -0
  525. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo.h +90 -0
  526. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_copy.h +30 -0
  527. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_gene.h +45 -0
  528. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_misc.h +34 -0
  529. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_mutation.h +30 -0
  530. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_pool.h +40 -0
  531. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_random.h +40 -0
  532. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_recombination.h +89 -0
  533. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/geqo_selection.h +33 -0
  534. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/inherit.h +29 -0
  535. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/joininfo.h +30 -0
  536. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/optimizer.h +206 -0
  537. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/orclauses.h +21 -0
  538. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/paramassign.h +34 -0
  539. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/pathnode.h +359 -0
  540. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/paths.h +292 -0
  541. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/placeholder.h +32 -0
  542. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/plancat.h +82 -0
  543. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/planmain.h +136 -0
  544. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/planner.h +70 -0
  545. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/prep.h +57 -0
  546. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/restrictinfo.h +62 -0
  547. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/subselect.h +40 -0
  548. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/tlist.h +56 -0
  549. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/yb_merge_scan.h +52 -0
  550. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/optimizer/ybplan.h +59 -0
  551. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/analyze.h +64 -0
  552. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/gramparse.h +75 -0
  553. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/kwlist.h +502 -0
  554. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_agg.h +63 -0
  555. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_clause.h +54 -0
  556. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_coerce.h +103 -0
  557. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_collate.h +27 -0
  558. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_cte.h +24 -0
  559. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_enr.h +22 -0
  560. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_expr.h +25 -0
  561. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_func.h +74 -0
  562. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_merge.h +21 -0
  563. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_node.h +339 -0
  564. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_oper.h +65 -0
  565. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_param.h +25 -0
  566. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_relation.h +124 -0
  567. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_target.h +58 -0
  568. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_type.h +60 -0
  569. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parse_utilcmd.h +57 -0
  570. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parser.h +68 -0
  571. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/parsetree.h +61 -0
  572. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/scanner.h +150 -0
  573. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/parser/scansup.h +27 -0
  574. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/partitioning/partbounds.h +146 -0
  575. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/partitioning/partdefs.h +26 -0
  576. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/partitioning/partdesc.h +53 -0
  577. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/partitioning/partprune.h +85 -0
  578. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pg_config_manual.h +410 -0
  579. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pg_getopt.h +56 -0
  580. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pg_trace.h +17 -0
  581. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pg_yb_utils.h +1645 -0
  582. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pgstat.h +900 -0
  583. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pgtar.h +45 -0
  584. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/pgtime.h +94 -0
  585. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/aix.h +14 -0
  586. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/arch-arm.h +32 -0
  587. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/arch-hppa.h +17 -0
  588. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/arch-ia64.h +29 -0
  589. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/arch-ppc.h +254 -0
  590. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/arch-x86.h +252 -0
  591. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/fallback.h +170 -0
  592. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/generic-acc.h +106 -0
  593. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/generic-gcc.h +286 -0
  594. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/generic-msvc.h +101 -0
  595. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/generic-sunpro.h +106 -0
  596. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics/generic.h +401 -0
  597. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/atomics.h +524 -0
  598. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/cygwin.h +23 -0
  599. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/darwin.h +8 -0
  600. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/freebsd.h +10 -0
  601. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/hpux.h +3 -0
  602. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/linux.h +22 -0
  603. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/netbsd.h +1 -0
  604. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/openbsd.h +1 -0
  605. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/pg_bitutils.h +302 -0
  606. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/pg_bswap.h +161 -0
  607. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/pg_crc32c.h +101 -0
  608. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/pg_iovec.h +54 -0
  609. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/pg_pthread.h +41 -0
  610. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/solaris.h +26 -0
  611. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/arpa/inet.h +3 -0
  612. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/dlfcn.h +1 -0
  613. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/grp.h +1 -0
  614. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/netdb.h +1 -0
  615. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/netinet/in.h +3 -0
  616. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/pwd.h +3 -0
  617. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/sys/socket.h +33 -0
  618. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32/sys/wait.h +3 -0
  619. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32.h +81 -0
  620. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/dirent.h +34 -0
  621. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/sys/file.h +1 -0
  622. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/sys/param.h +1 -0
  623. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/sys/time.h +1 -0
  624. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/unistd.h +9 -0
  625. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_msvc/utime.h +3 -0
  626. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32_port.h +572 -0
  627. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port/win32ntdll.h +32 -0
  628. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/port.h +589 -0
  629. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/portability/instr_time.h +256 -0
  630. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/portability/mem.h +48 -0
  631. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postgres.h +819 -0
  632. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postgres_ext.h +74 -0
  633. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postgres_fe.h +29 -0
  634. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/autovacuum.h +83 -0
  635. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/auxprocess.h +20 -0
  636. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/bgworker.h +176 -0
  637. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/bgworker_internals.h +64 -0
  638. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/bgwriter.h +45 -0
  639. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/fork_process.h +17 -0
  640. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/interrupt.h +32 -0
  641. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/pgarch.h +73 -0
  642. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/postmaster.h +86 -0
  643. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/startup.h +41 -0
  644. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/syslogger.h +103 -0
  645. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/postmaster/walwriter.h +21 -0
  646. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/regex/regcustom.h +104 -0
  647. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/regex/regerrs.h +87 -0
  648. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/regex/regex.h +269 -0
  649. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/regex/regexport.h +61 -0
  650. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/regex/regguts.h +552 -0
  651. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/decode.h +34 -0
  652. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/logical.h +178 -0
  653. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/logicallauncher.h +29 -0
  654. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/logicalproto.h +256 -0
  655. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/logicalrelation.h +50 -0
  656. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/logicalworker.h +19 -0
  657. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/message.h +41 -0
  658. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/origin.h +73 -0
  659. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/output_plugin.h +271 -0
  660. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/pgoutput.h +34 -0
  661. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/reorderbuffer.h +706 -0
  662. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/slot.h +290 -0
  663. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/snapbuild.h +101 -0
  664. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/syncrep.h +118 -0
  665. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/walreceiver.h +472 -0
  666. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/walsender.h +92 -0
  667. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/walsender_private.h +131 -0
  668. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/worker_internal.h +112 -0
  669. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/yb_decode.h +33 -0
  670. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/yb_virtual_wal_client.h +46 -0
  671. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/replication/yb_virtual_wal_client_typedefs.h +31 -0
  672. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/prs2lock.h +46 -0
  673. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteDefine.h +44 -0
  674. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteHandler.h +35 -0
  675. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteManip.h +87 -0
  676. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteRemove.h +21 -0
  677. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteSearchCycle.h +21 -0
  678. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rewriteSupport.h +26 -0
  679. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rewrite/rowsecurity.h +49 -0
  680. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/rusagestub.h +34 -0
  681. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/header.h +67 -0
  682. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/api.h +32 -0
  683. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/header.h +61 -0
  684. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h +15 -0
  685. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h +15 -0
  686. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h +15 -0
  687. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h +15 -0
  688. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_english.h +15 -0
  689. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h +15 -0
  690. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_french.h +15 -0
  691. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_german.h +15 -0
  692. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h +15 -0
  693. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h +15 -0
  694. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h +15 -0
  695. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h +15 -0
  696. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h +15 -0
  697. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h +15 -0
  698. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h +15 -0
  699. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h +15 -0
  700. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h +15 -0
  701. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h +15 -0
  702. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_KOI8_R_russian.h +15 -0
  703. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_arabic.h +15 -0
  704. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_armenian.h +15 -0
  705. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_basque.h +15 -0
  706. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_catalan.h +15 -0
  707. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_danish.h +15 -0
  708. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_dutch.h +15 -0
  709. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_english.h +15 -0
  710. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_finnish.h +15 -0
  711. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_french.h +15 -0
  712. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_german.h +15 -0
  713. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_greek.h +15 -0
  714. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_hindi.h +15 -0
  715. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_hungarian.h +15 -0
  716. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_indonesian.h +15 -0
  717. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_irish.h +15 -0
  718. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_italian.h +15 -0
  719. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h +15 -0
  720. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_nepali.h +15 -0
  721. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_norwegian.h +15 -0
  722. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_porter.h +15 -0
  723. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_portuguese.h +15 -0
  724. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_romanian.h +15 -0
  725. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_russian.h +15 -0
  726. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_serbian.h +15 -0
  727. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_spanish.h +15 -0
  728. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_swedish.h +15 -0
  729. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_tamil.h +15 -0
  730. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_turkish.h +15 -0
  731. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/snowball/libstemmer/stem_UTF_8_yiddish.h +15 -0
  732. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/statistics/extended_stats_internal.h +130 -0
  733. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/statistics/stat_utils.h +41 -0
  734. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/statistics/statistics.h +130 -0
  735. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/backendid.h +37 -0
  736. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/barrier.h +46 -0
  737. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/block.h +115 -0
  738. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/buf.h +46 -0
  739. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/buf_internals.h +345 -0
  740. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/buffile.h +57 -0
  741. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/bufmgr.h +297 -0
  742. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/bufpage.h +457 -0
  743. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/checksum.h +24 -0
  744. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/checksum_impl.h +215 -0
  745. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/condition_variable.h +86 -0
  746. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/copydir.h +19 -0
  747. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/dsm.h +64 -0
  748. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/dsm_impl.h +76 -0
  749. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/fd.h +198 -0
  750. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/fileset.h +40 -0
  751. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/freespace.h +39 -0
  752. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/fsm_internals.h +72 -0
  753. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/indexfsm.h +26 -0
  754. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/ipc.h +87 -0
  755. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/item.h +19 -0
  756. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/itemid.h +184 -0
  757. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/itemptr.h +208 -0
  758. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/large_object.h +100 -0
  759. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/latch.h +189 -0
  760. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/lmgr.h +119 -0
  761. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/lock.h +621 -0
  762. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/lockdefs.h +61 -0
  763. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/lwlock.h +220 -0
  764. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/lwlocknames.h +50 -0
  765. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/md.h +52 -0
  766. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/off.h +57 -0
  767. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/pg_sema.h +61 -0
  768. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/pg_shmem.h +95 -0
  769. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/pmsignal.h +105 -0
  770. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/predicate.h +87 -0
  771. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/predicate_internals.h +494 -0
  772. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/proc.h +530 -0
  773. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/procarray.h +101 -0
  774. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/proclist.h +219 -0
  775. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/proclist_types.h +51 -0
  776. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/procsignal.h +81 -0
  777. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/reinit.h +28 -0
  778. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/relfilenode.h +99 -0
  779. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/s_lock.h +1110 -0
  780. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/sharedfileset.h +37 -0
  781. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/shm_mq.h +86 -0
  782. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/shm_toc.h +58 -0
  783. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/shmem.h +81 -0
  784. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/sinval.h +219 -0
  785. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/sinvaladt.h +48 -0
  786. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/smgr.h +114 -0
  787. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/spin.h +96 -0
  788. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/standby.h +106 -0
  789. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/standbydefs.h +74 -0
  790. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/storage/sync.h +66 -0
  791. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/cmdtag.h +58 -0
  792. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/cmdtaglist.h +225 -0
  793. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/deparse_utility.h +108 -0
  794. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/dest.h +149 -0
  795. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/fastpath.h +20 -0
  796. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/pquery.h +60 -0
  797. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/tcopprot.h +108 -0
  798. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tcop/utility.h +112 -0
  799. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/dicts/regis.h +49 -0
  800. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/dicts/spell.h +247 -0
  801. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/ts_cache.h +98 -0
  802. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/ts_locale.h +63 -0
  803. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/ts_public.h +159 -0
  804. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/ts_type.h +242 -0
  805. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/tsearch/ts_utils.h +266 -0
  806. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/acl.h +340 -0
  807. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/aclchk_internal.h +45 -0
  808. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/array.h +472 -0
  809. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/arrayaccess.h +118 -0
  810. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/ascii.h +68 -0
  811. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/attoptcache.h +28 -0
  812. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/backend_progress.h +44 -0
  813. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/backend_status.h +379 -0
  814. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/builtins.h +130 -0
  815. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/bytea.h +28 -0
  816. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/cash.h +25 -0
  817. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/catcache.h +268 -0
  818. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/combocid.h +28 -0
  819. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/date.h +90 -0
  820. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/datetime.h +344 -0
  821. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/datum.h +76 -0
  822. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/dsa.h +123 -0
  823. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/dynahash.h +20 -0
  824. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/elog.h +517 -0
  825. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/errcodes.h +363 -0
  826. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/evtcache.h +37 -0
  827. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/expandeddatum.h +159 -0
  828. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/expandedrecord.h +231 -0
  829. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/float.h +356 -0
  830. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/fmgroids.h +3337 -0
  831. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/fmgrprotos.h +2900 -0
  832. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/fmgrtab.h +53 -0
  833. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/formatting.h +35 -0
  834. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/freepage.h +99 -0
  835. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/geo_decls.h +221 -0
  836. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/guc.h +517 -0
  837. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/guc_tables.h +312 -0
  838. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/help_config.h +17 -0
  839. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/hsearch.h +153 -0
  840. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/index_selfuncs.h +74 -0
  841. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/inet.h +149 -0
  842. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/inval.h +74 -0
  843. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/json.h +24 -0
  844. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/jsonb.h +415 -0
  845. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/jsonfuncs.h +66 -0
  846. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/jsonpath.h +251 -0
  847. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/logtape.h +77 -0
  848. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/lsyscache.h +211 -0
  849. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/memdebug.h +82 -0
  850. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/memutils.h +306 -0
  851. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/multirangetypes.h +135 -0
  852. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/numeric.h +99 -0
  853. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/old_snapshot.h +75 -0
  854. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/palloc.h +222 -0
  855. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/partcache.h +105 -0
  856. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pg_crc.h +107 -0
  857. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pg_locale.h +129 -0
  858. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pg_lsn.h +29 -0
  859. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pg_rusage.h +37 -0
  860. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pgstat_internal.h +803 -0
  861. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/pidfile.h +56 -0
  862. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/plancache.h +259 -0
  863. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/portal.h +252 -0
  864. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/ps_status.h +25 -0
  865. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/queryenvironment.h +74 -0
  866. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/queryjumble.h +88 -0
  867. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/rangetypes.h +151 -0
  868. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/regproc.h +39 -0
  869. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/rel.h +760 -0
  870. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/relcache.h +180 -0
  871. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/relfilenodemap.h +18 -0
  872. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/relmapper.h +72 -0
  873. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/relptr.h +93 -0
  874. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/reltrigger.h +81 -0
  875. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/resowner.h +86 -0
  876. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/resowner_private.h +123 -0
  877. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/rls.h +50 -0
  878. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/ruleutils.h +59 -0
  879. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/sampling.h +64 -0
  880. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/selfuncs.h +250 -0
  881. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/sharedtuplestore.h +61 -0
  882. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/snapmgr.h +189 -0
  883. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/snapshot.h +231 -0
  884. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/sortsupport.h +391 -0
  885. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/spccache.h +24 -0
  886. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/syscache.h +319 -0
  887. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/timeout.h +95 -0
  888. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/timestamp.h +120 -0
  889. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/tuplesort.h +291 -0
  890. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/tuplestore.h +91 -0
  891. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/typcache.h +209 -0
  892. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/tzparser.h +39 -0
  893. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/uuid.h +31 -0
  894. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/varbit.h +74 -0
  895. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/varlena.h +41 -0
  896. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/wait_event.h +351 -0
  897. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/xid8.h +22 -0
  898. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/xml.h +84 -0
  899. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_inheritscache.h +49 -0
  900. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_jumblefuncs.h +35 -0
  901. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_like_support.h +37 -0
  902. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_queryjumble.h +73 -0
  903. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_rowtypes.h +24 -0
  904. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/utils/yb_tuplecache.h +66 -0
  905. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/windowapi.h +64 -0
  906. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_ash.h +92 -0
  907. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_file_utils.h +38 -0
  908. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_overflow_utils.h +110 -0
  909. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_qpm.h +45 -0
  910. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_query_diagnostics.h +237 -0
  911. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_tcmalloc_utils.h +41 -0
  912. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_terminated_queries.h +35 -0
  913. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/yb_ysql_conn_mgr_helper.h +154 -0
  914. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/ybctid.h +55 -0
  915. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/ybgate/ybgate_api-test.h +78 -0
  916. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/ybgate/ybgate_api.h +283 -0
  917. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/ybgate/ybgate_cpp_util.h +78 -0
  918. data/ext/yb_ddl_parser/vendor/yugabyte-postgres/src/include/ybgate/ybgate_status.h +136 -0
  919. data/ext/yb_ddl_parser/yb_ddl_parser_ext.c +1740 -0
  920. data/ext/yb_ddl_parser/yb_parser_stubs.c +459 -0
  921. data/lib/yb_ddl_parser/ast.rb +276 -0
  922. data/lib/yb_ddl_parser/version.rb +6 -0
  923. data/lib/yb_ddl_parser.rb +32 -0
  924. data/test/test_helper.rb +5 -0
  925. data/test/yb_ddl_parser_test.rb +353 -0
  926. metadata +990 -0
@@ -0,0 +1,1293 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * nbtree.h
4
+ * header file for postgres btree access method implementation.
5
+ *
6
+ *
7
+ * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8
+ * Portions Copyright (c) 1994, Regents of the University of California
9
+ *
10
+ * src/include/access/nbtree.h
11
+ *
12
+ *-------------------------------------------------------------------------
13
+ */
14
+ #ifndef NBTREE_H
15
+ #define NBTREE_H
16
+
17
+ #include "access/amapi.h"
18
+ #include "access/itup.h"
19
+ #include "access/sdir.h"
20
+ #include "access/tableam.h"
21
+ #include "access/xlogreader.h"
22
+ #include "catalog/pg_am_d.h"
23
+ #include "catalog/pg_index.h"
24
+ #include "lib/stringinfo.h"
25
+ #include "storage/bufmgr.h"
26
+ #include "storage/shm_toc.h"
27
+
28
+ /* There's room for a 16-bit vacuum cycle ID in BTPageOpaqueData */
29
+ typedef uint16 BTCycleId;
30
+
31
+ /*
32
+ * BTPageOpaqueData -- At the end of every page, we store a pointer
33
+ * to both siblings in the tree. This is used to do forward/backward
34
+ * index scans. The next-page link is also critical for recovery when
35
+ * a search has navigated to the wrong page due to concurrent page splits
36
+ * or deletions; see src/backend/access/nbtree/README for more info.
37
+ *
38
+ * In addition, we store the page's btree level (counting upwards from
39
+ * zero at a leaf page) as well as some flag bits indicating the page type
40
+ * and status. If the page is deleted, a BTDeletedPageData struct is stored
41
+ * in the page's tuple area, while a standard BTPageOpaqueData struct is
42
+ * stored in the page special area.
43
+ *
44
+ * We also store a "vacuum cycle ID". When a page is split while VACUUM is
45
+ * processing the index, a nonzero value associated with the VACUUM run is
46
+ * stored into both halves of the split page. (If VACUUM is not running,
47
+ * both pages receive zero cycleids.) This allows VACUUM to detect whether
48
+ * a page was split since it started, with a small probability of false match
49
+ * if the page was last split some exact multiple of MAX_BT_CYCLE_ID VACUUMs
50
+ * ago. Also, during a split, the BTP_SPLIT_END flag is cleared in the left
51
+ * (original) page, and set in the right page, but only if the next page
52
+ * to its right has a different cycleid.
53
+ *
54
+ * NOTE: the BTP_LEAF flag bit is redundant since level==0 could be tested
55
+ * instead.
56
+ *
57
+ * NOTE: the btpo_level field used to be a union type in order to allow
58
+ * deleted pages to store a 32-bit safexid in the same field. We now store
59
+ * 64-bit/full safexid values using BTDeletedPageData instead.
60
+ */
61
+
62
+ typedef struct BTPageOpaqueData
63
+ {
64
+ BlockNumber btpo_prev; /* left sibling, or P_NONE if leftmost */
65
+ BlockNumber btpo_next; /* right sibling, or P_NONE if rightmost */
66
+ uint32 btpo_level; /* tree level --- zero for leaf pages */
67
+ uint16 btpo_flags; /* flag bits, see below */
68
+ BTCycleId btpo_cycleid; /* vacuum cycle ID of latest split */
69
+ } BTPageOpaqueData;
70
+
71
+ typedef BTPageOpaqueData *BTPageOpaque;
72
+
73
+ #define BTPageGetOpaque(page) ((BTPageOpaque) PageGetSpecialPointer(page))
74
+
75
+ /* Bits defined in btpo_flags */
76
+ #define BTP_LEAF (1 << 0) /* leaf page, i.e. not internal page */
77
+ #define BTP_ROOT (1 << 1) /* root page (has no parent) */
78
+ #define BTP_DELETED (1 << 2) /* page has been deleted from tree */
79
+ #define BTP_META (1 << 3) /* meta-page */
80
+ #define BTP_HALF_DEAD (1 << 4) /* empty, but still in tree */
81
+ #define BTP_SPLIT_END (1 << 5) /* rightmost page of split group */
82
+ #define BTP_HAS_GARBAGE (1 << 6) /* page has LP_DEAD tuples (deprecated) */
83
+ #define BTP_INCOMPLETE_SPLIT (1 << 7) /* right sibling's downlink is missing */
84
+ #define BTP_HAS_FULLXID (1 << 8) /* contains BTDeletedPageData */
85
+
86
+ /*
87
+ * The max allowed value of a cycle ID is a bit less than 64K. This is
88
+ * for convenience of pg_filedump and similar utilities: we want to use
89
+ * the last 2 bytes of special space as an index type indicator, and
90
+ * restricting cycle ID lets btree use that space for vacuum cycle IDs
91
+ * while still allowing index type to be identified.
92
+ */
93
+ #define MAX_BT_CYCLE_ID 0xFF7F
94
+
95
+
96
+ /*
97
+ * The Meta page is always the first page in the btree index.
98
+ * Its primary purpose is to point to the location of the btree root page.
99
+ * We also point to the "fast" root, which is the current effective root;
100
+ * see README for discussion.
101
+ */
102
+
103
+ typedef struct BTMetaPageData
104
+ {
105
+ uint32 btm_magic; /* should contain BTREE_MAGIC */
106
+ uint32 btm_version; /* nbtree version (always <= BTREE_VERSION) */
107
+ BlockNumber btm_root; /* current root location */
108
+ uint32 btm_level; /* tree level of the root page */
109
+ BlockNumber btm_fastroot; /* current "fast" root location */
110
+ uint32 btm_fastlevel; /* tree level of the "fast" root page */
111
+ /* remaining fields only valid when btm_version >= BTREE_NOVAC_VERSION */
112
+
113
+ /* number of deleted, non-recyclable pages during last cleanup */
114
+ uint32 btm_last_cleanup_num_delpages;
115
+ /* number of heap tuples during last cleanup (deprecated) */
116
+ float8 btm_last_cleanup_num_heap_tuples;
117
+
118
+ bool btm_allequalimage; /* are all columns "equalimage"? */
119
+ } BTMetaPageData;
120
+
121
+ #define BTPageGetMeta(p) \
122
+ ((BTMetaPageData *) PageGetContents(p))
123
+
124
+ /*
125
+ * The current Btree version is 4. That's what you'll get when you create
126
+ * a new index.
127
+ *
128
+ * Btree version 3 was used in PostgreSQL v11. It is mostly the same as
129
+ * version 4, but heap TIDs were not part of the keyspace. Index tuples
130
+ * with duplicate keys could be stored in any order. We continue to
131
+ * support reading and writing Btree versions 2 and 3, so that they don't
132
+ * need to be immediately re-indexed at pg_upgrade. In order to get the
133
+ * new heapkeyspace semantics, however, a REINDEX is needed.
134
+ *
135
+ * Deduplication is safe to use when the btm_allequalimage field is set to
136
+ * true. It's safe to read the btm_allequalimage field on version 3, but
137
+ * only version 4 indexes make use of deduplication. Even version 4
138
+ * indexes created on PostgreSQL v12 will need a REINDEX to make use of
139
+ * deduplication, though, since there is no other way to set
140
+ * btm_allequalimage to true (pg_upgrade hasn't been taught to set the
141
+ * metapage field).
142
+ *
143
+ * Btree version 2 is mostly the same as version 3. There are two new
144
+ * fields in the metapage that were introduced in version 3. A version 2
145
+ * metapage will be automatically upgraded to version 3 on the first
146
+ * insert to it. INCLUDE indexes cannot use version 2.
147
+ */
148
+ #define BTREE_METAPAGE 0 /* first page is meta */
149
+ #define BTREE_MAGIC 0x053162 /* magic number in metapage */
150
+ #define BTREE_VERSION 4 /* current version number */
151
+ #define BTREE_MIN_VERSION 2 /* minimum supported version */
152
+ #define BTREE_NOVAC_VERSION 3 /* version with all meta fields set */
153
+
154
+ /*
155
+ * Maximum size of a btree index entry, including its tuple header.
156
+ *
157
+ * We actually need to be able to fit three items on every page,
158
+ * so restrict any one item to 1/3 the per-page available space.
159
+ *
160
+ * There are rare cases where _bt_truncate() will need to enlarge
161
+ * a heap index tuple to make space for a tiebreaker heap TID
162
+ * attribute, which we account for here.
163
+ */
164
+ #define BTMaxItemSize(page) \
165
+ MAXALIGN_DOWN((PageGetPageSize(page) - \
166
+ MAXALIGN(SizeOfPageHeaderData + \
167
+ 3*sizeof(ItemIdData) + \
168
+ 3*sizeof(ItemPointerData)) - \
169
+ MAXALIGN(sizeof(BTPageOpaqueData))) / 3)
170
+ #define BTMaxItemSizeNoHeapTid(page) \
171
+ MAXALIGN_DOWN((PageGetPageSize(page) - \
172
+ MAXALIGN(SizeOfPageHeaderData + 3*sizeof(ItemIdData)) - \
173
+ MAXALIGN(sizeof(BTPageOpaqueData))) / 3)
174
+
175
+ /*
176
+ * MaxTIDsPerBTreePage is an upper bound on the number of heap TIDs tuples
177
+ * that may be stored on a btree leaf page. It is used to size the
178
+ * per-page temporary buffers.
179
+ *
180
+ * Note: we don't bother considering per-tuple overheads here to keep
181
+ * things simple (value is based on how many elements a single array of
182
+ * heap TIDs must have to fill the space between the page header and
183
+ * special area). The value is slightly higher (i.e. more conservative)
184
+ * than necessary as a result, which is considered acceptable.
185
+ */
186
+ #define MaxTIDsPerBTreePage \
187
+ (int) ((BLCKSZ - SizeOfPageHeaderData - sizeof(BTPageOpaqueData)) / \
188
+ sizeof(ItemPointerData))
189
+
190
+ /*
191
+ * The leaf-page fillfactor defaults to 90% but is user-adjustable.
192
+ * For pages above the leaf level, we use a fixed 70% fillfactor.
193
+ * The fillfactor is applied during index build and when splitting
194
+ * a rightmost page; when splitting non-rightmost pages we try to
195
+ * divide the data equally. When splitting a page that's entirely
196
+ * filled with a single value (duplicates), the effective leaf-page
197
+ * fillfactor is 96%, regardless of whether the page is a rightmost
198
+ * page.
199
+ */
200
+ #define BTREE_MIN_FILLFACTOR 10
201
+ #define BTREE_DEFAULT_FILLFACTOR 90
202
+ #define BTREE_NONLEAF_FILLFACTOR 70
203
+ #define BTREE_SINGLEVAL_FILLFACTOR 96
204
+
205
+ /*
206
+ * In general, the btree code tries to localize its knowledge about
207
+ * page layout to a couple of routines. However, we need a special
208
+ * value to indicate "no page number" in those places where we expect
209
+ * page numbers. We can use zero for this because we never need to
210
+ * make a pointer to the metadata page.
211
+ */
212
+
213
+ #define P_NONE 0
214
+
215
+ /*
216
+ * Macros to test whether a page is leftmost or rightmost on its tree level,
217
+ * as well as other state info kept in the opaque data.
218
+ */
219
+ #define P_LEFTMOST(opaque) ((opaque)->btpo_prev == P_NONE)
220
+ #define P_RIGHTMOST(opaque) ((opaque)->btpo_next == P_NONE)
221
+ #define P_ISLEAF(opaque) (((opaque)->btpo_flags & BTP_LEAF) != 0)
222
+ #define P_ISROOT(opaque) (((opaque)->btpo_flags & BTP_ROOT) != 0)
223
+ #define P_ISDELETED(opaque) (((opaque)->btpo_flags & BTP_DELETED) != 0)
224
+ #define P_ISMETA(opaque) (((opaque)->btpo_flags & BTP_META) != 0)
225
+ #define P_ISHALFDEAD(opaque) (((opaque)->btpo_flags & BTP_HALF_DEAD) != 0)
226
+ #define P_IGNORE(opaque) (((opaque)->btpo_flags & (BTP_DELETED|BTP_HALF_DEAD)) != 0)
227
+ #define P_HAS_GARBAGE(opaque) (((opaque)->btpo_flags & BTP_HAS_GARBAGE) != 0)
228
+ #define P_INCOMPLETE_SPLIT(opaque) (((opaque)->btpo_flags & BTP_INCOMPLETE_SPLIT) != 0)
229
+ #define P_HAS_FULLXID(opaque) (((opaque)->btpo_flags & BTP_HAS_FULLXID) != 0)
230
+
231
+ /*
232
+ * BTDeletedPageData is the page contents of a deleted page
233
+ */
234
+ typedef struct BTDeletedPageData
235
+ {
236
+ FullTransactionId safexid; /* See BTPageIsRecyclable() */
237
+ } BTDeletedPageData;
238
+
239
+ static inline void
240
+ BTPageSetDeleted(Page page, FullTransactionId safexid)
241
+ {
242
+ BTPageOpaque opaque;
243
+ PageHeader header;
244
+ BTDeletedPageData *contents;
245
+
246
+ opaque = BTPageGetOpaque(page);
247
+ header = ((PageHeader) page);
248
+
249
+ opaque->btpo_flags &= ~BTP_HALF_DEAD;
250
+ opaque->btpo_flags |= BTP_DELETED | BTP_HAS_FULLXID;
251
+ header->pd_lower = MAXALIGN(SizeOfPageHeaderData) +
252
+ sizeof(BTDeletedPageData);
253
+ header->pd_upper = header->pd_special;
254
+
255
+ /* Set safexid in deleted page */
256
+ contents = ((BTDeletedPageData *) PageGetContents(page));
257
+ contents->safexid = safexid;
258
+ }
259
+
260
+ static inline FullTransactionId
261
+ BTPageGetDeleteXid(Page page)
262
+ {
263
+ BTPageOpaque opaque;
264
+ BTDeletedPageData *contents;
265
+
266
+ /* We only expect to be called with a deleted page */
267
+ Assert(!PageIsNew(page));
268
+ opaque = BTPageGetOpaque(page);
269
+ Assert(P_ISDELETED(opaque));
270
+
271
+ /* pg_upgrade'd deleted page -- must be safe to delete now */
272
+ if (!P_HAS_FULLXID(opaque))
273
+ return FirstNormalFullTransactionId;
274
+
275
+ /* Get safexid from deleted page */
276
+ contents = ((BTDeletedPageData *) PageGetContents(page));
277
+ return contents->safexid;
278
+ }
279
+
280
+ /*
281
+ * Is an existing page recyclable?
282
+ *
283
+ * This exists to centralize the policy on which deleted pages are now safe to
284
+ * re-use. However, _bt_pendingfsm_finalize() duplicates some of the same
285
+ * logic because it doesn't work directly with pages -- keep the two in sync.
286
+ *
287
+ * Note: PageIsNew() pages are always safe to recycle, but we can't deal with
288
+ * them here (caller is responsible for that case themselves). Caller might
289
+ * well need special handling for new pages anyway.
290
+ */
291
+ static inline bool
292
+ BTPageIsRecyclable(Page page)
293
+ {
294
+ BTPageOpaque opaque;
295
+
296
+ Assert(!PageIsNew(page));
297
+
298
+ /* Recycling okay iff page is deleted and safexid is old enough */
299
+ opaque = BTPageGetOpaque(page);
300
+ if (P_ISDELETED(opaque))
301
+ {
302
+ /*
303
+ * The page was deleted, but when? If it was just deleted, a scan
304
+ * might have seen the downlink to it, and will read the page later.
305
+ * As long as that can happen, we must keep the deleted page around as
306
+ * a tombstone.
307
+ *
308
+ * For that check if the deletion XID could still be visible to
309
+ * anyone. If not, then no scan that's still in progress could have
310
+ * seen its downlink, and we can recycle it.
311
+ *
312
+ * XXX: If we had the heap relation we could be more aggressive about
313
+ * recycling deleted pages in non-catalog relations. For now we just
314
+ * pass NULL. That is at least simple and consistent.
315
+ */
316
+ return GlobalVisCheckRemovableFullXid(NULL, BTPageGetDeleteXid(page));
317
+ }
318
+
319
+ return false;
320
+ }
321
+
322
+ /*
323
+ * BTVacState and BTPendingFSM are private nbtree.c state used during VACUUM.
324
+ * They are exported for use by page deletion related code in nbtpage.c.
325
+ */
326
+ typedef struct BTPendingFSM
327
+ {
328
+ BlockNumber target; /* Page deleted by current VACUUM */
329
+ FullTransactionId safexid; /* Page's BTDeletedPageData.safexid */
330
+ } BTPendingFSM;
331
+
332
+ typedef struct BTVacState
333
+ {
334
+ IndexVacuumInfo *info;
335
+ IndexBulkDeleteResult *stats;
336
+ IndexBulkDeleteCallback callback;
337
+ void *callback_state;
338
+ BTCycleId cycleid;
339
+ MemoryContext pagedelcontext;
340
+
341
+ /*
342
+ * _bt_pendingfsm_finalize() state
343
+ */
344
+ int bufsize; /* pendingpages space (in # elements) */
345
+ int maxbufsize; /* max bufsize that respects work_mem */
346
+ BTPendingFSM *pendingpages; /* One entry per newly deleted page */
347
+ int npendingpages; /* current # valid pendingpages */
348
+ } BTVacState;
349
+
350
+ /*
351
+ * Lehman and Yao's algorithm requires a ``high key'' on every non-rightmost
352
+ * page. The high key is not a tuple that is used to visit the heap. It is
353
+ * a pivot tuple (see "Notes on B-Tree tuple format" below for definition).
354
+ * The high key on a page is required to be greater than or equal to any
355
+ * other key that appears on the page. If we find ourselves trying to
356
+ * insert a key that is strictly > high key, we know we need to move right
357
+ * (this should only happen if the page was split since we examined the
358
+ * parent page).
359
+ *
360
+ * Our insertion algorithm guarantees that we can use the initial least key
361
+ * on our right sibling as the high key. Once a page is created, its high
362
+ * key changes only if the page is split.
363
+ *
364
+ * On a non-rightmost page, the high key lives in item 1 and data items
365
+ * start in item 2. Rightmost pages have no high key, so we store data
366
+ * items beginning in item 1.
367
+ */
368
+
369
+ #define P_HIKEY ((OffsetNumber) 1)
370
+ #define P_FIRSTKEY ((OffsetNumber) 2)
371
+ #define P_FIRSTDATAKEY(opaque) (P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY)
372
+
373
+ /*
374
+ * Notes on B-Tree tuple format, and key and non-key attributes:
375
+ *
376
+ * INCLUDE B-Tree indexes have non-key attributes. These are extra
377
+ * attributes that may be returned by index-only scans, but do not influence
378
+ * the order of items in the index (formally, non-key attributes are not
379
+ * considered to be part of the key space). Non-key attributes are only
380
+ * present in leaf index tuples whose item pointers actually point to heap
381
+ * tuples (non-pivot tuples). _bt_check_natts() enforces the rules
382
+ * described here.
383
+ *
384
+ * Non-pivot tuple format (plain/non-posting variant):
385
+ *
386
+ * t_tid | t_info | key values | INCLUDE columns, if any
387
+ *
388
+ * t_tid points to the heap TID, which is a tiebreaker key column as of
389
+ * BTREE_VERSION 4.
390
+ *
391
+ * Non-pivot tuples complement pivot tuples, which only have key columns.
392
+ * The sole purpose of pivot tuples is to represent how the key space is
393
+ * separated. In general, any B-Tree index that has more than one level
394
+ * (i.e. any index that does not just consist of a metapage and a single
395
+ * leaf root page) must have some number of pivot tuples, since pivot
396
+ * tuples are used for traversing the tree. Suffix truncation can omit
397
+ * trailing key columns when a new pivot is formed, which makes minus
398
+ * infinity their logical value. Since BTREE_VERSION 4 indexes treat heap
399
+ * TID as a trailing key column that ensures that all index tuples are
400
+ * physically unique, it is necessary to represent heap TID as a trailing
401
+ * key column in pivot tuples, though very often this can be truncated
402
+ * away, just like any other key column. (Actually, the heap TID is
403
+ * omitted rather than truncated, since its representation is different to
404
+ * the non-pivot representation.)
405
+ *
406
+ * Pivot tuple format:
407
+ *
408
+ * t_tid | t_info | key values | [heap TID]
409
+ *
410
+ * We store the number of columns present inside pivot tuples by abusing
411
+ * their t_tid offset field, since pivot tuples never need to store a real
412
+ * offset (pivot tuples generally store a downlink in t_tid, though). The
413
+ * offset field only stores the number of columns/attributes when the
414
+ * INDEX_ALT_TID_MASK bit is set, which doesn't count the trailing heap
415
+ * TID column sometimes stored in pivot tuples -- that's represented by
416
+ * the presence of BT_PIVOT_HEAP_TID_ATTR. The INDEX_ALT_TID_MASK bit in
417
+ * t_info is always set on BTREE_VERSION 4 pivot tuples, since
418
+ * BTreeTupleIsPivot() must work reliably on heapkeyspace versions.
419
+ *
420
+ * In version 2 or version 3 (!heapkeyspace) indexes, INDEX_ALT_TID_MASK
421
+ * might not be set in pivot tuples. BTreeTupleIsPivot() won't work
422
+ * reliably as a result. The number of columns stored is implicitly the
423
+ * same as the number of columns in the index, just like any non-pivot
424
+ * tuple. (The number of columns stored should not vary, since suffix
425
+ * truncation of key columns is unsafe within any !heapkeyspace index.)
426
+ *
427
+ * The 12 least significant bits from t_tid's offset number are used to
428
+ * represent the number of key columns within a pivot tuple. This leaves 4
429
+ * status bits (BT_STATUS_OFFSET_MASK bits), which are shared by all tuples
430
+ * that have the INDEX_ALT_TID_MASK bit set (set in t_info) to store basic
431
+ * tuple metadata. BTreeTupleIsPivot() and BTreeTupleIsPosting() use the
432
+ * BT_STATUS_OFFSET_MASK bits.
433
+ *
434
+ * Sometimes non-pivot tuples also use a representation that repurposes
435
+ * t_tid to store metadata rather than a TID. PostgreSQL v13 introduced a
436
+ * new non-pivot tuple format to support deduplication: posting list
437
+ * tuples. Deduplication merges together multiple equal non-pivot tuples
438
+ * into a logically equivalent, space efficient representation. A posting
439
+ * list is an array of ItemPointerData elements. Non-pivot tuples are
440
+ * merged together to form posting list tuples lazily, at the point where
441
+ * we'd otherwise have to split a leaf page.
442
+ *
443
+ * Posting tuple format (alternative non-pivot tuple representation):
444
+ *
445
+ * t_tid | t_info | key values | posting list (TID array)
446
+ *
447
+ * Posting list tuples are recognized as such by having the
448
+ * INDEX_ALT_TID_MASK status bit set in t_info and the BT_IS_POSTING status
449
+ * bit set in t_tid's offset number. These flags redefine the content of
450
+ * the posting tuple's t_tid to store the location of the posting list
451
+ * (instead of a block number), as well as the total number of heap TIDs
452
+ * present in the tuple (instead of a real offset number).
453
+ *
454
+ * The 12 least significant bits from t_tid's offset number are used to
455
+ * represent the number of heap TIDs present in the tuple, leaving 4 status
456
+ * bits (the BT_STATUS_OFFSET_MASK bits). Like any non-pivot tuple, the
457
+ * number of columns stored is always implicitly the total number in the
458
+ * index (in practice there can never be non-key columns stored, since
459
+ * deduplication is not supported with INCLUDE indexes).
460
+ */
461
+ #define INDEX_ALT_TID_MASK INDEX_AM_RESERVED_BIT
462
+
463
+ /* Item pointer offset bit masks */
464
+ #define BT_OFFSET_MASK 0x0FFF
465
+ #define BT_STATUS_OFFSET_MASK 0xF000
466
+ /* BT_STATUS_OFFSET_MASK status bits */
467
+ #define BT_PIVOT_HEAP_TID_ATTR 0x1000
468
+ #define BT_IS_POSTING 0x2000
469
+
470
+ /*
471
+ * Note: BTreeTupleIsPivot() can have false negatives (but not false
472
+ * positives) when used with !heapkeyspace indexes
473
+ */
474
+ static inline bool
475
+ BTreeTupleIsPivot(IndexTuple itup)
476
+ {
477
+ if ((itup->t_info & INDEX_ALT_TID_MASK) == 0)
478
+ return false;
479
+ /* absence of BT_IS_POSTING in offset number indicates pivot tuple */
480
+ if ((ItemPointerGetOffsetNumberNoCheck(&itup->t_tid) & BT_IS_POSTING) != 0)
481
+ return false;
482
+
483
+ return true;
484
+ }
485
+
486
+ static inline bool
487
+ BTreeTupleIsPosting(IndexTuple itup)
488
+ {
489
+ if ((itup->t_info & INDEX_ALT_TID_MASK) == 0)
490
+ return false;
491
+ /* presence of BT_IS_POSTING in offset number indicates posting tuple */
492
+ if ((ItemPointerGetOffsetNumberNoCheck(&itup->t_tid) & BT_IS_POSTING) == 0)
493
+ return false;
494
+
495
+ return true;
496
+ }
497
+
498
+ static inline void
499
+ BTreeTupleSetPosting(IndexTuple itup, uint16 nhtids, int postingoffset)
500
+ {
501
+ Assert(nhtids > 1);
502
+ Assert((nhtids & BT_STATUS_OFFSET_MASK) == 0);
503
+ Assert((size_t) postingoffset == MAXALIGN(postingoffset));
504
+ Assert(postingoffset < INDEX_SIZE_MASK);
505
+ Assert(!BTreeTupleIsPivot(itup));
506
+
507
+ itup->t_info |= INDEX_ALT_TID_MASK;
508
+ ItemPointerSetOffsetNumber(&itup->t_tid, (nhtids | BT_IS_POSTING));
509
+ ItemPointerSetBlockNumber(&itup->t_tid, postingoffset);
510
+ }
511
+
512
+ static inline uint16
513
+ BTreeTupleGetNPosting(IndexTuple posting)
514
+ {
515
+ OffsetNumber existing;
516
+
517
+ Assert(BTreeTupleIsPosting(posting));
518
+
519
+ existing = ItemPointerGetOffsetNumberNoCheck(&posting->t_tid);
520
+ return (existing & BT_OFFSET_MASK);
521
+ }
522
+
523
+ static inline uint32
524
+ BTreeTupleGetPostingOffset(IndexTuple posting)
525
+ {
526
+ Assert(BTreeTupleIsPosting(posting));
527
+
528
+ return ItemPointerGetBlockNumberNoCheck(&posting->t_tid);
529
+ }
530
+
531
+ static inline ItemPointer
532
+ BTreeTupleGetPosting(IndexTuple posting)
533
+ {
534
+ return (ItemPointer) ((char *) posting +
535
+ BTreeTupleGetPostingOffset(posting));
536
+ }
537
+
538
+ static inline ItemPointer
539
+ BTreeTupleGetPostingN(IndexTuple posting, int n)
540
+ {
541
+ return BTreeTupleGetPosting(posting) + n;
542
+ }
543
+
544
+ /*
545
+ * Get/set downlink block number in pivot tuple.
546
+ *
547
+ * Note: Cannot assert that tuple is a pivot tuple. If we did so then
548
+ * !heapkeyspace indexes would exhibit false positive assertion failures.
549
+ */
550
+ static inline BlockNumber
551
+ BTreeTupleGetDownLink(IndexTuple pivot)
552
+ {
553
+ return ItemPointerGetBlockNumberNoCheck(&pivot->t_tid);
554
+ }
555
+
556
+ static inline void
557
+ BTreeTupleSetDownLink(IndexTuple pivot, BlockNumber blkno)
558
+ {
559
+ ItemPointerSetBlockNumber(&pivot->t_tid, blkno);
560
+ }
561
+
562
+ /*
563
+ * Get number of attributes within tuple.
564
+ *
565
+ * Note that this does not include an implicit tiebreaker heap TID
566
+ * attribute, if any. Note also that the number of key attributes must be
567
+ * explicitly represented in all heapkeyspace pivot tuples.
568
+ *
569
+ * Note: This is defined as a macro rather than an inline function to
570
+ * avoid including rel.h.
571
+ */
572
+ #define BTreeTupleGetNAtts(itup, rel) \
573
+ ( \
574
+ (BTreeTupleIsPivot(itup)) ? \
575
+ ( \
576
+ ItemPointerGetOffsetNumberNoCheck(&(itup)->t_tid) & BT_OFFSET_MASK \
577
+ ) \
578
+ : \
579
+ IndexRelationGetNumberOfAttributes(rel) \
580
+ )
581
+
582
+ /*
583
+ * Set number of key attributes in tuple.
584
+ *
585
+ * The heap TID tiebreaker attribute bit may also be set here, indicating that
586
+ * a heap TID value will be stored at the end of the tuple (i.e. using the
587
+ * special pivot tuple representation).
588
+ */
589
+ static inline void
590
+ BTreeTupleSetNAtts(IndexTuple itup, uint16 nkeyatts, bool heaptid)
591
+ {
592
+ Assert(nkeyatts <= INDEX_MAX_KEYS);
593
+ Assert((nkeyatts & BT_STATUS_OFFSET_MASK) == 0);
594
+ Assert(!heaptid || nkeyatts > 0);
595
+ Assert(!BTreeTupleIsPivot(itup) || nkeyatts == 0);
596
+
597
+ itup->t_info |= INDEX_ALT_TID_MASK;
598
+
599
+ if (heaptid)
600
+ nkeyatts |= BT_PIVOT_HEAP_TID_ATTR;
601
+
602
+ /* BT_IS_POSTING bit is deliberately unset here */
603
+ ItemPointerSetOffsetNumber(&itup->t_tid, nkeyatts);
604
+ Assert(BTreeTupleIsPivot(itup));
605
+ }
606
+
607
+ /*
608
+ * Get/set leaf page's "top parent" link from its high key. Used during page
609
+ * deletion.
610
+ *
611
+ * Note: Cannot assert that tuple is a pivot tuple. If we did so then
612
+ * !heapkeyspace indexes would exhibit false positive assertion failures.
613
+ */
614
+ static inline BlockNumber
615
+ BTreeTupleGetTopParent(IndexTuple leafhikey)
616
+ {
617
+ return ItemPointerGetBlockNumberNoCheck(&leafhikey->t_tid);
618
+ }
619
+
620
+ static inline void
621
+ BTreeTupleSetTopParent(IndexTuple leafhikey, BlockNumber blkno)
622
+ {
623
+ ItemPointerSetBlockNumber(&leafhikey->t_tid, blkno);
624
+ BTreeTupleSetNAtts(leafhikey, 0, false);
625
+ }
626
+
627
+ /*
628
+ * Get tiebreaker heap TID attribute, if any.
629
+ *
630
+ * This returns the first/lowest heap TID in the case of a posting list tuple.
631
+ */
632
+ static inline ItemPointer
633
+ BTreeTupleGetHeapTID(IndexTuple itup)
634
+ {
635
+ if (BTreeTupleIsPivot(itup))
636
+ {
637
+ /* Pivot tuple heap TID representation? */
638
+ if ((ItemPointerGetOffsetNumberNoCheck(&itup->t_tid) &
639
+ BT_PIVOT_HEAP_TID_ATTR) != 0)
640
+ return (ItemPointer) ((char *) itup + IndexTupleSize(itup) -
641
+ sizeof(ItemPointerData));
642
+
643
+ /* Heap TID attribute was truncated */
644
+ return NULL;
645
+ }
646
+ else if (BTreeTupleIsPosting(itup))
647
+ return BTreeTupleGetPosting(itup);
648
+
649
+ return &itup->t_tid;
650
+ }
651
+
652
+ /*
653
+ * Get maximum heap TID attribute, which could be the only TID in the case of
654
+ * a non-pivot tuple that does not have a posting list tuple.
655
+ *
656
+ * Works with non-pivot tuples only.
657
+ */
658
+ static inline ItemPointer
659
+ BTreeTupleGetMaxHeapTID(IndexTuple itup)
660
+ {
661
+ Assert(!BTreeTupleIsPivot(itup));
662
+
663
+ if (BTreeTupleIsPosting(itup))
664
+ {
665
+ uint16 nposting = BTreeTupleGetNPosting(itup);
666
+
667
+ return BTreeTupleGetPostingN(itup, nposting - 1);
668
+ }
669
+
670
+ return &itup->t_tid;
671
+ }
672
+
673
+ /*
674
+ * Operator strategy numbers for B-tree have been moved to access/stratnum.h,
675
+ * because many places need to use them in ScanKeyInit() calls.
676
+ *
677
+ * The strategy numbers are chosen so that we can commute them by
678
+ * subtraction, thus:
679
+ */
680
+ #define BTCommuteStrategyNumber(strat) (BTMaxStrategyNumber + 1 - (strat))
681
+
682
+ /*
683
+ * When a new operator class is declared, we require that the user
684
+ * supply us with an amproc procedure (BTORDER_PROC) for determining
685
+ * whether, for two keys a and b, a < b, a = b, or a > b. This routine
686
+ * must return < 0, 0, > 0, respectively, in these three cases.
687
+ *
688
+ * To facilitate accelerated sorting, an operator class may choose to
689
+ * offer a second procedure (BTSORTSUPPORT_PROC). For full details, see
690
+ * src/include/utils/sortsupport.h.
691
+ *
692
+ * To support window frames defined by "RANGE offset PRECEDING/FOLLOWING",
693
+ * an operator class may choose to offer a third amproc procedure
694
+ * (BTINRANGE_PROC), independently of whether it offers sortsupport.
695
+ * For full details, see doc/src/sgml/btree.sgml.
696
+ *
697
+ * To facilitate B-Tree deduplication, an operator class may choose to
698
+ * offer a forth amproc procedure (BTEQUALIMAGE_PROC). For full details,
699
+ * see doc/src/sgml/btree.sgml.
700
+ */
701
+
702
+ #define BTORDER_PROC 1
703
+ #define BTSORTSUPPORT_PROC 2
704
+ #define BTINRANGE_PROC 3
705
+ #define BTEQUALIMAGE_PROC 4
706
+ #define BTOPTIONS_PROC 5
707
+ #define BTNProcs 5
708
+
709
+ /*
710
+ * We need to be able to tell the difference between read and write
711
+ * requests for pages, in order to do locking correctly.
712
+ */
713
+
714
+ #define BT_READ BUFFER_LOCK_SHARE
715
+ #define BT_WRITE BUFFER_LOCK_EXCLUSIVE
716
+
717
+ /*
718
+ * BTStackData -- As we descend a tree, we push the location of pivot
719
+ * tuples whose downlink we are about to follow onto a private stack. If
720
+ * we split a leaf, we use this stack to walk back up the tree and insert
721
+ * data into its parent page at the correct location. We also have to
722
+ * recursively insert into the grandparent page if and when the parent page
723
+ * splits. Our private stack can become stale due to concurrent page
724
+ * splits and page deletions, but it should never give us an irredeemably
725
+ * bad picture.
726
+ */
727
+ typedef struct BTStackData
728
+ {
729
+ BlockNumber bts_blkno;
730
+ OffsetNumber bts_offset;
731
+ struct BTStackData *bts_parent;
732
+ } BTStackData;
733
+
734
+ typedef BTStackData *BTStack;
735
+
736
+ /*
737
+ * BTScanInsertData is the btree-private state needed to find an initial
738
+ * position for an indexscan, or to insert new tuples -- an "insertion
739
+ * scankey" (not to be confused with a search scankey). It's used to descend
740
+ * a B-Tree using _bt_search.
741
+ *
742
+ * heapkeyspace indicates if we expect all keys in the index to be physically
743
+ * unique because heap TID is used as a tiebreaker attribute, and if index may
744
+ * have truncated key attributes in pivot tuples. This is actually a property
745
+ * of the index relation itself (not an indexscan). heapkeyspace indexes are
746
+ * indexes whose version is >= version 4. It's convenient to keep this close
747
+ * by, rather than accessing the metapage repeatedly.
748
+ *
749
+ * allequalimage is set to indicate that deduplication is safe for the index.
750
+ * This is also a property of the index relation rather than an indexscan.
751
+ *
752
+ * anynullkeys indicates if any of the keys had NULL value when scankey was
753
+ * built from index tuple (note that already-truncated tuple key attributes
754
+ * set NULL as a placeholder key value, which also affects value of
755
+ * anynullkeys). This is a convenience for unique index non-pivot tuple
756
+ * insertion, which usually temporarily unsets scantid, but shouldn't iff
757
+ * anynullkeys is true. Value generally matches non-pivot tuple's HasNulls
758
+ * bit, but may not when inserting into an INCLUDE index (tuple header value
759
+ * is affected by the NULL-ness of both key and non-key attributes).
760
+ *
761
+ * When nextkey is false (the usual case), _bt_search and _bt_binsrch will
762
+ * locate the first item >= scankey. When nextkey is true, they will locate
763
+ * the first item > scan key.
764
+ *
765
+ * pivotsearch is set to true by callers that want to re-find a leaf page
766
+ * using a scankey built from a leaf page's high key. Most callers set this
767
+ * to false.
768
+ *
769
+ * scantid is the heap TID that is used as a final tiebreaker attribute. It
770
+ * is set to NULL when index scan doesn't need to find a position for a
771
+ * specific physical tuple. Must be set when inserting new tuples into
772
+ * heapkeyspace indexes, since every tuple in the tree unambiguously belongs
773
+ * in one exact position (it's never set with !heapkeyspace indexes, though).
774
+ * Despite the representational difference, nbtree search code considers
775
+ * scantid to be just another insertion scankey attribute.
776
+ *
777
+ * scankeys is an array of scan key entries for attributes that are compared
778
+ * before scantid (user-visible attributes). keysz is the size of the array.
779
+ * During insertion, there must be a scan key for every attribute, but when
780
+ * starting a regular index scan some can be omitted. The array is used as a
781
+ * flexible array member, though it's sized in a way that makes it possible to
782
+ * use stack allocations. See nbtree/README for full details.
783
+ */
784
+ typedef struct BTScanInsertData
785
+ {
786
+ bool heapkeyspace;
787
+ bool allequalimage;
788
+ bool anynullkeys;
789
+ bool nextkey;
790
+ bool pivotsearch;
791
+ ItemPointer scantid; /* tiebreaker for scankeys */
792
+ int keysz; /* Size of scankeys array */
793
+ ScanKeyData scankeys[INDEX_MAX_KEYS]; /* Must appear last */
794
+ } BTScanInsertData;
795
+
796
+ typedef BTScanInsertData *BTScanInsert;
797
+
798
+ /*
799
+ * BTInsertStateData is a working area used during insertion.
800
+ *
801
+ * This is filled in after descending the tree to the first leaf page the new
802
+ * tuple might belong on. Tracks the current position while performing
803
+ * uniqueness check, before we have determined which exact page to insert
804
+ * to.
805
+ *
806
+ * (This should be private to nbtinsert.c, but it's also used by
807
+ * _bt_binsrch_insert)
808
+ */
809
+ typedef struct BTInsertStateData
810
+ {
811
+ IndexTuple itup; /* Item we're inserting */
812
+ Size itemsz; /* Size of itup -- should be MAXALIGN()'d */
813
+ BTScanInsert itup_key; /* Insertion scankey */
814
+
815
+ /* Buffer containing leaf page we're likely to insert itup on */
816
+ Buffer buf;
817
+
818
+ /*
819
+ * Cache of bounds within the current buffer. Only used for insertions
820
+ * where _bt_check_unique is called. See _bt_binsrch_insert and
821
+ * _bt_findinsertloc for details.
822
+ */
823
+ bool bounds_valid;
824
+ OffsetNumber low;
825
+ OffsetNumber stricthigh;
826
+
827
+ /*
828
+ * if _bt_binsrch_insert found the location inside existing posting list,
829
+ * save the position inside the list. -1 sentinel value indicates overlap
830
+ * with an existing posting list tuple that has its LP_DEAD bit set.
831
+ */
832
+ int postingoff;
833
+ } BTInsertStateData;
834
+
835
+ typedef BTInsertStateData *BTInsertState;
836
+
837
+ /*
838
+ * State used to representing an individual pending tuple during
839
+ * deduplication.
840
+ */
841
+ typedef struct BTDedupInterval
842
+ {
843
+ OffsetNumber baseoff;
844
+ uint16 nitems;
845
+ } BTDedupInterval;
846
+
847
+ /*
848
+ * BTDedupStateData is a working area used during deduplication.
849
+ *
850
+ * The status info fields track the state of a whole-page deduplication pass.
851
+ * State about the current pending posting list is also tracked.
852
+ *
853
+ * A pending posting list is comprised of a contiguous group of equal items
854
+ * from the page, starting from page offset number 'baseoff'. This is the
855
+ * offset number of the "base" tuple for new posting list. 'nitems' is the
856
+ * current total number of existing items from the page that will be merged to
857
+ * make a new posting list tuple, including the base tuple item. (Existing
858
+ * items may themselves be posting list tuples, or regular non-pivot tuples.)
859
+ *
860
+ * The total size of the existing tuples to be freed when pending posting list
861
+ * is processed gets tracked by 'phystupsize'. This information allows
862
+ * deduplication to calculate the space saving for each new posting list
863
+ * tuple, and for the entire pass over the page as a whole.
864
+ */
865
+ typedef struct BTDedupStateData
866
+ {
867
+ /* Deduplication status info for entire pass over page */
868
+ bool deduplicate; /* Still deduplicating page? */
869
+ int nmaxitems; /* Number of max-sized tuples so far */
870
+ Size maxpostingsize; /* Limit on size of final tuple */
871
+
872
+ /* Metadata about base tuple of current pending posting list */
873
+ IndexTuple base; /* Use to form new posting list */
874
+ OffsetNumber baseoff; /* page offset of base */
875
+ Size basetupsize; /* base size without original posting list */
876
+
877
+ /* Other metadata about pending posting list */
878
+ ItemPointer htids; /* Heap TIDs in pending posting list */
879
+ int nhtids; /* Number of heap TIDs in htids array */
880
+ int nitems; /* Number of existing tuples/line pointers */
881
+ Size phystupsize; /* Includes line pointer overhead */
882
+
883
+ /*
884
+ * Array of tuples to go on new version of the page. Contains one entry
885
+ * for each group of consecutive items. Note that existing tuples that
886
+ * will not become posting list tuples do not appear in the array (they
887
+ * are implicitly unchanged by deduplication pass).
888
+ */
889
+ int nintervals; /* current number of intervals in array */
890
+ BTDedupInterval intervals[MaxIndexTuplesPerPage];
891
+ } BTDedupStateData;
892
+
893
+ typedef BTDedupStateData *BTDedupState;
894
+
895
+ /*
896
+ * BTVacuumPostingData is state that represents how to VACUUM (or delete) a
897
+ * posting list tuple when some (though not all) of its TIDs are to be
898
+ * deleted.
899
+ *
900
+ * Convention is that itup field is the original posting list tuple on input,
901
+ * and palloc()'d final tuple used to overwrite existing tuple on output.
902
+ */
903
+ typedef struct BTVacuumPostingData
904
+ {
905
+ /* Tuple that will be/was updated */
906
+ IndexTuple itup;
907
+ OffsetNumber updatedoffset;
908
+
909
+ /* State needed to describe final itup in WAL */
910
+ uint16 ndeletedtids;
911
+ uint16 deletetids[FLEXIBLE_ARRAY_MEMBER];
912
+ } BTVacuumPostingData;
913
+
914
+ typedef BTVacuumPostingData *BTVacuumPosting;
915
+
916
+ /*
917
+ * BTScanOpaqueData is the btree-private state needed for an indexscan.
918
+ * This consists of preprocessed scan keys (see _bt_preprocess_keys() for
919
+ * details of the preprocessing), information about the current location
920
+ * of the scan, and information about the marked location, if any. (We use
921
+ * BTScanPosData to represent the data needed for each of current and marked
922
+ * locations.) In addition we can remember some known-killed index entries
923
+ * that must be marked before we can move off the current page.
924
+ *
925
+ * Index scans work a page at a time: we pin and read-lock the page, identify
926
+ * all the matching items on the page and save them in BTScanPosData, then
927
+ * release the read-lock while returning the items to the caller for
928
+ * processing. This approach minimizes lock/unlock traffic. Note that we
929
+ * keep the pin on the index page until the caller is done with all the items
930
+ * (this is needed for VACUUM synchronization, see nbtree/README). When we
931
+ * are ready to step to the next page, if the caller has told us any of the
932
+ * items were killed, we re-lock the page to mark them killed, then unlock.
933
+ * Finally we drop the pin and step to the next page in the appropriate
934
+ * direction.
935
+ *
936
+ * If we are doing an index-only scan, we save the entire IndexTuple for each
937
+ * matched item, otherwise only its heap TID and offset. The IndexTuples go
938
+ * into a separate workspace array; each BTScanPosItem stores its tuple's
939
+ * offset within that array. Posting list tuples store a "base" tuple once,
940
+ * allowing the same key to be returned for each TID in the posting list
941
+ * tuple.
942
+ */
943
+
944
+ typedef struct BTScanPosItem /* what we remember about each match */
945
+ {
946
+ ItemPointerData heapTid; /* TID of referenced heap item */
947
+ OffsetNumber indexOffset; /* index item's location within page */
948
+ LocationIndex tupleOffset; /* IndexTuple's offset in workspace, if any */
949
+ } BTScanPosItem;
950
+
951
+ typedef struct BTScanPosData
952
+ {
953
+ Buffer buf; /* if valid, the buffer is pinned */
954
+
955
+ XLogRecPtr lsn; /* pos in the WAL stream when page was read */
956
+ BlockNumber currPage; /* page referenced by items array */
957
+ BlockNumber nextPage; /* page's right link when we scanned it */
958
+
959
+ /*
960
+ * moreLeft and moreRight track whether we think there may be matching
961
+ * index entries to the left and right of the current page, respectively.
962
+ * We can clear the appropriate one of these flags when _bt_checkkeys()
963
+ * returns continuescan = false.
964
+ */
965
+ bool moreLeft;
966
+ bool moreRight;
967
+
968
+ /*
969
+ * If we are doing an index-only scan, nextTupleOffset is the first free
970
+ * location in the associated tuple storage workspace.
971
+ */
972
+ int nextTupleOffset;
973
+
974
+ /*
975
+ * The items array is always ordered in index order (ie, increasing
976
+ * indexoffset). When scanning backwards it is convenient to fill the
977
+ * array back-to-front, so we start at the last slot and fill downwards.
978
+ * Hence we need both a first-valid-entry and a last-valid-entry counter.
979
+ * itemIndex is a cursor showing which entry was last returned to caller.
980
+ */
981
+ int firstItem; /* first valid index in items[] */
982
+ int lastItem; /* last valid index in items[] */
983
+ int itemIndex; /* current index in items[] */
984
+
985
+ BTScanPosItem items[MaxTIDsPerBTreePage]; /* MUST BE LAST */
986
+ } BTScanPosData;
987
+
988
+ typedef BTScanPosData *BTScanPos;
989
+
990
+ #define BTScanPosIsPinned(scanpos) \
991
+ ( \
992
+ AssertMacro(BlockNumberIsValid((scanpos).currPage) || \
993
+ !BufferIsValid((scanpos).buf)), \
994
+ BufferIsValid((scanpos).buf) \
995
+ )
996
+ #define BTScanPosUnpin(scanpos) \
997
+ do { \
998
+ ReleaseBuffer((scanpos).buf); \
999
+ (scanpos).buf = InvalidBuffer; \
1000
+ } while (0)
1001
+ #define BTScanPosUnpinIfPinned(scanpos) \
1002
+ do { \
1003
+ if (BTScanPosIsPinned(scanpos)) \
1004
+ BTScanPosUnpin(scanpos); \
1005
+ } while (0)
1006
+
1007
+ #define BTScanPosIsValid(scanpos) \
1008
+ ( \
1009
+ AssertMacro(BlockNumberIsValid((scanpos).currPage) || \
1010
+ !BufferIsValid((scanpos).buf)), \
1011
+ BlockNumberIsValid((scanpos).currPage) \
1012
+ )
1013
+ #define BTScanPosInvalidate(scanpos) \
1014
+ do { \
1015
+ (scanpos).currPage = InvalidBlockNumber; \
1016
+ (scanpos).nextPage = InvalidBlockNumber; \
1017
+ (scanpos).buf = InvalidBuffer; \
1018
+ (scanpos).lsn = InvalidXLogRecPtr; \
1019
+ (scanpos).nextTupleOffset = 0; \
1020
+ } while (0)
1021
+
1022
+ /* We need one of these for each equality-type SK_SEARCHARRAY scan key */
1023
+ typedef struct BTArrayKeyInfo
1024
+ {
1025
+ int scan_key; /* index of associated key in arrayKeyData */
1026
+ int cur_elem; /* index of current element in elem_values */
1027
+ int mark_elem; /* index of marked element in elem_values */
1028
+ int num_elems; /* number of elems in current array value */
1029
+ Datum *elem_values; /* array of num_elems Datums */
1030
+ } BTArrayKeyInfo;
1031
+
1032
+ typedef struct BTScanOpaqueData
1033
+ {
1034
+ /* all fields (except arraysStarted) are set by _bt_preprocess_keys(): */
1035
+ bool qual_ok; /* false if qual can never be satisfied */
1036
+ bool arraysStarted; /* Started array keys, but have yet to "reach
1037
+ * past the end" of all arrays? */
1038
+ int numberOfKeys; /* number of preprocessed scan keys */
1039
+ ScanKey keyData; /* array of preprocessed scan keys */
1040
+
1041
+ /* workspace for SK_SEARCHARRAY support */
1042
+ ScanKey arrayKeyData; /* modified copy of scan->keyData */
1043
+ int numArrayKeys; /* number of equality-type array keys (-1 if
1044
+ * there are any unsatisfiable array keys) */
1045
+ int arrayKeyCount; /* count indicating number of array scan keys
1046
+ * processed */
1047
+ BTArrayKeyInfo *arrayKeys; /* info about each equality-type array key */
1048
+ MemoryContext arrayContext; /* scan-lifespan context for array data */
1049
+
1050
+ /* info about killed items if any (killedItems is NULL if never used) */
1051
+ int *killedItems; /* currPos.items indexes of killed items */
1052
+ int numKilled; /* number of currently stored items */
1053
+
1054
+ /*
1055
+ * If we are doing an index-only scan, these are the tuple storage
1056
+ * workspaces for the currPos and markPos respectively. Each is of size
1057
+ * BLCKSZ, so it can hold as much as a full page's worth of tuples.
1058
+ */
1059
+ char *currTuples; /* tuple storage for currPos */
1060
+ char *markTuples; /* tuple storage for markPos */
1061
+
1062
+ /*
1063
+ * If the marked position is on the same page as current position, we
1064
+ * don't use markPos, but just keep the marked itemIndex in markItemIndex
1065
+ * (all the rest of currPos is valid for the mark position). Hence, to
1066
+ * determine if there is a mark, first look at markItemIndex, then at
1067
+ * markPos.
1068
+ */
1069
+ int markItemIndex; /* itemIndex, or -1 if not valid */
1070
+
1071
+ /* keep these last in struct for efficiency */
1072
+ BTScanPosData currPos; /* current position data */
1073
+ BTScanPosData markPos; /* marked position, if any */
1074
+ } BTScanOpaqueData;
1075
+
1076
+ typedef BTScanOpaqueData *BTScanOpaque;
1077
+
1078
+ /*
1079
+ * We use some private sk_flags bits in preprocessed scan keys. We're allowed
1080
+ * to use bits 16-31 (see skey.h). The uppermost bits are copied from the
1081
+ * index's indoption[] array entry for the index attribute.
1082
+ */
1083
+ #define SK_BT_REQFWD 0x00010000 /* required to continue forward scan */
1084
+ #define SK_BT_REQBKWD 0x00020000 /* required to continue backward scan */
1085
+ #define SK_BT_INDOPTION_SHIFT 24 /* must clear the above bits */
1086
+ #define SK_BT_DESC (INDOPTION_DESC << SK_BT_INDOPTION_SHIFT)
1087
+ #define SK_BT_NULLS_FIRST (INDOPTION_NULLS_FIRST << SK_BT_INDOPTION_SHIFT)
1088
+
1089
+ typedef struct BTOptions
1090
+ {
1091
+ int32 varlena_header_; /* varlena header (do not touch directly!) */
1092
+ int fillfactor; /* page fill factor in percent (0..100) */
1093
+ float8 vacuum_cleanup_index_scale_factor; /* deprecated */
1094
+ bool deduplicate_items; /* Try to deduplicate items? */
1095
+ } BTOptions;
1096
+
1097
+ #define BTGetFillFactor(relation) \
1098
+ (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
1099
+ relation->rd_rel->relam == BTREE_AM_OID), \
1100
+ (relation)->rd_options ? \
1101
+ ((BTOptions *) (relation)->rd_options)->fillfactor : \
1102
+ BTREE_DEFAULT_FILLFACTOR)
1103
+ #define BTGetTargetPageFreeSpace(relation) \
1104
+ (BLCKSZ * (100 - BTGetFillFactor(relation)) / 100)
1105
+ #define BTGetDeduplicateItems(relation) \
1106
+ (AssertMacro(relation->rd_rel->relkind == RELKIND_INDEX && \
1107
+ relation->rd_rel->relam == BTREE_AM_OID), \
1108
+ ((relation)->rd_options ? \
1109
+ ((BTOptions *) (relation)->rd_options)->deduplicate_items : true))
1110
+
1111
+ /*
1112
+ * Constant definition for progress reporting. Phase numbers must match
1113
+ * btbuildphasename.
1114
+ */
1115
+ /* PROGRESS_CREATEIDX_SUBPHASE_INITIALIZE is 1 (see progress.h) */
1116
+ #define PROGRESS_BTREE_PHASE_INDEXBUILD_TABLESCAN 2
1117
+ #define PROGRESS_BTREE_PHASE_PERFORMSORT_1 3
1118
+ #define PROGRESS_BTREE_PHASE_PERFORMSORT_2 4
1119
+ #define PROGRESS_BTREE_PHASE_LEAF_LOAD 5
1120
+
1121
+ /*
1122
+ * external entry points for btree, in nbtree.c
1123
+ */
1124
+ extern void btbuildempty(Relation index);
1125
+ extern bool btinsert(Relation rel, Datum *values, bool *isnull,
1126
+ ItemPointer ht_ctid, Relation heapRel,
1127
+ IndexUniqueCheck checkUnique,
1128
+ bool indexUnchanged,
1129
+ struct IndexInfo *indexInfo);
1130
+ extern IndexScanDesc btbeginscan(Relation rel, int nkeys, int norderbys);
1131
+ extern Size btestimateparallelscan(void);
1132
+ extern void btinitparallelscan(void *target);
1133
+ extern bool btgettuple(IndexScanDesc scan, ScanDirection dir);
1134
+ extern int64 btgetbitmap(IndexScanDesc scan, TIDBitmap *tbm);
1135
+ extern void btrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys,
1136
+ ScanKey orderbys, int norderbys);
1137
+ extern void btparallelrescan(IndexScanDesc scan);
1138
+ extern void btendscan(IndexScanDesc scan);
1139
+ extern void btmarkpos(IndexScanDesc scan);
1140
+ extern void btrestrpos(IndexScanDesc scan);
1141
+ extern IndexBulkDeleteResult *btbulkdelete(IndexVacuumInfo *info,
1142
+ IndexBulkDeleteResult *stats,
1143
+ IndexBulkDeleteCallback callback,
1144
+ void *callback_state);
1145
+ extern IndexBulkDeleteResult *btvacuumcleanup(IndexVacuumInfo *info,
1146
+ IndexBulkDeleteResult *stats);
1147
+ extern bool btcanreturn(Relation index, int attno);
1148
+
1149
+ /*
1150
+ * prototypes for internal functions in nbtree.c
1151
+ */
1152
+ extern bool _bt_parallel_seize(IndexScanDesc scan, BlockNumber *pageno);
1153
+ extern void _bt_parallel_release(IndexScanDesc scan, BlockNumber scan_page);
1154
+ extern void _bt_parallel_done(IndexScanDesc scan);
1155
+ extern void _bt_parallel_advance_array_keys(IndexScanDesc scan);
1156
+
1157
+ /*
1158
+ * prototypes for functions in nbtdedup.c
1159
+ */
1160
+ extern void _bt_dedup_pass(Relation rel, Buffer buf, Relation heapRel,
1161
+ IndexTuple newitem, Size newitemsz,
1162
+ bool bottomupdedup);
1163
+ extern bool _bt_bottomupdel_pass(Relation rel, Buffer buf, Relation heapRel,
1164
+ Size newitemsz);
1165
+ extern void _bt_dedup_start_pending(BTDedupState state, IndexTuple base,
1166
+ OffsetNumber baseoff);
1167
+ extern bool _bt_dedup_save_htid(BTDedupState state, IndexTuple itup);
1168
+ extern Size _bt_dedup_finish_pending(Page newpage, BTDedupState state);
1169
+ extern IndexTuple _bt_form_posting(IndexTuple base, ItemPointer htids,
1170
+ int nhtids);
1171
+ extern void _bt_update_posting(BTVacuumPosting vacposting);
1172
+ extern IndexTuple _bt_swap_posting(IndexTuple newitem, IndexTuple oposting,
1173
+ int postingoff);
1174
+
1175
+ /*
1176
+ * prototypes for functions in nbtinsert.c
1177
+ */
1178
+ extern bool _bt_doinsert(Relation rel, IndexTuple itup,
1179
+ IndexUniqueCheck checkUnique, bool indexUnchanged,
1180
+ Relation heapRel);
1181
+ extern void _bt_finish_split(Relation rel, Buffer lbuf, BTStack stack);
1182
+ extern Buffer _bt_getstackbuf(Relation rel, BTStack stack, BlockNumber child);
1183
+
1184
+ /*
1185
+ * prototypes for functions in nbtsplitloc.c
1186
+ */
1187
+ extern OffsetNumber _bt_findsplitloc(Relation rel, Page origpage,
1188
+ OffsetNumber newitemoff, Size newitemsz, IndexTuple newitem,
1189
+ bool *newitemonleft);
1190
+
1191
+ /*
1192
+ * prototypes for functions in nbtpage.c
1193
+ */
1194
+ extern void _bt_initmetapage(Page page, BlockNumber rootbknum, uint32 level,
1195
+ bool allequalimage);
1196
+ extern bool _bt_vacuum_needs_cleanup(Relation rel);
1197
+ extern void _bt_set_cleanup_info(Relation rel, BlockNumber num_delpages);
1198
+ extern void _bt_upgrademetapage(Page page);
1199
+ extern Buffer _bt_getroot(Relation rel, int access);
1200
+ extern Buffer _bt_gettrueroot(Relation rel);
1201
+ extern int _bt_getrootheight(Relation rel);
1202
+ extern void _bt_metaversion(Relation rel, bool *heapkeyspace,
1203
+ bool *allequalimage);
1204
+ extern void _bt_checkpage(Relation rel, Buffer buf);
1205
+ extern Buffer _bt_getbuf(Relation rel, BlockNumber blkno, int access);
1206
+ extern Buffer _bt_relandgetbuf(Relation rel, Buffer obuf,
1207
+ BlockNumber blkno, int access);
1208
+ extern void _bt_relbuf(Relation rel, Buffer buf);
1209
+ extern void _bt_lockbuf(Relation rel, Buffer buf, int access);
1210
+ extern void _bt_unlockbuf(Relation rel, Buffer buf);
1211
+ extern bool _bt_conditionallockbuf(Relation rel, Buffer buf);
1212
+ extern void _bt_upgradelockbufcleanup(Relation rel, Buffer buf);
1213
+ extern void _bt_pageinit(Page page, Size size);
1214
+ extern void _bt_delitems_vacuum(Relation rel, Buffer buf,
1215
+ OffsetNumber *deletable, int ndeletable,
1216
+ BTVacuumPosting *updatable, int nupdatable);
1217
+ extern void _bt_delitems_delete_check(Relation rel, Buffer buf,
1218
+ Relation heapRel,
1219
+ TM_IndexDeleteOp *delstate);
1220
+ extern void _bt_pagedel(Relation rel, Buffer leafbuf, BTVacState *vstate);
1221
+ extern void _bt_pendingfsm_init(Relation rel, BTVacState *vstate,
1222
+ bool cleanuponly);
1223
+ extern void _bt_pendingfsm_finalize(Relation rel, BTVacState *vstate);
1224
+
1225
+ /*
1226
+ * prototypes for functions in nbtsearch.c
1227
+ */
1228
+ extern BTStack _bt_search(Relation rel, BTScanInsert key, Buffer *bufP,
1229
+ int access, Snapshot snapshot);
1230
+ extern Buffer _bt_moveright(Relation rel, BTScanInsert key, Buffer buf,
1231
+ bool forupdate, BTStack stack, int access, Snapshot snapshot);
1232
+ extern OffsetNumber _bt_binsrch_insert(Relation rel, BTInsertState insertstate);
1233
+ extern int32 _bt_compare(Relation rel, BTScanInsert key, Page page, OffsetNumber offnum);
1234
+ extern bool _bt_first(IndexScanDesc scan, ScanDirection dir);
1235
+ extern bool _bt_next(IndexScanDesc scan, ScanDirection dir);
1236
+ extern Buffer _bt_get_endpoint(Relation rel, uint32 level, bool rightmost,
1237
+ Snapshot snapshot);
1238
+
1239
+ /*
1240
+ * prototypes for functions in nbtutils.c
1241
+ */
1242
+ extern BTScanInsert _bt_mkscankey(Relation rel, IndexTuple itup);
1243
+ extern void _bt_freestack(BTStack stack);
1244
+ extern void _bt_preprocess_array_keys(IndexScanDesc scan);
1245
+ extern void _bt_start_array_keys(IndexScanDesc scan, ScanDirection dir);
1246
+ extern bool _bt_advance_array_keys(IndexScanDesc scan, ScanDirection dir);
1247
+ extern void _bt_mark_array_keys(IndexScanDesc scan);
1248
+ extern void _bt_restore_array_keys(IndexScanDesc scan);
1249
+ extern void _bt_preprocess_keys(IndexScanDesc scan);
1250
+ extern bool _bt_checkkeys(IndexScanDesc scan, IndexTuple tuple,
1251
+ int tupnatts, ScanDirection dir, bool *continuescan);
1252
+ extern void _bt_killitems(IndexScanDesc scan);
1253
+ extern BTCycleId _bt_vacuum_cycleid(Relation rel);
1254
+ extern BTCycleId _bt_start_vacuum(Relation rel);
1255
+ extern void _bt_end_vacuum(Relation rel);
1256
+ extern void _bt_end_vacuum_callback(int code, Datum arg);
1257
+ extern Size BTreeShmemSize(void);
1258
+ extern void BTreeShmemInit(void);
1259
+ extern bytea *btoptions(Datum reloptions, bool validate);
1260
+ extern bool btproperty(Oid index_oid, int attno,
1261
+ IndexAMProperty prop, const char *propname,
1262
+ bool *res, bool *isnull);
1263
+ extern char *btbuildphasename(int64 phasenum);
1264
+ extern IndexTuple _bt_truncate(Relation rel, IndexTuple lastleft,
1265
+ IndexTuple firstright, BTScanInsert itup_key);
1266
+ extern int _bt_keep_natts_fast(Relation rel, IndexTuple lastleft,
1267
+ IndexTuple firstright);
1268
+ extern bool _bt_check_natts(Relation rel, bool heapkeyspace, Page page,
1269
+ OffsetNumber offnum);
1270
+ extern void _bt_check_third_page(Relation rel, Relation heap,
1271
+ bool needheaptidspace, Page page, IndexTuple newtup);
1272
+ extern bool _bt_allequalimage(Relation rel, bool debugmessage);
1273
+
1274
+ extern int _bt_sort_array_elements(IndexScanDesc scan, ScanKey skey,
1275
+ bool reverse, Datum *elems, int nelems);
1276
+
1277
+ /*
1278
+ * prototypes for functions in nbtvalidate.c
1279
+ */
1280
+ extern bool btvalidate(Oid opclassoid);
1281
+ extern void btadjustmembers(Oid opfamilyoid,
1282
+ Oid opclassoid,
1283
+ List *operators,
1284
+ List *functions);
1285
+
1286
+ /*
1287
+ * prototypes for functions in nbtsort.c
1288
+ */
1289
+ extern IndexBuildResult *btbuild(Relation heap, Relation index,
1290
+ struct IndexInfo *indexInfo);
1291
+ extern void _bt_parallel_build_main(dsm_segment *seg, shm_toc *toc);
1292
+
1293
+ #endif /* NBTREE_H */