embedded-postgres 18.6.0__py3-none-win_amd64.whl

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 (1378) hide show
  1. embedded_postgres/__init__.py +2 -0
  2. embedded_postgres/_commands.py +71 -0
  3. embedded_postgres/pginstall/bin/clusterdb.exe +0 -0
  4. embedded_postgres/pginstall/bin/createdb.exe +0 -0
  5. embedded_postgres/pginstall/bin/createuser.exe +0 -0
  6. embedded_postgres/pginstall/bin/dropdb.exe +0 -0
  7. embedded_postgres/pginstall/bin/dropuser.exe +0 -0
  8. embedded_postgres/pginstall/bin/ecpg.exe +0 -0
  9. embedded_postgres/pginstall/bin/initdb.exe +0 -0
  10. embedded_postgres/pginstall/bin/libecpg.dll +0 -0
  11. embedded_postgres/pginstall/bin/libecpg_compat.dll +0 -0
  12. embedded_postgres/pginstall/bin/libpgtypes.dll +0 -0
  13. embedded_postgres/pginstall/bin/libpq.dll +0 -0
  14. embedded_postgres/pginstall/bin/oid2name.exe +0 -0
  15. embedded_postgres/pginstall/bin/pg_amcheck.exe +0 -0
  16. embedded_postgres/pginstall/bin/pg_archivecleanup.exe +0 -0
  17. embedded_postgres/pginstall/bin/pg_basebackup.exe +0 -0
  18. embedded_postgres/pginstall/bin/pg_checksums.exe +0 -0
  19. embedded_postgres/pginstall/bin/pg_combinebackup.exe +0 -0
  20. embedded_postgres/pginstall/bin/pg_config.exe +0 -0
  21. embedded_postgres/pginstall/bin/pg_controldata.exe +0 -0
  22. embedded_postgres/pginstall/bin/pg_createsubscriber.exe +0 -0
  23. embedded_postgres/pginstall/bin/pg_ctl.exe +0 -0
  24. embedded_postgres/pginstall/bin/pg_dump.exe +0 -0
  25. embedded_postgres/pginstall/bin/pg_dumpall.exe +0 -0
  26. embedded_postgres/pginstall/bin/pg_isready.exe +0 -0
  27. embedded_postgres/pginstall/bin/pg_receivewal.exe +0 -0
  28. embedded_postgres/pginstall/bin/pg_recvlogical.exe +0 -0
  29. embedded_postgres/pginstall/bin/pg_resetwal.exe +0 -0
  30. embedded_postgres/pginstall/bin/pg_restore.exe +0 -0
  31. embedded_postgres/pginstall/bin/pg_rewind.exe +0 -0
  32. embedded_postgres/pginstall/bin/pg_test_fsync.exe +0 -0
  33. embedded_postgres/pginstall/bin/pg_test_timing.exe +0 -0
  34. embedded_postgres/pginstall/bin/pg_upgrade.exe +0 -0
  35. embedded_postgres/pginstall/bin/pg_verifybackup.exe +0 -0
  36. embedded_postgres/pginstall/bin/pg_waldump.exe +0 -0
  37. embedded_postgres/pginstall/bin/pg_walsummary.exe +0 -0
  38. embedded_postgres/pginstall/bin/pgbench.exe +0 -0
  39. embedded_postgres/pginstall/bin/postgres.exe +0 -0
  40. embedded_postgres/pginstall/bin/psql.exe +0 -0
  41. embedded_postgres/pginstall/bin/reindexdb.exe +0 -0
  42. embedded_postgres/pginstall/bin/vacuumdb.exe +0 -0
  43. embedded_postgres/pginstall/bin/vacuumlo.exe +0 -0
  44. embedded_postgres/pginstall/include/ecpg_config.h +9 -0
  45. embedded_postgres/pginstall/include/ecpg_informix.h +90 -0
  46. embedded_postgres/pginstall/include/ecpgerrno.h +80 -0
  47. embedded_postgres/pginstall/include/ecpglib.h +79 -0
  48. embedded_postgres/pginstall/include/ecpgtype.h +109 -0
  49. embedded_postgres/pginstall/include/informix/esql/datetime.h +14 -0
  50. embedded_postgres/pginstall/include/informix/esql/decimal.h +13 -0
  51. embedded_postgres/pginstall/include/informix/esql/sqltypes.h +59 -0
  52. embedded_postgres/pginstall/include/internal/c.h +1364 -0
  53. embedded_postgres/pginstall/include/internal/fe-auth-sasl.h +153 -0
  54. embedded_postgres/pginstall/include/internal/libpq/pqcomm.h +175 -0
  55. embedded_postgres/pginstall/include/internal/libpq/protocol.h +89 -0
  56. embedded_postgres/pginstall/include/internal/libpq-int.h +980 -0
  57. embedded_postgres/pginstall/include/internal/port.h +565 -0
  58. embedded_postgres/pginstall/include/internal/postgres_fe.h +34 -0
  59. embedded_postgres/pginstall/include/internal/pqexpbuffer.h +192 -0
  60. embedded_postgres/pginstall/include/libpq/libpq-fs.h +24 -0
  61. embedded_postgres/pginstall/include/libpq-events.h +94 -0
  62. embedded_postgres/pginstall/include/libpq-fe.h +837 -0
  63. embedded_postgres/pginstall/include/pg_config.h +824 -0
  64. embedded_postgres/pginstall/include/pg_config_manual.h +363 -0
  65. embedded_postgres/pginstall/include/pg_config_os.h +59 -0
  66. embedded_postgres/pginstall/include/pgtypes.h +17 -0
  67. embedded_postgres/pginstall/include/pgtypes_date.h +32 -0
  68. embedded_postgres/pginstall/include/pgtypes_error.h +18 -0
  69. embedded_postgres/pginstall/include/pgtypes_interval.h +40 -0
  70. embedded_postgres/pginstall/include/pgtypes_numeric.h +69 -0
  71. embedded_postgres/pginstall/include/pgtypes_timestamp.h +31 -0
  72. embedded_postgres/pginstall/include/postgres_ext.h +74 -0
  73. embedded_postgres/pginstall/include/server/access/amapi.h +332 -0
  74. embedded_postgres/pginstall/include/server/access/amvalidate.h +40 -0
  75. embedded_postgres/pginstall/include/server/access/attmap.h +54 -0
  76. embedded_postgres/pginstall/include/server/access/attnum.h +64 -0
  77. embedded_postgres/pginstall/include/server/access/brin.h +58 -0
  78. embedded_postgres/pginstall/include/server/access/brin_internal.h +116 -0
  79. embedded_postgres/pginstall/include/server/access/brin_page.h +96 -0
  80. embedded_postgres/pginstall/include/server/access/brin_pageops.h +38 -0
  81. embedded_postgres/pginstall/include/server/access/brin_revmap.h +41 -0
  82. embedded_postgres/pginstall/include/server/access/brin_tuple.h +112 -0
  83. embedded_postgres/pginstall/include/server/access/brin_xlog.h +151 -0
  84. embedded_postgres/pginstall/include/server/access/bufmask.h +32 -0
  85. embedded_postgres/pginstall/include/server/access/clog.h +62 -0
  86. embedded_postgres/pginstall/include/server/access/cmptype.h +44 -0
  87. embedded_postgres/pginstall/include/server/access/commit_ts.h +73 -0
  88. embedded_postgres/pginstall/include/server/access/detoast.h +82 -0
  89. embedded_postgres/pginstall/include/server/access/genam.h +278 -0
  90. embedded_postgres/pginstall/include/server/access/generic_xlog.h +45 -0
  91. embedded_postgres/pginstall/include/server/access/gin.h +106 -0
  92. embedded_postgres/pginstall/include/server/access/gin_private.h +506 -0
  93. embedded_postgres/pginstall/include/server/access/gin_tuple.h +44 -0
  94. embedded_postgres/pginstall/include/server/access/ginblock.h +346 -0
  95. embedded_postgres/pginstall/include/server/access/ginxlog.h +216 -0
  96. embedded_postgres/pginstall/include/server/access/gist.h +253 -0
  97. embedded_postgres/pginstall/include/server/access/gist_private.h +571 -0
  98. embedded_postgres/pginstall/include/server/access/gistscan.h +24 -0
  99. embedded_postgres/pginstall/include/server/access/gistxlog.h +117 -0
  100. embedded_postgres/pginstall/include/server/access/hash.h +490 -0
  101. embedded_postgres/pginstall/include/server/access/hash_xlog.h +270 -0
  102. embedded_postgres/pginstall/include/server/access/heapam.h +455 -0
  103. embedded_postgres/pginstall/include/server/access/heapam_xlog.h +538 -0
  104. embedded_postgres/pginstall/include/server/access/heaptoast.h +149 -0
  105. embedded_postgres/pginstall/include/server/access/hio.h +62 -0
  106. embedded_postgres/pginstall/include/server/access/htup.h +89 -0
  107. embedded_postgres/pginstall/include/server/access/htup_details.h +923 -0
  108. embedded_postgres/pginstall/include/server/access/itup.h +186 -0
  109. embedded_postgres/pginstall/include/server/access/multixact.h +161 -0
  110. embedded_postgres/pginstall/include/server/access/nbtree.h +1367 -0
  111. embedded_postgres/pginstall/include/server/access/nbtxlog.h +367 -0
  112. embedded_postgres/pginstall/include/server/access/parallel.h +81 -0
  113. embedded_postgres/pginstall/include/server/access/printsimple.h +23 -0
  114. embedded_postgres/pginstall/include/server/access/printtup.h +35 -0
  115. embedded_postgres/pginstall/include/server/access/relation.h +28 -0
  116. embedded_postgres/pginstall/include/server/access/reloptions.h +260 -0
  117. embedded_postgres/pginstall/include/server/access/relscan.h +217 -0
  118. embedded_postgres/pginstall/include/server/access/rewriteheap.h +57 -0
  119. embedded_postgres/pginstall/include/server/access/rmgr.h +62 -0
  120. embedded_postgres/pginstall/include/server/access/rmgrdesc_utils.h +22 -0
  121. embedded_postgres/pginstall/include/server/access/rmgrlist.h +49 -0
  122. embedded_postgres/pginstall/include/server/access/sdir.h +67 -0
  123. embedded_postgres/pginstall/include/server/access/sequence.h +23 -0
  124. embedded_postgres/pginstall/include/server/access/session.h +44 -0
  125. embedded_postgres/pginstall/include/server/access/skey.h +151 -0
  126. embedded_postgres/pginstall/include/server/access/slru.h +218 -0
  127. embedded_postgres/pginstall/include/server/access/spgist.h +229 -0
  128. embedded_postgres/pginstall/include/server/access/spgist_private.h +549 -0
  129. embedded_postgres/pginstall/include/server/access/spgxlog.h +259 -0
  130. embedded_postgres/pginstall/include/server/access/stratnum.h +85 -0
  131. embedded_postgres/pginstall/include/server/access/subtrans.h +26 -0
  132. embedded_postgres/pginstall/include/server/access/syncscan.h +30 -0
  133. embedded_postgres/pginstall/include/server/access/sysattr.h +29 -0
  134. embedded_postgres/pginstall/include/server/access/table.h +28 -0
  135. embedded_postgres/pginstall/include/server/access/tableam.h +2060 -0
  136. embedded_postgres/pginstall/include/server/access/tidstore.h +54 -0
  137. embedded_postgres/pginstall/include/server/access/timeline.h +44 -0
  138. embedded_postgres/pginstall/include/server/access/toast_compression.h +73 -0
  139. embedded_postgres/pginstall/include/server/access/toast_helper.h +116 -0
  140. embedded_postgres/pginstall/include/server/access/toast_internals.h +63 -0
  141. embedded_postgres/pginstall/include/server/access/transam.h +418 -0
  142. embedded_postgres/pginstall/include/server/access/tsmapi.h +82 -0
  143. embedded_postgres/pginstall/include/server/access/tupconvert.h +54 -0
  144. embedded_postgres/pginstall/include/server/access/tupdesc.h +251 -0
  145. embedded_postgres/pginstall/include/server/access/tupdesc_details.h +28 -0
  146. embedded_postgres/pginstall/include/server/access/tupmacs.h +235 -0
  147. embedded_postgres/pginstall/include/server/access/twophase.h +70 -0
  148. embedded_postgres/pginstall/include/server/access/twophase_rmgr.h +40 -0
  149. embedded_postgres/pginstall/include/server/access/valid.h +58 -0
  150. embedded_postgres/pginstall/include/server/access/visibilitymap.h +48 -0
  151. embedded_postgres/pginstall/include/server/access/visibilitymapdefs.h +34 -0
  152. embedded_postgres/pginstall/include/server/access/xact.h +536 -0
  153. embedded_postgres/pginstall/include/server/access/xlog.h +317 -0
  154. embedded_postgres/pginstall/include/server/access/xlog_internal.h +405 -0
  155. embedded_postgres/pginstall/include/server/access/xlogarchive.h +35 -0
  156. embedded_postgres/pginstall/include/server/access/xlogbackup.h +43 -0
  157. embedded_postgres/pginstall/include/server/access/xlogdefs.h +83 -0
  158. embedded_postgres/pginstall/include/server/access/xloginsert.h +68 -0
  159. embedded_postgres/pginstall/include/server/access/xlogprefetcher.h +55 -0
  160. embedded_postgres/pginstall/include/server/access/xlogreader.h +444 -0
  161. embedded_postgres/pginstall/include/server/access/xlogrecord.h +248 -0
  162. embedded_postgres/pginstall/include/server/access/xlogrecovery.h +158 -0
  163. embedded_postgres/pginstall/include/server/access/xlogstats.h +43 -0
  164. embedded_postgres/pginstall/include/server/access/xlogutils.h +123 -0
  165. embedded_postgres/pginstall/include/server/archive/archive_module.h +67 -0
  166. embedded_postgres/pginstall/include/server/archive/shell_archive.h +24 -0
  167. embedded_postgres/pginstall/include/server/bootstrap/bootstrap.h +69 -0
  168. embedded_postgres/pginstall/include/server/c.h +1364 -0
  169. embedded_postgres/pginstall/include/server/catalog/binary_upgrade.h +38 -0
  170. embedded_postgres/pginstall/include/server/catalog/catalog.h +48 -0
  171. embedded_postgres/pginstall/include/server/catalog/catversion.h +62 -0
  172. embedded_postgres/pginstall/include/server/catalog/dependency.h +234 -0
  173. embedded_postgres/pginstall/include/server/catalog/genbki.h +149 -0
  174. embedded_postgres/pginstall/include/server/catalog/heap.h +168 -0
  175. embedded_postgres/pginstall/include/server/catalog/index.h +220 -0
  176. embedded_postgres/pginstall/include/server/catalog/indexing.h +54 -0
  177. embedded_postgres/pginstall/include/server/catalog/namespace.h +189 -0
  178. embedded_postgres/pginstall/include/server/catalog/objectaccess.h +267 -0
  179. embedded_postgres/pginstall/include/server/catalog/objectaddress.h +93 -0
  180. embedded_postgres/pginstall/include/server/catalog/partition.h +34 -0
  181. embedded_postgres/pginstall/include/server/catalog/pg_aggregate.h +182 -0
  182. embedded_postgres/pginstall/include/server/catalog/pg_aggregate_d.h +85 -0
  183. embedded_postgres/pginstall/include/server/catalog/pg_am.h +66 -0
  184. embedded_postgres/pginstall/include/server/catalog/pg_am_d.h +54 -0
  185. embedded_postgres/pginstall/include/server/catalog/pg_amop.h +105 -0
  186. embedded_postgres/pginstall/include/server/catalog/pg_amop_d.h +51 -0
  187. embedded_postgres/pginstall/include/server/catalog/pg_amproc.h +75 -0
  188. embedded_postgres/pginstall/include/server/catalog/pg_amproc_d.h +42 -0
  189. embedded_postgres/pginstall/include/server/catalog/pg_attrdef.h +69 -0
  190. embedded_postgres/pginstall/include/server/catalog/pg_attrdef_d.h +40 -0
  191. embedded_postgres/pginstall/include/server/catalog/pg_attribute.h +234 -0
  192. embedded_postgres/pginstall/include/server/catalog/pg_attribute_d.h +69 -0
  193. embedded_postgres/pginstall/include/server/catalog/pg_auth_members.h +56 -0
  194. embedded_postgres/pginstall/include/server/catalog/pg_auth_members_d.h +46 -0
  195. embedded_postgres/pginstall/include/server/catalog/pg_authid.h +64 -0
  196. embedded_postgres/pginstall/include/server/catalog/pg_authid_d.h +66 -0
  197. embedded_postgres/pginstall/include/server/catalog/pg_cast.h +106 -0
  198. embedded_postgres/pginstall/include/server/catalog/pg_cast_d.h +71 -0
  199. embedded_postgres/pginstall/include/server/catalog/pg_class.h +238 -0
  200. embedded_postgres/pginstall/include/server/catalog/pg_class_d.h +140 -0
  201. embedded_postgres/pginstall/include/server/catalog/pg_collation.h +106 -0
  202. embedded_postgres/pginstall/include/server/catalog/pg_collation_d.h +72 -0
  203. embedded_postgres/pginstall/include/server/catalog/pg_constraint.h +301 -0
  204. embedded_postgres/pginstall/include/server/catalog/pg_constraint_d.h +83 -0
  205. embedded_postgres/pginstall/include/server/catalog/pg_control.h +266 -0
  206. embedded_postgres/pginstall/include/server/catalog/pg_conversion.h +79 -0
  207. embedded_postgres/pginstall/include/server/catalog/pg_conversion_d.h +45 -0
  208. embedded_postgres/pginstall/include/server/catalog/pg_database.h +129 -0
  209. embedded_postgres/pginstall/include/server/catalog/pg_database_d.h +60 -0
  210. embedded_postgres/pginstall/include/server/catalog/pg_db_role_setting.h +61 -0
  211. embedded_postgres/pginstall/include/server/catalog/pg_db_role_setting_d.h +40 -0
  212. embedded_postgres/pginstall/include/server/catalog/pg_default_acl.h +75 -0
  213. embedded_postgres/pginstall/include/server/catalog/pg_default_acl_d.h +54 -0
  214. embedded_postgres/pginstall/include/server/catalog/pg_depend.h +77 -0
  215. embedded_postgres/pginstall/include/server/catalog/pg_depend_d.h +43 -0
  216. embedded_postgres/pginstall/include/server/catalog/pg_description.h +73 -0
  217. embedded_postgres/pginstall/include/server/catalog/pg_description_d.h +39 -0
  218. embedded_postgres/pginstall/include/server/catalog/pg_enum.h +69 -0
  219. embedded_postgres/pginstall/include/server/catalog/pg_enum_d.h +41 -0
  220. embedded_postgres/pginstall/include/server/catalog/pg_event_trigger.h +60 -0
  221. embedded_postgres/pginstall/include/server/catalog/pg_event_trigger_d.h +43 -0
  222. embedded_postgres/pginstall/include/server/catalog/pg_extension.h +62 -0
  223. embedded_postgres/pginstall/include/server/catalog/pg_extension_d.h +44 -0
  224. embedded_postgres/pginstall/include/server/catalog/pg_foreign_data_wrapper.h +61 -0
  225. embedded_postgres/pginstall/include/server/catalog/pg_foreign_data_wrapper_d.h +43 -0
  226. embedded_postgres/pginstall/include/server/catalog/pg_foreign_server.h +58 -0
  227. embedded_postgres/pginstall/include/server/catalog/pg_foreign_server_d.h +44 -0
  228. embedded_postgres/pginstall/include/server/catalog/pg_foreign_table.h +51 -0
  229. embedded_postgres/pginstall/include/server/catalog/pg_foreign_table_d.h +38 -0
  230. embedded_postgres/pginstall/include/server/catalog/pg_index.h +94 -0
  231. embedded_postgres/pginstall/include/server/catalog/pg_index_d.h +68 -0
  232. embedded_postgres/pginstall/include/server/catalog/pg_inherits.h +67 -0
  233. embedded_postgres/pginstall/include/server/catalog/pg_inherits_d.h +40 -0
  234. embedded_postgres/pginstall/include/server/catalog/pg_init_privs.h +83 -0
  235. embedded_postgres/pginstall/include/server/catalog/pg_init_privs_d.h +40 -0
  236. embedded_postgres/pginstall/include/server/catalog/pg_language.h +75 -0
  237. embedded_postgres/pginstall/include/server/catalog/pg_language_d.h +48 -0
  238. embedded_postgres/pginstall/include/server/catalog/pg_largeobject.h +55 -0
  239. embedded_postgres/pginstall/include/server/catalog/pg_largeobject_d.h +38 -0
  240. embedded_postgres/pginstall/include/server/catalog/pg_largeobject_metadata.h +51 -0
  241. embedded_postgres/pginstall/include/server/catalog/pg_largeobject_metadata_d.h +38 -0
  242. embedded_postgres/pginstall/include/server/catalog/pg_namespace.h +67 -0
  243. embedded_postgres/pginstall/include/server/catalog/pg_namespace_d.h +43 -0
  244. embedded_postgres/pginstall/include/server/catalog/pg_opclass.h +91 -0
  245. embedded_postgres/pginstall/include/server/catalog/pg_opclass_d.h +58 -0
  246. embedded_postgres/pginstall/include/server/catalog/pg_operator.h +124 -0
  247. embedded_postgres/pginstall/include/server/catalog/pg_operator_d.h +153 -0
  248. embedded_postgres/pginstall/include/server/catalog/pg_opfamily.h +67 -0
  249. embedded_postgres/pginstall/include/server/catalog/pg_opfamily_d.h +58 -0
  250. embedded_postgres/pginstall/include/server/catalog/pg_parameter_acl.h +62 -0
  251. embedded_postgres/pginstall/include/server/catalog/pg_parameter_acl_d.h +41 -0
  252. embedded_postgres/pginstall/include/server/catalog/pg_partitioned_table.h +76 -0
  253. embedded_postgres/pginstall/include/server/catalog/pg_partitioned_table_d.h +43 -0
  254. embedded_postgres/pginstall/include/server/catalog/pg_policy.h +58 -0
  255. embedded_postgres/pginstall/include/server/catalog/pg_policy_d.h +44 -0
  256. embedded_postgres/pginstall/include/server/catalog/pg_proc.h +224 -0
  257. embedded_postgres/pginstall/include/server/catalog/pg_proc_d.h +108 -0
  258. embedded_postgres/pginstall/include/server/catalog/pg_publication.h +194 -0
  259. embedded_postgres/pginstall/include/server/catalog/pg_publication_d.h +57 -0
  260. embedded_postgres/pginstall/include/server/catalog/pg_publication_namespace.h +50 -0
  261. embedded_postgres/pginstall/include/server/catalog/pg_publication_namespace_d.h +39 -0
  262. embedded_postgres/pginstall/include/server/catalog/pg_publication_rel.h +57 -0
  263. embedded_postgres/pginstall/include/server/catalog/pg_publication_rel_d.h +42 -0
  264. embedded_postgres/pginstall/include/server/catalog/pg_range.h +75 -0
  265. embedded_postgres/pginstall/include/server/catalog/pg_range_d.h +43 -0
  266. embedded_postgres/pginstall/include/server/catalog/pg_replication_origin.h +63 -0
  267. embedded_postgres/pginstall/include/server/catalog/pg_replication_origin_d.h +38 -0
  268. embedded_postgres/pginstall/include/server/catalog/pg_rewrite.h +61 -0
  269. embedded_postgres/pginstall/include/server/catalog/pg_rewrite_d.h +44 -0
  270. embedded_postgres/pginstall/include/server/catalog/pg_seclabel.h +45 -0
  271. embedded_postgres/pginstall/include/server/catalog/pg_seclabel_d.h +40 -0
  272. embedded_postgres/pginstall/include/server/catalog/pg_sequence.h +46 -0
  273. embedded_postgres/pginstall/include/server/catalog/pg_sequence_d.h +43 -0
  274. embedded_postgres/pginstall/include/server/catalog/pg_shdepend.h +78 -0
  275. embedded_postgres/pginstall/include/server/catalog/pg_shdepend_d.h +43 -0
  276. embedded_postgres/pginstall/include/server/catalog/pg_shdescription.h +65 -0
  277. embedded_postgres/pginstall/include/server/catalog/pg_shdescription_d.h +40 -0
  278. embedded_postgres/pginstall/include/server/catalog/pg_shseclabel.h +46 -0
  279. embedded_postgres/pginstall/include/server/catalog/pg_shseclabel_d.h +42 -0
  280. embedded_postgres/pginstall/include/server/catalog/pg_statistic.h +288 -0
  281. embedded_postgres/pginstall/include/server/catalog/pg_statistic_d.h +206 -0
  282. embedded_postgres/pginstall/include/server/catalog/pg_statistic_ext.h +91 -0
  283. embedded_postgres/pginstall/include/server/catalog/pg_statistic_ext_d.h +52 -0
  284. embedded_postgres/pginstall/include/server/catalog/pg_statistic_ext_data.h +61 -0
  285. embedded_postgres/pginstall/include/server/catalog/pg_statistic_ext_data_d.h +41 -0
  286. embedded_postgres/pginstall/include/server/catalog/pg_subscription.h +190 -0
  287. embedded_postgres/pginstall/include/server/catalog/pg_subscription_d.h +93 -0
  288. embedded_postgres/pginstall/include/server/catalog/pg_subscription_rel.h +95 -0
  289. embedded_postgres/pginstall/include/server/catalog/pg_subscription_rel_d.h +58 -0
  290. embedded_postgres/pginstall/include/server/catalog/pg_tablespace.h +57 -0
  291. embedded_postgres/pginstall/include/server/catalog/pg_tablespace_d.h +45 -0
  292. embedded_postgres/pginstall/include/server/catalog/pg_transform.h +51 -0
  293. embedded_postgres/pginstall/include/server/catalog/pg_transform_d.h +41 -0
  294. embedded_postgres/pginstall/include/server/catalog/pg_trigger.h +153 -0
  295. embedded_postgres/pginstall/include/server/catalog/pg_trigger_d.h +116 -0
  296. embedded_postgres/pginstall/include/server/catalog/pg_ts_config.h +56 -0
  297. embedded_postgres/pginstall/include/server/catalog/pg_ts_config_d.h +41 -0
  298. embedded_postgres/pginstall/include/server/catalog/pg_ts_config_map.h +51 -0
  299. embedded_postgres/pginstall/include/server/catalog/pg_ts_config_map_d.h +39 -0
  300. embedded_postgres/pginstall/include/server/catalog/pg_ts_dict.h +62 -0
  301. embedded_postgres/pginstall/include/server/catalog/pg_ts_dict_d.h +42 -0
  302. embedded_postgres/pginstall/include/server/catalog/pg_ts_parser.h +63 -0
  303. embedded_postgres/pginstall/include/server/catalog/pg_ts_parser_d.h +44 -0
  304. embedded_postgres/pginstall/include/server/catalog/pg_ts_template.h +54 -0
  305. embedded_postgres/pginstall/include/server/catalog/pg_ts_template_d.h +41 -0
  306. embedded_postgres/pginstall/include/server/catalog/pg_type.h +407 -0
  307. embedded_postgres/pginstall/include/server/catalog/pg_type_d.h +331 -0
  308. embedded_postgres/pginstall/include/server/catalog/pg_user_mapping.h +58 -0
  309. embedded_postgres/pginstall/include/server/catalog/pg_user_mapping_d.h +40 -0
  310. embedded_postgres/pginstall/include/server/catalog/schemapg.h +242 -0
  311. embedded_postgres/pginstall/include/server/catalog/storage.h +50 -0
  312. embedded_postgres/pginstall/include/server/catalog/storage_xlog.h +59 -0
  313. embedded_postgres/pginstall/include/server/catalog/syscache_ids.h +106 -0
  314. embedded_postgres/pginstall/include/server/catalog/syscache_info.h +581 -0
  315. embedded_postgres/pginstall/include/server/catalog/system_fk_info.h +253 -0
  316. embedded_postgres/pginstall/include/server/catalog/toasting.h +30 -0
  317. embedded_postgres/pginstall/include/server/commands/alter.h +34 -0
  318. embedded_postgres/pginstall/include/server/commands/async.h +52 -0
  319. embedded_postgres/pginstall/include/server/commands/cluster.h +51 -0
  320. embedded_postgres/pginstall/include/server/commands/collationcmds.h +25 -0
  321. embedded_postgres/pginstall/include/server/commands/comment.h +45 -0
  322. embedded_postgres/pginstall/include/server/commands/conversioncmds.h +23 -0
  323. embedded_postgres/pginstall/include/server/commands/copy.h +130 -0
  324. embedded_postgres/pginstall/include/server/commands/copyapi.h +105 -0
  325. embedded_postgres/pginstall/include/server/commands/copyfrom_internal.h +197 -0
  326. embedded_postgres/pginstall/include/server/commands/createas.h +34 -0
  327. embedded_postgres/pginstall/include/server/commands/dbcommands.h +37 -0
  328. embedded_postgres/pginstall/include/server/commands/dbcommands_xlog.h +60 -0
  329. embedded_postgres/pginstall/include/server/commands/defrem.h +165 -0
  330. embedded_postgres/pginstall/include/server/commands/discard.h +20 -0
  331. embedded_postgres/pginstall/include/server/commands/event_trigger.h +97 -0
  332. embedded_postgres/pginstall/include/server/commands/explain.h +84 -0
  333. embedded_postgres/pginstall/include/server/commands/explain_dr.h +32 -0
  334. embedded_postgres/pginstall/include/server/commands/explain_format.h +58 -0
  335. embedded_postgres/pginstall/include/server/commands/explain_state.h +100 -0
  336. embedded_postgres/pginstall/include/server/commands/extension.h +60 -0
  337. embedded_postgres/pginstall/include/server/commands/lockcmds.h +24 -0
  338. embedded_postgres/pginstall/include/server/commands/matview.h +36 -0
  339. embedded_postgres/pginstall/include/server/commands/policy.h +38 -0
  340. embedded_postgres/pginstall/include/server/commands/portalcmds.h +34 -0
  341. embedded_postgres/pginstall/include/server/commands/prepare.h +62 -0
  342. embedded_postgres/pginstall/include/server/commands/proclang.h +23 -0
  343. embedded_postgres/pginstall/include/server/commands/progress.h +160 -0
  344. embedded_postgres/pginstall/include/server/commands/publicationcmds.h +43 -0
  345. embedded_postgres/pginstall/include/server/commands/schemacmds.h +29 -0
  346. embedded_postgres/pginstall/include/server/commands/seclabel.h +34 -0
  347. embedded_postgres/pginstall/include/server/commands/sequence.h +70 -0
  348. embedded_postgres/pginstall/include/server/commands/subscriptioncmds.h +31 -0
  349. embedded_postgres/pginstall/include/server/commands/tablecmds.h +110 -0
  350. embedded_postgres/pginstall/include/server/commands/tablespace.h +71 -0
  351. embedded_postgres/pginstall/include/server/commands/trigger.h +292 -0
  352. embedded_postgres/pginstall/include/server/commands/typecmds.h +64 -0
  353. embedded_postgres/pginstall/include/server/commands/user.h +43 -0
  354. embedded_postgres/pginstall/include/server/commands/vacuum.h +410 -0
  355. embedded_postgres/pginstall/include/server/commands/view.h +25 -0
  356. embedded_postgres/pginstall/include/server/common/archive.h +21 -0
  357. embedded_postgres/pginstall/include/server/common/base64.h +19 -0
  358. embedded_postgres/pginstall/include/server/common/blkreftable.h +116 -0
  359. embedded_postgres/pginstall/include/server/common/checksum_helper.h +72 -0
  360. embedded_postgres/pginstall/include/server/common/compression.h +53 -0
  361. embedded_postgres/pginstall/include/server/common/config_info.h +21 -0
  362. embedded_postgres/pginstall/include/server/common/connect.h +28 -0
  363. embedded_postgres/pginstall/include/server/common/controldata_utils.h +21 -0
  364. embedded_postgres/pginstall/include/server/common/cryptohash.h +39 -0
  365. embedded_postgres/pginstall/include/server/common/fe_memutils.h +101 -0
  366. embedded_postgres/pginstall/include/server/common/file_perm.h +56 -0
  367. embedded_postgres/pginstall/include/server/common/file_utils.h +66 -0
  368. embedded_postgres/pginstall/include/server/common/hashfn.h +119 -0
  369. embedded_postgres/pginstall/include/server/common/hashfn_unstable.h +407 -0
  370. embedded_postgres/pginstall/include/server/common/hmac.h +30 -0
  371. embedded_postgres/pginstall/include/server/common/int.h +742 -0
  372. embedded_postgres/pginstall/include/server/common/int128.h +276 -0
  373. embedded_postgres/pginstall/include/server/common/ip.h +33 -0
  374. embedded_postgres/pginstall/include/server/common/jsonapi.h +267 -0
  375. embedded_postgres/pginstall/include/server/common/keywords.h +29 -0
  376. embedded_postgres/pginstall/include/server/common/kwlookup.h +44 -0
  377. embedded_postgres/pginstall/include/server/common/link-canary.h +17 -0
  378. embedded_postgres/pginstall/include/server/common/logging.h +163 -0
  379. embedded_postgres/pginstall/include/server/common/md5.h +37 -0
  380. embedded_postgres/pginstall/include/server/common/oauth-common.h +19 -0
  381. embedded_postgres/pginstall/include/server/common/openssl.h +43 -0
  382. embedded_postgres/pginstall/include/server/common/parse_manifest.h +57 -0
  383. embedded_postgres/pginstall/include/server/common/percentrepl.h +18 -0
  384. embedded_postgres/pginstall/include/server/common/pg_lzcompress.h +93 -0
  385. embedded_postgres/pginstall/include/server/common/pg_prng.h +62 -0
  386. embedded_postgres/pginstall/include/server/common/relpath.h +154 -0
  387. embedded_postgres/pginstall/include/server/common/restricted_token.h +24 -0
  388. embedded_postgres/pginstall/include/server/common/saslprep.h +30 -0
  389. embedded_postgres/pginstall/include/server/common/scram-common.h +70 -0
  390. embedded_postgres/pginstall/include/server/common/sha1.h +21 -0
  391. embedded_postgres/pginstall/include/server/common/sha2.h +32 -0
  392. embedded_postgres/pginstall/include/server/common/shortest_dec.h +63 -0
  393. embedded_postgres/pginstall/include/server/common/string.h +44 -0
  394. embedded_postgres/pginstall/include/server/common/unicode_case.h +35 -0
  395. embedded_postgres/pginstall/include/server/common/unicode_case_table.h +13630 -0
  396. embedded_postgres/pginstall/include/server/common/unicode_category.h +91 -0
  397. embedded_postgres/pginstall/include/server/common/unicode_category_table.h +7153 -0
  398. embedded_postgres/pginstall/include/server/common/unicode_east_asian_fw_table.h +126 -0
  399. embedded_postgres/pginstall/include/server/common/unicode_nonspacing_table.h +338 -0
  400. embedded_postgres/pginstall/include/server/common/unicode_norm.h +39 -0
  401. embedded_postgres/pginstall/include/server/common/unicode_norm_hashfunc.h +3016 -0
  402. embedded_postgres/pginstall/include/server/common/unicode_norm_table.h +9202 -0
  403. embedded_postgres/pginstall/include/server/common/unicode_normprops_table.h +8025 -0
  404. embedded_postgres/pginstall/include/server/common/unicode_version.h +14 -0
  405. embedded_postgres/pginstall/include/server/common/username.h +15 -0
  406. embedded_postgres/pginstall/include/server/datatype/timestamp.h +269 -0
  407. embedded_postgres/pginstall/include/server/executor/execAsync.h +25 -0
  408. embedded_postgres/pginstall/include/server/executor/execExpr.h +924 -0
  409. embedded_postgres/pginstall/include/server/executor/execParallel.h +51 -0
  410. embedded_postgres/pginstall/include/server/executor/execPartition.h +143 -0
  411. embedded_postgres/pginstall/include/server/executor/execScan.h +254 -0
  412. embedded_postgres/pginstall/include/server/executor/execdebug.h +130 -0
  413. embedded_postgres/pginstall/include/server/executor/execdesc.h +70 -0
  414. embedded_postgres/pginstall/include/server/executor/executor.h +789 -0
  415. embedded_postgres/pginstall/include/server/executor/functions.h +55 -0
  416. embedded_postgres/pginstall/include/server/executor/hashjoin.h +365 -0
  417. embedded_postgres/pginstall/include/server/executor/instrument.h +121 -0
  418. embedded_postgres/pginstall/include/server/executor/nodeAgg.h +341 -0
  419. embedded_postgres/pginstall/include/server/executor/nodeAppend.h +30 -0
  420. embedded_postgres/pginstall/include/server/executor/nodeBitmapAnd.h +24 -0
  421. embedded_postgres/pginstall/include/server/executor/nodeBitmapHeapscan.h +33 -0
  422. embedded_postgres/pginstall/include/server/executor/nodeBitmapIndexscan.h +30 -0
  423. embedded_postgres/pginstall/include/server/executor/nodeBitmapOr.h +24 -0
  424. embedded_postgres/pginstall/include/server/executor/nodeCtescan.h +23 -0
  425. embedded_postgres/pginstall/include/server/executor/nodeCustom.h +42 -0
  426. embedded_postgres/pginstall/include/server/executor/nodeForeignscan.h +38 -0
  427. embedded_postgres/pginstall/include/server/executor/nodeFunctionscan.h +23 -0
  428. embedded_postgres/pginstall/include/server/executor/nodeGather.h +24 -0
  429. embedded_postgres/pginstall/include/server/executor/nodeGatherMerge.h +26 -0
  430. embedded_postgres/pginstall/include/server/executor/nodeGroup.h +23 -0
  431. embedded_postgres/pginstall/include/server/executor/nodeHash.h +75 -0
  432. embedded_postgres/pginstall/include/server/executor/nodeHashjoin.h +34 -0
  433. embedded_postgres/pginstall/include/server/executor/nodeIncrementalSort.h +28 -0
  434. embedded_postgres/pginstall/include/server/executor/nodeIndexonlyscan.h +37 -0
  435. embedded_postgres/pginstall/include/server/executor/nodeIndexscan.h +48 -0
  436. embedded_postgres/pginstall/include/server/executor/nodeLimit.h +23 -0
  437. embedded_postgres/pginstall/include/server/executor/nodeLockRows.h +23 -0
  438. embedded_postgres/pginstall/include/server/executor/nodeMaterial.h +25 -0
  439. embedded_postgres/pginstall/include/server/executor/nodeMemoize.h +32 -0
  440. embedded_postgres/pginstall/include/server/executor/nodeMergeAppend.h +23 -0
  441. embedded_postgres/pginstall/include/server/executor/nodeMergejoin.h +23 -0
  442. embedded_postgres/pginstall/include/server/executor/nodeModifyTable.h +33 -0
  443. embedded_postgres/pginstall/include/server/executor/nodeNamedtuplestorescan.h +22 -0
  444. embedded_postgres/pginstall/include/server/executor/nodeNestloop.h +23 -0
  445. embedded_postgres/pginstall/include/server/executor/nodeProjectSet.h +23 -0
  446. embedded_postgres/pginstall/include/server/executor/nodeRecursiveunion.h +23 -0
  447. embedded_postgres/pginstall/include/server/executor/nodeResult.h +25 -0
  448. embedded_postgres/pginstall/include/server/executor/nodeSamplescan.h +23 -0
  449. embedded_postgres/pginstall/include/server/executor/nodeSeqscan.h +31 -0
  450. embedded_postgres/pginstall/include/server/executor/nodeSetOp.h +23 -0
  451. embedded_postgres/pginstall/include/server/executor/nodeSort.h +32 -0
  452. embedded_postgres/pginstall/include/server/executor/nodeSubplan.h +29 -0
  453. embedded_postgres/pginstall/include/server/executor/nodeSubqueryscan.h +23 -0
  454. embedded_postgres/pginstall/include/server/executor/nodeTableFuncscan.h +23 -0
  455. embedded_postgres/pginstall/include/server/executor/nodeTidrangescan.h +24 -0
  456. embedded_postgres/pginstall/include/server/executor/nodeTidscan.h +23 -0
  457. embedded_postgres/pginstall/include/server/executor/nodeUnique.h +23 -0
  458. embedded_postgres/pginstall/include/server/executor/nodeValuesscan.h +22 -0
  459. embedded_postgres/pginstall/include/server/executor/nodeWindowAgg.h +23 -0
  460. embedded_postgres/pginstall/include/server/executor/nodeWorktablescan.h +22 -0
  461. embedded_postgres/pginstall/include/server/executor/spi.h +207 -0
  462. embedded_postgres/pginstall/include/server/executor/spi_priv.h +105 -0
  463. embedded_postgres/pginstall/include/server/executor/tablefunc.h +67 -0
  464. embedded_postgres/pginstall/include/server/executor/tqueue.h +32 -0
  465. embedded_postgres/pginstall/include/server/executor/tstoreReceiver.h +31 -0
  466. embedded_postgres/pginstall/include/server/executor/tuptable.h +539 -0
  467. embedded_postgres/pginstall/include/server/extension/cube/cubedata.h +82 -0
  468. embedded_postgres/pginstall/include/server/extension/hstore/hstore.h +205 -0
  469. embedded_postgres/pginstall/include/server/extension/isn/isn.h +34 -0
  470. embedded_postgres/pginstall/include/server/extension/ltree/ltree.h +319 -0
  471. embedded_postgres/pginstall/include/server/extension/seg/segdata.h +33 -0
  472. embedded_postgres/pginstall/include/server/extension/vector/halfvec.h +77 -0
  473. embedded_postgres/pginstall/include/server/extension/vector/sparsevec.h +51 -0
  474. embedded_postgres/pginstall/include/server/extension/vector/vector.h +37 -0
  475. embedded_postgres/pginstall/include/server/fe_utils/archive.h +21 -0
  476. embedded_postgres/pginstall/include/server/fe_utils/astreamer.h +231 -0
  477. embedded_postgres/pginstall/include/server/fe_utils/cancel.h +32 -0
  478. embedded_postgres/pginstall/include/server/fe_utils/conditional.h +107 -0
  479. embedded_postgres/pginstall/include/server/fe_utils/connect_utils.h +48 -0
  480. embedded_postgres/pginstall/include/server/fe_utils/mbprint.h +30 -0
  481. embedded_postgres/pginstall/include/server/fe_utils/option_utils.h +28 -0
  482. embedded_postgres/pginstall/include/server/fe_utils/parallel_slot.h +77 -0
  483. embedded_postgres/pginstall/include/server/fe_utils/print.h +236 -0
  484. embedded_postgres/pginstall/include/server/fe_utils/psqlscan.h +98 -0
  485. embedded_postgres/pginstall/include/server/fe_utils/psqlscan_int.h +181 -0
  486. embedded_postgres/pginstall/include/server/fe_utils/query_utils.h +24 -0
  487. embedded_postgres/pginstall/include/server/fe_utils/recovery_gen.h +30 -0
  488. embedded_postgres/pginstall/include/server/fe_utils/simple_list.h +71 -0
  489. embedded_postgres/pginstall/include/server/fe_utils/string_utils.h +71 -0
  490. embedded_postgres/pginstall/include/server/fmgr.h +851 -0
  491. embedded_postgres/pginstall/include/server/foreign/fdwapi.h +294 -0
  492. embedded_postgres/pginstall/include/server/foreign/foreign.h +85 -0
  493. embedded_postgres/pginstall/include/server/funcapi.h +360 -0
  494. embedded_postgres/pginstall/include/server/getopt_long.h +37 -0
  495. embedded_postgres/pginstall/include/server/jit/SectionMemoryManager.h +226 -0
  496. embedded_postgres/pginstall/include/server/jit/jit.h +106 -0
  497. embedded_postgres/pginstall/include/server/jit/llvmjit.h +152 -0
  498. embedded_postgres/pginstall/include/server/jit/llvmjit_backport.h +22 -0
  499. embedded_postgres/pginstall/include/server/jit/llvmjit_emit.h +320 -0
  500. embedded_postgres/pginstall/include/server/lib/binaryheap.h +69 -0
  501. embedded_postgres/pginstall/include/server/lib/bipartite_match.h +46 -0
  502. embedded_postgres/pginstall/include/server/lib/bloomfilter.h +27 -0
  503. embedded_postgres/pginstall/include/server/lib/dshash.h +130 -0
  504. embedded_postgres/pginstall/include/server/lib/hyperloglog.h +68 -0
  505. embedded_postgres/pginstall/include/server/lib/ilist.h +1159 -0
  506. embedded_postgres/pginstall/include/server/lib/integerset.h +24 -0
  507. embedded_postgres/pginstall/include/server/lib/knapsack.h +16 -0
  508. embedded_postgres/pginstall/include/server/lib/pairingheap.h +102 -0
  509. embedded_postgres/pginstall/include/server/lib/qunique.h +67 -0
  510. embedded_postgres/pginstall/include/server/lib/radixtree.h +3026 -0
  511. embedded_postgres/pginstall/include/server/lib/rbtree.h +81 -0
  512. embedded_postgres/pginstall/include/server/lib/simplehash.h +1210 -0
  513. embedded_postgres/pginstall/include/server/lib/sort_template.h +445 -0
  514. embedded_postgres/pginstall/include/server/lib/stringinfo.h +270 -0
  515. embedded_postgres/pginstall/include/server/libpq/auth.h +54 -0
  516. embedded_postgres/pginstall/include/server/libpq/be-fsstubs.h +32 -0
  517. embedded_postgres/pginstall/include/server/libpq/be-gssapi-common.h +27 -0
  518. embedded_postgres/pginstall/include/server/libpq/crypt.h +60 -0
  519. embedded_postgres/pginstall/include/server/libpq/hba.h +191 -0
  520. embedded_postgres/pginstall/include/server/libpq/ifaddr.h +30 -0
  521. embedded_postgres/pginstall/include/server/libpq/libpq-be-fe-helpers.h +457 -0
  522. embedded_postgres/pginstall/include/server/libpq/libpq-be.h +370 -0
  523. embedded_postgres/pginstall/include/server/libpq/libpq-fs.h +24 -0
  524. embedded_postgres/pginstall/include/server/libpq/libpq.h +145 -0
  525. embedded_postgres/pginstall/include/server/libpq/oauth.h +101 -0
  526. embedded_postgres/pginstall/include/server/libpq/pg-gssapi.h +42 -0
  527. embedded_postgres/pginstall/include/server/libpq/pqcomm.h +175 -0
  528. embedded_postgres/pginstall/include/server/libpq/pqformat.h +209 -0
  529. embedded_postgres/pginstall/include/server/libpq/pqmq.h +24 -0
  530. embedded_postgres/pginstall/include/server/libpq/pqsignal.h +54 -0
  531. embedded_postgres/pginstall/include/server/libpq/protocol.h +89 -0
  532. embedded_postgres/pginstall/include/server/libpq/sasl.h +147 -0
  533. embedded_postgres/pginstall/include/server/libpq/scram.h +37 -0
  534. embedded_postgres/pginstall/include/server/mb/pg_wchar.h +802 -0
  535. embedded_postgres/pginstall/include/server/mb/stringinfo_mb.h +24 -0
  536. embedded_postgres/pginstall/include/server/miscadmin.h +543 -0
  537. embedded_postgres/pginstall/include/server/nodes/bitmapset.h +140 -0
  538. embedded_postgres/pginstall/include/server/nodes/execnodes.h +2924 -0
  539. embedded_postgres/pginstall/include/server/nodes/extensible.h +164 -0
  540. embedded_postgres/pginstall/include/server/nodes/lockoptions.h +61 -0
  541. embedded_postgres/pginstall/include/server/nodes/makefuncs.h +128 -0
  542. embedded_postgres/pginstall/include/server/nodes/memnodes.h +152 -0
  543. embedded_postgres/pginstall/include/server/nodes/miscnodes.h +57 -0
  544. embedded_postgres/pginstall/include/server/nodes/multibitmapset.h +39 -0
  545. embedded_postgres/pginstall/include/server/nodes/nodeFuncs.h +224 -0
  546. embedded_postgres/pginstall/include/server/nodes/nodes.h +441 -0
  547. embedded_postgres/pginstall/include/server/nodes/nodetags.h +496 -0
  548. embedded_postgres/pginstall/include/server/nodes/params.h +170 -0
  549. embedded_postgres/pginstall/include/server/nodes/parsenodes.h +4335 -0
  550. embedded_postgres/pginstall/include/server/nodes/pathnodes.h +3609 -0
  551. embedded_postgres/pginstall/include/server/nodes/pg_list.h +686 -0
  552. embedded_postgres/pginstall/include/server/nodes/plannodes.h +1767 -0
  553. embedded_postgres/pginstall/include/server/nodes/primnodes.h +2374 -0
  554. embedded_postgres/pginstall/include/server/nodes/print.h +34 -0
  555. embedded_postgres/pginstall/include/server/nodes/queryjumble.h +113 -0
  556. embedded_postgres/pginstall/include/server/nodes/readfuncs.h +38 -0
  557. embedded_postgres/pginstall/include/server/nodes/replnodes.h +132 -0
  558. embedded_postgres/pginstall/include/server/nodes/subscripting.h +167 -0
  559. embedded_postgres/pginstall/include/server/nodes/supportnodes.h +393 -0
  560. embedded_postgres/pginstall/include/server/nodes/tidbitmap.h +128 -0
  561. embedded_postgres/pginstall/include/server/nodes/value.h +90 -0
  562. embedded_postgres/pginstall/include/server/optimizer/appendinfo.h +50 -0
  563. embedded_postgres/pginstall/include/server/optimizer/clauses.h +72 -0
  564. embedded_postgres/pginstall/include/server/optimizer/cost.h +226 -0
  565. embedded_postgres/pginstall/include/server/optimizer/geqo.h +90 -0
  566. embedded_postgres/pginstall/include/server/optimizer/geqo_copy.h +30 -0
  567. embedded_postgres/pginstall/include/server/optimizer/geqo_gene.h +45 -0
  568. embedded_postgres/pginstall/include/server/optimizer/geqo_misc.h +34 -0
  569. embedded_postgres/pginstall/include/server/optimizer/geqo_mutation.h +30 -0
  570. embedded_postgres/pginstall/include/server/optimizer/geqo_pool.h +40 -0
  571. embedded_postgres/pginstall/include/server/optimizer/geqo_random.h +38 -0
  572. embedded_postgres/pginstall/include/server/optimizer/geqo_recombination.h +89 -0
  573. embedded_postgres/pginstall/include/server/optimizer/geqo_selection.h +33 -0
  574. embedded_postgres/pginstall/include/server/optimizer/inherit.h +29 -0
  575. embedded_postgres/pginstall/include/server/optimizer/joininfo.h +30 -0
  576. embedded_postgres/pginstall/include/server/optimizer/optimizer.h +215 -0
  577. embedded_postgres/pginstall/include/server/optimizer/orclauses.h +21 -0
  578. embedded_postgres/pginstall/include/server/optimizer/paramassign.h +39 -0
  579. embedded_postgres/pginstall/include/server/optimizer/pathnode.h +356 -0
  580. embedded_postgres/pginstall/include/server/optimizer/paths.h +282 -0
  581. embedded_postgres/pginstall/include/server/optimizer/placeholder.h +37 -0
  582. embedded_postgres/pginstall/include/server/optimizer/plancat.h +82 -0
  583. embedded_postgres/pginstall/include/server/optimizer/planmain.h +134 -0
  584. embedded_postgres/pginstall/include/server/optimizer/planner.h +62 -0
  585. embedded_postgres/pginstall/include/server/optimizer/prep.h +58 -0
  586. embedded_postgres/pginstall/include/server/optimizer/restrictinfo.h +93 -0
  587. embedded_postgres/pginstall/include/server/optimizer/subselect.h +46 -0
  588. embedded_postgres/pginstall/include/server/optimizer/tlist.h +61 -0
  589. embedded_postgres/pginstall/include/server/parser/analyze.h +68 -0
  590. embedded_postgres/pginstall/include/server/parser/kwlist.h +521 -0
  591. embedded_postgres/pginstall/include/server/parser/parse_agg.h +65 -0
  592. embedded_postgres/pginstall/include/server/parser/parse_clause.h +57 -0
  593. embedded_postgres/pginstall/include/server/parser/parse_coerce.h +105 -0
  594. embedded_postgres/pginstall/include/server/parser/parse_collate.h +27 -0
  595. embedded_postgres/pginstall/include/server/parser/parse_cte.h +24 -0
  596. embedded_postgres/pginstall/include/server/parser/parse_enr.h +22 -0
  597. embedded_postgres/pginstall/include/server/parser/parse_expr.h +25 -0
  598. embedded_postgres/pginstall/include/server/parser/parse_func.h +74 -0
  599. embedded_postgres/pginstall/include/server/parser/parse_merge.h +21 -0
  600. embedded_postgres/pginstall/include/server/parser/parse_node.h +368 -0
  601. embedded_postgres/pginstall/include/server/parser/parse_oper.h +68 -0
  602. embedded_postgres/pginstall/include/server/parser/parse_param.h +25 -0
  603. embedded_postgres/pginstall/include/server/parser/parse_relation.h +133 -0
  604. embedded_postgres/pginstall/include/server/parser/parse_target.h +58 -0
  605. embedded_postgres/pginstall/include/server/parser/parse_type.h +61 -0
  606. embedded_postgres/pginstall/include/server/parser/parse_utilcmd.h +44 -0
  607. embedded_postgres/pginstall/include/server/parser/parser.h +68 -0
  608. embedded_postgres/pginstall/include/server/parser/parsetree.h +61 -0
  609. embedded_postgres/pginstall/include/server/parser/scanner.h +150 -0
  610. embedded_postgres/pginstall/include/server/parser/scansup.h +27 -0
  611. embedded_postgres/pginstall/include/server/partitioning/partbounds.h +146 -0
  612. embedded_postgres/pginstall/include/server/partitioning/partdefs.h +26 -0
  613. embedded_postgres/pginstall/include/server/partitioning/partdesc.h +75 -0
  614. embedded_postgres/pginstall/include/server/partitioning/partprune.h +81 -0
  615. embedded_postgres/pginstall/include/server/pg_config.h +824 -0
  616. embedded_postgres/pginstall/include/server/pg_config_manual.h +363 -0
  617. embedded_postgres/pginstall/include/server/pg_config_os.h +59 -0
  618. embedded_postgres/pginstall/include/server/pg_getopt.h +57 -0
  619. embedded_postgres/pginstall/include/server/pg_trace.h +17 -0
  620. embedded_postgres/pginstall/include/server/pgstat.h +842 -0
  621. embedded_postgres/pginstall/include/server/pgtar.h +89 -0
  622. embedded_postgres/pginstall/include/server/pgtime.h +101 -0
  623. embedded_postgres/pginstall/include/server/plpgsql.h +1336 -0
  624. embedded_postgres/pginstall/include/server/port/atomics/arch-arm.h +32 -0
  625. embedded_postgres/pginstall/include/server/port/atomics/arch-ppc.h +256 -0
  626. embedded_postgres/pginstall/include/server/port/atomics/arch-x86.h +246 -0
  627. embedded_postgres/pginstall/include/server/port/atomics/fallback.h +42 -0
  628. embedded_postgres/pginstall/include/server/port/atomics/generic-gcc.h +327 -0
  629. embedded_postgres/pginstall/include/server/port/atomics/generic-msvc.h +115 -0
  630. embedded_postgres/pginstall/include/server/port/atomics/generic-sunpro.h +113 -0
  631. embedded_postgres/pginstall/include/server/port/atomics/generic.h +427 -0
  632. embedded_postgres/pginstall/include/server/port/atomics.h +611 -0
  633. embedded_postgres/pginstall/include/server/port/cygwin.h +23 -0
  634. embedded_postgres/pginstall/include/server/port/darwin.h +13 -0
  635. embedded_postgres/pginstall/include/server/port/freebsd.h +8 -0
  636. embedded_postgres/pginstall/include/server/port/linux.h +22 -0
  637. embedded_postgres/pginstall/include/server/port/netbsd.h +1 -0
  638. embedded_postgres/pginstall/include/server/port/openbsd.h +1 -0
  639. embedded_postgres/pginstall/include/server/port/pg_bitutils.h +445 -0
  640. embedded_postgres/pginstall/include/server/port/pg_bswap.h +161 -0
  641. embedded_postgres/pginstall/include/server/port/pg_crc32c.h +169 -0
  642. embedded_postgres/pginstall/include/server/port/pg_iovec.h +127 -0
  643. embedded_postgres/pginstall/include/server/port/pg_lfind.h +209 -0
  644. embedded_postgres/pginstall/include/server/port/pg_numa.h +42 -0
  645. embedded_postgres/pginstall/include/server/port/pg_pthread.h +41 -0
  646. embedded_postgres/pginstall/include/server/port/simd.h +422 -0
  647. embedded_postgres/pginstall/include/server/port/solaris.h +35 -0
  648. embedded_postgres/pginstall/include/server/port/win32/arpa/inet.h +3 -0
  649. embedded_postgres/pginstall/include/server/port/win32/dlfcn.h +1 -0
  650. embedded_postgres/pginstall/include/server/port/win32/grp.h +1 -0
  651. embedded_postgres/pginstall/include/server/port/win32/netdb.h +7 -0
  652. embedded_postgres/pginstall/include/server/port/win32/netinet/in.h +3 -0
  653. embedded_postgres/pginstall/include/server/port/win32/netinet/tcp.h +7 -0
  654. embedded_postgres/pginstall/include/server/port/win32/pwd.h +3 -0
  655. embedded_postgres/pginstall/include/server/port/win32/sys/resource.h +20 -0
  656. embedded_postgres/pginstall/include/server/port/win32/sys/select.h +3 -0
  657. embedded_postgres/pginstall/include/server/port/win32/sys/socket.h +34 -0
  658. embedded_postgres/pginstall/include/server/port/win32/sys/un.h +17 -0
  659. embedded_postgres/pginstall/include/server/port/win32/sys/wait.h +3 -0
  660. embedded_postgres/pginstall/include/server/port/win32.h +59 -0
  661. embedded_postgres/pginstall/include/server/port/win32_msvc/dirent.h +34 -0
  662. embedded_postgres/pginstall/include/server/port/win32_msvc/sys/file.h +1 -0
  663. embedded_postgres/pginstall/include/server/port/win32_msvc/sys/param.h +1 -0
  664. embedded_postgres/pginstall/include/server/port/win32_msvc/sys/time.h +1 -0
  665. embedded_postgres/pginstall/include/server/port/win32_msvc/unistd.h +9 -0
  666. embedded_postgres/pginstall/include/server/port/win32_msvc/utime.h +3 -0
  667. embedded_postgres/pginstall/include/server/port/win32_port.h +589 -0
  668. embedded_postgres/pginstall/include/server/port/win32ntdll.h +34 -0
  669. embedded_postgres/pginstall/include/server/port.h +565 -0
  670. embedded_postgres/pginstall/include/server/portability/instr_time.h +197 -0
  671. embedded_postgres/pginstall/include/server/portability/mem.h +48 -0
  672. embedded_postgres/pginstall/include/server/postgres.h +584 -0
  673. embedded_postgres/pginstall/include/server/postgres_ext.h +74 -0
  674. embedded_postgres/pginstall/include/server/postgres_fe.h +34 -0
  675. embedded_postgres/pginstall/include/server/postmaster/autovacuum.h +71 -0
  676. embedded_postgres/pginstall/include/server/postmaster/auxprocess.h +18 -0
  677. embedded_postgres/pginstall/include/server/postmaster/bgworker.h +164 -0
  678. embedded_postgres/pginstall/include/server/postmaster/bgworker_internals.h +57 -0
  679. embedded_postgres/pginstall/include/server/postmaster/bgwriter.h +45 -0
  680. embedded_postgres/pginstall/include/server/postmaster/fork_process.h +17 -0
  681. embedded_postgres/pginstall/include/server/postmaster/interrupt.h +32 -0
  682. embedded_postgres/pginstall/include/server/postmaster/pgarch.h +36 -0
  683. embedded_postgres/pginstall/include/server/postmaster/postmaster.h +145 -0
  684. embedded_postgres/pginstall/include/server/postmaster/startup.h +41 -0
  685. embedded_postgres/pginstall/include/server/postmaster/syslogger.h +105 -0
  686. embedded_postgres/pginstall/include/server/postmaster/walsummarizer.h +35 -0
  687. embedded_postgres/pginstall/include/server/postmaster/walwriter.h +23 -0
  688. embedded_postgres/pginstall/include/server/regex/regcustom.h +99 -0
  689. embedded_postgres/pginstall/include/server/regex/regerrs.h +83 -0
  690. embedded_postgres/pginstall/include/server/regex/regex.h +272 -0
  691. embedded_postgres/pginstall/include/server/regex/regexport.h +61 -0
  692. embedded_postgres/pginstall/include/server/regex/regguts.h +563 -0
  693. embedded_postgres/pginstall/include/server/replication/conflict.h +90 -0
  694. embedded_postgres/pginstall/include/server/replication/decode.h +34 -0
  695. embedded_postgres/pginstall/include/server/replication/logical.h +158 -0
  696. embedded_postgres/pginstall/include/server/replication/logicallauncher.h +34 -0
  697. embedded_postgres/pginstall/include/server/replication/logicalproto.h +280 -0
  698. embedded_postgres/pginstall/include/server/replication/logicalrelation.h +54 -0
  699. embedded_postgres/pginstall/include/server/replication/logicalworker.h +33 -0
  700. embedded_postgres/pginstall/include/server/replication/message.h +42 -0
  701. embedded_postgres/pginstall/include/server/replication/origin.h +83 -0
  702. embedded_postgres/pginstall/include/server/replication/output_plugin.h +250 -0
  703. embedded_postgres/pginstall/include/server/replication/pgoutput.h +39 -0
  704. embedded_postgres/pginstall/include/server/replication/reorderbuffer.h +783 -0
  705. embedded_postgres/pginstall/include/server/replication/slot.h +327 -0
  706. embedded_postgres/pginstall/include/server/replication/slotsync.h +45 -0
  707. embedded_postgres/pginstall/include/server/replication/snapbuild.h +101 -0
  708. embedded_postgres/pginstall/include/server/replication/snapbuild_internal.h +199 -0
  709. embedded_postgres/pginstall/include/server/replication/syncrep.h +110 -0
  710. embedded_postgres/pginstall/include/server/replication/walreceiver.h +513 -0
  711. embedded_postgres/pginstall/include/server/replication/walsender.h +75 -0
  712. embedded_postgres/pginstall/include/server/replication/walsender_private.h +155 -0
  713. embedded_postgres/pginstall/include/server/replication/worker_internal.h +354 -0
  714. embedded_postgres/pginstall/include/server/rewrite/prs2lock.h +46 -0
  715. embedded_postgres/pginstall/include/server/rewrite/rewriteDefine.h +44 -0
  716. embedded_postgres/pginstall/include/server/rewrite/rewriteHandler.h +44 -0
  717. embedded_postgres/pginstall/include/server/rewrite/rewriteManip.h +122 -0
  718. embedded_postgres/pginstall/include/server/rewrite/rewriteRemove.h +21 -0
  719. embedded_postgres/pginstall/include/server/rewrite/rewriteSearchCycle.h +21 -0
  720. embedded_postgres/pginstall/include/server/rewrite/rewriteSupport.h +26 -0
  721. embedded_postgres/pginstall/include/server/rewrite/rowsecurity.h +49 -0
  722. embedded_postgres/pginstall/include/server/snowball/header.h +67 -0
  723. embedded_postgres/pginstall/include/server/snowball/libstemmer/api.h +32 -0
  724. embedded_postgres/pginstall/include/server/snowball/libstemmer/header.h +61 -0
  725. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_basque.h +15 -0
  726. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_catalan.h +15 -0
  727. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_danish.h +15 -0
  728. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_dutch.h +15 -0
  729. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_english.h +15 -0
  730. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_finnish.h +15 -0
  731. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_french.h +15 -0
  732. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_german.h +15 -0
  733. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_indonesian.h +15 -0
  734. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_irish.h +15 -0
  735. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_italian.h +15 -0
  736. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_norwegian.h +15 -0
  737. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_porter.h +15 -0
  738. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_portuguese.h +15 -0
  739. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_spanish.h +15 -0
  740. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_1_swedish.h +15 -0
  741. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_ISO_8859_2_hungarian.h +15 -0
  742. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_KOI8_R_russian.h +15 -0
  743. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_arabic.h +15 -0
  744. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_armenian.h +15 -0
  745. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_basque.h +15 -0
  746. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_catalan.h +15 -0
  747. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_danish.h +15 -0
  748. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_dutch.h +15 -0
  749. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_english.h +15 -0
  750. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_estonian.h +15 -0
  751. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_finnish.h +15 -0
  752. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_french.h +15 -0
  753. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_german.h +15 -0
  754. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_greek.h +15 -0
  755. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_hindi.h +15 -0
  756. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_hungarian.h +15 -0
  757. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_indonesian.h +15 -0
  758. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_irish.h +15 -0
  759. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_italian.h +15 -0
  760. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_lithuanian.h +15 -0
  761. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_nepali.h +15 -0
  762. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_norwegian.h +15 -0
  763. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_porter.h +15 -0
  764. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_portuguese.h +15 -0
  765. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_romanian.h +15 -0
  766. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_russian.h +15 -0
  767. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_serbian.h +15 -0
  768. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_spanish.h +15 -0
  769. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_swedish.h +15 -0
  770. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_tamil.h +15 -0
  771. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_turkish.h +15 -0
  772. embedded_postgres/pginstall/include/server/snowball/libstemmer/stem_UTF_8_yiddish.h +15 -0
  773. embedded_postgres/pginstall/include/server/statistics/extended_stats_internal.h +130 -0
  774. embedded_postgres/pginstall/include/server/statistics/stat_utils.h +43 -0
  775. embedded_postgres/pginstall/include/server/statistics/statistics.h +130 -0
  776. embedded_postgres/pginstall/include/server/storage/aio.h +369 -0
  777. embedded_postgres/pginstall/include/server/storage/aio_internal.h +416 -0
  778. embedded_postgres/pginstall/include/server/storage/aio_subsys.h +37 -0
  779. embedded_postgres/pginstall/include/server/storage/aio_types.h +137 -0
  780. embedded_postgres/pginstall/include/server/storage/barrier.h +46 -0
  781. embedded_postgres/pginstall/include/server/storage/block.h +108 -0
  782. embedded_postgres/pginstall/include/server/storage/buf.h +46 -0
  783. embedded_postgres/pginstall/include/server/storage/buf_internals.h +494 -0
  784. embedded_postgres/pginstall/include/server/storage/buffile.h +59 -0
  785. embedded_postgres/pginstall/include/server/storage/bufmgr.h +424 -0
  786. embedded_postgres/pginstall/include/server/storage/bufpage.h +511 -0
  787. embedded_postgres/pginstall/include/server/storage/bulk_write.h +41 -0
  788. embedded_postgres/pginstall/include/server/storage/checksum.h +24 -0
  789. embedded_postgres/pginstall/include/server/storage/checksum_impl.h +215 -0
  790. embedded_postgres/pginstall/include/server/storage/condition_variable.h +73 -0
  791. embedded_postgres/pginstall/include/server/storage/copydir.h +28 -0
  792. embedded_postgres/pginstall/include/server/storage/dsm.h +61 -0
  793. embedded_postgres/pginstall/include/server/storage/dsm_impl.h +79 -0
  794. embedded_postgres/pginstall/include/server/storage/dsm_registry.h +23 -0
  795. embedded_postgres/pginstall/include/server/storage/fd.h +233 -0
  796. embedded_postgres/pginstall/include/server/storage/fileset.h +40 -0
  797. embedded_postgres/pginstall/include/server/storage/freespace.h +39 -0
  798. embedded_postgres/pginstall/include/server/storage/fsm_internals.h +72 -0
  799. embedded_postgres/pginstall/include/server/storage/indexfsm.h +26 -0
  800. embedded_postgres/pginstall/include/server/storage/io_worker.h +22 -0
  801. embedded_postgres/pginstall/include/server/storage/ipc.h +87 -0
  802. embedded_postgres/pginstall/include/server/storage/item.h +19 -0
  803. embedded_postgres/pginstall/include/server/storage/itemid.h +184 -0
  804. embedded_postgres/pginstall/include/server/storage/itemptr.h +245 -0
  805. embedded_postgres/pginstall/include/server/storage/large_object.h +100 -0
  806. embedded_postgres/pginstall/include/server/storage/latch.h +140 -0
  807. embedded_postgres/pginstall/include/server/storage/lmgr.h +127 -0
  808. embedded_postgres/pginstall/include/server/storage/lock.h +630 -0
  809. embedded_postgres/pginstall/include/server/storage/lockdefs.h +61 -0
  810. embedded_postgres/pginstall/include/server/storage/lwlock.h +234 -0
  811. embedded_postgres/pginstall/include/server/storage/lwlocklist.h +86 -0
  812. embedded_postgres/pginstall/include/server/storage/lwlocknames.h +48 -0
  813. embedded_postgres/pginstall/include/server/storage/md.h +65 -0
  814. embedded_postgres/pginstall/include/server/storage/off.h +57 -0
  815. embedded_postgres/pginstall/include/server/storage/pg_sema.h +61 -0
  816. embedded_postgres/pginstall/include/server/storage/pg_shmem.h +94 -0
  817. embedded_postgres/pginstall/include/server/storage/pmsignal.h +110 -0
  818. embedded_postgres/pginstall/include/server/storage/predicate.h +84 -0
  819. embedded_postgres/pginstall/include/server/storage/predicate_internals.h +478 -0
  820. embedded_postgres/pginstall/include/server/storage/proc.h +516 -0
  821. embedded_postgres/pginstall/include/server/storage/procarray.h +103 -0
  822. embedded_postgres/pginstall/include/server/storage/proclist.h +219 -0
  823. embedded_postgres/pginstall/include/server/storage/proclist_types.h +53 -0
  824. embedded_postgres/pginstall/include/server/storage/procnumber.h +56 -0
  825. embedded_postgres/pginstall/include/server/storage/procsignal.h +95 -0
  826. embedded_postgres/pginstall/include/server/storage/read_stream.h +106 -0
  827. embedded_postgres/pginstall/include/server/storage/reinit.h +30 -0
  828. embedded_postgres/pginstall/include/server/storage/relfilelocator.h +100 -0
  829. embedded_postgres/pginstall/include/server/storage/s_lock.h +755 -0
  830. embedded_postgres/pginstall/include/server/storage/sharedfileset.h +37 -0
  831. embedded_postgres/pginstall/include/server/storage/shm_mq.h +86 -0
  832. embedded_postgres/pginstall/include/server/storage/shm_toc.h +58 -0
  833. embedded_postgres/pginstall/include/server/storage/shmem.h +62 -0
  834. embedded_postgres/pginstall/include/server/storage/sinval.h +167 -0
  835. embedded_postgres/pginstall/include/server/storage/sinvaladt.h +41 -0
  836. embedded_postgres/pginstall/include/server/storage/smgr.h +144 -0
  837. embedded_postgres/pginstall/include/server/storage/spin.h +65 -0
  838. embedded_postgres/pginstall/include/server/storage/standby.h +109 -0
  839. embedded_postgres/pginstall/include/server/storage/standbydefs.h +74 -0
  840. embedded_postgres/pginstall/include/server/storage/sync.h +66 -0
  841. embedded_postgres/pginstall/include/server/storage/waiteventset.h +98 -0
  842. embedded_postgres/pginstall/include/server/tcop/backend_startup.h +122 -0
  843. embedded_postgres/pginstall/include/server/tcop/cmdtag.h +62 -0
  844. embedded_postgres/pginstall/include/server/tcop/cmdtaglist.h +219 -0
  845. embedded_postgres/pginstall/include/server/tcop/deparse_utility.h +108 -0
  846. embedded_postgres/pginstall/include/server/tcop/dest.h +148 -0
  847. embedded_postgres/pginstall/include/server/tcop/fastpath.h +20 -0
  848. embedded_postgres/pginstall/include/server/tcop/pquery.h +51 -0
  849. embedded_postgres/pginstall/include/server/tcop/tcopprot.h +94 -0
  850. embedded_postgres/pginstall/include/server/tcop/utility.h +112 -0
  851. embedded_postgres/pginstall/include/server/tsearch/dicts/regis.h +49 -0
  852. embedded_postgres/pginstall/include/server/tsearch/dicts/spell.h +241 -0
  853. embedded_postgres/pginstall/include/server/tsearch/ts_cache.h +96 -0
  854. embedded_postgres/pginstall/include/server/tsearch/ts_locale.h +74 -0
  855. embedded_postgres/pginstall/include/server/tsearch/ts_public.h +159 -0
  856. embedded_postgres/pginstall/include/server/tsearch/ts_type.h +290 -0
  857. embedded_postgres/pginstall/include/server/tsearch/ts_utils.h +281 -0
  858. embedded_postgres/pginstall/include/server/utils/acl.h +293 -0
  859. embedded_postgres/pginstall/include/server/utils/aclchk_internal.h +45 -0
  860. embedded_postgres/pginstall/include/server/utils/array.h +481 -0
  861. embedded_postgres/pginstall/include/server/utils/arrayaccess.h +118 -0
  862. embedded_postgres/pginstall/include/server/utils/ascii.h +84 -0
  863. embedded_postgres/pginstall/include/server/utils/attoptcache.h +28 -0
  864. embedded_postgres/pginstall/include/server/utils/backend_progress.h +46 -0
  865. embedded_postgres/pginstall/include/server/utils/backend_status.h +349 -0
  866. embedded_postgres/pginstall/include/server/utils/builtins.h +140 -0
  867. embedded_postgres/pginstall/include/server/utils/bytea.h +28 -0
  868. embedded_postgres/pginstall/include/server/utils/cash.h +35 -0
  869. embedded_postgres/pginstall/include/server/utils/catcache.h +232 -0
  870. embedded_postgres/pginstall/include/server/utils/combocid.h +28 -0
  871. embedded_postgres/pginstall/include/server/utils/conffiles.h +27 -0
  872. embedded_postgres/pginstall/include/server/utils/date.h +118 -0
  873. embedded_postgres/pginstall/include/server/utils/datetime.h +369 -0
  874. embedded_postgres/pginstall/include/server/utils/datum.h +76 -0
  875. embedded_postgres/pginstall/include/server/utils/dsa.h +166 -0
  876. embedded_postgres/pginstall/include/server/utils/dynahash.h +20 -0
  877. embedded_postgres/pginstall/include/server/utils/elog.h +532 -0
  878. embedded_postgres/pginstall/include/server/utils/errcodes.h +356 -0
  879. embedded_postgres/pginstall/include/server/utils/evtcache.h +38 -0
  880. embedded_postgres/pginstall/include/server/utils/expandeddatum.h +170 -0
  881. embedded_postgres/pginstall/include/server/utils/expandedrecord.h +241 -0
  882. embedded_postgres/pginstall/include/server/utils/float.h +357 -0
  883. embedded_postgres/pginstall/include/server/utils/fmgroids.h +3430 -0
  884. embedded_postgres/pginstall/include/server/utils/fmgrprotos.h +2982 -0
  885. embedded_postgres/pginstall/include/server/utils/fmgrtab.h +49 -0
  886. embedded_postgres/pginstall/include/server/utils/formatting.h +35 -0
  887. embedded_postgres/pginstall/include/server/utils/freepage.h +99 -0
  888. embedded_postgres/pginstall/include/server/utils/funccache.h +134 -0
  889. embedded_postgres/pginstall/include/server/utils/geo_decls.h +285 -0
  890. embedded_postgres/pginstall/include/server/utils/guc.h +489 -0
  891. embedded_postgres/pginstall/include/server/utils/guc_hooks.h +178 -0
  892. embedded_postgres/pginstall/include/server/utils/guc_tables.h +341 -0
  893. embedded_postgres/pginstall/include/server/utils/help_config.h +17 -0
  894. embedded_postgres/pginstall/include/server/utils/hsearch.h +158 -0
  895. embedded_postgres/pginstall/include/server/utils/index_selfuncs.h +74 -0
  896. embedded_postgres/pginstall/include/server/utils/inet.h +184 -0
  897. embedded_postgres/pginstall/include/server/utils/injection_point.h +54 -0
  898. embedded_postgres/pginstall/include/server/utils/inval.h +84 -0
  899. embedded_postgres/pginstall/include/server/utils/json.h +33 -0
  900. embedded_postgres/pginstall/include/server/utils/jsonb.h +440 -0
  901. embedded_postgres/pginstall/include/server/utils/jsonfuncs.h +99 -0
  902. embedded_postgres/pginstall/include/server/utils/jsonpath.h +310 -0
  903. embedded_postgres/pginstall/include/server/utils/logtape.h +77 -0
  904. embedded_postgres/pginstall/include/server/utils/lsyscache.h +224 -0
  905. embedded_postgres/pginstall/include/server/utils/memdebug.h +82 -0
  906. embedded_postgres/pginstall/include/server/utils/memutils.h +322 -0
  907. embedded_postgres/pginstall/include/server/utils/memutils_internal.h +176 -0
  908. embedded_postgres/pginstall/include/server/utils/memutils_memorychunk.h +253 -0
  909. embedded_postgres/pginstall/include/server/utils/multirangetypes.h +150 -0
  910. embedded_postgres/pginstall/include/server/utils/numeric.h +115 -0
  911. embedded_postgres/pginstall/include/server/utils/palloc.h +165 -0
  912. embedded_postgres/pginstall/include/server/utils/partcache.h +103 -0
  913. embedded_postgres/pginstall/include/server/utils/pg_crc.h +107 -0
  914. embedded_postgres/pginstall/include/server/utils/pg_locale.h +185 -0
  915. embedded_postgres/pginstall/include/server/utils/pg_lsn.h +38 -0
  916. embedded_postgres/pginstall/include/server/utils/pg_rusage.h +32 -0
  917. embedded_postgres/pginstall/include/server/utils/pgstat_internal.h +945 -0
  918. embedded_postgres/pginstall/include/server/utils/pgstat_kind.h +72 -0
  919. embedded_postgres/pginstall/include/server/utils/pidfile.h +56 -0
  920. embedded_postgres/pginstall/include/server/utils/plancache.h +256 -0
  921. embedded_postgres/pginstall/include/server/utils/portal.h +251 -0
  922. embedded_postgres/pginstall/include/server/utils/probes.h +114 -0
  923. embedded_postgres/pginstall/include/server/utils/ps_status.h +47 -0
  924. embedded_postgres/pginstall/include/server/utils/queryenvironment.h +74 -0
  925. embedded_postgres/pginstall/include/server/utils/rangetypes.h +168 -0
  926. embedded_postgres/pginstall/include/server/utils/regproc.h +39 -0
  927. embedded_postgres/pginstall/include/server/utils/rel.h +731 -0
  928. embedded_postgres/pginstall/include/server/utils/relcache.h +163 -0
  929. embedded_postgres/pginstall/include/server/utils/relfilenumbermap.h +21 -0
  930. embedded_postgres/pginstall/include/server/utils/relmapper.h +73 -0
  931. embedded_postgres/pginstall/include/server/utils/relptr.h +93 -0
  932. embedded_postgres/pginstall/include/server/utils/reltrigger.h +81 -0
  933. embedded_postgres/pginstall/include/server/utils/resowner.h +172 -0
  934. embedded_postgres/pginstall/include/server/utils/rls.h +50 -0
  935. embedded_postgres/pginstall/include/server/utils/ruleutils.h +57 -0
  936. embedded_postgres/pginstall/include/server/utils/sampling.h +64 -0
  937. embedded_postgres/pginstall/include/server/utils/selfuncs.h +251 -0
  938. embedded_postgres/pginstall/include/server/utils/sharedtuplestore.h +61 -0
  939. embedded_postgres/pginstall/include/server/utils/skipsupport.h +98 -0
  940. embedded_postgres/pginstall/include/server/utils/snapmgr.h +122 -0
  941. embedded_postgres/pginstall/include/server/utils/snapshot.h +212 -0
  942. embedded_postgres/pginstall/include/server/utils/sortsupport.h +391 -0
  943. embedded_postgres/pginstall/include/server/utils/spccache.h +21 -0
  944. embedded_postgres/pginstall/include/server/utils/syscache.h +136 -0
  945. embedded_postgres/pginstall/include/server/utils/timeout.h +96 -0
  946. embedded_postgres/pginstall/include/server/utils/timestamp.h +159 -0
  947. embedded_postgres/pginstall/include/server/utils/tuplesort.h +480 -0
  948. embedded_postgres/pginstall/include/server/utils/tuplestore.h +91 -0
  949. embedded_postgres/pginstall/include/server/utils/typcache.h +215 -0
  950. embedded_postgres/pginstall/include/server/utils/tzparser.h +39 -0
  951. embedded_postgres/pginstall/include/server/utils/usercontext.h +26 -0
  952. embedded_postgres/pginstall/include/server/utils/uuid.h +42 -0
  953. embedded_postgres/pginstall/include/server/utils/varbit.h +89 -0
  954. embedded_postgres/pginstall/include/server/utils/varlena.h +53 -0
  955. embedded_postgres/pginstall/include/server/utils/wait_classes.h +29 -0
  956. embedded_postgres/pginstall/include/server/utils/wait_event.h +92 -0
  957. embedded_postgres/pginstall/include/server/utils/wait_event_types.h +225 -0
  958. embedded_postgres/pginstall/include/server/utils/xid8.h +32 -0
  959. embedded_postgres/pginstall/include/server/utils/xml.h +94 -0
  960. embedded_postgres/pginstall/include/server/varatt.h +358 -0
  961. embedded_postgres/pginstall/include/server/windowapi.h +64 -0
  962. embedded_postgres/pginstall/include/sql3types.h +43 -0
  963. embedded_postgres/pginstall/include/sqlca.h +66 -0
  964. embedded_postgres/pginstall/include/sqlda-compat.h +47 -0
  965. embedded_postgres/pginstall/include/sqlda-native.h +43 -0
  966. embedded_postgres/pginstall/include/sqlda.h +18 -0
  967. embedded_postgres/pginstall/lib/_int.dll +0 -0
  968. embedded_postgres/pginstall/lib/amcheck.dll +0 -0
  969. embedded_postgres/pginstall/lib/auth_delay.dll +0 -0
  970. embedded_postgres/pginstall/lib/auto_explain.dll +0 -0
  971. embedded_postgres/pginstall/lib/autoinc.dll +0 -0
  972. embedded_postgres/pginstall/lib/basebackup_to_shell.dll +0 -0
  973. embedded_postgres/pginstall/lib/basic_archive.dll +0 -0
  974. embedded_postgres/pginstall/lib/bloom.dll +0 -0
  975. embedded_postgres/pginstall/lib/btree_gin.dll +0 -0
  976. embedded_postgres/pginstall/lib/btree_gist.dll +0 -0
  977. embedded_postgres/pginstall/lib/citext.dll +0 -0
  978. embedded_postgres/pginstall/lib/cube.dll +0 -0
  979. embedded_postgres/pginstall/lib/cyrillic_and_mic.dll +0 -0
  980. embedded_postgres/pginstall/lib/dblink.dll +0 -0
  981. embedded_postgres/pginstall/lib/dict_int.dll +0 -0
  982. embedded_postgres/pginstall/lib/dict_snowball.dll +0 -0
  983. embedded_postgres/pginstall/lib/dict_xsyn.dll +0 -0
  984. embedded_postgres/pginstall/lib/earthdistance.dll +0 -0
  985. embedded_postgres/pginstall/lib/euc2004_sjis2004.dll +0 -0
  986. embedded_postgres/pginstall/lib/euc_cn_and_mic.dll +0 -0
  987. embedded_postgres/pginstall/lib/euc_jp_and_sjis.dll +0 -0
  988. embedded_postgres/pginstall/lib/euc_kr_and_mic.dll +0 -0
  989. embedded_postgres/pginstall/lib/euc_tw_and_big5.dll +0 -0
  990. embedded_postgres/pginstall/lib/file_fdw.dll +0 -0
  991. embedded_postgres/pginstall/lib/fuzzystrmatch.dll +0 -0
  992. embedded_postgres/pginstall/lib/hstore.dll +0 -0
  993. embedded_postgres/pginstall/lib/insert_username.dll +0 -0
  994. embedded_postgres/pginstall/lib/isn.dll +0 -0
  995. embedded_postgres/pginstall/lib/latin2_and_win1250.dll +0 -0
  996. embedded_postgres/pginstall/lib/latin_and_mic.dll +0 -0
  997. embedded_postgres/pginstall/lib/libecpg.a +0 -0
  998. embedded_postgres/pginstall/lib/libecpg.dll +0 -0
  999. embedded_postgres/pginstall/lib/libecpg_compat.a +0 -0
  1000. embedded_postgres/pginstall/lib/libecpg_compat.dll +0 -0
  1001. embedded_postgres/pginstall/lib/libpgcommon.a +0 -0
  1002. embedded_postgres/pginstall/lib/libpgcommon_shlib.a +0 -0
  1003. embedded_postgres/pginstall/lib/libpgfeutils.a +0 -0
  1004. embedded_postgres/pginstall/lib/libpgport.a +0 -0
  1005. embedded_postgres/pginstall/lib/libpgport_shlib.a +0 -0
  1006. embedded_postgres/pginstall/lib/libpgtypes.a +0 -0
  1007. embedded_postgres/pginstall/lib/libpgtypes.dll +0 -0
  1008. embedded_postgres/pginstall/lib/libpostgres.a +0 -0
  1009. embedded_postgres/pginstall/lib/libpq.a +0 -0
  1010. embedded_postgres/pginstall/lib/libpq.dll +0 -0
  1011. embedded_postgres/pginstall/lib/libpqwalreceiver.dll +0 -0
  1012. embedded_postgres/pginstall/lib/lo.dll +0 -0
  1013. embedded_postgres/pginstall/lib/ltree.dll +0 -0
  1014. embedded_postgres/pginstall/lib/moddatetime.dll +0 -0
  1015. embedded_postgres/pginstall/lib/pageinspect.dll +0 -0
  1016. embedded_postgres/pginstall/lib/passwordcheck.dll +0 -0
  1017. embedded_postgres/pginstall/lib/pg_buffercache.dll +0 -0
  1018. embedded_postgres/pginstall/lib/pg_freespacemap.dll +0 -0
  1019. embedded_postgres/pginstall/lib/pg_logicalinspect.dll +0 -0
  1020. embedded_postgres/pginstall/lib/pg_overexplain.dll +0 -0
  1021. embedded_postgres/pginstall/lib/pg_prewarm.dll +0 -0
  1022. embedded_postgres/pginstall/lib/pg_stat_statements.dll +0 -0
  1023. embedded_postgres/pginstall/lib/pg_surgery.dll +0 -0
  1024. embedded_postgres/pginstall/lib/pg_trgm.dll +0 -0
  1025. embedded_postgres/pginstall/lib/pg_visibility.dll +0 -0
  1026. embedded_postgres/pginstall/lib/pg_walinspect.dll +0 -0
  1027. embedded_postgres/pginstall/lib/pgevent.dll +0 -0
  1028. embedded_postgres/pginstall/lib/pgoutput.dll +0 -0
  1029. embedded_postgres/pginstall/lib/pgrowlocks.dll +0 -0
  1030. embedded_postgres/pginstall/lib/pgstattuple.dll +0 -0
  1031. embedded_postgres/pginstall/lib/pgxs/config/install-sh +527 -0
  1032. embedded_postgres/pginstall/lib/pgxs/config/missing +54 -0
  1033. embedded_postgres/pginstall/lib/pgxs/src/Makefile.global +1139 -0
  1034. embedded_postgres/pginstall/lib/pgxs/src/Makefile.port +83 -0
  1035. embedded_postgres/pginstall/lib/pgxs/src/Makefile.shlib +436 -0
  1036. embedded_postgres/pginstall/lib/pgxs/src/makefiles/pgxs.mk +476 -0
  1037. embedded_postgres/pginstall/lib/pgxs/src/nls-global.mk +182 -0
  1038. embedded_postgres/pginstall/lib/pgxs/src/test/isolation/isolationtester.exe +0 -0
  1039. embedded_postgres/pginstall/lib/pgxs/src/test/isolation/pg_isolation_regress.exe +0 -0
  1040. embedded_postgres/pginstall/lib/pgxs/src/test/regress/pg_regress.exe +0 -0
  1041. embedded_postgres/pginstall/lib/pkgconfig/libecpg.pc +14 -0
  1042. embedded_postgres/pginstall/lib/pkgconfig/libecpg_compat.pc +14 -0
  1043. embedded_postgres/pginstall/lib/pkgconfig/libpgtypes.pc +14 -0
  1044. embedded_postgres/pginstall/lib/pkgconfig/libpq.pc +14 -0
  1045. embedded_postgres/pginstall/lib/plpgsql.dll +0 -0
  1046. embedded_postgres/pginstall/lib/postgres_fdw.dll +0 -0
  1047. embedded_postgres/pginstall/lib/refint.dll +0 -0
  1048. embedded_postgres/pginstall/lib/seg.dll +0 -0
  1049. embedded_postgres/pginstall/lib/tablefunc.dll +0 -0
  1050. embedded_postgres/pginstall/lib/tcn.dll +0 -0
  1051. embedded_postgres/pginstall/lib/test_decoding.dll +0 -0
  1052. embedded_postgres/pginstall/lib/tsm_system_rows.dll +0 -0
  1053. embedded_postgres/pginstall/lib/tsm_system_time.dll +0 -0
  1054. embedded_postgres/pginstall/lib/unaccent.dll +0 -0
  1055. embedded_postgres/pginstall/lib/utf8_and_big5.dll +0 -0
  1056. embedded_postgres/pginstall/lib/utf8_and_cyrillic.dll +0 -0
  1057. embedded_postgres/pginstall/lib/utf8_and_euc2004.dll +0 -0
  1058. embedded_postgres/pginstall/lib/utf8_and_euc_cn.dll +0 -0
  1059. embedded_postgres/pginstall/lib/utf8_and_euc_jp.dll +0 -0
  1060. embedded_postgres/pginstall/lib/utf8_and_euc_kr.dll +0 -0
  1061. embedded_postgres/pginstall/lib/utf8_and_euc_tw.dll +0 -0
  1062. embedded_postgres/pginstall/lib/utf8_and_gb18030.dll +0 -0
  1063. embedded_postgres/pginstall/lib/utf8_and_gbk.dll +0 -0
  1064. embedded_postgres/pginstall/lib/utf8_and_iso8859.dll +0 -0
  1065. embedded_postgres/pginstall/lib/utf8_and_iso8859_1.dll +0 -0
  1066. embedded_postgres/pginstall/lib/utf8_and_johab.dll +0 -0
  1067. embedded_postgres/pginstall/lib/utf8_and_sjis.dll +0 -0
  1068. embedded_postgres/pginstall/lib/utf8_and_sjis2004.dll +0 -0
  1069. embedded_postgres/pginstall/lib/utf8_and_uhc.dll +0 -0
  1070. embedded_postgres/pginstall/lib/utf8_and_win.dll +0 -0
  1071. embedded_postgres/pginstall/lib/vector.dll +0 -0
  1072. embedded_postgres/pginstall/share/doc/extension/autoinc.example +35 -0
  1073. embedded_postgres/pginstall/share/doc/extension/insert_username.example +20 -0
  1074. embedded_postgres/pginstall/share/doc/extension/moddatetime.example +27 -0
  1075. embedded_postgres/pginstall/share/doc/extension/refint.example +82 -0
  1076. embedded_postgres/pginstall/share/errcodes.txt +501 -0
  1077. embedded_postgres/pginstall/share/extension/amcheck--1.0--1.1.sql +29 -0
  1078. embedded_postgres/pginstall/share/extension/amcheck--1.0.sql +24 -0
  1079. embedded_postgres/pginstall/share/extension/amcheck--1.1--1.2.sql +19 -0
  1080. embedded_postgres/pginstall/share/extension/amcheck--1.2--1.3.sql +30 -0
  1081. embedded_postgres/pginstall/share/extension/amcheck--1.3--1.4.sql +29 -0
  1082. embedded_postgres/pginstall/share/extension/amcheck--1.4--1.5.sql +14 -0
  1083. embedded_postgres/pginstall/share/extension/amcheck.control +5 -0
  1084. embedded_postgres/pginstall/share/extension/autoinc--1.0.sql +9 -0
  1085. embedded_postgres/pginstall/share/extension/autoinc.control +5 -0
  1086. embedded_postgres/pginstall/share/extension/bloom--1.0.sql +25 -0
  1087. embedded_postgres/pginstall/share/extension/bloom.control +5 -0
  1088. embedded_postgres/pginstall/share/extension/btree_gin--1.0--1.1.sql +35 -0
  1089. embedded_postgres/pginstall/share/extension/btree_gin--1.0.sql +689 -0
  1090. embedded_postgres/pginstall/share/extension/btree_gin--1.1--1.2.sql +47 -0
  1091. embedded_postgres/pginstall/share/extension/btree_gin--1.2--1.3.sql +128 -0
  1092. embedded_postgres/pginstall/share/extension/btree_gin.control +6 -0
  1093. embedded_postgres/pginstall/share/extension/btree_gist--1.0--1.1.sql +127 -0
  1094. embedded_postgres/pginstall/share/extension/btree_gist--1.1--1.2.sql +79 -0
  1095. embedded_postgres/pginstall/share/extension/btree_gist--1.2--1.3.sql +65 -0
  1096. embedded_postgres/pginstall/share/extension/btree_gist--1.2.sql +1570 -0
  1097. embedded_postgres/pginstall/share/extension/btree_gist--1.3--1.4.sql +64 -0
  1098. embedded_postgres/pginstall/share/extension/btree_gist--1.4--1.5.sql +69 -0
  1099. embedded_postgres/pginstall/share/extension/btree_gist--1.5--1.6.sql +191 -0
  1100. embedded_postgres/pginstall/share/extension/btree_gist--1.6--1.7.sql +77 -0
  1101. embedded_postgres/pginstall/share/extension/btree_gist--1.7--1.8.sql +284 -0
  1102. embedded_postgres/pginstall/share/extension/btree_gist.control +6 -0
  1103. embedded_postgres/pginstall/share/extension/citext--1.0--1.1.sql +21 -0
  1104. embedded_postgres/pginstall/share/extension/citext--1.1--1.2.sql +68 -0
  1105. embedded_postgres/pginstall/share/extension/citext--1.2--1.3.sql +21 -0
  1106. embedded_postgres/pginstall/share/extension/citext--1.3--1.4.sql +12 -0
  1107. embedded_postgres/pginstall/share/extension/citext--1.4--1.5.sql +88 -0
  1108. embedded_postgres/pginstall/share/extension/citext--1.4.sql +501 -0
  1109. embedded_postgres/pginstall/share/extension/citext--1.5--1.6.sql +12 -0
  1110. embedded_postgres/pginstall/share/extension/citext--1.6--1.7.sql +45 -0
  1111. embedded_postgres/pginstall/share/extension/citext--1.7--1.8.sql +60 -0
  1112. embedded_postgres/pginstall/share/extension/citext.control +6 -0
  1113. embedded_postgres/pginstall/share/extension/cube--1.0--1.1.sql +59 -0
  1114. embedded_postgres/pginstall/share/extension/cube--1.1--1.2.sql +75 -0
  1115. embedded_postgres/pginstall/share/extension/cube--1.2--1.3.sql +12 -0
  1116. embedded_postgres/pginstall/share/extension/cube--1.2.sql +378 -0
  1117. embedded_postgres/pginstall/share/extension/cube--1.3--1.4.sql +58 -0
  1118. embedded_postgres/pginstall/share/extension/cube--1.4--1.5.sql +21 -0
  1119. embedded_postgres/pginstall/share/extension/cube.control +6 -0
  1120. embedded_postgres/pginstall/share/extension/dblink--1.0--1.1.sql +14 -0
  1121. embedded_postgres/pginstall/share/extension/dblink--1.1--1.2.sql +46 -0
  1122. embedded_postgres/pginstall/share/extension/dblink--1.2.sql +235 -0
  1123. embedded_postgres/pginstall/share/extension/dblink.control +5 -0
  1124. embedded_postgres/pginstall/share/extension/dict_int--1.0.sql +25 -0
  1125. embedded_postgres/pginstall/share/extension/dict_int.control +6 -0
  1126. embedded_postgres/pginstall/share/extension/dict_xsyn--1.0.sql +25 -0
  1127. embedded_postgres/pginstall/share/extension/dict_xsyn.control +5 -0
  1128. embedded_postgres/pginstall/share/extension/earthdistance--1.0--1.1.sql +14 -0
  1129. embedded_postgres/pginstall/share/extension/earthdistance--1.1--1.2.sql +73 -0
  1130. embedded_postgres/pginstall/share/extension/earthdistance--1.1.sql +98 -0
  1131. embedded_postgres/pginstall/share/extension/earthdistance.control +6 -0
  1132. embedded_postgres/pginstall/share/extension/file_fdw--1.0.sql +18 -0
  1133. embedded_postgres/pginstall/share/extension/file_fdw.control +5 -0
  1134. embedded_postgres/pginstall/share/extension/fuzzystrmatch--1.0--1.1.sql +15 -0
  1135. embedded_postgres/pginstall/share/extension/fuzzystrmatch--1.1--1.2.sql +8 -0
  1136. embedded_postgres/pginstall/share/extension/fuzzystrmatch--1.1.sql +44 -0
  1137. embedded_postgres/pginstall/share/extension/fuzzystrmatch.control +6 -0
  1138. embedded_postgres/pginstall/share/extension/hstore--1.1--1.2.sql +53 -0
  1139. embedded_postgres/pginstall/share/extension/hstore--1.2--1.3.sql +17 -0
  1140. embedded_postgres/pginstall/share/extension/hstore--1.3--1.4.sql +99 -0
  1141. embedded_postgres/pginstall/share/extension/hstore--1.4--1.5.sql +14 -0
  1142. embedded_postgres/pginstall/share/extension/hstore--1.4.sql +550 -0
  1143. embedded_postgres/pginstall/share/extension/hstore--1.5--1.6.sql +12 -0
  1144. embedded_postgres/pginstall/share/extension/hstore--1.6--1.7.sql +27 -0
  1145. embedded_postgres/pginstall/share/extension/hstore--1.7--1.8.sql +17 -0
  1146. embedded_postgres/pginstall/share/extension/hstore.control +6 -0
  1147. embedded_postgres/pginstall/share/extension/insert_username--1.0.sql +9 -0
  1148. embedded_postgres/pginstall/share/extension/insert_username.control +5 -0
  1149. embedded_postgres/pginstall/share/extension/intagg--1.0--1.1.sql +23 -0
  1150. embedded_postgres/pginstall/share/extension/intagg--1.1.sql +37 -0
  1151. embedded_postgres/pginstall/share/extension/intagg.control +4 -0
  1152. embedded_postgres/pginstall/share/extension/intarray--1.0--1.1.sql +49 -0
  1153. embedded_postgres/pginstall/share/extension/intarray--1.1--1.2.sql +94 -0
  1154. embedded_postgres/pginstall/share/extension/intarray--1.2--1.3.sql +20 -0
  1155. embedded_postgres/pginstall/share/extension/intarray--1.2.sql +520 -0
  1156. embedded_postgres/pginstall/share/extension/intarray--1.3--1.4.sql +21 -0
  1157. embedded_postgres/pginstall/share/extension/intarray--1.4--1.5.sql +8 -0
  1158. embedded_postgres/pginstall/share/extension/intarray.control +6 -0
  1159. embedded_postgres/pginstall/share/extension/isn--1.0--1.1.sql +250 -0
  1160. embedded_postgres/pginstall/share/extension/isn--1.1--1.2.sql +228 -0
  1161. embedded_postgres/pginstall/share/extension/isn--1.1.sql +3434 -0
  1162. embedded_postgres/pginstall/share/extension/isn--1.2--1.3.sql +7 -0
  1163. embedded_postgres/pginstall/share/extension/isn.control +6 -0
  1164. embedded_postgres/pginstall/share/extension/lo--1.0--1.1.sql +6 -0
  1165. embedded_postgres/pginstall/share/extension/lo--1.1--1.2.sql +8 -0
  1166. embedded_postgres/pginstall/share/extension/lo--1.1.sql +25 -0
  1167. embedded_postgres/pginstall/share/extension/lo.control +6 -0
  1168. embedded_postgres/pginstall/share/extension/ltree--1.0--1.1.sql +115 -0
  1169. embedded_postgres/pginstall/share/extension/ltree--1.1--1.2.sql +139 -0
  1170. embedded_postgres/pginstall/share/extension/ltree--1.1.sql +872 -0
  1171. embedded_postgres/pginstall/share/extension/ltree--1.2--1.3.sql +23 -0
  1172. embedded_postgres/pginstall/share/extension/ltree.control +6 -0
  1173. embedded_postgres/pginstall/share/extension/moddatetime--1.0.sql +9 -0
  1174. embedded_postgres/pginstall/share/extension/moddatetime.control +5 -0
  1175. embedded_postgres/pginstall/share/extension/pageinspect--1.0--1.1.sql +18 -0
  1176. embedded_postgres/pginstall/share/extension/pageinspect--1.1--1.2.sql +18 -0
  1177. embedded_postgres/pginstall/share/extension/pageinspect--1.10--1.11.sql +28 -0
  1178. embedded_postgres/pginstall/share/extension/pageinspect--1.11--1.12.sql +40 -0
  1179. embedded_postgres/pginstall/share/extension/pageinspect--1.12--1.13.sql +74 -0
  1180. embedded_postgres/pginstall/share/extension/pageinspect--1.2--1.3.sql +82 -0
  1181. embedded_postgres/pginstall/share/extension/pageinspect--1.3--1.4.sql +118 -0
  1182. embedded_postgres/pginstall/share/extension/pageinspect--1.4--1.5.sql +24 -0
  1183. embedded_postgres/pginstall/share/extension/pageinspect--1.5--1.6.sql +99 -0
  1184. embedded_postgres/pginstall/share/extension/pageinspect--1.5.sql +279 -0
  1185. embedded_postgres/pginstall/share/extension/pageinspect--1.6--1.7.sql +26 -0
  1186. embedded_postgres/pginstall/share/extension/pageinspect--1.7--1.8.sql +69 -0
  1187. embedded_postgres/pginstall/share/extension/pageinspect--1.8--1.9.sql +137 -0
  1188. embedded_postgres/pginstall/share/extension/pageinspect--1.9--1.10.sql +21 -0
  1189. embedded_postgres/pginstall/share/extension/pageinspect.control +5 -0
  1190. embedded_postgres/pginstall/share/extension/pg_buffercache--1.0--1.1.sql +11 -0
  1191. embedded_postgres/pginstall/share/extension/pg_buffercache--1.1--1.2.sql +6 -0
  1192. embedded_postgres/pginstall/share/extension/pg_buffercache--1.2--1.3.sql +7 -0
  1193. embedded_postgres/pginstall/share/extension/pg_buffercache--1.2.sql +21 -0
  1194. embedded_postgres/pginstall/share/extension/pg_buffercache--1.3--1.4.sql +28 -0
  1195. embedded_postgres/pginstall/share/extension/pg_buffercache--1.4--1.5.sql +6 -0
  1196. embedded_postgres/pginstall/share/extension/pg_buffercache--1.5--1.6.sql +46 -0
  1197. embedded_postgres/pginstall/share/extension/pg_buffercache.control +5 -0
  1198. embedded_postgres/pginstall/share/extension/pg_freespacemap--1.0--1.1.sql +7 -0
  1199. embedded_postgres/pginstall/share/extension/pg_freespacemap--1.1--1.2.sql +7 -0
  1200. embedded_postgres/pginstall/share/extension/pg_freespacemap--1.1.sql +25 -0
  1201. embedded_postgres/pginstall/share/extension/pg_freespacemap--1.2--1.3.sql +13 -0
  1202. embedded_postgres/pginstall/share/extension/pg_freespacemap.control +5 -0
  1203. embedded_postgres/pginstall/share/extension/pg_logicalinspect--1.0.sql +43 -0
  1204. embedded_postgres/pginstall/share/extension/pg_logicalinspect.control +5 -0
  1205. embedded_postgres/pginstall/share/extension/pg_prewarm--1.0--1.1.sql +6 -0
  1206. embedded_postgres/pginstall/share/extension/pg_prewarm--1.1--1.2.sql +14 -0
  1207. embedded_postgres/pginstall/share/extension/pg_prewarm--1.1.sql +14 -0
  1208. embedded_postgres/pginstall/share/extension/pg_prewarm.control +5 -0
  1209. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.0--1.1.sql +42 -0
  1210. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.1--1.2.sql +43 -0
  1211. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.10--1.11.sql +82 -0
  1212. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.11--1.12.sql +76 -0
  1213. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.2--1.3.sql +47 -0
  1214. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.3--1.4.sql +7 -0
  1215. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.4--1.5.sql +6 -0
  1216. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.4.sql +48 -0
  1217. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.5--1.6.sql +7 -0
  1218. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.6--1.7.sql +22 -0
  1219. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.7--1.8.sql +56 -0
  1220. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.8--1.9.sql +71 -0
  1221. embedded_postgres/pginstall/share/extension/pg_stat_statements--1.9--1.10.sql +67 -0
  1222. embedded_postgres/pginstall/share/extension/pg_stat_statements.control +5 -0
  1223. embedded_postgres/pginstall/share/extension/pg_surgery--1.0.sql +18 -0
  1224. embedded_postgres/pginstall/share/extension/pg_surgery.control +5 -0
  1225. embedded_postgres/pginstall/share/extension/pg_trgm--1.0--1.1.sql +12 -0
  1226. embedded_postgres/pginstall/share/extension/pg_trgm--1.1--1.2.sql +74 -0
  1227. embedded_postgres/pginstall/share/extension/pg_trgm--1.2--1.3.sql +65 -0
  1228. embedded_postgres/pginstall/share/extension/pg_trgm--1.3--1.4.sql +68 -0
  1229. embedded_postgres/pginstall/share/extension/pg_trgm--1.3.sql +254 -0
  1230. embedded_postgres/pginstall/share/extension/pg_trgm--1.4--1.5.sql +23 -0
  1231. embedded_postgres/pginstall/share/extension/pg_trgm--1.5--1.6.sql +10 -0
  1232. embedded_postgres/pginstall/share/extension/pg_trgm.control +6 -0
  1233. embedded_postgres/pginstall/share/extension/pg_visibility--1.0--1.1.sql +24 -0
  1234. embedded_postgres/pginstall/share/extension/pg_visibility--1.1--1.2.sql +13 -0
  1235. embedded_postgres/pginstall/share/extension/pg_visibility--1.1.sql +75 -0
  1236. embedded_postgres/pginstall/share/extension/pg_visibility.control +5 -0
  1237. embedded_postgres/pginstall/share/extension/pg_walinspect--1.0--1.1.sql +42 -0
  1238. embedded_postgres/pginstall/share/extension/pg_walinspect--1.0.sql +118 -0
  1239. embedded_postgres/pginstall/share/extension/pg_walinspect.control +5 -0
  1240. embedded_postgres/pginstall/share/extension/pgrowlocks--1.0--1.1.sql +17 -0
  1241. embedded_postgres/pginstall/share/extension/pgrowlocks--1.1--1.2.sql +6 -0
  1242. embedded_postgres/pginstall/share/extension/pgrowlocks--1.2.sql +15 -0
  1243. embedded_postgres/pginstall/share/extension/pgrowlocks.control +5 -0
  1244. embedded_postgres/pginstall/share/extension/pgstattuple--1.0--1.1.sql +11 -0
  1245. embedded_postgres/pginstall/share/extension/pgstattuple--1.1--1.2.sql +39 -0
  1246. embedded_postgres/pginstall/share/extension/pgstattuple--1.2--1.3.sql +18 -0
  1247. embedded_postgres/pginstall/share/extension/pgstattuple--1.3--1.4.sql +13 -0
  1248. embedded_postgres/pginstall/share/extension/pgstattuple--1.4--1.5.sql +136 -0
  1249. embedded_postgres/pginstall/share/extension/pgstattuple--1.4.sql +95 -0
  1250. embedded_postgres/pginstall/share/extension/pgstattuple.control +5 -0
  1251. embedded_postgres/pginstall/share/extension/plpgsql--1.0.sql +20 -0
  1252. embedded_postgres/pginstall/share/extension/plpgsql.control +8 -0
  1253. embedded_postgres/pginstall/share/extension/postgres_fdw--1.0--1.1.sql +20 -0
  1254. embedded_postgres/pginstall/share/extension/postgres_fdw--1.0.sql +18 -0
  1255. embedded_postgres/pginstall/share/extension/postgres_fdw--1.1--1.2.sql +18 -0
  1256. embedded_postgres/pginstall/share/extension/postgres_fdw.control +5 -0
  1257. embedded_postgres/pginstall/share/extension/refint--1.0.sql +14 -0
  1258. embedded_postgres/pginstall/share/extension/refint.control +5 -0
  1259. embedded_postgres/pginstall/share/extension/seg--1.0--1.1.sql +63 -0
  1260. embedded_postgres/pginstall/share/extension/seg--1.1--1.2.sql +14 -0
  1261. embedded_postgres/pginstall/share/extension/seg--1.1.sql +395 -0
  1262. embedded_postgres/pginstall/share/extension/seg--1.2--1.3.sql +58 -0
  1263. embedded_postgres/pginstall/share/extension/seg--1.3--1.4.sql +8 -0
  1264. embedded_postgres/pginstall/share/extension/seg.control +6 -0
  1265. embedded_postgres/pginstall/share/extension/tablefunc--1.0.sql +88 -0
  1266. embedded_postgres/pginstall/share/extension/tablefunc.control +6 -0
  1267. embedded_postgres/pginstall/share/extension/tcn--1.0.sql +9 -0
  1268. embedded_postgres/pginstall/share/extension/tcn.control +6 -0
  1269. embedded_postgres/pginstall/share/extension/tsm_system_rows--1.0.sql +9 -0
  1270. embedded_postgres/pginstall/share/extension/tsm_system_rows.control +6 -0
  1271. embedded_postgres/pginstall/share/extension/tsm_system_time--1.0.sql +9 -0
  1272. embedded_postgres/pginstall/share/extension/tsm_system_time.control +6 -0
  1273. embedded_postgres/pginstall/share/extension/unaccent--1.0--1.1.sql +9 -0
  1274. embedded_postgres/pginstall/share/extension/unaccent--1.1.sql +34 -0
  1275. embedded_postgres/pginstall/share/extension/unaccent.control +6 -0
  1276. embedded_postgres/pginstall/share/extension/vector--0.1.0--0.1.1.sql +39 -0
  1277. embedded_postgres/pginstall/share/extension/vector--0.1.1--0.1.3.sql +2 -0
  1278. embedded_postgres/pginstall/share/extension/vector--0.1.3--0.1.4.sql +2 -0
  1279. embedded_postgres/pginstall/share/extension/vector--0.1.4--0.1.5.sql +2 -0
  1280. embedded_postgres/pginstall/share/extension/vector--0.1.5--0.1.6.sql +2 -0
  1281. embedded_postgres/pginstall/share/extension/vector--0.1.6--0.1.7.sql +8 -0
  1282. embedded_postgres/pginstall/share/extension/vector--0.1.7--0.1.8.sql +8 -0
  1283. embedded_postgres/pginstall/share/extension/vector--0.1.8--0.2.0.sql +2 -0
  1284. embedded_postgres/pginstall/share/extension/vector--0.2.0--0.2.1.sql +19 -0
  1285. embedded_postgres/pginstall/share/extension/vector--0.2.1--0.2.2.sql +2 -0
  1286. embedded_postgres/pginstall/share/extension/vector--0.2.2--0.2.3.sql +2 -0
  1287. embedded_postgres/pginstall/share/extension/vector--0.2.3--0.2.4.sql +2 -0
  1288. embedded_postgres/pginstall/share/extension/vector--0.2.4--0.2.5.sql +2 -0
  1289. embedded_postgres/pginstall/share/extension/vector--0.2.5--0.2.6.sql +2 -0
  1290. embedded_postgres/pginstall/share/extension/vector--0.2.6--0.2.7.sql +2 -0
  1291. embedded_postgres/pginstall/share/extension/vector--0.2.7--0.3.0.sql +2 -0
  1292. embedded_postgres/pginstall/share/extension/vector--0.3.0--0.3.1.sql +2 -0
  1293. embedded_postgres/pginstall/share/extension/vector--0.3.1--0.3.2.sql +2 -0
  1294. embedded_postgres/pginstall/share/extension/vector--0.3.2--0.4.0.sql +23 -0
  1295. embedded_postgres/pginstall/share/extension/vector--0.4.0--0.4.1.sql +2 -0
  1296. embedded_postgres/pginstall/share/extension/vector--0.4.1--0.4.2.sql +2 -0
  1297. embedded_postgres/pginstall/share/extension/vector--0.4.2--0.4.3.sql +2 -0
  1298. embedded_postgres/pginstall/share/extension/vector--0.4.3--0.4.4.sql +2 -0
  1299. embedded_postgres/pginstall/share/extension/vector--0.4.4--0.5.0.sql +43 -0
  1300. embedded_postgres/pginstall/share/extension/vector--0.5.0--0.5.1.sql +2 -0
  1301. embedded_postgres/pginstall/share/extension/vector--0.5.1--0.6.0.sql +5 -0
  1302. embedded_postgres/pginstall/share/extension/vector--0.6.0--0.6.1.sql +16 -0
  1303. embedded_postgres/pginstall/share/extension/vector--0.6.1--0.6.2.sql +2 -0
  1304. embedded_postgres/pginstall/share/extension/vector--0.6.2--0.7.0.sql +569 -0
  1305. embedded_postgres/pginstall/share/extension/vector--0.7.0--0.7.1.sql +2 -0
  1306. embedded_postgres/pginstall/share/extension/vector--0.7.1--0.7.2.sql +2 -0
  1307. embedded_postgres/pginstall/share/extension/vector--0.7.2--0.7.3.sql +2 -0
  1308. embedded_postgres/pginstall/share/extension/vector--0.7.3--0.7.4.sql +2 -0
  1309. embedded_postgres/pginstall/share/extension/vector--0.7.4--0.8.0.sql +26 -0
  1310. embedded_postgres/pginstall/share/extension/vector--0.8.0--0.8.1.sql +2 -0
  1311. embedded_postgres/pginstall/share/extension/vector--0.8.1--0.8.2.sql +2 -0
  1312. embedded_postgres/pginstall/share/extension/vector--0.8.2--0.8.3.sql +2 -0
  1313. embedded_postgres/pginstall/share/extension/vector--0.8.3--0.8.4.sql +2 -0
  1314. embedded_postgres/pginstall/share/extension/vector--0.8.4--0.8.5.sql +2 -0
  1315. embedded_postgres/pginstall/share/extension/vector--0.8.5--0.8.6.sql +2 -0
  1316. embedded_postgres/pginstall/share/extension/vector--0.8.6.sql +918 -0
  1317. embedded_postgres/pginstall/share/extension/vector.control +4 -0
  1318. embedded_postgres/pginstall/share/information_schema.sql +3011 -0
  1319. embedded_postgres/pginstall/share/pg_hba.conf.sample +122 -0
  1320. embedded_postgres/pginstall/share/pg_ident.conf.sample +72 -0
  1321. embedded_postgres/pginstall/share/pg_service.conf.sample +17 -0
  1322. embedded_postgres/pginstall/share/postgres.bki +11870 -0
  1323. embedded_postgres/pginstall/share/postgresql.conf.sample +889 -0
  1324. embedded_postgres/pginstall/share/psqlrc.sample +8 -0
  1325. embedded_postgres/pginstall/share/snowball_create.sql +1253 -0
  1326. embedded_postgres/pginstall/share/sql_features.txt +755 -0
  1327. embedded_postgres/pginstall/share/system_constraints.sql +220 -0
  1328. embedded_postgres/pginstall/share/system_functions.sql +808 -0
  1329. embedded_postgres/pginstall/share/system_views.sql +1409 -0
  1330. embedded_postgres/pginstall/share/timezonesets/Africa.txt +176 -0
  1331. embedded_postgres/pginstall/share/timezonesets/America.txt +257 -0
  1332. embedded_postgres/pginstall/share/timezonesets/Antarctica.txt +27 -0
  1333. embedded_postgres/pginstall/share/timezonesets/Asia.txt +190 -0
  1334. embedded_postgres/pginstall/share/timezonesets/Atlantic.txt +85 -0
  1335. embedded_postgres/pginstall/share/timezonesets/Australia +27 -0
  1336. embedded_postgres/pginstall/share/timezonesets/Australia.txt +71 -0
  1337. embedded_postgres/pginstall/share/timezonesets/Default +629 -0
  1338. embedded_postgres/pginstall/share/timezonesets/Etc.txt +34 -0
  1339. embedded_postgres/pginstall/share/timezonesets/Europe.txt +217 -0
  1340. embedded_postgres/pginstall/share/timezonesets/India +19 -0
  1341. embedded_postgres/pginstall/share/timezonesets/Indian.txt +30 -0
  1342. embedded_postgres/pginstall/share/timezonesets/Pacific.txt +84 -0
  1343. embedded_postgres/pginstall/share/tsearch_data/danish.stop +94 -0
  1344. embedded_postgres/pginstall/share/tsearch_data/dutch.stop +101 -0
  1345. embedded_postgres/pginstall/share/tsearch_data/english.stop +127 -0
  1346. embedded_postgres/pginstall/share/tsearch_data/finnish.stop +235 -0
  1347. embedded_postgres/pginstall/share/tsearch_data/french.stop +155 -0
  1348. embedded_postgres/pginstall/share/tsearch_data/german.stop +231 -0
  1349. embedded_postgres/pginstall/share/tsearch_data/hungarian.stop +199 -0
  1350. embedded_postgres/pginstall/share/tsearch_data/hunspell_sample.affix +23 -0
  1351. embedded_postgres/pginstall/share/tsearch_data/hunspell_sample_long.affix +53 -0
  1352. embedded_postgres/pginstall/share/tsearch_data/hunspell_sample_long.dict +11 -0
  1353. embedded_postgres/pginstall/share/tsearch_data/hunspell_sample_num.affix +33 -0
  1354. embedded_postgres/pginstall/share/tsearch_data/hunspell_sample_num.dict +9 -0
  1355. embedded_postgres/pginstall/share/tsearch_data/ispell_sample.affix +26 -0
  1356. embedded_postgres/pginstall/share/tsearch_data/ispell_sample.dict +8 -0
  1357. embedded_postgres/pginstall/share/tsearch_data/italian.stop +279 -0
  1358. embedded_postgres/pginstall/share/tsearch_data/nepali.stop +304 -0
  1359. embedded_postgres/pginstall/share/tsearch_data/norwegian.stop +176 -0
  1360. embedded_postgres/pginstall/share/tsearch_data/portuguese.stop +203 -0
  1361. embedded_postgres/pginstall/share/tsearch_data/russian.stop +151 -0
  1362. embedded_postgres/pginstall/share/tsearch_data/spanish.stop +313 -0
  1363. embedded_postgres/pginstall/share/tsearch_data/swedish.stop +114 -0
  1364. embedded_postgres/pginstall/share/tsearch_data/synonym_sample.syn +5 -0
  1365. embedded_postgres/pginstall/share/tsearch_data/thesaurus_sample.ths +17 -0
  1366. embedded_postgres/pginstall/share/tsearch_data/turkish.stop +53 -0
  1367. embedded_postgres/pginstall/share/tsearch_data/unaccent.rules +2661 -0
  1368. embedded_postgres/pginstall/share/tsearch_data/xsyn_sample.rules +6 -0
  1369. embedded_postgres/postgres_server.py +291 -0
  1370. embedded_postgres/py.typed +0 -0
  1371. embedded_postgres/utils.py +278 -0
  1372. embedded_postgres-18.6.0.dist-info/METADATA +106 -0
  1373. embedded_postgres-18.6.0.dist-info/RECORD +1378 -0
  1374. embedded_postgres-18.6.0.dist-info/WHEEL +5 -0
  1375. embedded_postgres-18.6.0.dist-info/licenses/LICENSE +201 -0
  1376. embedded_postgres-18.6.0.dist-info/licenses/NOTICE +10 -0
  1377. embedded_postgres-18.6.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +53 -0
  1378. embedded_postgres-18.6.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,2374 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * primnodes.h
4
+ * Definitions for "primitive" node types, those that are used in more
5
+ * than one of the parse/plan/execute stages of the query pipeline.
6
+ * Currently, these are mostly nodes for executable expressions
7
+ * and join trees.
8
+ *
9
+ *
10
+ * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
11
+ * Portions Copyright (c) 1994, Regents of the University of California
12
+ *
13
+ * src/include/nodes/primnodes.h
14
+ *
15
+ *-------------------------------------------------------------------------
16
+ */
17
+ #ifndef PRIMNODES_H
18
+ #define PRIMNODES_H
19
+
20
+ #include "access/attnum.h"
21
+ #include "access/cmptype.h"
22
+ #include "nodes/bitmapset.h"
23
+ #include "nodes/pg_list.h"
24
+
25
+
26
+ typedef enum OverridingKind
27
+ {
28
+ OVERRIDING_NOT_SET = 0,
29
+ OVERRIDING_USER_VALUE,
30
+ OVERRIDING_SYSTEM_VALUE,
31
+ } OverridingKind;
32
+
33
+
34
+ /* ----------------------------------------------------------------
35
+ * node definitions
36
+ * ----------------------------------------------------------------
37
+ */
38
+
39
+ /*
40
+ * Alias -
41
+ * specifies an alias for a range variable; the alias might also
42
+ * specify renaming of columns within the table.
43
+ *
44
+ * Note: colnames is a list of String nodes. In Alias structs
45
+ * associated with RTEs, there may be entries corresponding to dropped
46
+ * columns; these are normally empty strings (""). See parsenodes.h for info.
47
+ */
48
+ typedef struct Alias
49
+ {
50
+ NodeTag type;
51
+ char *aliasname; /* aliased rel name (never qualified) */
52
+ List *colnames; /* optional list of column aliases */
53
+ } Alias;
54
+
55
+ /* What to do at commit time for temporary relations */
56
+ typedef enum OnCommitAction
57
+ {
58
+ ONCOMMIT_NOOP, /* No ON COMMIT clause (do nothing) */
59
+ ONCOMMIT_PRESERVE_ROWS, /* ON COMMIT PRESERVE ROWS (do nothing) */
60
+ ONCOMMIT_DELETE_ROWS, /* ON COMMIT DELETE ROWS */
61
+ ONCOMMIT_DROP, /* ON COMMIT DROP */
62
+ } OnCommitAction;
63
+
64
+ /*
65
+ * RangeVar - range variable, used in FROM clauses
66
+ *
67
+ * Also used to represent table names in utility statements; there, the alias
68
+ * field is not used, and inh tells whether to apply the operation
69
+ * recursively to child tables. In some contexts it is also useful to carry
70
+ * a TEMP table indication here.
71
+ */
72
+ typedef struct RangeVar
73
+ {
74
+ NodeTag type;
75
+
76
+ /* the catalog (database) name, or NULL */
77
+ char *catalogname;
78
+
79
+ /* the schema name, or NULL */
80
+ char *schemaname;
81
+
82
+ /* the relation/sequence name */
83
+ char *relname;
84
+
85
+ /* expand rel by inheritance? recursively act on children? */
86
+ bool inh;
87
+
88
+ /* see RELPERSISTENCE_* in pg_class.h */
89
+ char relpersistence;
90
+
91
+ /* table alias & optional column aliases */
92
+ Alias *alias;
93
+
94
+ /* token location, or -1 if unknown */
95
+ ParseLoc location;
96
+ } RangeVar;
97
+
98
+ typedef enum TableFuncType
99
+ {
100
+ TFT_XMLTABLE,
101
+ TFT_JSON_TABLE,
102
+ } TableFuncType;
103
+
104
+ /*
105
+ * TableFunc - node for a table function, such as XMLTABLE and JSON_TABLE.
106
+ *
107
+ * Entries in the ns_names list are either String nodes containing
108
+ * literal namespace names, or NULL pointers to represent DEFAULT.
109
+ */
110
+ typedef struct TableFunc
111
+ {
112
+ NodeTag type;
113
+ /* XMLTABLE or JSON_TABLE */
114
+ TableFuncType functype;
115
+ /* list of namespace URI expressions */
116
+ List *ns_uris pg_node_attr(query_jumble_ignore);
117
+ /* list of namespace names or NULL */
118
+ List *ns_names pg_node_attr(query_jumble_ignore);
119
+ /* input document expression */
120
+ Node *docexpr;
121
+ /* row filter expression */
122
+ Node *rowexpr;
123
+ /* column names (list of String) */
124
+ List *colnames pg_node_attr(query_jumble_ignore);
125
+ /* OID list of column type OIDs */
126
+ List *coltypes pg_node_attr(query_jumble_ignore);
127
+ /* integer list of column typmods */
128
+ List *coltypmods pg_node_attr(query_jumble_ignore);
129
+ /* OID list of column collation OIDs */
130
+ List *colcollations pg_node_attr(query_jumble_ignore);
131
+ /* list of column filter expressions */
132
+ List *colexprs;
133
+ /* list of column default expressions */
134
+ List *coldefexprs pg_node_attr(query_jumble_ignore);
135
+ /* JSON_TABLE: list of column value expressions */
136
+ List *colvalexprs pg_node_attr(query_jumble_ignore);
137
+ /* JSON_TABLE: list of PASSING argument expressions */
138
+ List *passingvalexprs pg_node_attr(query_jumble_ignore);
139
+ /* nullability flag for each output column */
140
+ Bitmapset *notnulls pg_node_attr(query_jumble_ignore);
141
+ /* JSON_TABLE plan */
142
+ Node *plan pg_node_attr(query_jumble_ignore);
143
+ /* counts from 0; -1 if none specified */
144
+ int ordinalitycol pg_node_attr(query_jumble_ignore);
145
+ /* token location, or -1 if unknown */
146
+ ParseLoc location;
147
+ } TableFunc;
148
+
149
+ /*
150
+ * IntoClause - target information for SELECT INTO, CREATE TABLE AS, and
151
+ * CREATE MATERIALIZED VIEW
152
+ *
153
+ * For CREATE MATERIALIZED VIEW, viewQuery is the parsed-but-not-rewritten
154
+ * SELECT Query for the view; otherwise it's NULL. This is irrelevant in
155
+ * the query jumbling as CreateTableAsStmt already includes a reference to
156
+ * its own Query, so ignore it. (We declare it as struct Query* to avoid a
157
+ * forward reference.)
158
+ */
159
+ typedef struct IntoClause
160
+ {
161
+ NodeTag type;
162
+
163
+ RangeVar *rel; /* target relation name */
164
+ List *colNames; /* column names to assign, or NIL */
165
+ char *accessMethod; /* table access method */
166
+ List *options; /* options from WITH clause */
167
+ OnCommitAction onCommit; /* what do we do at COMMIT? */
168
+ char *tableSpaceName; /* table space to use, or NULL */
169
+ /* materialized view's SELECT query */
170
+ struct Query *viewQuery pg_node_attr(query_jumble_ignore);
171
+ bool skipData; /* true for WITH NO DATA */
172
+ } IntoClause;
173
+
174
+
175
+ /* ----------------------------------------------------------------
176
+ * node types for executable expressions
177
+ * ----------------------------------------------------------------
178
+ */
179
+
180
+ /*
181
+ * Expr - generic superclass for executable-expression nodes
182
+ *
183
+ * All node types that are used in executable expression trees should derive
184
+ * from Expr (that is, have Expr as their first field). Since Expr only
185
+ * contains NodeTag, this is a formality, but it is an easy form of
186
+ * documentation. See also the ExprState node types in execnodes.h.
187
+ */
188
+ typedef struct Expr
189
+ {
190
+ pg_node_attr(abstract)
191
+
192
+ NodeTag type;
193
+ } Expr;
194
+
195
+ /*
196
+ * Var - expression node representing a variable (ie, a table column)
197
+ *
198
+ * In the parser and planner, varno and varattno identify the semantic
199
+ * referent, which is a base-relation column unless the reference is to a join
200
+ * USING column that isn't semantically equivalent to either join input column
201
+ * (because it is a FULL join or the input column requires a type coercion).
202
+ * In those cases varno and varattno refer to the JOIN RTE. (Early in the
203
+ * planner, we replace such join references by the implied expression; but up
204
+ * till then we want join reference Vars to keep their original identity for
205
+ * query-printing purposes.)
206
+ *
207
+ * At the end of planning, Var nodes appearing in upper-level plan nodes are
208
+ * reassigned to point to the outputs of their subplans; for example, in a
209
+ * join node varno becomes INNER_VAR or OUTER_VAR and varattno becomes the
210
+ * index of the proper element of that subplan's target list. Similarly,
211
+ * INDEX_VAR is used to identify Vars that reference an index column rather
212
+ * than a heap column. (In ForeignScan and CustomScan plan nodes, INDEX_VAR
213
+ * is abused to signify references to columns of a custom scan tuple type.)
214
+ *
215
+ * ROWID_VAR is used in the planner to identify nonce variables that carry
216
+ * row identity information during UPDATE/DELETE/MERGE. This value should
217
+ * never be seen outside the planner.
218
+ *
219
+ * varnullingrels is the set of RT indexes of outer joins that can force
220
+ * the Var's value to null (at the point where it appears in the query).
221
+ * See optimizer/README for discussion of that.
222
+ *
223
+ * varlevelsup is greater than zero in Vars that represent outer references.
224
+ * Note that it affects the meaning of all of varno, varnullingrels, and
225
+ * varnosyn, all of which refer to the range table of that query level.
226
+ *
227
+ * varreturningtype is used for Vars that refer to the target relation in the
228
+ * RETURNING list of data-modifying queries. The default behavior is to
229
+ * return old values for DELETE and new values for INSERT and UPDATE, but it
230
+ * is also possible to explicitly request old or new values.
231
+ *
232
+ * In the parser, varnosyn and varattnosyn are either identical to
233
+ * varno/varattno, or they specify the column's position in an aliased JOIN
234
+ * RTE that hides the semantic referent RTE's refname. This is a syntactic
235
+ * identifier as opposed to the semantic identifier; it tells ruleutils.c
236
+ * how to print the Var properly. varnosyn/varattnosyn retain their values
237
+ * throughout planning and execution, so they are particularly helpful to
238
+ * identify Vars when debugging. Note, however, that a Var that is generated
239
+ * in the planner and doesn't correspond to any simple relation column may
240
+ * have varnosyn = varattnosyn = 0.
241
+ */
242
+ #define INNER_VAR (-1) /* reference to inner subplan */
243
+ #define OUTER_VAR (-2) /* reference to outer subplan */
244
+ #define INDEX_VAR (-3) /* reference to index column */
245
+ #define ROWID_VAR (-4) /* row identity column during planning */
246
+
247
+ #define IS_SPECIAL_VARNO(varno) ((int) (varno) < 0)
248
+
249
+ /* Symbols for the indexes of the special RTE entries in rules */
250
+ #define PRS2_OLD_VARNO 1
251
+ #define PRS2_NEW_VARNO 2
252
+
253
+ /* Returning behavior for Vars in RETURNING list */
254
+ typedef enum VarReturningType
255
+ {
256
+ VAR_RETURNING_DEFAULT, /* return OLD for DELETE, else return NEW */
257
+ VAR_RETURNING_OLD, /* return OLD for DELETE/UPDATE, else NULL */
258
+ VAR_RETURNING_NEW, /* return NEW for INSERT/UPDATE, else NULL */
259
+ } VarReturningType;
260
+
261
+ typedef struct Var
262
+ {
263
+ Expr xpr;
264
+
265
+ /*
266
+ * index of this var's relation in the range table, or
267
+ * INNER_VAR/OUTER_VAR/etc
268
+ */
269
+ int varno;
270
+
271
+ /*
272
+ * attribute number of this var, or zero for all attrs ("whole-row Var")
273
+ */
274
+ AttrNumber varattno;
275
+
276
+ /* pg_type OID for the type of this var */
277
+ Oid vartype pg_node_attr(query_jumble_ignore);
278
+ /* pg_attribute typmod value */
279
+ int32 vartypmod pg_node_attr(query_jumble_ignore);
280
+ /* OID of collation, or InvalidOid if none */
281
+ Oid varcollid pg_node_attr(query_jumble_ignore);
282
+
283
+ /*
284
+ * RT indexes of outer joins that can replace the Var's value with null.
285
+ * We can omit varnullingrels in the query jumble, because it's fully
286
+ * determined by varno/varlevelsup plus the Var's query location.
287
+ */
288
+ Bitmapset *varnullingrels pg_node_attr(query_jumble_ignore);
289
+
290
+ /*
291
+ * for subquery variables referencing outer relations; 0 in a normal var,
292
+ * >0 means N levels up
293
+ */
294
+ Index varlevelsup;
295
+
296
+ /* returning type of this var (see above) */
297
+ VarReturningType varreturningtype;
298
+
299
+ /*
300
+ * varnosyn/varattnosyn are ignored for equality, because Vars with
301
+ * different syntactic identifiers are semantically the same as long as
302
+ * their varno/varattno match.
303
+ */
304
+ /* syntactic relation index (0 if unknown) */
305
+ Index varnosyn pg_node_attr(equal_ignore, query_jumble_ignore);
306
+ /* syntactic attribute number */
307
+ AttrNumber varattnosyn pg_node_attr(equal_ignore, query_jumble_ignore);
308
+
309
+ /* token location, or -1 if unknown */
310
+ ParseLoc location;
311
+ } Var;
312
+
313
+ /*
314
+ * Const
315
+ *
316
+ * Note: for varlena data types, we make a rule that a Const node's value
317
+ * must be in non-extended form (4-byte header, no compression or external
318
+ * references). This ensures that the Const node is self-contained and makes
319
+ * it more likely that equal() will see logically identical values as equal.
320
+ *
321
+ * Only the constant type OID is relevant for the query jumbling.
322
+ */
323
+ typedef struct Const
324
+ {
325
+ pg_node_attr(custom_copy_equal, custom_read_write)
326
+
327
+ Expr xpr;
328
+ /* pg_type OID of the constant's datatype */
329
+ Oid consttype;
330
+ /* typmod value, if any */
331
+ int32 consttypmod pg_node_attr(query_jumble_ignore);
332
+ /* OID of collation, or InvalidOid if none */
333
+ Oid constcollid pg_node_attr(query_jumble_ignore);
334
+ /* typlen of the constant's datatype */
335
+ int constlen pg_node_attr(query_jumble_ignore);
336
+ /* the constant's value */
337
+ Datum constvalue pg_node_attr(query_jumble_ignore);
338
+ /* whether the constant is null (if true, constvalue is undefined) */
339
+ bool constisnull pg_node_attr(query_jumble_ignore);
340
+
341
+ /*
342
+ * Whether this datatype is passed by value. If true, then all the
343
+ * information is stored in the Datum. If false, then the Datum contains
344
+ * a pointer to the information.
345
+ */
346
+ bool constbyval pg_node_attr(query_jumble_ignore);
347
+
348
+ /*
349
+ * token location, or -1 if unknown. All constants are tracked as
350
+ * locations in query jumbling, to be marked as parameters.
351
+ */
352
+ ParseLoc location pg_node_attr(query_jumble_location);
353
+ } Const;
354
+
355
+ /*
356
+ * Param
357
+ *
358
+ * paramkind specifies the kind of parameter. The possible values
359
+ * for this field are:
360
+ *
361
+ * PARAM_EXTERN: The parameter value is supplied from outside the plan.
362
+ * Such parameters are numbered from 1 to n.
363
+ *
364
+ * PARAM_EXEC: The parameter is an internal executor parameter, used
365
+ * for passing values into and out of sub-queries or from
366
+ * nestloop joins to their inner scans.
367
+ * For historical reasons, such parameters are numbered from 0.
368
+ * These numbers are independent of PARAM_EXTERN numbers.
369
+ *
370
+ * PARAM_SUBLINK: The parameter represents an output column of a SubLink
371
+ * node's sub-select. The column number is contained in the
372
+ * `paramid' field. (This type of Param is converted to
373
+ * PARAM_EXEC during planning.)
374
+ *
375
+ * PARAM_MULTIEXPR: Like PARAM_SUBLINK, the parameter represents an
376
+ * output column of a SubLink node's sub-select, but here, the
377
+ * SubLink is always a MULTIEXPR SubLink. The high-order 16 bits
378
+ * of the `paramid' field contain the SubLink's subLinkId, and
379
+ * the low-order 16 bits contain the column number. (This type
380
+ * of Param is also converted to PARAM_EXEC during planning.)
381
+ */
382
+ typedef enum ParamKind
383
+ {
384
+ PARAM_EXTERN,
385
+ PARAM_EXEC,
386
+ PARAM_SUBLINK,
387
+ PARAM_MULTIEXPR,
388
+ } ParamKind;
389
+
390
+ typedef struct Param
391
+ {
392
+ pg_node_attr(custom_query_jumble)
393
+
394
+ Expr xpr;
395
+ ParamKind paramkind; /* kind of parameter. See above */
396
+ int paramid; /* numeric ID for parameter */
397
+ Oid paramtype; /* pg_type OID of parameter's datatype */
398
+ /* typmod value, if known */
399
+ int32 paramtypmod;
400
+ /* OID of collation, or InvalidOid if none */
401
+ Oid paramcollid;
402
+ /* token location, or -1 if unknown */
403
+ ParseLoc location;
404
+ } Param;
405
+
406
+ /*
407
+ * Aggref
408
+ *
409
+ * The aggregate's args list is a targetlist, ie, a list of TargetEntry nodes.
410
+ *
411
+ * For a normal (non-ordered-set) aggregate, the non-resjunk TargetEntries
412
+ * represent the aggregate's regular arguments (if any) and resjunk TLEs can
413
+ * be added at the end to represent ORDER BY expressions that are not also
414
+ * arguments. As in a top-level Query, the TLEs can be marked with
415
+ * ressortgroupref indexes to let them be referenced by SortGroupClause
416
+ * entries in the aggorder and/or aggdistinct lists. This represents ORDER BY
417
+ * and DISTINCT operations to be applied to the aggregate input rows before
418
+ * they are passed to the transition function. The grammar only allows a
419
+ * simple "DISTINCT" specifier for the arguments, but we use the full
420
+ * query-level representation to allow more code sharing.
421
+ *
422
+ * For an ordered-set aggregate, the args list represents the WITHIN GROUP
423
+ * (aggregated) arguments, all of which will be listed in the aggorder list.
424
+ * DISTINCT is not supported in this case, so aggdistinct will be NIL.
425
+ * The direct arguments appear in aggdirectargs (as a list of plain
426
+ * expressions, not TargetEntry nodes).
427
+ *
428
+ * aggtranstype is the data type of the state transition values for this
429
+ * aggregate (resolved to an actual type, if agg's transtype is polymorphic).
430
+ * This is determined during planning and is InvalidOid before that.
431
+ *
432
+ * aggargtypes is an OID list of the data types of the direct and regular
433
+ * arguments. Normally it's redundant with the aggdirectargs and args lists,
434
+ * but in a combining aggregate, it's not because the args list has been
435
+ * replaced with a single argument representing the partial-aggregate
436
+ * transition values.
437
+ *
438
+ * aggpresorted is set by the query planner for ORDER BY and DISTINCT
439
+ * aggregates where the chosen plan provides presorted input for this
440
+ * aggregate during execution.
441
+ *
442
+ * aggsplit indicates the expected partial-aggregation mode for the Aggref's
443
+ * parent plan node. It's always set to AGGSPLIT_SIMPLE in the parser, but
444
+ * the planner might change it to something else. We use this mainly as
445
+ * a crosscheck that the Aggrefs match the plan; but note that when aggsplit
446
+ * indicates a non-final mode, aggtype reflects the transition data type
447
+ * not the SQL-level output type of the aggregate.
448
+ *
449
+ * aggno and aggtransno are -1 in the parse stage, and are set in planning.
450
+ * Aggregates with the same 'aggno' represent the same aggregate expression,
451
+ * and can share the result. Aggregates with same 'transno' but different
452
+ * 'aggno' can share the same transition state, only the final function needs
453
+ * to be called separately.
454
+ *
455
+ * Information related to collations, transition types and internal states
456
+ * are irrelevant for the query jumbling.
457
+ */
458
+ typedef struct Aggref
459
+ {
460
+ Expr xpr;
461
+
462
+ /* pg_proc Oid of the aggregate */
463
+ Oid aggfnoid;
464
+
465
+ /* type Oid of result of the aggregate */
466
+ Oid aggtype pg_node_attr(query_jumble_ignore);
467
+
468
+ /* OID of collation of result */
469
+ Oid aggcollid pg_node_attr(query_jumble_ignore);
470
+
471
+ /* OID of collation that function should use */
472
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
473
+
474
+ /*
475
+ * type Oid of aggregate's transition value; ignored for equal since it
476
+ * might not be set yet
477
+ */
478
+ Oid aggtranstype pg_node_attr(equal_ignore, query_jumble_ignore);
479
+
480
+ /* type Oids of direct and aggregated args */
481
+ List *aggargtypes pg_node_attr(query_jumble_ignore);
482
+
483
+ /* direct arguments, if an ordered-set agg */
484
+ List *aggdirectargs;
485
+
486
+ /* aggregated arguments and sort expressions */
487
+ List *args;
488
+
489
+ /* ORDER BY (list of SortGroupClause) */
490
+ List *aggorder;
491
+
492
+ /* DISTINCT (list of SortGroupClause) */
493
+ List *aggdistinct;
494
+
495
+ /* FILTER expression, if any */
496
+ Expr *aggfilter;
497
+
498
+ /* true if argument list was really '*' */
499
+ bool aggstar pg_node_attr(query_jumble_ignore);
500
+
501
+ /*
502
+ * true if variadic arguments have been combined into an array last
503
+ * argument
504
+ */
505
+ bool aggvariadic pg_node_attr(query_jumble_ignore);
506
+
507
+ /* aggregate kind (see pg_aggregate.h) */
508
+ char aggkind pg_node_attr(query_jumble_ignore);
509
+
510
+ /* aggregate input already sorted */
511
+ bool aggpresorted pg_node_attr(equal_ignore, query_jumble_ignore);
512
+
513
+ /* > 0 if agg belongs to outer query */
514
+ Index agglevelsup pg_node_attr(query_jumble_ignore);
515
+
516
+ /* expected agg-splitting mode of parent Agg */
517
+ AggSplit aggsplit pg_node_attr(query_jumble_ignore);
518
+
519
+ /* unique ID within the Agg node */
520
+ int aggno pg_node_attr(query_jumble_ignore);
521
+
522
+ /* unique ID of transition state in the Agg */
523
+ int aggtransno pg_node_attr(query_jumble_ignore);
524
+
525
+ /* token location, or -1 if unknown */
526
+ ParseLoc location;
527
+ } Aggref;
528
+
529
+ /*
530
+ * GroupingFunc
531
+ *
532
+ * A GroupingFunc is a GROUPING(...) expression, which behaves in many ways
533
+ * like an aggregate function (e.g. it "belongs" to a specific query level,
534
+ * which might not be the one immediately containing it), but also differs in
535
+ * an important respect: it never evaluates its arguments, they merely
536
+ * designate expressions from the GROUP BY clause of the query level to which
537
+ * it belongs.
538
+ *
539
+ * The spec defines the evaluation of GROUPING() purely by syntactic
540
+ * replacement, but we make it a real expression for optimization purposes so
541
+ * that one Agg node can handle multiple grouping sets at once. Evaluating the
542
+ * result only needs the column positions to check against the grouping set
543
+ * being projected. However, for EXPLAIN to produce meaningful output, we have
544
+ * to keep the original expressions around, since expression deparse does not
545
+ * give us any feasible way to get at the GROUP BY clause.
546
+ *
547
+ * Also, we treat two GroupingFunc nodes as equal if they have equal arguments
548
+ * lists and agglevelsup, without comparing the refs and cols annotations.
549
+ *
550
+ * In raw parse output we have only the args list; parse analysis fills in the
551
+ * refs list, and the planner fills in the cols list.
552
+ *
553
+ * All the fields used as information for an internal state are irrelevant
554
+ * for the query jumbling.
555
+ */
556
+ typedef struct GroupingFunc
557
+ {
558
+ Expr xpr;
559
+
560
+ /* arguments, not evaluated but kept for benefit of EXPLAIN etc. */
561
+ List *args pg_node_attr(query_jumble_ignore);
562
+
563
+ /* ressortgrouprefs of arguments */
564
+ List *refs pg_node_attr(equal_ignore);
565
+
566
+ /* actual column positions set by planner */
567
+ List *cols pg_node_attr(equal_ignore, query_jumble_ignore);
568
+
569
+ /* same as Aggref.agglevelsup */
570
+ Index agglevelsup;
571
+
572
+ /* token location */
573
+ ParseLoc location;
574
+ } GroupingFunc;
575
+
576
+ /*
577
+ * WindowFunc
578
+ *
579
+ * Collation information is irrelevant for the query jumbling, as is the
580
+ * internal state information of the node like "winstar" and "winagg".
581
+ */
582
+ typedef struct WindowFunc
583
+ {
584
+ Expr xpr;
585
+ /* pg_proc Oid of the function */
586
+ Oid winfnoid;
587
+ /* type Oid of result of the window function */
588
+ Oid wintype pg_node_attr(query_jumble_ignore);
589
+ /* OID of collation of result */
590
+ Oid wincollid pg_node_attr(query_jumble_ignore);
591
+ /* OID of collation that function should use */
592
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
593
+ /* arguments to the window function */
594
+ List *args;
595
+ /* FILTER expression, if any */
596
+ Expr *aggfilter;
597
+ /* List of WindowFuncRunConditions to help short-circuit execution */
598
+ List *runCondition pg_node_attr(query_jumble_ignore);
599
+ /* index of associated WindowClause */
600
+ Index winref;
601
+ /* true if argument list was really '*' */
602
+ bool winstar pg_node_attr(query_jumble_ignore);
603
+ /* is function a simple aggregate? */
604
+ bool winagg pg_node_attr(query_jumble_ignore);
605
+ /* token location, or -1 if unknown */
606
+ ParseLoc location;
607
+ } WindowFunc;
608
+
609
+ /*
610
+ * WindowFuncRunCondition
611
+ *
612
+ * Represents intermediate OpExprs which will be used by WindowAgg to
613
+ * short-circuit execution.
614
+ */
615
+ typedef struct WindowFuncRunCondition
616
+ {
617
+ Expr xpr;
618
+
619
+ /* PG_OPERATOR OID of the operator */
620
+ Oid opno;
621
+ /* OID of collation that operator should use */
622
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
623
+
624
+ /*
625
+ * true of WindowFunc belongs on the left of the resulting OpExpr or false
626
+ * if the WindowFunc is on the right.
627
+ */
628
+ bool wfunc_left;
629
+
630
+ /*
631
+ * The Expr being compared to the WindowFunc to use in the OpExpr in the
632
+ * WindowAgg's runCondition
633
+ */
634
+ Expr *arg;
635
+ } WindowFuncRunCondition;
636
+
637
+ /*
638
+ * MergeSupportFunc
639
+ *
640
+ * A MergeSupportFunc is a merge support function expression that can only
641
+ * appear in the RETURNING list of a MERGE command. It returns information
642
+ * about the currently executing merge action.
643
+ *
644
+ * Currently, the only supported function is MERGE_ACTION(), which returns the
645
+ * command executed ("INSERT", "UPDATE", or "DELETE").
646
+ */
647
+ typedef struct MergeSupportFunc
648
+ {
649
+ Expr xpr;
650
+ /* type Oid of result */
651
+ Oid msftype;
652
+ /* OID of collation, or InvalidOid if none */
653
+ Oid msfcollid;
654
+ /* token location, or -1 if unknown */
655
+ ParseLoc location;
656
+ } MergeSupportFunc;
657
+
658
+ /*
659
+ * SubscriptingRef: describes a subscripting operation over a container
660
+ * (array, etc).
661
+ *
662
+ * A SubscriptingRef can describe fetching a single element from a container,
663
+ * fetching a part of a container (e.g. an array slice), storing a single
664
+ * element into a container, or storing a slice. The "store" cases work with
665
+ * an initial container value and a source value that is inserted into the
666
+ * appropriate part of the container; the result of the operation is an
667
+ * entire new modified container value.
668
+ *
669
+ * If reflowerindexpr = NIL, then we are fetching or storing a single container
670
+ * element at the subscripts given by refupperindexpr. Otherwise we are
671
+ * fetching or storing a container slice, that is a rectangular subcontainer
672
+ * with lower and upper bounds given by the index expressions.
673
+ * reflowerindexpr must be the same length as refupperindexpr when it
674
+ * is not NIL.
675
+ *
676
+ * In the slice case, individual expressions in the subscript lists can be
677
+ * NULL, meaning "substitute the array's current lower or upper bound".
678
+ * (Non-array containers may or may not support this.)
679
+ *
680
+ * refcontainertype is the actual container type that determines the
681
+ * subscripting semantics. (This will generally be either the exposed type of
682
+ * refexpr, or the base type if that is a domain.) refelemtype is the type of
683
+ * the container's elements; this is saved for the use of the subscripting
684
+ * functions, but is not used by the core code. refrestype, reftypmod, and
685
+ * refcollid describe the type of the SubscriptingRef's result. In a store
686
+ * expression, refrestype will always match refcontainertype; in a fetch,
687
+ * it could be refelemtype for an element fetch, or refcontainertype for a
688
+ * slice fetch, or possibly something else as determined by type-specific
689
+ * subscripting logic. Likewise, reftypmod and refcollid will match the
690
+ * container's properties in a store, but could be different in a fetch.
691
+ *
692
+ * Any internal state data is ignored for the query jumbling.
693
+ *
694
+ * Note: for the cases where a container is returned, if refexpr yields a R/W
695
+ * expanded container, then the implementation is allowed to modify that
696
+ * object in-place and return the same object.
697
+ */
698
+ typedef struct SubscriptingRef
699
+ {
700
+ Expr xpr;
701
+ /* type of the container proper */
702
+ Oid refcontainertype pg_node_attr(query_jumble_ignore);
703
+ /* the container type's pg_type.typelem */
704
+ Oid refelemtype pg_node_attr(query_jumble_ignore);
705
+ /* type of the SubscriptingRef's result */
706
+ Oid refrestype pg_node_attr(query_jumble_ignore);
707
+ /* typmod of the result */
708
+ int32 reftypmod pg_node_attr(query_jumble_ignore);
709
+ /* collation of result, or InvalidOid if none */
710
+ Oid refcollid pg_node_attr(query_jumble_ignore);
711
+ /* expressions that evaluate to upper container indexes */
712
+ List *refupperindexpr;
713
+
714
+ /*
715
+ * expressions that evaluate to lower container indexes, or NIL for single
716
+ * container element.
717
+ */
718
+ List *reflowerindexpr;
719
+ /* the expression that evaluates to a container value */
720
+ Expr *refexpr;
721
+ /* expression for the source value, or NULL if fetch */
722
+ Expr *refassgnexpr;
723
+ } SubscriptingRef;
724
+
725
+ /*
726
+ * CoercionContext - distinguishes the allowed set of type casts
727
+ *
728
+ * NB: ordering of the alternatives is significant; later (larger) values
729
+ * allow more casts than earlier ones.
730
+ */
731
+ typedef enum CoercionContext
732
+ {
733
+ COERCION_IMPLICIT, /* coercion in context of expression */
734
+ COERCION_ASSIGNMENT, /* coercion in context of assignment */
735
+ COERCION_PLPGSQL, /* if no assignment cast, use CoerceViaIO */
736
+ COERCION_EXPLICIT, /* explicit cast operation */
737
+ } CoercionContext;
738
+
739
+ /*
740
+ * CoercionForm - how to display a FuncExpr or related node
741
+ *
742
+ * "Coercion" is a bit of a misnomer, since this value records other
743
+ * special syntaxes besides casts, but for now we'll keep this naming.
744
+ *
745
+ * NB: equal() ignores CoercionForm fields, therefore this *must* not carry
746
+ * any semantically significant information. We need that behavior so that
747
+ * the planner will consider equivalent implicit and explicit casts to be
748
+ * equivalent. In cases where those actually behave differently, the coercion
749
+ * function's arguments will be different.
750
+ */
751
+ typedef enum CoercionForm
752
+ {
753
+ COERCE_EXPLICIT_CALL, /* display as a function call */
754
+ COERCE_EXPLICIT_CAST, /* display as an explicit cast */
755
+ COERCE_IMPLICIT_CAST, /* implicit cast, so hide it */
756
+ COERCE_SQL_SYNTAX, /* display with SQL-mandated special syntax */
757
+ } CoercionForm;
758
+
759
+ /*
760
+ * FuncExpr - expression node for a function call
761
+ *
762
+ * Collation information is irrelevant for the query jumbling, only the
763
+ * arguments and the function OID matter.
764
+ */
765
+ typedef struct FuncExpr
766
+ {
767
+ Expr xpr;
768
+ /* PG_PROC OID of the function */
769
+ Oid funcid;
770
+ /* PG_TYPE OID of result value */
771
+ Oid funcresulttype pg_node_attr(query_jumble_ignore);
772
+ /* true if function returns set */
773
+ bool funcretset pg_node_attr(query_jumble_ignore);
774
+
775
+ /*
776
+ * true if variadic arguments have been combined into an array last
777
+ * argument
778
+ */
779
+ bool funcvariadic pg_node_attr(query_jumble_ignore);
780
+ /* how to display this function call */
781
+ CoercionForm funcformat pg_node_attr(query_jumble_ignore);
782
+ /* OID of collation of result */
783
+ Oid funccollid pg_node_attr(query_jumble_ignore);
784
+ /* OID of collation that function should use */
785
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
786
+ /* arguments to the function */
787
+ List *args;
788
+ /* token location, or -1 if unknown */
789
+ ParseLoc location;
790
+ } FuncExpr;
791
+
792
+ /*
793
+ * NamedArgExpr - a named argument of a function
794
+ *
795
+ * This node type can only appear in the args list of a FuncCall or FuncExpr
796
+ * node. We support pure positional call notation (no named arguments),
797
+ * named notation (all arguments are named), and mixed notation (unnamed
798
+ * arguments followed by named ones).
799
+ *
800
+ * Parse analysis sets argnumber to the positional index of the argument,
801
+ * but doesn't rearrange the argument list.
802
+ *
803
+ * The planner will convert argument lists to pure positional notation
804
+ * during expression preprocessing, so execution never sees a NamedArgExpr.
805
+ */
806
+ typedef struct NamedArgExpr
807
+ {
808
+ Expr xpr;
809
+ /* the argument expression */
810
+ Expr *arg;
811
+ /* the name */
812
+ char *name pg_node_attr(query_jumble_ignore);
813
+ /* argument's number in positional notation */
814
+ int argnumber;
815
+ /* argument name location, or -1 if unknown */
816
+ ParseLoc location;
817
+ } NamedArgExpr;
818
+
819
+ /*
820
+ * OpExpr - expression node for an operator invocation
821
+ *
822
+ * Semantically, this is essentially the same as a function call.
823
+ *
824
+ * Note that opfuncid is not necessarily filled in immediately on creation
825
+ * of the node. The planner makes sure it is valid before passing the node
826
+ * tree to the executor, but during parsing/planning opfuncid can be 0.
827
+ * Therefore, equal() will accept a zero value as being equal to other values.
828
+ *
829
+ * Internal state information and collation data is irrelevant for the query
830
+ * jumbling.
831
+ */
832
+ typedef struct OpExpr
833
+ {
834
+ Expr xpr;
835
+
836
+ /* PG_OPERATOR OID of the operator */
837
+ Oid opno;
838
+
839
+ /* PG_PROC OID of underlying function */
840
+ Oid opfuncid pg_node_attr(equal_ignore_if_zero, query_jumble_ignore);
841
+
842
+ /* PG_TYPE OID of result value */
843
+ Oid opresulttype pg_node_attr(query_jumble_ignore);
844
+
845
+ /* true if operator returns set */
846
+ bool opretset pg_node_attr(query_jumble_ignore);
847
+
848
+ /* OID of collation of result */
849
+ Oid opcollid pg_node_attr(query_jumble_ignore);
850
+
851
+ /* OID of collation that operator should use */
852
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
853
+
854
+ /* arguments to the operator (1 or 2) */
855
+ List *args;
856
+
857
+ /* token location, or -1 if unknown */
858
+ ParseLoc location;
859
+ } OpExpr;
860
+
861
+ /*
862
+ * DistinctExpr - expression node for "x IS DISTINCT FROM y"
863
+ *
864
+ * Except for the nodetag, this is represented identically to an OpExpr
865
+ * referencing the "=" operator for x and y.
866
+ * We use "=", not the more obvious "<>", because more datatypes have "="
867
+ * than "<>". This means the executor must invert the operator result.
868
+ * Note that the operator function won't be called at all if either input
869
+ * is NULL, since then the result can be determined directly.
870
+ */
871
+ typedef OpExpr DistinctExpr;
872
+
873
+ /*
874
+ * NullIfExpr - a NULLIF expression
875
+ *
876
+ * Like DistinctExpr, this is represented the same as an OpExpr referencing
877
+ * the "=" operator for x and y.
878
+ */
879
+ typedef OpExpr NullIfExpr;
880
+
881
+ /*
882
+ * ScalarArrayOpExpr - expression node for "scalar op ANY/ALL (array)"
883
+ *
884
+ * The operator must yield boolean. It is applied to the left operand
885
+ * and each element of the righthand array, and the results are combined
886
+ * with OR or AND (for ANY or ALL respectively). The node representation
887
+ * is almost the same as for the underlying operator, but we need a useOr
888
+ * flag to remember whether it's ANY or ALL, and we don't have to store
889
+ * the result type (or the collation) because it must be boolean.
890
+ *
891
+ * A ScalarArrayOpExpr with a valid hashfuncid is evaluated during execution
892
+ * by building a hash table containing the Const values from the RHS arg.
893
+ * This table is probed during expression evaluation. The planner will set
894
+ * hashfuncid to the hash function which must be used to build and probe the
895
+ * hash table. The executor determines if it should use hash-based checks or
896
+ * the more traditional means based on if the hashfuncid is set or not.
897
+ *
898
+ * When performing hashed NOT IN, the negfuncid will also be set to the
899
+ * equality function which the hash table must use to build and probe the hash
900
+ * table. opno and opfuncid will remain set to the <> operator and its
901
+ * corresponding function and won't be used during execution. For
902
+ * non-hashtable based NOT INs, negfuncid will be set to InvalidOid. See
903
+ * convert_saop_to_hashed_saop().
904
+ *
905
+ * Similar to OpExpr, opfuncid, hashfuncid, and negfuncid are not necessarily
906
+ * filled in right away, so will be ignored for equality if they are not set
907
+ * yet.
908
+ *
909
+ * OID entries of the internal function types are irrelevant for the query
910
+ * jumbling, but the operator OID and the arguments are.
911
+ */
912
+ typedef struct ScalarArrayOpExpr
913
+ {
914
+ Expr xpr;
915
+
916
+ /* PG_OPERATOR OID of the operator */
917
+ Oid opno;
918
+
919
+ /* PG_PROC OID of comparison function */
920
+ Oid opfuncid pg_node_attr(equal_ignore_if_zero, query_jumble_ignore);
921
+
922
+ /* PG_PROC OID of hash func or InvalidOid */
923
+ Oid hashfuncid pg_node_attr(equal_ignore_if_zero, query_jumble_ignore);
924
+
925
+ /* PG_PROC OID of negator of opfuncid function or InvalidOid. See above */
926
+ Oid negfuncid pg_node_attr(equal_ignore_if_zero, query_jumble_ignore);
927
+
928
+ /* true for ANY, false for ALL */
929
+ bool useOr;
930
+
931
+ /* OID of collation that operator should use */
932
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
933
+
934
+ /* the scalar and array operands */
935
+ List *args;
936
+
937
+ /* token location, or -1 if unknown */
938
+ ParseLoc location;
939
+ } ScalarArrayOpExpr;
940
+
941
+ /*
942
+ * BoolExpr - expression node for the basic Boolean operators AND, OR, NOT
943
+ *
944
+ * Notice the arguments are given as a List. For NOT, of course the list
945
+ * must always have exactly one element. For AND and OR, there can be two
946
+ * or more arguments.
947
+ */
948
+ typedef enum BoolExprType
949
+ {
950
+ AND_EXPR, OR_EXPR, NOT_EXPR
951
+ } BoolExprType;
952
+
953
+ typedef struct BoolExpr
954
+ {
955
+ pg_node_attr(custom_read_write)
956
+
957
+ Expr xpr;
958
+ BoolExprType boolop;
959
+ List *args; /* arguments to this expression */
960
+ ParseLoc location; /* token location, or -1 if unknown */
961
+ } BoolExpr;
962
+
963
+ /*
964
+ * SubLink
965
+ *
966
+ * A SubLink represents a subselect appearing in an expression, and in some
967
+ * cases also the combining operator(s) just above it. The subLinkType
968
+ * indicates the form of the expression represented:
969
+ * EXISTS_SUBLINK EXISTS(SELECT ...)
970
+ * ALL_SUBLINK (lefthand) op ALL (SELECT ...)
971
+ * ANY_SUBLINK (lefthand) op ANY (SELECT ...)
972
+ * ROWCOMPARE_SUBLINK (lefthand) op (SELECT ...)
973
+ * EXPR_SUBLINK (SELECT with single targetlist item ...)
974
+ * MULTIEXPR_SUBLINK (SELECT with multiple targetlist items ...)
975
+ * ARRAY_SUBLINK ARRAY(SELECT with single targetlist item ...)
976
+ * CTE_SUBLINK WITH query (never actually part of an expression)
977
+ * For ALL, ANY, and ROWCOMPARE, the lefthand is a list of expressions of the
978
+ * same length as the subselect's targetlist. ROWCOMPARE will *always* have
979
+ * a list with more than one entry; if the subselect has just one target
980
+ * then the parser will create an EXPR_SUBLINK instead (and any operator
981
+ * above the subselect will be represented separately).
982
+ * ROWCOMPARE, EXPR, and MULTIEXPR require the subselect to deliver at most
983
+ * one row (if it returns no rows, the result is NULL).
984
+ * ALL, ANY, and ROWCOMPARE require the combining operators to deliver boolean
985
+ * results. ALL and ANY combine the per-row results using AND and OR
986
+ * semantics respectively.
987
+ * ARRAY requires just one target column, and creates an array of the target
988
+ * column's type using any number of rows resulting from the subselect.
989
+ *
990
+ * SubLink is classed as an Expr node, but it is not actually executable;
991
+ * it must be replaced in the expression tree by a SubPlan node during
992
+ * planning.
993
+ *
994
+ * NOTE: in the raw output of gram.y, testexpr contains just the raw form
995
+ * of the lefthand expression (if any), and operName is the String name of
996
+ * the combining operator. Also, subselect is a raw parsetree. During parse
997
+ * analysis, the parser transforms testexpr into a complete boolean expression
998
+ * that compares the lefthand value(s) to PARAM_SUBLINK nodes representing the
999
+ * output columns of the subselect. And subselect is transformed to a Query.
1000
+ * This is the representation seen in saved rules and in the rewriter.
1001
+ *
1002
+ * In EXISTS, EXPR, MULTIEXPR, and ARRAY SubLinks, testexpr and operName
1003
+ * are unused and are always null.
1004
+ *
1005
+ * subLinkId is currently used only for MULTIEXPR SubLinks, and is zero in
1006
+ * other SubLinks. This number identifies different multiple-assignment
1007
+ * subqueries within an UPDATE statement's SET list. It is unique only
1008
+ * within a particular targetlist. The output column(s) of the MULTIEXPR
1009
+ * are referenced by PARAM_MULTIEXPR Params appearing elsewhere in the tlist.
1010
+ *
1011
+ * The CTE_SUBLINK case never occurs in actual SubLink nodes, but it is used
1012
+ * in SubPlans generated for WITH subqueries.
1013
+ */
1014
+ typedef enum SubLinkType
1015
+ {
1016
+ EXISTS_SUBLINK,
1017
+ ALL_SUBLINK,
1018
+ ANY_SUBLINK,
1019
+ ROWCOMPARE_SUBLINK,
1020
+ EXPR_SUBLINK,
1021
+ MULTIEXPR_SUBLINK,
1022
+ ARRAY_SUBLINK,
1023
+ CTE_SUBLINK, /* for SubPlans only */
1024
+ } SubLinkType;
1025
+
1026
+
1027
+ typedef struct SubLink
1028
+ {
1029
+ Expr xpr;
1030
+ SubLinkType subLinkType; /* see above */
1031
+ int subLinkId; /* ID (1..n); 0 if not MULTIEXPR */
1032
+ Node *testexpr; /* outer-query test for ALL/ANY/ROWCOMPARE */
1033
+ /* originally specified operator name */
1034
+ List *operName pg_node_attr(query_jumble_ignore);
1035
+ /* subselect as Query* or raw parsetree */
1036
+ Node *subselect;
1037
+ ParseLoc location; /* token location, or -1 if unknown */
1038
+ } SubLink;
1039
+
1040
+ /*
1041
+ * SubPlan - executable expression node for a subplan (sub-SELECT)
1042
+ *
1043
+ * The planner replaces SubLink nodes in expression trees with SubPlan
1044
+ * nodes after it has finished planning the subquery. SubPlan references
1045
+ * a sub-plantree stored in the subplans list of the toplevel PlannedStmt.
1046
+ * (We avoid a direct link to make it easier to copy expression trees
1047
+ * without causing multiple processing of the subplan.)
1048
+ *
1049
+ * In an ordinary subplan, testexpr points to an executable expression
1050
+ * (OpExpr, an AND/OR tree of OpExprs, or RowCompareExpr) for the combining
1051
+ * operator(s); the left-hand arguments are the original lefthand expressions,
1052
+ * and the right-hand arguments are PARAM_EXEC Param nodes representing the
1053
+ * outputs of the sub-select. (NOTE: runtime coercion functions may be
1054
+ * inserted as well.) This is just the same expression tree as testexpr in
1055
+ * the original SubLink node, but the PARAM_SUBLINK nodes are replaced by
1056
+ * suitably numbered PARAM_EXEC nodes.
1057
+ *
1058
+ * If the sub-select becomes an initplan rather than a subplan, the executable
1059
+ * expression is part of the outer plan's expression tree (and the SubPlan
1060
+ * node itself is not, but rather is found in the outer plan's initPlan
1061
+ * list). In this case testexpr is NULL to avoid duplication.
1062
+ *
1063
+ * The planner also derives lists of the values that need to be passed into
1064
+ * and out of the subplan. Input values are represented as a list "args" of
1065
+ * expressions to be evaluated in the outer-query context (currently these
1066
+ * args are always just Vars, but in principle they could be any expression).
1067
+ * The values are assigned to the global PARAM_EXEC params indexed by parParam
1068
+ * (the parParam and args lists must have the same ordering). setParam is a
1069
+ * list of the PARAM_EXEC params that are computed by the sub-select, if it
1070
+ * is an initplan or MULTIEXPR plan; they are listed in order by sub-select
1071
+ * output column position. (parParam and setParam are integer Lists, not
1072
+ * Bitmapsets, because their ordering is significant.)
1073
+ *
1074
+ * Also, the planner computes startup and per-call costs for use of the
1075
+ * SubPlan. Note that these include the cost of the subquery proper,
1076
+ * evaluation of the testexpr if any, and any hashtable management overhead.
1077
+ */
1078
+ typedef struct SubPlan
1079
+ {
1080
+ pg_node_attr(no_query_jumble)
1081
+
1082
+ Expr xpr;
1083
+ /* Fields copied from original SubLink: */
1084
+ SubLinkType subLinkType; /* see above */
1085
+ /* The combining operators, transformed to an executable expression: */
1086
+ Node *testexpr; /* OpExpr or RowCompareExpr expression tree */
1087
+ List *paramIds; /* IDs of Params embedded in the above */
1088
+ /* Identification of the Plan tree to use: */
1089
+ int plan_id; /* Index (from 1) in PlannedStmt.subplans */
1090
+ /* Identification of the SubPlan for EXPLAIN and debugging purposes: */
1091
+ char *plan_name; /* A name assigned during planning */
1092
+ /* Extra data useful for determining subplan's output type: */
1093
+ Oid firstColType; /* Type of first column of subplan result */
1094
+ int32 firstColTypmod; /* Typmod of first column of subplan result */
1095
+ Oid firstColCollation; /* Collation of first column of subplan
1096
+ * result */
1097
+ /* Information about execution strategy: */
1098
+ bool useHashTable; /* true to store subselect output in a hash
1099
+ * table (implies we are doing "IN") */
1100
+ bool unknownEqFalse; /* true if it's okay to return FALSE when the
1101
+ * spec result is UNKNOWN; this allows much
1102
+ * simpler handling of null values */
1103
+ bool parallel_safe; /* is the subplan parallel-safe? */
1104
+ /* Note: parallel_safe does not consider contents of testexpr or args */
1105
+ /* Information for passing params into and out of the subselect: */
1106
+ /* setParam and parParam are lists of integers (param IDs) */
1107
+ List *setParam; /* initplan and MULTIEXPR subqueries have to
1108
+ * set these Params for parent plan */
1109
+ List *parParam; /* indices of input Params from parent plan */
1110
+ List *args; /* exprs to pass as parParam values */
1111
+ /* Estimated execution costs: */
1112
+ Cost startup_cost; /* one-time setup cost */
1113
+ Cost per_call_cost; /* cost for each subplan evaluation */
1114
+ } SubPlan;
1115
+
1116
+ /*
1117
+ * AlternativeSubPlan - expression node for a choice among SubPlans
1118
+ *
1119
+ * This is used only transiently during planning: by the time the plan
1120
+ * reaches the executor, all AlternativeSubPlan nodes have been removed.
1121
+ *
1122
+ * The subplans are given as a List so that the node definition need not
1123
+ * change if there's ever more than two alternatives. For the moment,
1124
+ * though, there are always exactly two; and the first one is the fast-start
1125
+ * plan.
1126
+ */
1127
+ typedef struct AlternativeSubPlan
1128
+ {
1129
+ pg_node_attr(no_query_jumble)
1130
+
1131
+ Expr xpr;
1132
+ List *subplans; /* SubPlan(s) with equivalent results */
1133
+ } AlternativeSubPlan;
1134
+
1135
+ /* ----------------
1136
+ * FieldSelect
1137
+ *
1138
+ * FieldSelect represents the operation of extracting one field from a tuple
1139
+ * value. At runtime, the input expression is expected to yield a rowtype
1140
+ * Datum. The specified field number is extracted and returned as a Datum.
1141
+ * ----------------
1142
+ */
1143
+
1144
+ typedef struct FieldSelect
1145
+ {
1146
+ Expr xpr;
1147
+ Expr *arg; /* input expression */
1148
+ AttrNumber fieldnum; /* attribute number of field to extract */
1149
+ /* type of the field (result type of this node) */
1150
+ Oid resulttype pg_node_attr(query_jumble_ignore);
1151
+ /* output typmod (usually -1) */
1152
+ int32 resulttypmod pg_node_attr(query_jumble_ignore);
1153
+ /* OID of collation of the field */
1154
+ Oid resultcollid pg_node_attr(query_jumble_ignore);
1155
+ } FieldSelect;
1156
+
1157
+ /* ----------------
1158
+ * FieldStore
1159
+ *
1160
+ * FieldStore represents the operation of modifying one field in a tuple
1161
+ * value, yielding a new tuple value (the input is not touched!). Like
1162
+ * the assign case of SubscriptingRef, this is used to implement UPDATE of a
1163
+ * portion of a column.
1164
+ *
1165
+ * resulttype is always a named composite type (not a domain). To update
1166
+ * a composite domain value, apply CoerceToDomain to the FieldStore.
1167
+ *
1168
+ * A single FieldStore can actually represent updates of several different
1169
+ * fields. The parser only generates FieldStores with single-element lists,
1170
+ * but the planner will collapse multiple updates of the same base column
1171
+ * into one FieldStore.
1172
+ * ----------------
1173
+ */
1174
+
1175
+ typedef struct FieldStore
1176
+ {
1177
+ Expr xpr;
1178
+ Expr *arg; /* input tuple value */
1179
+ List *newvals; /* new value(s) for field(s) */
1180
+ /* integer list of field attnums */
1181
+ List *fieldnums pg_node_attr(query_jumble_ignore);
1182
+ /* type of result (same as type of arg) */
1183
+ Oid resulttype pg_node_attr(query_jumble_ignore);
1184
+ /* Like RowExpr, we deliberately omit a typmod and collation here */
1185
+ } FieldStore;
1186
+
1187
+ /* ----------------
1188
+ * RelabelType
1189
+ *
1190
+ * RelabelType represents a "dummy" type coercion between two binary-
1191
+ * compatible datatypes, such as reinterpreting the result of an OID
1192
+ * expression as an int4. It is a no-op at runtime; we only need it
1193
+ * to provide a place to store the correct type to be attributed to
1194
+ * the expression result during type resolution. (We can't get away
1195
+ * with just overwriting the type field of the input expression node,
1196
+ * so we need a separate node to show the coercion's result type.)
1197
+ * ----------------
1198
+ */
1199
+
1200
+ typedef struct RelabelType
1201
+ {
1202
+ Expr xpr;
1203
+ Expr *arg; /* input expression */
1204
+ Oid resulttype; /* output type of coercion expression */
1205
+ /* output typmod (usually -1) */
1206
+ int32 resulttypmod pg_node_attr(query_jumble_ignore);
1207
+ /* OID of collation, or InvalidOid if none */
1208
+ Oid resultcollid pg_node_attr(query_jumble_ignore);
1209
+ /* how to display this node */
1210
+ CoercionForm relabelformat pg_node_attr(query_jumble_ignore);
1211
+ ParseLoc location; /* token location, or -1 if unknown */
1212
+ } RelabelType;
1213
+
1214
+ /* ----------------
1215
+ * CoerceViaIO
1216
+ *
1217
+ * CoerceViaIO represents a type coercion between two types whose textual
1218
+ * representations are compatible, implemented by invoking the source type's
1219
+ * typoutput function then the destination type's typinput function.
1220
+ * ----------------
1221
+ */
1222
+
1223
+ typedef struct CoerceViaIO
1224
+ {
1225
+ Expr xpr;
1226
+ Expr *arg; /* input expression */
1227
+ Oid resulttype; /* output type of coercion */
1228
+ /* output typmod is not stored, but is presumed -1 */
1229
+ /* OID of collation, or InvalidOid if none */
1230
+ Oid resultcollid pg_node_attr(query_jumble_ignore);
1231
+ /* how to display this node */
1232
+ CoercionForm coerceformat pg_node_attr(query_jumble_ignore);
1233
+ ParseLoc location; /* token location, or -1 if unknown */
1234
+ } CoerceViaIO;
1235
+
1236
+ /* ----------------
1237
+ * ArrayCoerceExpr
1238
+ *
1239
+ * ArrayCoerceExpr represents a type coercion from one array type to another,
1240
+ * which is implemented by applying the per-element coercion expression
1241
+ * "elemexpr" to each element of the source array. Within elemexpr, the
1242
+ * source element is represented by a CaseTestExpr node. Note that even if
1243
+ * elemexpr is a no-op (that is, just CaseTestExpr + RelabelType), the
1244
+ * coercion still requires some effort: we have to fix the element type OID
1245
+ * stored in the array header.
1246
+ * ----------------
1247
+ */
1248
+
1249
+ typedef struct ArrayCoerceExpr
1250
+ {
1251
+ Expr xpr;
1252
+ Expr *arg; /* input expression (yields an array) */
1253
+ Expr *elemexpr; /* expression representing per-element work */
1254
+ Oid resulttype; /* output type of coercion (an array type) */
1255
+ /* output typmod (also element typmod) */
1256
+ int32 resulttypmod pg_node_attr(query_jumble_ignore);
1257
+ /* OID of collation, or InvalidOid if none */
1258
+ Oid resultcollid pg_node_attr(query_jumble_ignore);
1259
+ /* how to display this node */
1260
+ CoercionForm coerceformat pg_node_attr(query_jumble_ignore);
1261
+ ParseLoc location; /* token location, or -1 if unknown */
1262
+ } ArrayCoerceExpr;
1263
+
1264
+ /* ----------------
1265
+ * ConvertRowtypeExpr
1266
+ *
1267
+ * ConvertRowtypeExpr represents a type coercion from one composite type
1268
+ * to another, where the source type is guaranteed to contain all the columns
1269
+ * needed for the destination type plus possibly others; the columns need not
1270
+ * be in the same positions, but are matched up by name. This is primarily
1271
+ * used to convert a whole-row value of an inheritance child table into a
1272
+ * valid whole-row value of its parent table's rowtype. Both resulttype
1273
+ * and the exposed type of "arg" must be named composite types (not domains).
1274
+ * ----------------
1275
+ */
1276
+
1277
+ typedef struct ConvertRowtypeExpr
1278
+ {
1279
+ Expr xpr;
1280
+ Expr *arg; /* input expression */
1281
+ Oid resulttype; /* output type (always a composite type) */
1282
+ /* Like RowExpr, we deliberately omit a typmod and collation here */
1283
+ /* how to display this node */
1284
+ CoercionForm convertformat pg_node_attr(query_jumble_ignore);
1285
+ ParseLoc location; /* token location, or -1 if unknown */
1286
+ } ConvertRowtypeExpr;
1287
+
1288
+ /*----------
1289
+ * CollateExpr - COLLATE
1290
+ *
1291
+ * The planner replaces CollateExpr with RelabelType during expression
1292
+ * preprocessing, so execution never sees a CollateExpr.
1293
+ *----------
1294
+ */
1295
+ typedef struct CollateExpr
1296
+ {
1297
+ Expr xpr;
1298
+ Expr *arg; /* input expression */
1299
+ Oid collOid; /* collation's OID */
1300
+ ParseLoc location; /* token location, or -1 if unknown */
1301
+ } CollateExpr;
1302
+
1303
+ /*----------
1304
+ * CaseExpr - a CASE expression
1305
+ *
1306
+ * We support two distinct forms of CASE expression:
1307
+ * CASE WHEN boolexpr THEN expr [ WHEN boolexpr THEN expr ... ]
1308
+ * CASE testexpr WHEN compexpr THEN expr [ WHEN compexpr THEN expr ... ]
1309
+ * These are distinguishable by the "arg" field being NULL in the first case
1310
+ * and the testexpr in the second case.
1311
+ *
1312
+ * In the raw grammar output for the second form, the condition expressions
1313
+ * of the WHEN clauses are just the comparison values. Parse analysis
1314
+ * converts these to valid boolean expressions of the form
1315
+ * CaseTestExpr '=' compexpr
1316
+ * where the CaseTestExpr node is a placeholder that emits the correct
1317
+ * value at runtime. This structure is used so that the testexpr need be
1318
+ * evaluated only once. Note that after parse analysis, the condition
1319
+ * expressions always yield boolean.
1320
+ *
1321
+ * Note: we can test whether a CaseExpr has been through parse analysis
1322
+ * yet by checking whether casetype is InvalidOid or not.
1323
+ *----------
1324
+ */
1325
+ typedef struct CaseExpr
1326
+ {
1327
+ Expr xpr;
1328
+ /* type of expression result */
1329
+ Oid casetype pg_node_attr(query_jumble_ignore);
1330
+ /* OID of collation, or InvalidOid if none */
1331
+ Oid casecollid pg_node_attr(query_jumble_ignore);
1332
+ Expr *arg; /* implicit equality comparison argument */
1333
+ List *args; /* the arguments (list of WHEN clauses) */
1334
+ Expr *defresult; /* the default result (ELSE clause) */
1335
+ ParseLoc location; /* token location, or -1 if unknown */
1336
+ } CaseExpr;
1337
+
1338
+ /*
1339
+ * CaseWhen - one arm of a CASE expression
1340
+ */
1341
+ typedef struct CaseWhen
1342
+ {
1343
+ Expr xpr;
1344
+ Expr *expr; /* condition expression */
1345
+ Expr *result; /* substitution result */
1346
+ ParseLoc location; /* token location, or -1 if unknown */
1347
+ } CaseWhen;
1348
+
1349
+ /*
1350
+ * Placeholder node for the test value to be processed by a CASE expression.
1351
+ * This is effectively like a Param, but can be implemented more simply
1352
+ * since we need only one replacement value at a time.
1353
+ *
1354
+ * We also abuse this node type for some other purposes, including:
1355
+ * * Placeholder for the current array element value in ArrayCoerceExpr;
1356
+ * see build_coercion_expression().
1357
+ * * Nested FieldStore/SubscriptingRef assignment expressions in INSERT/UPDATE;
1358
+ * see transformAssignmentIndirection().
1359
+ * * Placeholder for intermediate results in some SQL/JSON expression nodes,
1360
+ * such as JsonConstructorExpr.
1361
+ *
1362
+ * The uses in CaseExpr and ArrayCoerceExpr are safe only to the extent that
1363
+ * there is not any other CaseExpr or ArrayCoerceExpr between the value source
1364
+ * node and its child CaseTestExpr(s). This is true in the parse analysis
1365
+ * output, but the planner's function-inlining logic has to be careful not to
1366
+ * break it.
1367
+ *
1368
+ * The nested-assignment-expression case is safe because the only node types
1369
+ * that can be above such CaseTestExprs are FieldStore and SubscriptingRef.
1370
+ */
1371
+ typedef struct CaseTestExpr
1372
+ {
1373
+ Expr xpr;
1374
+ Oid typeId; /* type for substituted value */
1375
+ /* typemod for substituted value */
1376
+ int32 typeMod pg_node_attr(query_jumble_ignore);
1377
+ /* collation for the substituted value */
1378
+ Oid collation pg_node_attr(query_jumble_ignore);
1379
+ } CaseTestExpr;
1380
+
1381
+ /*
1382
+ * ArrayExpr - an ARRAY[] expression
1383
+ *
1384
+ * Note: if multidims is false, the constituent expressions all yield the
1385
+ * scalar type identified by element_typeid. If multidims is true, the
1386
+ * constituent expressions all yield arrays of element_typeid (ie, the same
1387
+ * type as array_typeid); at runtime we must check for compatible subscripts.
1388
+ */
1389
+ typedef struct ArrayExpr
1390
+ {
1391
+ Expr xpr;
1392
+ /* type of expression result */
1393
+ Oid array_typeid pg_node_attr(query_jumble_ignore);
1394
+ /* OID of collation, or InvalidOid if none */
1395
+ Oid array_collid pg_node_attr(query_jumble_ignore);
1396
+ /* common type of array elements */
1397
+ Oid element_typeid pg_node_attr(query_jumble_ignore);
1398
+ /* the array elements or sub-arrays */
1399
+ List *elements pg_node_attr(query_jumble_squash);
1400
+ /* true if elements are sub-arrays */
1401
+ bool multidims pg_node_attr(query_jumble_ignore);
1402
+ /* location of the start of the elements list */
1403
+ ParseLoc list_start;
1404
+ /* location of the end of the elements list */
1405
+ ParseLoc list_end;
1406
+ /* token location, or -1 if unknown */
1407
+ ParseLoc location;
1408
+ } ArrayExpr;
1409
+
1410
+ /*
1411
+ * RowExpr - a ROW() expression
1412
+ *
1413
+ * Note: the list of fields must have a one-for-one correspondence with
1414
+ * physical fields of the associated rowtype, although it is okay for it
1415
+ * to be shorter than the rowtype. That is, the N'th list element must
1416
+ * match up with the N'th physical field. When the N'th physical field
1417
+ * is a dropped column (attisdropped) then the N'th list element can just
1418
+ * be a NULL constant. (This case can only occur for named composite types,
1419
+ * not RECORD types, since those are built from the RowExpr itself rather
1420
+ * than vice versa.) It is important not to assume that length(args) is
1421
+ * the same as the number of columns logically present in the rowtype.
1422
+ *
1423
+ * colnames provides field names if the ROW() result is of type RECORD.
1424
+ * Names *must* be provided if row_typeid is RECORDOID; but if it is a
1425
+ * named composite type, colnames will be ignored in favor of using the
1426
+ * type's cataloged field names, so colnames should be NIL. Like the
1427
+ * args list, colnames is defined to be one-for-one with physical fields
1428
+ * of the rowtype (although dropped columns shouldn't appear in the
1429
+ * RECORD case, so this fine point is currently moot).
1430
+ */
1431
+ typedef struct RowExpr
1432
+ {
1433
+ Expr xpr;
1434
+ List *args; /* the fields */
1435
+
1436
+ /* RECORDOID or a composite type's ID */
1437
+ Oid row_typeid pg_node_attr(query_jumble_ignore);
1438
+
1439
+ /*
1440
+ * row_typeid cannot be a domain over composite, only plain composite. To
1441
+ * create a composite domain value, apply CoerceToDomain to the RowExpr.
1442
+ *
1443
+ * Note: we deliberately do NOT store a typmod. Although a typmod will be
1444
+ * associated with specific RECORD types at runtime, it will differ for
1445
+ * different backends, and so cannot safely be stored in stored
1446
+ * parsetrees. We must assume typmod -1 for a RowExpr node.
1447
+ *
1448
+ * We don't need to store a collation either. The result type is
1449
+ * necessarily composite, and composite types never have a collation.
1450
+ */
1451
+
1452
+ /* how to display this node */
1453
+ CoercionForm row_format pg_node_attr(query_jumble_ignore);
1454
+
1455
+ /* list of String, or NIL */
1456
+ List *colnames pg_node_attr(query_jumble_ignore);
1457
+
1458
+ ParseLoc location; /* token location, or -1 if unknown */
1459
+ } RowExpr;
1460
+
1461
+ /*
1462
+ * RowCompareExpr - row-wise comparison, such as (a, b) <= (1, 2)
1463
+ *
1464
+ * We support row comparison for any operator that can be determined to
1465
+ * act like =, <>, <, <=, >, or >= (we determine this by looking for the
1466
+ * operator in btree opfamilies). Note that the same operator name might
1467
+ * map to a different operator for each pair of row elements, since the
1468
+ * element datatypes can vary.
1469
+ *
1470
+ * A RowCompareExpr node is only generated for the < <= > >= cases;
1471
+ * the = and <> cases are translated to simple AND or OR combinations
1472
+ * of the pairwise comparisons.
1473
+ */
1474
+ typedef struct RowCompareExpr
1475
+ {
1476
+ Expr xpr;
1477
+
1478
+ /* LT LE GE or GT, never EQ or NE */
1479
+ CompareType cmptype;
1480
+ /* OID list of pairwise comparison ops */
1481
+ List *opnos pg_node_attr(query_jumble_ignore);
1482
+ /* OID list of containing operator families */
1483
+ List *opfamilies pg_node_attr(query_jumble_ignore);
1484
+ /* OID list of collations for comparisons */
1485
+ List *inputcollids pg_node_attr(query_jumble_ignore);
1486
+ /* the left-hand input arguments */
1487
+ List *largs;
1488
+ /* the right-hand input arguments */
1489
+ List *rargs;
1490
+ } RowCompareExpr;
1491
+
1492
+ /*
1493
+ * CoalesceExpr - a COALESCE expression
1494
+ */
1495
+ typedef struct CoalesceExpr
1496
+ {
1497
+ Expr xpr;
1498
+ /* type of expression result */
1499
+ Oid coalescetype pg_node_attr(query_jumble_ignore);
1500
+ /* OID of collation, or InvalidOid if none */
1501
+ Oid coalescecollid pg_node_attr(query_jumble_ignore);
1502
+ /* the arguments */
1503
+ List *args;
1504
+ /* token location, or -1 if unknown */
1505
+ ParseLoc location;
1506
+ } CoalesceExpr;
1507
+
1508
+ /*
1509
+ * MinMaxExpr - a GREATEST or LEAST function
1510
+ */
1511
+ typedef enum MinMaxOp
1512
+ {
1513
+ IS_GREATEST,
1514
+ IS_LEAST
1515
+ } MinMaxOp;
1516
+
1517
+ typedef struct MinMaxExpr
1518
+ {
1519
+ Expr xpr;
1520
+ /* common type of arguments and result */
1521
+ Oid minmaxtype pg_node_attr(query_jumble_ignore);
1522
+ /* OID of collation of result */
1523
+ Oid minmaxcollid pg_node_attr(query_jumble_ignore);
1524
+ /* OID of collation that function should use */
1525
+ Oid inputcollid pg_node_attr(query_jumble_ignore);
1526
+ /* function to execute */
1527
+ MinMaxOp op;
1528
+ /* the arguments */
1529
+ List *args;
1530
+ /* token location, or -1 if unknown */
1531
+ ParseLoc location;
1532
+ } MinMaxExpr;
1533
+
1534
+ /*
1535
+ * SQLValueFunction - parameterless functions with special grammar productions
1536
+ *
1537
+ * The SQL standard categorizes some of these as <datetime value function>
1538
+ * and others as <general value specification>. We call 'em SQLValueFunctions
1539
+ * for lack of a better term. We store type and typmod of the result so that
1540
+ * some code doesn't need to know each function individually, and because
1541
+ * we would need to store typmod anyway for some of the datetime functions.
1542
+ * Note that currently, all variants return non-collating datatypes, so we do
1543
+ * not need a collation field; also, all these functions are stable.
1544
+ */
1545
+ typedef enum SQLValueFunctionOp
1546
+ {
1547
+ SVFOP_CURRENT_DATE,
1548
+ SVFOP_CURRENT_TIME,
1549
+ SVFOP_CURRENT_TIME_N,
1550
+ SVFOP_CURRENT_TIMESTAMP,
1551
+ SVFOP_CURRENT_TIMESTAMP_N,
1552
+ SVFOP_LOCALTIME,
1553
+ SVFOP_LOCALTIME_N,
1554
+ SVFOP_LOCALTIMESTAMP,
1555
+ SVFOP_LOCALTIMESTAMP_N,
1556
+ SVFOP_CURRENT_ROLE,
1557
+ SVFOP_CURRENT_USER,
1558
+ SVFOP_USER,
1559
+ SVFOP_SESSION_USER,
1560
+ SVFOP_CURRENT_CATALOG,
1561
+ SVFOP_CURRENT_SCHEMA,
1562
+ } SQLValueFunctionOp;
1563
+
1564
+ typedef struct SQLValueFunction
1565
+ {
1566
+ Expr xpr;
1567
+ SQLValueFunctionOp op; /* which function this is */
1568
+
1569
+ /*
1570
+ * Result type/typmod. Type is fully determined by "op", so no need to
1571
+ * include this Oid in the query jumbling.
1572
+ */
1573
+ Oid type pg_node_attr(query_jumble_ignore);
1574
+ int32 typmod;
1575
+ ParseLoc location; /* token location, or -1 if unknown */
1576
+ } SQLValueFunction;
1577
+
1578
+ /*
1579
+ * XmlExpr - various SQL/XML functions requiring special grammar productions
1580
+ *
1581
+ * 'name' carries the "NAME foo" argument (already XML-escaped).
1582
+ * 'named_args' and 'arg_names' represent an xml_attribute list.
1583
+ * 'args' carries all other arguments.
1584
+ *
1585
+ * Note: result type/typmod/collation are not stored, but can be deduced
1586
+ * from the XmlExprOp. The type/typmod fields are just used for display
1587
+ * purposes, and are NOT necessarily the true result type of the node.
1588
+ */
1589
+ typedef enum XmlExprOp
1590
+ {
1591
+ IS_XMLCONCAT, /* XMLCONCAT(args) */
1592
+ IS_XMLELEMENT, /* XMLELEMENT(name, xml_attributes, args) */
1593
+ IS_XMLFOREST, /* XMLFOREST(xml_attributes) */
1594
+ IS_XMLPARSE, /* XMLPARSE(text, is_doc, preserve_ws) */
1595
+ IS_XMLPI, /* XMLPI(name [, args]) */
1596
+ IS_XMLROOT, /* XMLROOT(xml, version, standalone) */
1597
+ IS_XMLSERIALIZE, /* XMLSERIALIZE(is_document, xmlval, indent) */
1598
+ IS_DOCUMENT, /* xmlval IS DOCUMENT */
1599
+ } XmlExprOp;
1600
+
1601
+ typedef enum XmlOptionType
1602
+ {
1603
+ XMLOPTION_DOCUMENT,
1604
+ XMLOPTION_CONTENT,
1605
+ } XmlOptionType;
1606
+
1607
+ typedef struct XmlExpr
1608
+ {
1609
+ Expr xpr;
1610
+ /* xml function ID */
1611
+ XmlExprOp op;
1612
+ /* name in xml(NAME foo ...) syntaxes */
1613
+ char *name pg_node_attr(query_jumble_ignore);
1614
+ /* non-XML expressions for xml_attributes */
1615
+ List *named_args;
1616
+ /* parallel list of String values */
1617
+ List *arg_names pg_node_attr(query_jumble_ignore);
1618
+ /* list of expressions */
1619
+ List *args;
1620
+ /* DOCUMENT or CONTENT */
1621
+ XmlOptionType xmloption pg_node_attr(query_jumble_ignore);
1622
+ /* INDENT option for XMLSERIALIZE */
1623
+ bool indent;
1624
+ /* target type/typmod for XMLSERIALIZE */
1625
+ Oid type pg_node_attr(query_jumble_ignore);
1626
+ int32 typmod pg_node_attr(query_jumble_ignore);
1627
+ /* token location, or -1 if unknown */
1628
+ ParseLoc location;
1629
+ } XmlExpr;
1630
+
1631
+ /*
1632
+ * JsonEncoding -
1633
+ * representation of JSON ENCODING clause
1634
+ */
1635
+ typedef enum JsonEncoding
1636
+ {
1637
+ JS_ENC_DEFAULT, /* unspecified */
1638
+ JS_ENC_UTF8,
1639
+ JS_ENC_UTF16,
1640
+ JS_ENC_UTF32,
1641
+ } JsonEncoding;
1642
+
1643
+ /*
1644
+ * JsonFormatType -
1645
+ * enumeration of JSON formats used in JSON FORMAT clause
1646
+ */
1647
+ typedef enum JsonFormatType
1648
+ {
1649
+ JS_FORMAT_DEFAULT, /* unspecified */
1650
+ JS_FORMAT_JSON, /* FORMAT JSON [ENCODING ...] */
1651
+ JS_FORMAT_JSONB, /* implicit internal format for RETURNING
1652
+ * jsonb */
1653
+ } JsonFormatType;
1654
+
1655
+ /*
1656
+ * JsonFormat -
1657
+ * representation of JSON FORMAT clause
1658
+ */
1659
+ typedef struct JsonFormat
1660
+ {
1661
+ NodeTag type;
1662
+ JsonFormatType format_type; /* format type */
1663
+ JsonEncoding encoding; /* JSON encoding */
1664
+ ParseLoc location; /* token location, or -1 if unknown */
1665
+ } JsonFormat;
1666
+
1667
+ /*
1668
+ * JsonReturning -
1669
+ * transformed representation of JSON RETURNING clause
1670
+ */
1671
+ typedef struct JsonReturning
1672
+ {
1673
+ NodeTag type;
1674
+ JsonFormat *format; /* output JSON format */
1675
+ Oid typid; /* target type Oid */
1676
+ int32 typmod; /* target type modifier */
1677
+ } JsonReturning;
1678
+
1679
+ /*
1680
+ * JsonValueExpr -
1681
+ * representation of JSON value expression (expr [FORMAT JsonFormat])
1682
+ *
1683
+ * raw_expr is the user-specified value, while formatted_expr is the value
1684
+ * obtained by coercing raw_expr to the type required by either the FORMAT
1685
+ * clause or an enclosing node's RETURNING clause.
1686
+ *
1687
+ * When deparsing a JsonValueExpr, get_rule_expr() prints raw_expr. However,
1688
+ * during the evaluation of a JsonValueExpr, the value of formatted_expr
1689
+ * takes precedence over that of raw_expr.
1690
+ */
1691
+ typedef struct JsonValueExpr
1692
+ {
1693
+ NodeTag type;
1694
+ Expr *raw_expr; /* user-specified expression */
1695
+ Expr *formatted_expr; /* coerced formatted expression */
1696
+ JsonFormat *format; /* FORMAT clause, if specified */
1697
+ } JsonValueExpr;
1698
+
1699
+ typedef enum JsonConstructorType
1700
+ {
1701
+ JSCTOR_JSON_OBJECT = 1,
1702
+ JSCTOR_JSON_ARRAY = 2,
1703
+ JSCTOR_JSON_OBJECTAGG = 3,
1704
+ JSCTOR_JSON_ARRAYAGG = 4,
1705
+ JSCTOR_JSON_PARSE = 5,
1706
+ JSCTOR_JSON_SCALAR = 6,
1707
+ JSCTOR_JSON_SERIALIZE = 7,
1708
+ } JsonConstructorType;
1709
+
1710
+ /*
1711
+ * JsonConstructorExpr -
1712
+ * wrapper over FuncExpr/Aggref/WindowFunc for SQL/JSON constructors
1713
+ */
1714
+ typedef struct JsonConstructorExpr
1715
+ {
1716
+ Expr xpr;
1717
+ JsonConstructorType type; /* constructor type */
1718
+ List *args;
1719
+ Expr *func; /* underlying json[b]_xxx() function call */
1720
+ Expr *coercion; /* coercion to RETURNING type */
1721
+ JsonReturning *returning; /* RETURNING clause */
1722
+ bool absent_on_null; /* ABSENT ON NULL? */
1723
+ bool unique; /* WITH UNIQUE KEYS? (JSON_OBJECT[AGG] only) */
1724
+ ParseLoc location;
1725
+ } JsonConstructorExpr;
1726
+
1727
+ /*
1728
+ * JsonValueType -
1729
+ * representation of JSON item type in IS JSON predicate
1730
+ */
1731
+ typedef enum JsonValueType
1732
+ {
1733
+ JS_TYPE_ANY, /* IS JSON [VALUE] */
1734
+ JS_TYPE_OBJECT, /* IS JSON OBJECT */
1735
+ JS_TYPE_ARRAY, /* IS JSON ARRAY */
1736
+ JS_TYPE_SCALAR, /* IS JSON SCALAR */
1737
+ } JsonValueType;
1738
+
1739
+ /*
1740
+ * JsonIsPredicate -
1741
+ * representation of IS JSON predicate
1742
+ */
1743
+ typedef struct JsonIsPredicate
1744
+ {
1745
+ NodeTag type;
1746
+ Node *expr; /* subject expression */
1747
+ JsonFormat *format; /* FORMAT clause, if specified */
1748
+ JsonValueType item_type; /* JSON item type */
1749
+ bool unique_keys; /* check key uniqueness? */
1750
+ ParseLoc location; /* token location, or -1 if unknown */
1751
+ } JsonIsPredicate;
1752
+
1753
+ /* Nodes used in SQL/JSON query functions */
1754
+
1755
+ /*
1756
+ * JsonWrapper -
1757
+ * representation of WRAPPER clause for JSON_QUERY()
1758
+ */
1759
+ typedef enum JsonWrapper
1760
+ {
1761
+ JSW_UNSPEC,
1762
+ JSW_NONE,
1763
+ JSW_CONDITIONAL,
1764
+ JSW_UNCONDITIONAL,
1765
+ } JsonWrapper;
1766
+
1767
+ /*
1768
+ * JsonBehaviorType -
1769
+ * enumeration of behavior types used in SQL/JSON ON ERROR/EMPTY clauses
1770
+ *
1771
+ * If enum members are reordered, get_json_behavior() from ruleutils.c
1772
+ * must be updated accordingly.
1773
+ */
1774
+ typedef enum JsonBehaviorType
1775
+ {
1776
+ JSON_BEHAVIOR_NULL = 0,
1777
+ JSON_BEHAVIOR_ERROR,
1778
+ JSON_BEHAVIOR_EMPTY,
1779
+ JSON_BEHAVIOR_TRUE,
1780
+ JSON_BEHAVIOR_FALSE,
1781
+ JSON_BEHAVIOR_UNKNOWN,
1782
+ JSON_BEHAVIOR_EMPTY_ARRAY,
1783
+ JSON_BEHAVIOR_EMPTY_OBJECT,
1784
+ JSON_BEHAVIOR_DEFAULT,
1785
+ } JsonBehaviorType;
1786
+
1787
+ /*
1788
+ * JsonBehavior
1789
+ * Specifications for ON ERROR / ON EMPTY behaviors of SQL/JSON
1790
+ * query functions specified by a JsonExpr
1791
+ *
1792
+ * 'expr' is the expression to emit when a given behavior (EMPTY or ERROR)
1793
+ * occurs on evaluating the SQL/JSON query function. 'coerce' is set to true
1794
+ * if 'expr' isn't already of the expected target type given by
1795
+ * JsonExpr.returning.
1796
+ */
1797
+ typedef struct JsonBehavior
1798
+ {
1799
+ NodeTag type;
1800
+
1801
+ JsonBehaviorType btype;
1802
+ Node *expr;
1803
+ bool coerce;
1804
+ ParseLoc location; /* token location, or -1 if unknown */
1805
+ } JsonBehavior;
1806
+
1807
+ /*
1808
+ * JsonExprOp -
1809
+ * enumeration of SQL/JSON query function types
1810
+ */
1811
+ typedef enum JsonExprOp
1812
+ {
1813
+ JSON_EXISTS_OP, /* JSON_EXISTS() */
1814
+ JSON_QUERY_OP, /* JSON_QUERY() */
1815
+ JSON_VALUE_OP, /* JSON_VALUE() */
1816
+ JSON_TABLE_OP, /* JSON_TABLE() */
1817
+ } JsonExprOp;
1818
+
1819
+ /*
1820
+ * JsonExpr -
1821
+ * Transformed representation of JSON_VALUE(), JSON_QUERY(), and
1822
+ * JSON_EXISTS()
1823
+ */
1824
+ typedef struct JsonExpr
1825
+ {
1826
+ Expr xpr;
1827
+
1828
+ JsonExprOp op;
1829
+
1830
+ char *column_name; /* JSON_TABLE() column name or NULL if this is
1831
+ * not for a JSON_TABLE() */
1832
+
1833
+ /* jsonb-valued expression to query */
1834
+ Node *formatted_expr;
1835
+
1836
+ /* Format of the above expression needed by ruleutils.c */
1837
+ JsonFormat *format;
1838
+
1839
+ /* jsonpath-valued expression containing the query pattern */
1840
+ Node *path_spec;
1841
+
1842
+ /* Expected type/format of the output. */
1843
+ JsonReturning *returning;
1844
+
1845
+ /* Information about the PASSING argument expressions */
1846
+ List *passing_names;
1847
+ List *passing_values;
1848
+
1849
+ /* User-specified or default ON EMPTY and ON ERROR behaviors */
1850
+ JsonBehavior *on_empty;
1851
+ JsonBehavior *on_error;
1852
+
1853
+ /*
1854
+ * Information about converting the result of jsonpath functions
1855
+ * JsonPathQuery() and JsonPathValue() to the RETURNING type.
1856
+ */
1857
+ bool use_io_coercion;
1858
+ bool use_json_coercion;
1859
+
1860
+ /* WRAPPER specification for JSON_QUERY */
1861
+ JsonWrapper wrapper;
1862
+
1863
+ /* KEEP or OMIT QUOTES for singleton scalars returned by JSON_QUERY() */
1864
+ bool omit_quotes;
1865
+
1866
+ /* JsonExpr's collation. */
1867
+ Oid collation;
1868
+
1869
+ /* Original JsonFuncExpr's location */
1870
+ ParseLoc location;
1871
+ } JsonExpr;
1872
+
1873
+ /*
1874
+ * JsonTablePath
1875
+ * A JSON path expression to be computed as part of evaluating
1876
+ * a JSON_TABLE plan node
1877
+ */
1878
+ typedef struct JsonTablePath
1879
+ {
1880
+ NodeTag type;
1881
+
1882
+ Const *value;
1883
+ char *name;
1884
+ } JsonTablePath;
1885
+
1886
+ /*
1887
+ * JsonTablePlan -
1888
+ * Abstract class to represent different types of JSON_TABLE "plans".
1889
+ * A plan is used to generate a "row pattern" value by evaluating a JSON
1890
+ * path expression against an input JSON document, which is then used for
1891
+ * populating JSON_TABLE() columns
1892
+ */
1893
+ typedef struct JsonTablePlan
1894
+ {
1895
+ pg_node_attr(abstract)
1896
+
1897
+ NodeTag type;
1898
+ } JsonTablePlan;
1899
+
1900
+ /*
1901
+ * JSON_TABLE plan to evaluate a JSON path expression and NESTED paths, if
1902
+ * any.
1903
+ */
1904
+ typedef struct JsonTablePathScan
1905
+ {
1906
+ JsonTablePlan plan;
1907
+
1908
+ /* JSON path to evaluate */
1909
+ JsonTablePath *path;
1910
+
1911
+ /*
1912
+ * ERROR/EMPTY ON ERROR behavior; only significant in the plan for the
1913
+ * top-level path.
1914
+ */
1915
+ bool errorOnError;
1916
+
1917
+ /* Plan(s) for nested columns, if any. */
1918
+ JsonTablePlan *child;
1919
+
1920
+ /*
1921
+ * 0-based index in TableFunc.colvalexprs of the 1st and the last column
1922
+ * covered by this plan. Both are -1 if all columns are nested and thus
1923
+ * computed by the child plan(s).
1924
+ */
1925
+ int colMin;
1926
+ int colMax;
1927
+ } JsonTablePathScan;
1928
+
1929
+ /*
1930
+ * JsonTableSiblingJoin -
1931
+ * Plan to join rows of sibling NESTED COLUMNS clauses in the same parent
1932
+ * COLUMNS clause
1933
+ */
1934
+ typedef struct JsonTableSiblingJoin
1935
+ {
1936
+ JsonTablePlan plan;
1937
+
1938
+ JsonTablePlan *lplan;
1939
+ JsonTablePlan *rplan;
1940
+ } JsonTableSiblingJoin;
1941
+
1942
+ /* ----------------
1943
+ * NullTest
1944
+ *
1945
+ * NullTest represents the operation of testing a value for NULLness.
1946
+ * The appropriate test is performed and returned as a boolean Datum.
1947
+ *
1948
+ * When argisrow is false, this simply represents a test for the null value.
1949
+ *
1950
+ * When argisrow is true, the input expression must yield a rowtype, and
1951
+ * the node implements "row IS [NOT] NULL" per the SQL standard. This
1952
+ * includes checking individual fields for NULLness when the row datum
1953
+ * itself isn't NULL.
1954
+ *
1955
+ * NOTE: the combination of a rowtype input and argisrow==false does NOT
1956
+ * correspond to the SQL notation "row IS [NOT] NULL"; instead, this case
1957
+ * represents the SQL notation "row IS [NOT] DISTINCT FROM NULL".
1958
+ * ----------------
1959
+ */
1960
+
1961
+ typedef enum NullTestType
1962
+ {
1963
+ IS_NULL, IS_NOT_NULL
1964
+ } NullTestType;
1965
+
1966
+ typedef struct NullTest
1967
+ {
1968
+ Expr xpr;
1969
+ Expr *arg; /* input expression */
1970
+ NullTestType nulltesttype; /* IS NULL, IS NOT NULL */
1971
+ /* T to perform field-by-field null checks */
1972
+ bool argisrow pg_node_attr(query_jumble_ignore);
1973
+ ParseLoc location; /* token location, or -1 if unknown */
1974
+ } NullTest;
1975
+
1976
+ /*
1977
+ * BooleanTest
1978
+ *
1979
+ * BooleanTest represents the operation of determining whether a boolean
1980
+ * is TRUE, FALSE, or UNKNOWN (ie, NULL). All six meaningful combinations
1981
+ * are supported. Note that a NULL input does *not* cause a NULL result.
1982
+ * The appropriate test is performed and returned as a boolean Datum.
1983
+ */
1984
+
1985
+ typedef enum BoolTestType
1986
+ {
1987
+ IS_TRUE, IS_NOT_TRUE, IS_FALSE, IS_NOT_FALSE, IS_UNKNOWN, IS_NOT_UNKNOWN
1988
+ } BoolTestType;
1989
+
1990
+ typedef struct BooleanTest
1991
+ {
1992
+ Expr xpr;
1993
+ Expr *arg; /* input expression */
1994
+ BoolTestType booltesttype; /* test type */
1995
+ ParseLoc location; /* token location, or -1 if unknown */
1996
+ } BooleanTest;
1997
+
1998
+
1999
+ /*
2000
+ * MergeAction
2001
+ *
2002
+ * Transformed representation of a WHEN clause in a MERGE statement
2003
+ */
2004
+
2005
+ typedef enum MergeMatchKind
2006
+ {
2007
+ MERGE_WHEN_MATCHED,
2008
+ MERGE_WHEN_NOT_MATCHED_BY_SOURCE,
2009
+ MERGE_WHEN_NOT_MATCHED_BY_TARGET
2010
+ } MergeMatchKind;
2011
+
2012
+ #define NUM_MERGE_MATCH_KINDS (MERGE_WHEN_NOT_MATCHED_BY_TARGET + 1)
2013
+
2014
+ typedef struct MergeAction
2015
+ {
2016
+ NodeTag type;
2017
+ MergeMatchKind matchKind; /* MATCHED/NOT MATCHED BY SOURCE/TARGET */
2018
+ CmdType commandType; /* INSERT/UPDATE/DELETE/DO NOTHING */
2019
+ /* OVERRIDING clause */
2020
+ OverridingKind override pg_node_attr(query_jumble_ignore);
2021
+ Node *qual; /* transformed WHEN conditions */
2022
+ List *targetList; /* the target list (of TargetEntry) */
2023
+ /* target attribute numbers of an UPDATE */
2024
+ List *updateColnos pg_node_attr(query_jumble_ignore);
2025
+ } MergeAction;
2026
+
2027
+ /*
2028
+ * CoerceToDomain
2029
+ *
2030
+ * CoerceToDomain represents the operation of coercing a value to a domain
2031
+ * type. At runtime (and not before) the precise set of constraints to be
2032
+ * checked will be determined. If the value passes, it is returned as the
2033
+ * result; if not, an error is raised. Note that this is equivalent to
2034
+ * RelabelType in the scenario where no constraints are applied.
2035
+ */
2036
+ typedef struct CoerceToDomain
2037
+ {
2038
+ Expr xpr;
2039
+ Expr *arg; /* input expression */
2040
+ Oid resulttype; /* domain type ID (result type) */
2041
+ /* output typmod (currently always -1) */
2042
+ int32 resulttypmod pg_node_attr(query_jumble_ignore);
2043
+ /* OID of collation, or InvalidOid if none */
2044
+ Oid resultcollid pg_node_attr(query_jumble_ignore);
2045
+ /* how to display this node */
2046
+ CoercionForm coercionformat pg_node_attr(query_jumble_ignore);
2047
+ ParseLoc location; /* token location, or -1 if unknown */
2048
+ } CoerceToDomain;
2049
+
2050
+ /*
2051
+ * Placeholder node for the value to be processed by a domain's check
2052
+ * constraint. This is effectively like a Param, but can be implemented more
2053
+ * simply since we need only one replacement value at a time.
2054
+ *
2055
+ * Note: the typeId/typeMod/collation will be set from the domain's base type,
2056
+ * not the domain itself. This is because we shouldn't consider the value
2057
+ * to be a member of the domain if we haven't yet checked its constraints.
2058
+ */
2059
+ typedef struct CoerceToDomainValue
2060
+ {
2061
+ Expr xpr;
2062
+ /* type for substituted value */
2063
+ Oid typeId;
2064
+ /* typemod for substituted value */
2065
+ int32 typeMod pg_node_attr(query_jumble_ignore);
2066
+ /* collation for the substituted value */
2067
+ Oid collation pg_node_attr(query_jumble_ignore);
2068
+ /* token location, or -1 if unknown */
2069
+ ParseLoc location;
2070
+ } CoerceToDomainValue;
2071
+
2072
+ /*
2073
+ * Placeholder node for a DEFAULT marker in an INSERT or UPDATE command.
2074
+ *
2075
+ * This is not an executable expression: it must be replaced by the actual
2076
+ * column default expression during rewriting. But it is convenient to
2077
+ * treat it as an expression node during parsing and rewriting.
2078
+ */
2079
+ typedef struct SetToDefault
2080
+ {
2081
+ Expr xpr;
2082
+ /* type for substituted value */
2083
+ Oid typeId;
2084
+ /* typemod for substituted value */
2085
+ int32 typeMod pg_node_attr(query_jumble_ignore);
2086
+ /* collation for the substituted value */
2087
+ Oid collation pg_node_attr(query_jumble_ignore);
2088
+ /* token location, or -1 if unknown */
2089
+ ParseLoc location;
2090
+ } SetToDefault;
2091
+
2092
+ /*
2093
+ * Node representing [WHERE] CURRENT OF cursor_name
2094
+ *
2095
+ * CURRENT OF is a bit like a Var, in that it carries the rangetable index
2096
+ * of the target relation being constrained; this aids placing the expression
2097
+ * correctly during planning. We can assume however that its "levelsup" is
2098
+ * always zero, due to the syntactic constraints on where it can appear.
2099
+ * Also, cvarno will always be a true RT index, never INNER_VAR etc.
2100
+ *
2101
+ * The referenced cursor can be represented either as a hardwired string
2102
+ * or as a reference to a run-time parameter of type REFCURSOR. The latter
2103
+ * case is for the convenience of plpgsql.
2104
+ */
2105
+ typedef struct CurrentOfExpr
2106
+ {
2107
+ Expr xpr;
2108
+ Index cvarno; /* RT index of target relation */
2109
+ char *cursor_name; /* name of referenced cursor, or NULL */
2110
+ int cursor_param; /* refcursor parameter number, or 0 */
2111
+ } CurrentOfExpr;
2112
+
2113
+ /*
2114
+ * NextValueExpr - get next value from sequence
2115
+ *
2116
+ * This has the same effect as calling the nextval() function, but it does not
2117
+ * check permissions on the sequence. This is used for identity columns,
2118
+ * where the sequence is an implicit dependency without its own permissions.
2119
+ */
2120
+ typedef struct NextValueExpr
2121
+ {
2122
+ Expr xpr;
2123
+ Oid seqid;
2124
+ Oid typeId;
2125
+ } NextValueExpr;
2126
+
2127
+ /*
2128
+ * InferenceElem - an element of a unique index inference specification
2129
+ *
2130
+ * This mostly matches the structure of IndexElems, but having a dedicated
2131
+ * primnode allows for a clean separation between the use of index parameters
2132
+ * by utility commands, and this node.
2133
+ */
2134
+ typedef struct InferenceElem
2135
+ {
2136
+ Expr xpr;
2137
+ Node *expr; /* expression to infer from, or NULL */
2138
+ Oid infercollid; /* OID of collation, or InvalidOid */
2139
+ Oid inferopclass; /* OID of att opclass, or InvalidOid */
2140
+ } InferenceElem;
2141
+
2142
+ /*
2143
+ * ReturningExpr - return OLD/NEW.(expression) in RETURNING list
2144
+ *
2145
+ * This is used when updating an auto-updatable view and returning a view
2146
+ * column that is not simply a Var referring to the base relation. In such
2147
+ * cases, OLD/NEW.viewcol can expand to an arbitrary expression, but the
2148
+ * result is required to be NULL if the OLD/NEW row doesn't exist. To handle
2149
+ * this, the rewriter wraps the expanded expression in a ReturningExpr, which
2150
+ * is equivalent to "CASE WHEN (OLD/NEW row exists) THEN (expr) ELSE NULL".
2151
+ *
2152
+ * A similar situation can arise when rewriting the RETURNING clause of a
2153
+ * rule, which may also contain arbitrary expressions.
2154
+ *
2155
+ * ReturningExpr nodes never appear in a parsed Query --- they are only ever
2156
+ * inserted by the rewriter and the planner.
2157
+ */
2158
+ typedef struct ReturningExpr
2159
+ {
2160
+ Expr xpr;
2161
+ int retlevelsup; /* > 0 if it belongs to outer query */
2162
+ bool retold; /* true for OLD, false for NEW */
2163
+ Expr *retexpr; /* expression to be returned */
2164
+ } ReturningExpr;
2165
+
2166
+ /*--------------------
2167
+ * TargetEntry -
2168
+ * a target entry (used in query target lists)
2169
+ *
2170
+ * Strictly speaking, a TargetEntry isn't an expression node (since it can't
2171
+ * be evaluated by ExecEvalExpr). But we treat it as one anyway, since in
2172
+ * very many places it's convenient to process a whole query targetlist as a
2173
+ * single expression tree.
2174
+ *
2175
+ * In a SELECT's targetlist, resno should always be equal to the item's
2176
+ * ordinal position (counting from 1). However, in an INSERT or UPDATE
2177
+ * targetlist, resno represents the attribute number of the destination
2178
+ * column for the item; so there may be missing or out-of-order resnos.
2179
+ * It is even legal to have duplicated resnos; consider
2180
+ * UPDATE table SET arraycol[1] = ..., arraycol[2] = ..., ...
2181
+ * In an INSERT, the rewriter and planner will normalize the tlist by
2182
+ * reordering it into physical column order and filling in default values
2183
+ * for any columns not assigned values by the original query. In an UPDATE,
2184
+ * after the rewriter merges multiple assignments for the same column, the
2185
+ * planner extracts the target-column numbers into a separate "update_colnos"
2186
+ * list, and then renumbers the tlist elements serially. Thus, tlist resnos
2187
+ * match ordinal position in all tlists seen by the executor; but it is wrong
2188
+ * to assume that before planning has happened.
2189
+ *
2190
+ * resname is required to represent the correct column name in non-resjunk
2191
+ * entries of top-level SELECT targetlists, since it will be used as the
2192
+ * column title sent to the frontend. In most other contexts it is only
2193
+ * a debugging aid, and may be wrong or even NULL. (In particular, it may
2194
+ * be wrong in a tlist from a stored rule, if the referenced column has been
2195
+ * renamed by ALTER TABLE since the rule was made. Also, the planner tends
2196
+ * to store NULL rather than look up a valid name for tlist entries in
2197
+ * non-toplevel plan nodes.) In resjunk entries, resname should be either
2198
+ * a specific system-generated name (such as "ctid") or NULL; anything else
2199
+ * risks confusing ExecGetJunkAttribute!
2200
+ *
2201
+ * ressortgroupref is used in the representation of ORDER BY, GROUP BY, and
2202
+ * DISTINCT items. Targetlist entries with ressortgroupref=0 are not
2203
+ * sort/group items. If ressortgroupref>0, then this item is an ORDER BY,
2204
+ * GROUP BY, and/or DISTINCT target value. No two entries in a targetlist
2205
+ * may have the same nonzero ressortgroupref --- but there is no particular
2206
+ * meaning to the nonzero values, except as tags. (For example, one must
2207
+ * not assume that lower ressortgroupref means a more significant sort key.)
2208
+ * The order of the associated SortGroupClause lists determine the semantics.
2209
+ *
2210
+ * resorigtbl/resorigcol identify the source of the column, if it is a
2211
+ * simple reference to a column of a base table (or view). If it is not
2212
+ * a simple reference, these fields are zeroes.
2213
+ *
2214
+ * If resjunk is true then the column is a working column (such as a sort key)
2215
+ * that should be removed from the final output of the query. Resjunk columns
2216
+ * must have resnos that cannot duplicate any regular column's resno. Also
2217
+ * note that there are places that assume resjunk columns come after non-junk
2218
+ * columns.
2219
+ *--------------------
2220
+ */
2221
+ typedef struct TargetEntry
2222
+ {
2223
+ Expr xpr;
2224
+ /* expression to evaluate */
2225
+ Expr *expr;
2226
+ /* attribute number (see notes above) */
2227
+ AttrNumber resno;
2228
+ /* name of the column (could be NULL) */
2229
+ char *resname pg_node_attr(query_jumble_ignore);
2230
+ /* nonzero if referenced by a sort/group clause */
2231
+ Index ressortgroupref;
2232
+ /* OID of column's source table */
2233
+ Oid resorigtbl pg_node_attr(query_jumble_ignore);
2234
+ /* column's number in source table */
2235
+ AttrNumber resorigcol pg_node_attr(query_jumble_ignore);
2236
+ /* set to true to eliminate the attribute from final target list */
2237
+ bool resjunk pg_node_attr(query_jumble_ignore);
2238
+ } TargetEntry;
2239
+
2240
+
2241
+ /* ----------------------------------------------------------------
2242
+ * node types for join trees
2243
+ *
2244
+ * The leaves of a join tree structure are RangeTblRef nodes. Above
2245
+ * these, JoinExpr nodes can appear to denote a specific kind of join
2246
+ * or qualified join. Also, FromExpr nodes can appear to denote an
2247
+ * ordinary cross-product join ("FROM foo, bar, baz WHERE ...").
2248
+ * FromExpr is like a JoinExpr of jointype JOIN_INNER, except that it
2249
+ * may have any number of child nodes, not just two.
2250
+ *
2251
+ * NOTE: the top level of a Query's jointree is always a FromExpr.
2252
+ * Even if the jointree contains no rels, there will be a FromExpr.
2253
+ *
2254
+ * NOTE: the qualification expressions present in JoinExpr nodes are
2255
+ * *in addition to* the query's main WHERE clause, which appears as the
2256
+ * qual of the top-level FromExpr. The reason for associating quals with
2257
+ * specific nodes in the jointree is that the position of a qual is critical
2258
+ * when outer joins are present. (If we enforce a qual too soon or too late,
2259
+ * that may cause the outer join to produce the wrong set of NULL-extended
2260
+ * rows.) If all joins are inner joins then all the qual positions are
2261
+ * semantically interchangeable.
2262
+ *
2263
+ * NOTE: in the raw output of gram.y, a join tree contains RangeVar,
2264
+ * RangeSubselect, and RangeFunction nodes, which are all replaced by
2265
+ * RangeTblRef nodes during the parse analysis phase. Also, the top-level
2266
+ * FromExpr is added during parse analysis; the grammar regards FROM and
2267
+ * WHERE as separate.
2268
+ * ----------------------------------------------------------------
2269
+ */
2270
+
2271
+ /*
2272
+ * RangeTblRef - reference to an entry in the query's rangetable
2273
+ *
2274
+ * We could use direct pointers to the RT entries and skip having these
2275
+ * nodes, but multiple pointers to the same node in a querytree cause
2276
+ * lots of headaches, so it seems better to store an index into the RT.
2277
+ */
2278
+ typedef struct RangeTblRef
2279
+ {
2280
+ NodeTag type;
2281
+ int rtindex;
2282
+ } RangeTblRef;
2283
+
2284
+ /*----------
2285
+ * JoinExpr - for SQL JOIN expressions
2286
+ *
2287
+ * isNatural, usingClause, and quals are interdependent. The user can write
2288
+ * only one of NATURAL, USING(), or ON() (this is enforced by the grammar).
2289
+ * If he writes NATURAL then parse analysis generates the equivalent USING()
2290
+ * list, and from that fills in "quals" with the right equality comparisons.
2291
+ * If he writes USING() then "quals" is filled with equality comparisons.
2292
+ * If he writes ON() then only "quals" is set. Note that NATURAL/USING
2293
+ * are not equivalent to ON() since they also affect the output column list.
2294
+ *
2295
+ * alias is an Alias node representing the AS alias-clause attached to the
2296
+ * join expression, or NULL if no clause. NB: presence or absence of the
2297
+ * alias has a critical impact on semantics, because a join with an alias
2298
+ * restricts visibility of the tables/columns inside it.
2299
+ *
2300
+ * join_using_alias is an Alias node representing the join correlation
2301
+ * name that SQL:2016 and later allow to be attached to JOIN/USING.
2302
+ * Its column alias list includes only the common column names from USING,
2303
+ * and it does not restrict visibility of the join's input tables.
2304
+ *
2305
+ * During parse analysis, an RTE is created for the Join, and its index
2306
+ * is filled into rtindex. This RTE is present mainly so that Vars can
2307
+ * be created that refer to the outputs of the join. The planner sometimes
2308
+ * generates JoinExprs internally; these can have rtindex = 0 if there are
2309
+ * no join alias variables referencing such joins.
2310
+ *----------
2311
+ */
2312
+ typedef struct JoinExpr
2313
+ {
2314
+ NodeTag type;
2315
+ JoinType jointype; /* type of join */
2316
+ bool isNatural; /* Natural join? Will need to shape table */
2317
+ Node *larg; /* left subtree */
2318
+ Node *rarg; /* right subtree */
2319
+ /* USING clause, if any (list of String) */
2320
+ List *usingClause pg_node_attr(query_jumble_ignore);
2321
+ /* alias attached to USING clause, if any */
2322
+ Alias *join_using_alias pg_node_attr(query_jumble_ignore);
2323
+ /* qualifiers on join, if any */
2324
+ Node *quals;
2325
+ /* user-written alias clause, if any */
2326
+ Alias *alias pg_node_attr(query_jumble_ignore);
2327
+ /* RT index assigned for join, or 0 */
2328
+ int rtindex;
2329
+ } JoinExpr;
2330
+
2331
+ /*----------
2332
+ * FromExpr - represents a FROM ... WHERE ... construct
2333
+ *
2334
+ * This is both more flexible than a JoinExpr (it can have any number of
2335
+ * children, including zero) and less so --- we don't need to deal with
2336
+ * aliases and so on. The output column set is implicitly just the union
2337
+ * of the outputs of the children.
2338
+ *----------
2339
+ */
2340
+ typedef struct FromExpr
2341
+ {
2342
+ NodeTag type;
2343
+ List *fromlist; /* List of join subtrees */
2344
+ Node *quals; /* qualifiers on join, if any */
2345
+ } FromExpr;
2346
+
2347
+ /*----------
2348
+ * OnConflictExpr - represents an ON CONFLICT DO ... expression
2349
+ *
2350
+ * The optimizer requires a list of inference elements, and optionally a WHERE
2351
+ * clause to infer a unique index. The unique index (or, occasionally,
2352
+ * indexes) inferred are used to arbitrate whether or not the alternative ON
2353
+ * CONFLICT path is taken.
2354
+ *----------
2355
+ */
2356
+ typedef struct OnConflictExpr
2357
+ {
2358
+ NodeTag type;
2359
+ OnConflictAction action; /* DO NOTHING or UPDATE? */
2360
+
2361
+ /* Arbiter */
2362
+ List *arbiterElems; /* unique index arbiter list (of
2363
+ * InferenceElem's) */
2364
+ Node *arbiterWhere; /* unique index arbiter WHERE clause */
2365
+ Oid constraint; /* pg_constraint OID for arbiter */
2366
+
2367
+ /* ON CONFLICT UPDATE */
2368
+ List *onConflictSet; /* List of ON CONFLICT SET TargetEntrys */
2369
+ Node *onConflictWhere; /* qualifiers to restrict UPDATE to */
2370
+ int exclRelIndex; /* RT index of 'excluded' relation */
2371
+ List *exclRelTlist; /* tlist of the EXCLUDED pseudo relation */
2372
+ } OnConflictExpr;
2373
+
2374
+ #endif /* PRIMNODES_H */