pg_query 5.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (447) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Rakefile +3 -4
  4. data/ext/pg_query/extconf.rb +14 -4
  5. data/ext/pg_query/include/pg_query_fingerprint_defs.c +1 -1
  6. data/ext/pg_query/include/pg_query_outfuncs_defs.c +1 -1
  7. data/ext/pg_query/include/pg_query_readfuncs_defs.c +1 -1
  8. data/ext/pg_query/include/{miscadmin.h → postgres/miscadmin.h} +1 -1
  9. data/ext/pg_query/include/{nodes → postgres/nodes}/nodes.h +1 -1
  10. data/ext/pg_query/include/{parser → postgres/parser}/parser.h +3 -3
  11. data/ext/pg_query/include/{pg_config.h → postgres/pg_config.h} +136 -2
  12. data/ext/pg_query/include/postgres/pg_config_os.h +8 -0
  13. data/ext/pg_query/include/{pgstat.h → postgres/pgstat.h} +1 -1
  14. data/ext/pg_query/include/{pl_gram.h → postgres/pl_gram.h} +2 -2
  15. data/ext/pg_query/include/{plpgsql.h → postgres/plpgsql.h} +11 -11
  16. data/ext/pg_query/include/postgres/port/atomics/arch-hppa.h +17 -0
  17. data/ext/pg_query/include/postgres/port/atomics/generic-msvc.h +101 -0
  18. data/ext/pg_query/include/postgres/port/atomics/generic-sunpro.h +106 -0
  19. data/ext/pg_query/include/postgres/port/win32/arpa/inet.h +3 -0
  20. data/ext/pg_query/include/postgres/port/win32/dlfcn.h +1 -0
  21. data/ext/pg_query/include/postgres/port/win32/grp.h +1 -0
  22. data/ext/pg_query/include/postgres/port/win32/netdb.h +7 -0
  23. data/ext/pg_query/include/postgres/port/win32/netinet/in.h +3 -0
  24. data/ext/pg_query/include/postgres/port/win32/netinet/tcp.h +7 -0
  25. data/ext/pg_query/include/postgres/port/win32/pwd.h +3 -0
  26. data/ext/pg_query/include/postgres/port/win32/sys/resource.h +20 -0
  27. data/ext/pg_query/include/postgres/port/win32/sys/select.h +3 -0
  28. data/ext/pg_query/include/postgres/port/win32/sys/socket.h +26 -0
  29. data/ext/pg_query/include/postgres/port/win32/sys/un.h +17 -0
  30. data/ext/pg_query/include/postgres/port/win32/sys/wait.h +3 -0
  31. data/ext/pg_query/include/postgres/port/win32.h +59 -0
  32. data/ext/pg_query/include/postgres/port/win32_msvc/dirent.h +34 -0
  33. data/ext/pg_query/include/postgres/port/win32_msvc/sys/file.h +1 -0
  34. data/ext/pg_query/include/postgres/port/win32_msvc/sys/param.h +1 -0
  35. data/ext/pg_query/include/postgres/port/win32_msvc/sys/time.h +1 -0
  36. data/ext/pg_query/include/postgres/port/win32_msvc/unistd.h +9 -0
  37. data/ext/pg_query/include/postgres/port/win32_msvc/utime.h +3 -0
  38. data/ext/pg_query/include/postgres/port/win32_port.h +594 -0
  39. data/ext/pg_query/include/{postmaster → postgres/postmaster}/postmaster.h +1 -1
  40. data/ext/pg_query/include/{storage → postgres/storage}/ipc.h +1 -1
  41. data/ext/pg_query/include/{tcop → postgres/tcop}/tcopprot.h +2 -2
  42. data/ext/pg_query/include/{utils → postgres/utils}/builtins.h +1 -1
  43. data/ext/pg_query/include/{utils → postgres/utils}/elog.h +3 -3
  44. data/ext/pg_query/include/{utils → postgres/utils}/guc.h +4 -4
  45. data/ext/pg_query/include/{utils → postgres/utils}/memutils.h +2 -2
  46. data/ext/pg_query/include/{utils → postgres/utils}/palloc.h +1 -1
  47. data/ext/pg_query/pg_query.c +9 -0
  48. data/ext/pg_query/pg_query_fingerprint.c +4 -5
  49. data/ext/pg_query/pg_query_outfuncs_json.c +6 -0
  50. data/ext/pg_query/pg_query_outfuncs_protobuf.c +1 -0
  51. data/ext/pg_query/pg_query_parse.c +1 -1
  52. data/ext/pg_query/pg_query_parse_plpgsql.c +6 -4
  53. data/ext/pg_query/pg_query_readfuncs_protobuf.c +1 -0
  54. data/ext/pg_query/pg_query_ruby.c +5 -0
  55. data/ext/pg_query/pg_query_split.c +1 -1
  56. data/ext/pg_query/src_backend_nodes_nodes.c +38 -0
  57. data/ext/pg_query/src_backend_utils_error_elog.c +17 -152
  58. data/ext/pg_query/src_backend_utils_init_globals.c +1 -1
  59. data/ext/pg_query/src_backend_utils_mb_mbutils.c +8 -63
  60. data/ext/pg_query/src_backend_utils_misc_guc_tables.c +0 -2
  61. data/ext/pg_query/src_port_pg_bitutils.c +78 -4
  62. data/ext/pg_query/src_port_snprintf.c +3 -3
  63. data/ext/pg_query/src_port_strlcpy.c +79 -0
  64. data/lib/pg_query/fingerprint.rb +2 -3
  65. data/lib/pg_query/node.rb +16 -11
  66. data/lib/pg_query/parse.rb +1 -1
  67. data/lib/pg_query/pg_query_pb.rb +1 -1
  68. data/lib/pg_query/treewalker.rb +16 -3
  69. data/lib/pg_query/version.rb +1 -1
  70. metadata +424 -394
  71. data/ext/pg_query/guc-file.c +0 -0
  72. data/ext/pg_query/include/common/ip.h +0 -33
  73. data/ext/pg_query/include/pg_config_os.h +0 -8
  74. data/ext/pg_query/include/postmaster/auxprocess.h +0 -20
  75. data/ext/pg_query/include/postmaster/fork_process.h +0 -17
  76. data/ext/pg_query/include/src_backend_nodes_copyfuncs.funcs.c +0 -5321
  77. data/ext/pg_query/include/src_backend_nodes_equalfuncs.funcs.c +0 -3354
  78. data/ext/pg_query/include/utils/pidfile.h +0 -56
  79. data/ext/pg_query/src_backend_postmaster_postmaster.c +0 -2220
  80. data/ext/pg_query/src_port_strnlen.c +0 -39
  81. /data/ext/pg_query/include/{access → postgres/access}/amapi.h +0 -0
  82. /data/ext/pg_query/include/{access → postgres/access}/attmap.h +0 -0
  83. /data/ext/pg_query/include/{access → postgres/access}/attnum.h +0 -0
  84. /data/ext/pg_query/include/{access → postgres/access}/clog.h +0 -0
  85. /data/ext/pg_query/include/{access → postgres/access}/commit_ts.h +0 -0
  86. /data/ext/pg_query/include/{access → postgres/access}/detoast.h +0 -0
  87. /data/ext/pg_query/include/{access → postgres/access}/genam.h +0 -0
  88. /data/ext/pg_query/include/{access → postgres/access}/gin.h +0 -0
  89. /data/ext/pg_query/include/{access → postgres/access}/htup.h +0 -0
  90. /data/ext/pg_query/include/{access → postgres/access}/htup_details.h +0 -0
  91. /data/ext/pg_query/include/{access → postgres/access}/itup.h +0 -0
  92. /data/ext/pg_query/include/{access → postgres/access}/parallel.h +0 -0
  93. /data/ext/pg_query/include/{access → postgres/access}/printtup.h +0 -0
  94. /data/ext/pg_query/include/{access → postgres/access}/relation.h +0 -0
  95. /data/ext/pg_query/include/{access → postgres/access}/relscan.h +0 -0
  96. /data/ext/pg_query/include/{access → postgres/access}/rmgr.h +0 -0
  97. /data/ext/pg_query/include/{access → postgres/access}/rmgrlist.h +0 -0
  98. /data/ext/pg_query/include/{access → postgres/access}/sdir.h +0 -0
  99. /data/ext/pg_query/include/{access → postgres/access}/skey.h +0 -0
  100. /data/ext/pg_query/include/{access → postgres/access}/stratnum.h +0 -0
  101. /data/ext/pg_query/include/{access → postgres/access}/sysattr.h +0 -0
  102. /data/ext/pg_query/include/{access → postgres/access}/table.h +0 -0
  103. /data/ext/pg_query/include/{access → postgres/access}/tableam.h +0 -0
  104. /data/ext/pg_query/include/{access → postgres/access}/toast_compression.h +0 -0
  105. /data/ext/pg_query/include/{access → postgres/access}/transam.h +0 -0
  106. /data/ext/pg_query/include/{access → postgres/access}/tsmapi.h +0 -0
  107. /data/ext/pg_query/include/{access → postgres/access}/tupconvert.h +0 -0
  108. /data/ext/pg_query/include/{access → postgres/access}/tupdesc.h +0 -0
  109. /data/ext/pg_query/include/{access → postgres/access}/tupmacs.h +0 -0
  110. /data/ext/pg_query/include/{access → postgres/access}/twophase.h +0 -0
  111. /data/ext/pg_query/include/{access → postgres/access}/xact.h +0 -0
  112. /data/ext/pg_query/include/{access → postgres/access}/xlog.h +0 -0
  113. /data/ext/pg_query/include/{access → postgres/access}/xlog_internal.h +0 -0
  114. /data/ext/pg_query/include/{access → postgres/access}/xlogbackup.h +0 -0
  115. /data/ext/pg_query/include/{access → postgres/access}/xlogdefs.h +0 -0
  116. /data/ext/pg_query/include/{access → postgres/access}/xlogprefetcher.h +0 -0
  117. /data/ext/pg_query/include/{access → postgres/access}/xlogreader.h +0 -0
  118. /data/ext/pg_query/include/{access → postgres/access}/xlogrecord.h +0 -0
  119. /data/ext/pg_query/include/{access → postgres/access}/xlogrecovery.h +0 -0
  120. /data/ext/pg_query/include/{archive → postgres/archive}/archive_module.h +0 -0
  121. /data/ext/pg_query/include/{c.h → postgres/c.h} +0 -0
  122. /data/ext/pg_query/include/{catalog → postgres/catalog}/catalog.h +0 -0
  123. /data/ext/pg_query/include/{catalog → postgres/catalog}/catversion.h +0 -0
  124. /data/ext/pg_query/include/{catalog → postgres/catalog}/dependency.h +0 -0
  125. /data/ext/pg_query/include/{catalog → postgres/catalog}/genbki.h +0 -0
  126. /data/ext/pg_query/include/{catalog → postgres/catalog}/index.h +0 -0
  127. /data/ext/pg_query/include/{catalog → postgres/catalog}/indexing.h +0 -0
  128. /data/ext/pg_query/include/{catalog → postgres/catalog}/namespace.h +0 -0
  129. /data/ext/pg_query/include/{catalog → postgres/catalog}/objectaccess.h +0 -0
  130. /data/ext/pg_query/include/{catalog → postgres/catalog}/objectaddress.h +0 -0
  131. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate.h +0 -0
  132. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_aggregate_d.h +0 -0
  133. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am.h +0 -0
  134. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_am_d.h +0 -0
  135. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute.h +0 -0
  136. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_attribute_d.h +0 -0
  137. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid.h +0 -0
  138. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_authid_d.h +0 -0
  139. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class.h +0 -0
  140. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_class_d.h +0 -0
  141. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation.h +0 -0
  142. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_collation_d.h +0 -0
  143. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint.h +0 -0
  144. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_constraint_d.h +0 -0
  145. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_control.h +0 -0
  146. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion.h +0 -0
  147. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_conversion_d.h +0 -0
  148. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_database.h +0 -0
  149. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_database_d.h +0 -0
  150. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend.h +0 -0
  151. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_depend_d.h +0 -0
  152. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger.h +0 -0
  153. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_event_trigger_d.h +0 -0
  154. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index.h +0 -0
  155. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_index_d.h +0 -0
  156. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language.h +0 -0
  157. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_language_d.h +0 -0
  158. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace.h +0 -0
  159. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_namespace_d.h +0 -0
  160. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass.h +0 -0
  161. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opclass_d.h +0 -0
  162. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator.h +0 -0
  163. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_operator_d.h +0 -0
  164. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily.h +0 -0
  165. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_opfamily_d.h +0 -0
  166. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table.h +0 -0
  167. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_partitioned_table_d.h +0 -0
  168. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc.h +0 -0
  169. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_proc_d.h +0 -0
  170. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication.h +0 -0
  171. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_publication_d.h +0 -0
  172. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin.h +0 -0
  173. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_replication_origin_d.h +0 -0
  174. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic.h +0 -0
  175. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_d.h +0 -0
  176. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext.h +0 -0
  177. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_statistic_ext_d.h +0 -0
  178. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform.h +0 -0
  179. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_transform_d.h +0 -0
  180. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger.h +0 -0
  181. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_trigger_d.h +0 -0
  182. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config.h +0 -0
  183. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_config_d.h +0 -0
  184. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict.h +0 -0
  185. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_dict_d.h +0 -0
  186. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser.h +0 -0
  187. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_parser_d.h +0 -0
  188. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template.h +0 -0
  189. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_ts_template_d.h +0 -0
  190. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type.h +0 -0
  191. /data/ext/pg_query/include/{catalog → postgres/catalog}/pg_type_d.h +0 -0
  192. /data/ext/pg_query/include/{catalog → postgres/catalog}/storage.h +0 -0
  193. /data/ext/pg_query/include/{commands → postgres/commands}/async.h +0 -0
  194. /data/ext/pg_query/include/{commands → postgres/commands}/dbcommands.h +0 -0
  195. /data/ext/pg_query/include/{commands → postgres/commands}/defrem.h +0 -0
  196. /data/ext/pg_query/include/{commands → postgres/commands}/event_trigger.h +0 -0
  197. /data/ext/pg_query/include/{commands → postgres/commands}/explain.h +0 -0
  198. /data/ext/pg_query/include/{commands → postgres/commands}/prepare.h +0 -0
  199. /data/ext/pg_query/include/{commands → postgres/commands}/tablespace.h +0 -0
  200. /data/ext/pg_query/include/{commands → postgres/commands}/trigger.h +0 -0
  201. /data/ext/pg_query/include/{commands → postgres/commands}/user.h +0 -0
  202. /data/ext/pg_query/include/{commands → postgres/commands}/vacuum.h +0 -0
  203. /data/ext/pg_query/include/{common → postgres/common}/cryptohash.h +0 -0
  204. /data/ext/pg_query/include/{common → postgres/common}/file_perm.h +0 -0
  205. /data/ext/pg_query/include/{common → postgres/common}/hashfn.h +0 -0
  206. /data/ext/pg_query/include/{common → postgres/common}/int.h +0 -0
  207. /data/ext/pg_query/include/{common → postgres/common}/keywords.h +0 -0
  208. /data/ext/pg_query/include/{common → postgres/common}/kwlookup.h +0 -0
  209. /data/ext/pg_query/include/{common → postgres/common}/pg_prng.h +0 -0
  210. /data/ext/pg_query/include/{common → postgres/common}/relpath.h +0 -0
  211. /data/ext/pg_query/include/{common → postgres/common}/scram-common.h +0 -0
  212. /data/ext/pg_query/include/{common → postgres/common}/sha2.h +0 -0
  213. /data/ext/pg_query/include/{common → postgres/common}/string.h +0 -0
  214. /data/ext/pg_query/include/{common → postgres/common}/unicode_east_asian_fw_table.h +0 -0
  215. /data/ext/pg_query/include/{common → postgres/common}/unicode_nonspacing_table.h +0 -0
  216. /data/ext/pg_query/include/{copyfuncs.funcs.c → postgres/copyfuncs.funcs.c} +0 -0
  217. /data/ext/pg_query/include/{copyfuncs.switch.c → postgres/copyfuncs.switch.c} +0 -0
  218. /data/ext/pg_query/include/{datatype → postgres/datatype}/timestamp.h +0 -0
  219. /data/ext/pg_query/include/{equalfuncs.funcs.c → postgres/equalfuncs.funcs.c} +0 -0
  220. /data/ext/pg_query/include/{equalfuncs.switch.c → postgres/equalfuncs.switch.c} +0 -0
  221. /data/ext/pg_query/include/{executor → postgres/executor}/execdesc.h +0 -0
  222. /data/ext/pg_query/include/{executor → postgres/executor}/executor.h +0 -0
  223. /data/ext/pg_query/include/{executor → postgres/executor}/functions.h +0 -0
  224. /data/ext/pg_query/include/{executor → postgres/executor}/instrument.h +0 -0
  225. /data/ext/pg_query/include/{executor → postgres/executor}/spi.h +0 -0
  226. /data/ext/pg_query/include/{executor → postgres/executor}/tablefunc.h +0 -0
  227. /data/ext/pg_query/include/{executor → postgres/executor}/tuptable.h +0 -0
  228. /data/ext/pg_query/include/{fmgr.h → postgres/fmgr.h} +0 -0
  229. /data/ext/pg_query/include/{foreign → postgres/foreign}/fdwapi.h +0 -0
  230. /data/ext/pg_query/include/{funcapi.h → postgres/funcapi.h} +0 -0
  231. /data/ext/pg_query/include/{gram.h → postgres/gram.h} +0 -0
  232. /data/ext/pg_query/include/{gramparse.h → postgres/gramparse.h} +0 -0
  233. /data/ext/pg_query/include/{jit → postgres/jit}/jit.h +0 -0
  234. /data/ext/pg_query/include/{kwlist_d.h → postgres/kwlist_d.h} +0 -0
  235. /data/ext/pg_query/include/{lib → postgres/lib}/dshash.h +0 -0
  236. /data/ext/pg_query/include/{lib → postgres/lib}/ilist.h +0 -0
  237. /data/ext/pg_query/include/{lib → postgres/lib}/pairingheap.h +0 -0
  238. /data/ext/pg_query/include/{lib → postgres/lib}/simplehash.h +0 -0
  239. /data/ext/pg_query/include/{lib → postgres/lib}/sort_template.h +0 -0
  240. /data/ext/pg_query/include/{lib → postgres/lib}/stringinfo.h +0 -0
  241. /data/ext/pg_query/include/{libpq → postgres/libpq}/auth.h +0 -0
  242. /data/ext/pg_query/include/{libpq → postgres/libpq}/crypt.h +0 -0
  243. /data/ext/pg_query/include/{libpq → postgres/libpq}/hba.h +0 -0
  244. /data/ext/pg_query/include/{libpq → postgres/libpq}/libpq-be.h +0 -0
  245. /data/ext/pg_query/include/{libpq → postgres/libpq}/libpq.h +0 -0
  246. /data/ext/pg_query/include/{libpq → postgres/libpq}/pqcomm.h +0 -0
  247. /data/ext/pg_query/include/{libpq → postgres/libpq}/pqformat.h +0 -0
  248. /data/ext/pg_query/include/{libpq → postgres/libpq}/pqsignal.h +0 -0
  249. /data/ext/pg_query/include/{libpq → postgres/libpq}/sasl.h +0 -0
  250. /data/ext/pg_query/include/{libpq → postgres/libpq}/scram.h +0 -0
  251. /data/ext/pg_query/include/{mb → postgres/mb}/pg_wchar.h +0 -0
  252. /data/ext/pg_query/include/{mb → postgres/mb}/stringinfo_mb.h +0 -0
  253. /data/ext/pg_query/include/{nodes → postgres/nodes}/bitmapset.h +0 -0
  254. /data/ext/pg_query/include/{nodes → postgres/nodes}/execnodes.h +0 -0
  255. /data/ext/pg_query/include/{nodes → postgres/nodes}/extensible.h +0 -0
  256. /data/ext/pg_query/include/{nodes → postgres/nodes}/lockoptions.h +0 -0
  257. /data/ext/pg_query/include/{nodes → postgres/nodes}/makefuncs.h +0 -0
  258. /data/ext/pg_query/include/{nodes → postgres/nodes}/memnodes.h +0 -0
  259. /data/ext/pg_query/include/{nodes → postgres/nodes}/miscnodes.h +0 -0
  260. /data/ext/pg_query/include/{nodes → postgres/nodes}/nodeFuncs.h +0 -0
  261. /data/ext/pg_query/include/{nodes → postgres/nodes}/nodetags.h +0 -0
  262. /data/ext/pg_query/include/{nodes → postgres/nodes}/params.h +0 -0
  263. /data/ext/pg_query/include/{nodes → postgres/nodes}/parsenodes.h +0 -0
  264. /data/ext/pg_query/include/{nodes → postgres/nodes}/pathnodes.h +0 -0
  265. /data/ext/pg_query/include/{nodes → postgres/nodes}/pg_list.h +0 -0
  266. /data/ext/pg_query/include/{nodes → postgres/nodes}/plannodes.h +0 -0
  267. /data/ext/pg_query/include/{nodes → postgres/nodes}/primnodes.h +0 -0
  268. /data/ext/pg_query/include/{nodes → postgres/nodes}/print.h +0 -0
  269. /data/ext/pg_query/include/{nodes → postgres/nodes}/queryjumble.h +0 -0
  270. /data/ext/pg_query/include/{nodes → postgres/nodes}/replnodes.h +0 -0
  271. /data/ext/pg_query/include/{nodes → postgres/nodes}/supportnodes.h +0 -0
  272. /data/ext/pg_query/include/{nodes → postgres/nodes}/tidbitmap.h +0 -0
  273. /data/ext/pg_query/include/{nodes → postgres/nodes}/value.h +0 -0
  274. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/cost.h +0 -0
  275. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo.h +0 -0
  276. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/geqo_gene.h +0 -0
  277. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/optimizer.h +0 -0
  278. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/paths.h +0 -0
  279. /data/ext/pg_query/include/{optimizer → postgres/optimizer}/planmain.h +0 -0
  280. /data/ext/pg_query/include/{parser → postgres/parser}/analyze.h +0 -0
  281. /data/ext/pg_query/include/{parser → postgres/parser}/kwlist.h +0 -0
  282. /data/ext/pg_query/include/{parser → postgres/parser}/parse_agg.h +0 -0
  283. /data/ext/pg_query/include/{parser → postgres/parser}/parse_coerce.h +0 -0
  284. /data/ext/pg_query/include/{parser → postgres/parser}/parse_expr.h +0 -0
  285. /data/ext/pg_query/include/{parser → postgres/parser}/parse_func.h +0 -0
  286. /data/ext/pg_query/include/{parser → postgres/parser}/parse_node.h +0 -0
  287. /data/ext/pg_query/include/{parser → postgres/parser}/parse_oper.h +0 -0
  288. /data/ext/pg_query/include/{parser → postgres/parser}/parse_relation.h +0 -0
  289. /data/ext/pg_query/include/{parser → postgres/parser}/parse_type.h +0 -0
  290. /data/ext/pg_query/include/{parser → postgres/parser}/parsetree.h +0 -0
  291. /data/ext/pg_query/include/{parser → postgres/parser}/scanner.h +0 -0
  292. /data/ext/pg_query/include/{parser → postgres/parser}/scansup.h +0 -0
  293. /data/ext/pg_query/include/{partitioning → postgres/partitioning}/partdefs.h +0 -0
  294. /data/ext/pg_query/include/{pg_config_ext.h → postgres/pg_config_ext.h} +0 -0
  295. /data/ext/pg_query/include/{pg_config_manual.h → postgres/pg_config_manual.h} +0 -0
  296. /data/ext/pg_query/include/{pg_getopt.h → postgres/pg_getopt.h} +0 -0
  297. /data/ext/pg_query/include/{pg_trace.h → postgres/pg_trace.h} +0 -0
  298. /data/ext/pg_query/include/{pgtime.h → postgres/pgtime.h} +0 -0
  299. /data/ext/pg_query/include/{pl_reserved_kwlist.h → postgres/pl_reserved_kwlist.h} +0 -0
  300. /data/ext/pg_query/include/{pl_reserved_kwlist_d.h → postgres/pl_reserved_kwlist_d.h} +0 -0
  301. /data/ext/pg_query/include/{pl_unreserved_kwlist.h → postgres/pl_unreserved_kwlist.h} +0 -0
  302. /data/ext/pg_query/include/{pl_unreserved_kwlist_d.h → postgres/pl_unreserved_kwlist_d.h} +0 -0
  303. /data/ext/pg_query/include/{plerrcodes.h → postgres/plerrcodes.h} +0 -0
  304. /data/ext/pg_query/include/{port → postgres/port}/atomics/arch-arm.h +0 -0
  305. /data/ext/pg_query/include/{port → postgres/port}/atomics/arch-ppc.h +0 -0
  306. /data/ext/pg_query/include/{port → postgres/port}/atomics/arch-x86.h +0 -0
  307. /data/ext/pg_query/include/{port → postgres/port}/atomics/fallback.h +0 -0
  308. /data/ext/pg_query/include/{port → postgres/port}/atomics/generic-gcc.h +0 -0
  309. /data/ext/pg_query/include/{port → postgres/port}/atomics/generic.h +0 -0
  310. /data/ext/pg_query/include/{port → postgres/port}/atomics.h +0 -0
  311. /data/ext/pg_query/include/{port → postgres/port}/pg_bitutils.h +0 -0
  312. /data/ext/pg_query/include/{port → postgres/port}/pg_bswap.h +0 -0
  313. /data/ext/pg_query/include/{port → postgres/port}/pg_crc32c.h +0 -0
  314. /data/ext/pg_query/include/{port → postgres/port}/simd.h +0 -0
  315. /data/ext/pg_query/include/{port.h → postgres/port.h} +0 -0
  316. /data/ext/pg_query/include/{portability → postgres/portability}/instr_time.h +0 -0
  317. /data/ext/pg_query/include/{postgres.h → postgres/postgres.h} +0 -0
  318. /data/ext/pg_query/include/{postgres_ext.h → postgres/postgres_ext.h} +0 -0
  319. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/autovacuum.h +0 -0
  320. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker.h +0 -0
  321. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgworker_internals.h +0 -0
  322. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/bgwriter.h +0 -0
  323. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/interrupt.h +0 -0
  324. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/pgarch.h +0 -0
  325. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/startup.h +0 -0
  326. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/syslogger.h +0 -0
  327. /data/ext/pg_query/include/{postmaster → postgres/postmaster}/walwriter.h +0 -0
  328. /data/ext/pg_query/include/{regex → postgres/regex}/regex.h +0 -0
  329. /data/ext/pg_query/include/{replication → postgres/replication}/logicallauncher.h +0 -0
  330. /data/ext/pg_query/include/{replication → postgres/replication}/logicalproto.h +0 -0
  331. /data/ext/pg_query/include/{replication → postgres/replication}/logicalworker.h +0 -0
  332. /data/ext/pg_query/include/{replication → postgres/replication}/origin.h +0 -0
  333. /data/ext/pg_query/include/{replication → postgres/replication}/reorderbuffer.h +0 -0
  334. /data/ext/pg_query/include/{replication → postgres/replication}/slot.h +0 -0
  335. /data/ext/pg_query/include/{replication → postgres/replication}/syncrep.h +0 -0
  336. /data/ext/pg_query/include/{replication → postgres/replication}/walreceiver.h +0 -0
  337. /data/ext/pg_query/include/{replication → postgres/replication}/walsender.h +0 -0
  338. /data/ext/pg_query/include/{rewrite → postgres/rewrite}/prs2lock.h +0 -0
  339. /data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteHandler.h +0 -0
  340. /data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteManip.h +0 -0
  341. /data/ext/pg_query/include/{rewrite → postgres/rewrite}/rewriteSupport.h +0 -0
  342. /data/ext/pg_query/include/{storage → postgres/storage}/backendid.h +0 -0
  343. /data/ext/pg_query/include/{storage → postgres/storage}/block.h +0 -0
  344. /data/ext/pg_query/include/{storage → postgres/storage}/buf.h +0 -0
  345. /data/ext/pg_query/include/{storage → postgres/storage}/bufmgr.h +0 -0
  346. /data/ext/pg_query/include/{storage → postgres/storage}/bufpage.h +0 -0
  347. /data/ext/pg_query/include/{storage → postgres/storage}/condition_variable.h +0 -0
  348. /data/ext/pg_query/include/{storage → postgres/storage}/dsm.h +0 -0
  349. /data/ext/pg_query/include/{storage → postgres/storage}/dsm_impl.h +0 -0
  350. /data/ext/pg_query/include/{storage → postgres/storage}/fd.h +0 -0
  351. /data/ext/pg_query/include/{storage → postgres/storage}/fileset.h +0 -0
  352. /data/ext/pg_query/include/{storage → postgres/storage}/item.h +0 -0
  353. /data/ext/pg_query/include/{storage → postgres/storage}/itemid.h +0 -0
  354. /data/ext/pg_query/include/{storage → postgres/storage}/itemptr.h +0 -0
  355. /data/ext/pg_query/include/{storage → postgres/storage}/large_object.h +0 -0
  356. /data/ext/pg_query/include/{storage → postgres/storage}/latch.h +0 -0
  357. /data/ext/pg_query/include/{storage → postgres/storage}/lmgr.h +0 -0
  358. /data/ext/pg_query/include/{storage → postgres/storage}/lock.h +0 -0
  359. /data/ext/pg_query/include/{storage → postgres/storage}/lockdefs.h +0 -0
  360. /data/ext/pg_query/include/{storage → postgres/storage}/lwlock.h +0 -0
  361. /data/ext/pg_query/include/{storage → postgres/storage}/lwlocknames.h +0 -0
  362. /data/ext/pg_query/include/{storage → postgres/storage}/off.h +0 -0
  363. /data/ext/pg_query/include/{storage → postgres/storage}/pg_sema.h +0 -0
  364. /data/ext/pg_query/include/{storage → postgres/storage}/pg_shmem.h +0 -0
  365. /data/ext/pg_query/include/{storage → postgres/storage}/pmsignal.h +0 -0
  366. /data/ext/pg_query/include/{storage → postgres/storage}/predicate.h +0 -0
  367. /data/ext/pg_query/include/{storage → postgres/storage}/proc.h +0 -0
  368. /data/ext/pg_query/include/{storage → postgres/storage}/procarray.h +0 -0
  369. /data/ext/pg_query/include/{storage → postgres/storage}/proclist_types.h +0 -0
  370. /data/ext/pg_query/include/{storage → postgres/storage}/procsignal.h +0 -0
  371. /data/ext/pg_query/include/{storage → postgres/storage}/relfilelocator.h +0 -0
  372. /data/ext/pg_query/include/{storage → postgres/storage}/s_lock.h +0 -0
  373. /data/ext/pg_query/include/{storage → postgres/storage}/sharedfileset.h +0 -0
  374. /data/ext/pg_query/include/{storage → postgres/storage}/shm_mq.h +0 -0
  375. /data/ext/pg_query/include/{storage → postgres/storage}/shm_toc.h +0 -0
  376. /data/ext/pg_query/include/{storage → postgres/storage}/shmem.h +0 -0
  377. /data/ext/pg_query/include/{storage → postgres/storage}/sinval.h +0 -0
  378. /data/ext/pg_query/include/{storage → postgres/storage}/sinvaladt.h +0 -0
  379. /data/ext/pg_query/include/{storage → postgres/storage}/smgr.h +0 -0
  380. /data/ext/pg_query/include/{storage → postgres/storage}/spin.h +0 -0
  381. /data/ext/pg_query/include/{storage → postgres/storage}/standby.h +0 -0
  382. /data/ext/pg_query/include/{storage → postgres/storage}/standbydefs.h +0 -0
  383. /data/ext/pg_query/include/{storage → postgres/storage}/sync.h +0 -0
  384. /data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtag.h +0 -0
  385. /data/ext/pg_query/include/{tcop → postgres/tcop}/cmdtaglist.h +0 -0
  386. /data/ext/pg_query/include/{tcop → postgres/tcop}/deparse_utility.h +0 -0
  387. /data/ext/pg_query/include/{tcop → postgres/tcop}/dest.h +0 -0
  388. /data/ext/pg_query/include/{tcop → postgres/tcop}/fastpath.h +0 -0
  389. /data/ext/pg_query/include/{tcop → postgres/tcop}/pquery.h +0 -0
  390. /data/ext/pg_query/include/{tcop → postgres/tcop}/utility.h +0 -0
  391. /data/ext/pg_query/include/{tsearch → postgres/tsearch}/ts_cache.h +0 -0
  392. /data/ext/pg_query/include/{utils → postgres/utils}/acl.h +0 -0
  393. /data/ext/pg_query/include/{utils → postgres/utils}/aclchk_internal.h +0 -0
  394. /data/ext/pg_query/include/{utils → postgres/utils}/array.h +0 -0
  395. /data/ext/pg_query/include/{utils → postgres/utils}/backend_progress.h +0 -0
  396. /data/ext/pg_query/include/{utils → postgres/utils}/backend_status.h +0 -0
  397. /data/ext/pg_query/include/{utils → postgres/utils}/bytea.h +0 -0
  398. /data/ext/pg_query/include/{utils → postgres/utils}/catcache.h +0 -0
  399. /data/ext/pg_query/include/{utils → postgres/utils}/date.h +0 -0
  400. /data/ext/pg_query/include/{utils → postgres/utils}/datetime.h +0 -0
  401. /data/ext/pg_query/include/{utils → postgres/utils}/datum.h +0 -0
  402. /data/ext/pg_query/include/{utils → postgres/utils}/dsa.h +0 -0
  403. /data/ext/pg_query/include/{utils → postgres/utils}/errcodes.h +0 -0
  404. /data/ext/pg_query/include/{utils → postgres/utils}/expandeddatum.h +0 -0
  405. /data/ext/pg_query/include/{utils → postgres/utils}/expandedrecord.h +0 -0
  406. /data/ext/pg_query/include/{utils → postgres/utils}/float.h +0 -0
  407. /data/ext/pg_query/include/{utils → postgres/utils}/fmgroids.h +0 -0
  408. /data/ext/pg_query/include/{utils → postgres/utils}/fmgrprotos.h +0 -0
  409. /data/ext/pg_query/include/{utils → postgres/utils}/fmgrtab.h +0 -0
  410. /data/ext/pg_query/include/{utils → postgres/utils}/guc_hooks.h +0 -0
  411. /data/ext/pg_query/include/{utils → postgres/utils}/guc_tables.h +0 -0
  412. /data/ext/pg_query/include/{utils → postgres/utils}/hsearch.h +0 -0
  413. /data/ext/pg_query/include/{utils → postgres/utils}/inval.h +0 -0
  414. /data/ext/pg_query/include/{utils → postgres/utils}/logtape.h +0 -0
  415. /data/ext/pg_query/include/{utils → postgres/utils}/lsyscache.h +0 -0
  416. /data/ext/pg_query/include/{utils → postgres/utils}/memdebug.h +0 -0
  417. /data/ext/pg_query/include/{utils → postgres/utils}/memutils_internal.h +0 -0
  418. /data/ext/pg_query/include/{utils → postgres/utils}/memutils_memorychunk.h +0 -0
  419. /data/ext/pg_query/include/{utils → postgres/utils}/numeric.h +0 -0
  420. /data/ext/pg_query/include/{utils → postgres/utils}/partcache.h +0 -0
  421. /data/ext/pg_query/include/{utils → postgres/utils}/pg_locale.h +0 -0
  422. /data/ext/pg_query/include/{utils → postgres/utils}/pgstat_internal.h +0 -0
  423. /data/ext/pg_query/include/{utils → postgres/utils}/plancache.h +0 -0
  424. /data/ext/pg_query/include/{utils → postgres/utils}/portal.h +0 -0
  425. /data/ext/pg_query/include/{utils → postgres/utils}/probes.h +0 -0
  426. /data/ext/pg_query/include/{utils → postgres/utils}/ps_status.h +0 -0
  427. /data/ext/pg_query/include/{utils → postgres/utils}/queryenvironment.h +0 -0
  428. /data/ext/pg_query/include/{utils → postgres/utils}/regproc.h +0 -0
  429. /data/ext/pg_query/include/{utils → postgres/utils}/rel.h +0 -0
  430. /data/ext/pg_query/include/{utils → postgres/utils}/relcache.h +0 -0
  431. /data/ext/pg_query/include/{utils → postgres/utils}/reltrigger.h +0 -0
  432. /data/ext/pg_query/include/{utils → postgres/utils}/resowner.h +0 -0
  433. /data/ext/pg_query/include/{utils → postgres/utils}/ruleutils.h +0 -0
  434. /data/ext/pg_query/include/{utils → postgres/utils}/sharedtuplestore.h +0 -0
  435. /data/ext/pg_query/include/{utils → postgres/utils}/snapmgr.h +0 -0
  436. /data/ext/pg_query/include/{utils → postgres/utils}/snapshot.h +0 -0
  437. /data/ext/pg_query/include/{utils → postgres/utils}/sortsupport.h +0 -0
  438. /data/ext/pg_query/include/{utils → postgres/utils}/syscache.h +0 -0
  439. /data/ext/pg_query/include/{utils → postgres/utils}/timeout.h +0 -0
  440. /data/ext/pg_query/include/{utils → postgres/utils}/timestamp.h +0 -0
  441. /data/ext/pg_query/include/{utils → postgres/utils}/tuplesort.h +0 -0
  442. /data/ext/pg_query/include/{utils → postgres/utils}/tuplestore.h +0 -0
  443. /data/ext/pg_query/include/{utils → postgres/utils}/typcache.h +0 -0
  444. /data/ext/pg_query/include/{utils → postgres/utils}/varlena.h +0 -0
  445. /data/ext/pg_query/include/{utils → postgres/utils}/wait_event.h +0 -0
  446. /data/ext/pg_query/include/{utils → postgres/utils}/xml.h +0 -0
  447. /data/ext/pg_query/include/{varatt.h → postgres/varatt.h} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b94d85770885d7cc76eea209b1de0ac6e7aa8d8408cb2a986e846852c26bbdd0
4
- data.tar.gz: 01457cf09362555c92dc90116e3cce752c13778c4cb3daa852423e5e6a4df01f
3
+ metadata.gz: b7ecf94b691013f4f32e593af1a9626f26bfe148bbb6482c4d4d3d92758aadec
4
+ data.tar.gz: 554972dda2feecab635e154c1134d6da4fe7ce136c44ce7c3dea4c6e0b5d3a4c
5
5
  SHA512:
6
- metadata.gz: 6b817e4f20f42d2497de9df7807d8e06100e81b863fd7a4a49f18840c32d1921c4c26a5c2382221102ab23b74859a9fd0708c0c7caff8806ffec012d31285116
7
- data.tar.gz: 807ee8ff136dcfd0d0dd2d8c50613b33b032f4a37dd287ea83a671ed3afa0e1bba389c41b5d9955eb1ee8783640caf46bde91eeed6e710ac88fb524f03ce0318
6
+ metadata.gz: 2f09d9bf624acd8e13fdfcc975871c2e9d184a10fc7630af8a060e9a97cdfffba749145d4be1b6ec75cde4be42a5629c26545bf6b1ba6617d3354228e191d7b1
7
+ data.tar.gz: 602ca65b8c7f700dba44a7d2ed0b13d41953cf053d101b07d1766564b9fd34db687c6321e320c6f54977ee1be21032ceae29ec69be1b5d7eb3d3cde26ead1f1a
data/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@
4
4
 
5
5
  * ...
6
6
 
7
+ ## 5.1.0 2024-01-09
8
+
9
+ * Update to libpg_query 16-5.1.0
10
+ - Add support for running on Windows
11
+ - Add support for compiling on 32-bit systems
12
+ * Treewalker: Allow passing a block with a single argument to walk!
13
+ * PgQuery::Node: Add inner and inner= helpers to get/set inner object
14
+
15
+
7
16
  ## 5.0.0 2023-12-22
8
17
 
9
18
  * Upgrade to libpg_query 16-5.0.0
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ require 'rspec/core/rake_task'
5
5
  require 'rubocop/rake_task'
6
6
  require 'open-uri'
7
7
 
8
- LIB_PG_QUERY_TAG = '16-5.0.0'.freeze
9
- LIB_PG_QUERY_SHA256SUM = '7cf26922cbc41668fa79332504f2d5638339baa9411912b8df4526ccd1d7029e'.freeze
8
+ LIB_PG_QUERY_TAG = '16-5.1.0'.freeze
9
+ LIB_PG_QUERY_SHA256SUM = '31f25b573da1c966bc762b0313b0a50cdd03aabdbaf666d90469eddcb1656df7'.freeze
10
10
 
11
11
  Rake::ExtensionTask.new 'pg_query' do |ext|
12
12
  ext.lib_dir = 'lib/pg_query'
@@ -62,11 +62,10 @@ task :update_source do
62
62
  # Reduce everything down to one directory
63
63
  system("mkdir -p #{extdir}")
64
64
  system("cp -a #{libdir}/src/* #{extdir}/")
65
+ system("mv #{extdir}/postgres/include #{extdir}/include/postgres")
65
66
  system("mv #{extdir}/postgres/* #{extdir}/")
66
67
  system("rmdir #{extdir}/postgres")
67
68
  system("cp -a #{libdir}/pg_query.h #{extdir}/include")
68
- # Make sure every .c file in the top-level directory is its own translation unit
69
- system("mv #{extdir}/*{_conds,_defs,_helper,.funcs}.c #{extdir}/include")
70
69
  # Protobuf definitions
71
70
  system("protoc --proto_path=#{libdir}/protobuf --ruby_out=#{File.join(__dir__, 'lib/pg_query')} #{libdir}/protobuf/pg_query.proto")
72
71
  system("mkdir -p #{extdir}/include/protobuf")
@@ -7,20 +7,30 @@ require 'pathname'
7
7
 
8
8
  $objs = Dir.glob(File.join(__dir__, '*.c')).map { |f| Pathname.new(f).sub_ext('.o').to_s }
9
9
 
10
- $CFLAGS << " -fvisibility=hidden -O3 -Wall -fno-strict-aliasing -fwrapv -fstack-protector -Wno-unused-function -Wno-unused-variable -Wno-clobbered -Wno-sign-compare -Wno-discarded-qualifiers -Wno-unknown-warning-option -g"
10
+ if RUBY_PLATFORM !~ /cygwin|mswin|mingw|bccwin|wince|emx/
11
+ $CFLAGS << " -fvisibility=hidden -O3 -Wall -fno-strict-aliasing -fwrapv -fstack-protector -Wno-unused-function -Wno-unused-variable -Wno-clobbered -Wno-sign-compare -Wno-discarded-qualifiers -Wno-unknown-warning-option -g"
12
+ end
13
+
14
+ $INCFLAGS = "-I#{File.join(__dir__, 'include')} " + "-I#{File.join(__dir__, 'include', 'postgres')} " + $INCFLAGS
11
15
 
12
- $INCFLAGS = "-I#{File.join(__dir__, 'include')} " + $INCFLAGS
16
+ if RUBY_PLATFORM =~ /cygwin|mswin|mingw|bccwin|wince|emx/
17
+ $INCFLAGS = "-I#{File.join(__dir__, 'include', 'postgres', 'port', 'win32')} " + $INCFLAGS
18
+ end
19
+
20
+ if RUBY_PLATFORM =~ /mswin/
21
+ $INCFLAGS = "-I#{File.join(__dir__, 'include', 'postgres', 'port', 'win32_msvc')} " + $INCFLAGS
22
+ end
13
23
 
14
24
  SYMFILE =
15
25
  if RUBY_PLATFORM =~ /freebsd/
16
26
  File.join(__dir__, 'pg_query_ruby_freebsd.sym')
17
- else
27
+ elsif RUBY_PLATFORM !~ /cygwin|mswin|mingw|bccwin|wince|emx/
18
28
  File.join(__dir__, 'pg_query_ruby.sym')
19
29
  end
20
30
 
21
31
  if RUBY_PLATFORM =~ /darwin/
22
32
  $DLDFLAGS << " -Wl,-exported_symbols_list #{SYMFILE}" unless defined?(::Rubinius)
23
- else
33
+ elsif RUBY_PLATFORM !~ /cygwin|mswin|mingw|bccwin|wince|emx/
24
34
  $DLDFLAGS << " -Wl,--retain-symbols-file=#{SYMFILE}"
25
35
  end
26
36
 
@@ -5894,7 +5894,7 @@ _fingerprintRTEPermissionInfo(FingerprintContext *ctx, const RTEPermissionInfo *
5894
5894
 
5895
5895
  if (node->requiredPerms != 0) {
5896
5896
  char buffer[50];
5897
- sprintf(buffer, "%ld", node->requiredPerms);
5897
+ sprintf(buffer, UINT64_FORMAT, node->requiredPerms);
5898
5898
  _fingerprintString(ctx, "requiredPerms");
5899
5899
  _fingerprintString(ctx, buffer);
5900
5900
  }
@@ -1240,7 +1240,7 @@ _outRTEPermissionInfo(OUT_TYPE(RTEPermissionInfo, RTEPermissionInfo) out, const
1240
1240
  {
1241
1241
  WRITE_UINT_FIELD(relid, relid, relid);
1242
1242
  WRITE_BOOL_FIELD(inh, inh, inh);
1243
- WRITE_LONG_FIELD(required_perms, requiredPerms, requiredPerms);
1243
+ WRITE_UINT64_FIELD(required_perms, requiredPerms, requiredPerms);
1244
1244
  WRITE_UINT_FIELD(check_as_user, checkAsUser, checkAsUser);
1245
1245
  WRITE_BITMAPSET_FIELD(selected_cols, selectedCols, selectedCols);
1246
1246
  WRITE_BITMAPSET_FIELD(inserted_cols, insertedCols, insertedCols);
@@ -1419,7 +1419,7 @@ _readRTEPermissionInfo(OUT_TYPE(RTEPermissionInfo, RTEPermissionInfo) msg)
1419
1419
  RTEPermissionInfo *node = makeNode(RTEPermissionInfo);
1420
1420
  READ_UINT_FIELD(relid, relid, relid);
1421
1421
  READ_BOOL_FIELD(inh, inh, inh);
1422
- READ_LONG_FIELD(required_perms, requiredPerms, requiredPerms);
1422
+ READ_UINT64_FIELD(required_perms, requiredPerms, requiredPerms);
1423
1423
  READ_UINT_FIELD(check_as_user, checkAsUser, checkAsUser);
1424
1424
  READ_BITMAPSET_FIELD(selected_cols, selectedCols, selectedCols);
1425
1425
  READ_BITMAPSET_FIELD(inserted_cols, insertedCols, insertedCols);
@@ -167,7 +167,7 @@ extern PGDLLIMPORT bool IsUnderPostmaster;
167
167
  extern PGDLLIMPORT bool IsBackgroundWorker;
168
168
  extern PGDLLIMPORT bool IsBinaryUpgrade;
169
169
 
170
- extern PGDLLIMPORT __thread bool ExitOnAnyError;
170
+ extern PGDLLIMPORT __thread bool ExitOnAnyError;
171
171
 
172
172
  extern PGDLLIMPORT char *DataDir;
173
173
  extern PGDLLIMPORT int data_directory_mode;
@@ -161,7 +161,7 @@ typedef struct Node
161
161
  * Fortunately, this macro isn't recursive so we just define
162
162
  * a global variable for this purpose.
163
163
  */
164
- extern PGDLLIMPORT Node *newNodeMacroHolder;
164
+ extern PGDLLIMPORT __thread Node *newNodeMacroHolder;
165
165
 
166
166
  #define newNode(size, tag) \
167
167
  ( \
@@ -53,9 +53,9 @@ typedef enum
53
53
  } BackslashQuoteType;
54
54
 
55
55
  /* GUC variables in scan.l (every one of these is a bad idea :-() */
56
- extern PGDLLIMPORT __thread int backslash_quote;
57
- extern PGDLLIMPORT __thread bool escape_string_warning;
58
- extern PGDLLIMPORT __thread bool standard_conforming_strings;
56
+ extern PGDLLIMPORT __thread int backslash_quote;
57
+ extern PGDLLIMPORT __thread bool escape_string_warning;
58
+ extern PGDLLIMPORT __thread bool standard_conforming_strings;
59
59
 
60
60
 
61
61
  /* Primary entry point for the raw parsing functions */
@@ -650,7 +650,7 @@
650
650
  #define PG_VERSION_NUM 160001
651
651
 
652
652
  /* A string containing the version number, platform, and C compiler */
653
- #define PG_VERSION_STR "PostgreSQL 16.1 on aarch64-apple-darwin21.6.0, compiled by Apple clang version 14.0.0 (clang-1400.0.29.102), 64-bit"
653
+ #define PG_VERSION_STR "PostgreSQL 16.1 (libpg_query)"
654
654
 
655
655
  /* Define to 1 to allow profiling output to be saved separately for each
656
656
  process. */
@@ -826,18 +826,152 @@
826
826
 
827
827
  /* Define to how the compiler spells `typeof'. */
828
828
  /* #undef typeof */
829
+ /* This causes compatibility problems on some Linux distros, with "xlocale.h" not being available */
829
830
  #undef HAVE_LOCALE_T
830
831
  #undef LOCALE_T_IN_XLOCALE
831
832
  #undef WCSTOMBS_L_IN_XLOCALE
832
- #undef PG_INT128_TYPE
833
+
834
+ /* Support gcc earlier than 4.6.0 and MSVC */
833
835
  #undef HAVE__STATIC_ASSERT
836
+
837
+ /* Avoid dependency on execinfo (requires extra library on musl-libc based systems, not supported on Windows) */
834
838
  #undef HAVE_EXECINFO_H
835
839
  #undef HAVE_BACKTRACE_SYMBOLS
840
+
841
+ /* Avoid dependency on hardware popcount instructions (POPQNTQ) on x86 */
836
842
  #undef HAVE_X86_64_POPCNTQ
843
+
844
+ /* Avoid dependency on cpuid.h (only supported on x86 systems) */
837
845
  #undef HAVE__GET_CPUID
846
+
847
+ /* Avoid CRC extension usage to ensure we are not architecture-dependent */
838
848
  #undef USE_ARMV8_CRC32C
839
849
  #undef USE_SSE42_CRC32C_WITH_RUNTIME_CHECK
850
+
851
+ /* Ensure we do not fail on systems that have strchrnul support (FreeBSD, NetBSD and newer glibc) */
840
852
  #include <stdlib.h>
841
853
  #if defined(__FreeBSD__) || defined(__NetBSD__) || (defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 38) || __GLIBC__ > 2))
842
854
  #define HAVE_STRCHRNUL
843
855
  #endif
856
+
857
+ /* 32-bit */
858
+ #if defined(_WIN32) || __SIZEOF_POINTER__ == 4
859
+ #undef ALIGNOF_DOUBLE
860
+ #define ALIGNOF_DOUBLE 4
861
+ #undef ALIGNOF_LONG
862
+ #define ALIGNOF_LONG 4
863
+ #define ALIGNOF_LONG_LONG_INT 4
864
+ #undef ALIGNOF_PG_INT128_TYPE
865
+ #undef HAVE_LONG_INT_64
866
+ #define HAVE_LONG_LONG_INT_64 1
867
+ #undef INT64_MODIFIER
868
+ #define INT64_MODIFIER "ll"
869
+ #undef PG_INT128_TYPE
870
+ #undef PG_INT64_TYPE
871
+ #define PG_INT64_TYPE long long int
872
+ #undef SIZEOF_LONG
873
+ #define SIZEOF_LONG 4
874
+ #undef SIZEOF_OFF_T
875
+ #define SIZEOF_OFF_T 4
876
+ #undef SIZEOF_SIZE_T
877
+ #define SIZEOF_SIZE_T 4
878
+ #undef SIZEOF_VOID_P
879
+ #define SIZEOF_VOID_P 4
880
+ #endif
881
+
882
+ /* Windows */
883
+ #if defined(_WIN32) || defined(_WIN64)
884
+ #undef HAVE_COPYFILE
885
+ #undef HAVE_COPYFILE_H
886
+ #undef HAVE_DECL_F_FULLFSYNC
887
+ #define HAVE_DECL_F_FULLFSYNC 0
888
+ #undef HAVE_DECL_PREADV
889
+ #define HAVE_DECL_PREADV 0
890
+ #undef HAVE_DECL_PWRITEV
891
+ #define HAVE_DECL_PWRITEV 0
892
+ #undef HAVE_DECL_STRLCAT
893
+ #define HAVE_DECL_STRLCAT 0
894
+ #undef HAVE_DECL_STRLCPY
895
+ #define HAVE_DECL_STRLCPY 0
896
+ #undef HAVE_GETIFADDRS
897
+ #undef HAVE_GETPEEREID
898
+ #undef HAVE_IFADDRS_H
899
+ #undef HAVE_INET_ATON
900
+ #undef HAVE_INT_OPTRESET
901
+ #undef HAVE_KQUEUE
902
+ #undef HAVE_LANGINFO_H
903
+ #undef HAVE_MEMSET_S
904
+ #undef HAVE_MKDTEMP
905
+ #undef HAVE_PTHREAD
906
+ #undef HAVE_PTHREAD_BARRIER_WAIT
907
+ #undef HAVE_PTHREAD_IS_THREADED_NP
908
+ #undef HAVE_PTHREAD_PRIO_INHERIT
909
+ #undef HAVE_STRERROR_R
910
+ #undef HAVE_STRLCAT
911
+ #undef HAVE_STRLCPY
912
+ #undef HAVE_STRSIGNAL
913
+ #undef HAVE_STRUCT_SOCKADDR_SA_LEN
914
+ #undef HAVE_STRUCT_TM_TM_ZONE
915
+ #undef HAVE_SYSLOG
916
+ #undef HAVE_SYS_EVENT_H
917
+ #undef HAVE_SYS_UCRED_H
918
+ #undef HAVE_TERMIOS_H
919
+ #undef HAVE_UNION_SEMUN
920
+ #undef HAVE_USELOCALE
921
+ #define HAVE__CONFIGTHREADLOCALE 1
922
+ #undef STRERROR_R_INT
923
+ #undef USE_SYSV_SEMAPHORES
924
+ #undef USE_SYSV_SHARED_MEMORY
925
+ #define USE_WIN32_SEMAPHORES 1
926
+ #define USE_WIN32_SHARED_MEMORY 1
927
+ #undef PG_PRINTF_ATTRIBUTE
928
+ #if defined(__clang__)
929
+ #define PG_PRINTF_ATTRIBUTE printf
930
+ #elif defined(__MINGW32__) || defined(__MINGW64__) || defined(__MSYS__) || defined(__CYGWIN__)
931
+ #define PG_PRINTF_ATTRIBUTE gnu_printf
932
+ #endif
933
+ #if defined(__MINGW32__) || defined(__MINGW64__) || defined(__MSYS__) || defined(__CYGWIN__)
934
+ #undef HAVE_MBSTOWCS_L
935
+ #undef HAVE_WCSTOMBS_L
936
+ #define HAVE_CRTDEFS_H 1
937
+ #define HAVE_PTHREAD_BARRIER_WAIT 1
938
+ #endif
939
+ #endif
940
+
941
+ /* Microsoft Visual Studio Compiler */
942
+ #ifdef _MSC_VER
943
+ #undef HAVE_COMPUTED_GOTO
944
+ #undef HAVE_GCC__ATOMIC_INT32_CAS
945
+ #undef HAVE_GCC__ATOMIC_INT64_CAS
946
+ #undef HAVE_GCC__SYNC_CHAR_TAS
947
+ #undef HAVE_GCC__SYNC_INT32_CAS
948
+ #undef HAVE_GCC__SYNC_INT32_TAS
949
+ #undef HAVE_GCC__SYNC_INT64_CAS
950
+ #undef HAVE_GETOPT
951
+ #undef HAVE_GETOPT_H
952
+ #undef HAVE_GETOPT_LONG
953
+ #undef HAVE_INTTYPES_H
954
+ #undef HAVE_INT_OPTERR
955
+ #undef HAVE_LIBM
956
+ #undef HAVE_STRINGS_H
957
+ #undef HAVE_STRUCT_OPTION
958
+ #undef HAVE_TYPEOF
959
+ #undef HAVE_VISIBILITY_ATTRIBUTE
960
+ #undef HAVE__BOOL
961
+ #undef HAVE__BUILTIN_BSWAP16
962
+ #undef HAVE__BUILTIN_BSWAP32
963
+ #undef HAVE__BUILTIN_BSWAP64
964
+ #undef HAVE__BUILTIN_CLZ
965
+ #undef HAVE__BUILTIN_CONSTANT_P
966
+ #undef HAVE__BUILTIN_CTZ
967
+ #undef HAVE__BUILTIN_FRAME_ADDRESS
968
+ #undef HAVE__BUILTIN_OP_OVERFLOW
969
+ #undef HAVE__BUILTIN_POPCOUNT
970
+ #undef HAVE__BUILTIN_TYPES_COMPATIBLE_P
971
+ #undef HAVE__BUILTIN_UNREACHABLE
972
+ #ifndef __cplusplus
973
+ #define inline __inline
974
+ #endif
975
+ #undef restrict
976
+ #define __thread __declspec( thread )
977
+ #endif
@@ -0,0 +1,8 @@
1
+ #if defined(_WIN32) || defined(_WIN64)
2
+ #include "port/win32.h"
3
+ #undef PGDLLIMPORT
4
+ #undef PGDLLEXPORT
5
+ #ifdef __clang__
6
+ #undef __MINGW64__
7
+ #endif /* __clang__ */
8
+ #endif
@@ -764,7 +764,7 @@ extern PGDLLIMPORT PgStat_Counter pgStatActiveTime;
764
764
  extern PGDLLIMPORT PgStat_Counter pgStatTransactionIdleTime;
765
765
 
766
766
  /* updated by the traffic cop and in errfinish() */
767
- extern PGDLLIMPORT __thread SessionEndType pgStatSessionEndCause;
767
+ extern PGDLLIMPORT __thread SessionEndType pgStatSessionEndCause;
768
768
 
769
769
 
770
770
  /*
@@ -367,7 +367,7 @@ typedef union YYSTYPE
367
367
  # define YYSTYPE_IS_TRIVIAL 1
368
368
  #endif
369
369
 
370
- extern __thread YYSTYPE plpgsql_yylval;
370
+ extern __thread YYSTYPE plpgsql_yylval;
371
371
 
372
372
  #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
373
373
  typedef struct YYLTYPE
@@ -382,4 +382,4 @@ typedef struct YYLTYPE
382
382
  # define YYLTYPE_IS_TRIVIAL 1
383
383
  #endif
384
384
 
385
- extern __thread YYLTYPE plpgsql_yylloc;
385
+ extern __thread YYLTYPE plpgsql_yylloc;
@@ -1191,11 +1191,11 @@ typedef enum
1191
1191
  IDENTIFIER_LOOKUP_EXPR /* In SQL expression --- special case */
1192
1192
  } IdentifierLookup;
1193
1193
 
1194
- extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1194
+ extern __thread IdentifierLookup plpgsql_IdentifierLookup;
1195
1195
 
1196
- extern __thread int plpgsql_variable_conflict;
1196
+ extern __thread int plpgsql_variable_conflict;
1197
1197
 
1198
- extern __thread bool plpgsql_print_strict_params;
1198
+ extern __thread bool plpgsql_print_strict_params;
1199
1199
 
1200
1200
  extern bool plpgsql_check_asserts;
1201
1201
 
@@ -1209,18 +1209,18 @@ extern bool plpgsql_check_asserts;
1209
1209
  extern int plpgsql_extra_warnings;
1210
1210
  extern int plpgsql_extra_errors;
1211
1211
 
1212
- extern __thread bool plpgsql_check_syntax;
1213
- extern __thread bool plpgsql_DumpExecTree;
1212
+ extern __thread bool plpgsql_check_syntax;
1213
+ extern __thread bool plpgsql_DumpExecTree;
1214
1214
 
1215
- extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1215
+ extern __thread PLpgSQL_stmt_block *plpgsql_parse_result;
1216
1216
 
1217
- extern __thread int plpgsql_nDatums;
1218
- extern __thread PLpgSQL_datum **plpgsql_Datums;
1217
+ extern __thread int plpgsql_nDatums;
1218
+ extern __thread PLpgSQL_datum **plpgsql_Datums;
1219
1219
 
1220
- extern __thread char *plpgsql_error_funcname;
1220
+ extern __thread char *plpgsql_error_funcname;
1221
1221
 
1222
- extern __thread PLpgSQL_function *plpgsql_curr_compile;
1223
- extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1222
+ extern __thread PLpgSQL_function *plpgsql_curr_compile;
1223
+ extern __thread MemoryContext plpgsql_compile_tmp_cxt;
1224
1224
 
1225
1225
  extern PLpgSQL_plugin **plpgsql_plugin_ptr;
1226
1226
 
@@ -0,0 +1,17 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * arch-hppa.h
4
+ * Atomic operations considerations specific to HPPA
5
+ *
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * NOTES:
10
+ *
11
+ * src/include/port/atomics/arch-hppa.h
12
+ *
13
+ *-------------------------------------------------------------------------
14
+ */
15
+
16
+ /* HPPA doesn't do either read or write reordering */
17
+ #define pg_memory_barrier_impl() pg_compiler_barrier_impl()
@@ -0,0 +1,101 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * generic-msvc.h
4
+ * Atomic operations support when using MSVC
5
+ *
6
+ * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
7
+ * Portions Copyright (c) 1994, Regents of the University of California
8
+ *
9
+ * NOTES:
10
+ *
11
+ * Documentation:
12
+ * * Interlocked Variable Access
13
+ * http://msdn.microsoft.com/en-us/library/ms684122%28VS.85%29.aspx
14
+ *
15
+ * src/include/port/atomics/generic-msvc.h
16
+ *
17
+ *-------------------------------------------------------------------------
18
+ */
19
+ #include <intrin.h>
20
+
21
+ /* intentionally no include guards, should only be included by atomics.h */
22
+ #ifndef INSIDE_ATOMICS_H
23
+ #error "should be included via atomics.h"
24
+ #endif
25
+
26
+ #pragma intrinsic(_ReadWriteBarrier)
27
+ #define pg_compiler_barrier_impl() _ReadWriteBarrier()
28
+
29
+ #ifndef pg_memory_barrier_impl
30
+ #define pg_memory_barrier_impl() MemoryBarrier()
31
+ #endif
32
+
33
+ #if defined(HAVE_ATOMICS)
34
+
35
+ #define PG_HAVE_ATOMIC_U32_SUPPORT
36
+ typedef struct pg_atomic_uint32
37
+ {
38
+ volatile uint32 value;
39
+ } pg_atomic_uint32;
40
+
41
+ #define PG_HAVE_ATOMIC_U64_SUPPORT
42
+ typedef struct pg_attribute_aligned(8) pg_atomic_uint64
43
+ {
44
+ volatile uint64 value;
45
+ } pg_atomic_uint64;
46
+
47
+
48
+ #define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
49
+ static inline bool
50
+ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
51
+ uint32 *expected, uint32 newval)
52
+ {
53
+ bool ret;
54
+ uint32 current;
55
+ current = InterlockedCompareExchange(&ptr->value, newval, *expected);
56
+ ret = current == *expected;
57
+ *expected = current;
58
+ return ret;
59
+ }
60
+
61
+ #define PG_HAVE_ATOMIC_FETCH_ADD_U32
62
+ static inline uint32
63
+ pg_atomic_fetch_add_u32_impl(volatile pg_atomic_uint32 *ptr, int32 add_)
64
+ {
65
+ return InterlockedExchangeAdd(&ptr->value, add_);
66
+ }
67
+
68
+ /*
69
+ * The non-intrinsics versions are only available in vista upwards, so use the
70
+ * intrinsic version. Only supported on >486, but we require XP as a minimum
71
+ * baseline, which doesn't support the 486, so we don't need to add checks for
72
+ * that case.
73
+ */
74
+ #pragma intrinsic(_InterlockedCompareExchange64)
75
+
76
+ #define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64
77
+ static inline bool
78
+ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
79
+ uint64 *expected, uint64 newval)
80
+ {
81
+ bool ret;
82
+ uint64 current;
83
+ current = _InterlockedCompareExchange64(&ptr->value, newval, *expected);
84
+ ret = current == *expected;
85
+ *expected = current;
86
+ return ret;
87
+ }
88
+
89
+ /* Only implemented on 64bit builds */
90
+ #ifdef _WIN64
91
+ #pragma intrinsic(_InterlockedExchangeAdd64)
92
+
93
+ #define PG_HAVE_ATOMIC_FETCH_ADD_U64
94
+ static inline uint64
95
+ pg_atomic_fetch_add_u64_impl(volatile pg_atomic_uint64 *ptr, int64 add_)
96
+ {
97
+ return _InterlockedExchangeAdd64(&ptr->value, add_);
98
+ }
99
+ #endif /* _WIN64 */
100
+
101
+ #endif /* HAVE_ATOMICS */
@@ -0,0 +1,106 @@
1
+ /*-------------------------------------------------------------------------
2
+ *
3
+ * generic-sunpro.h
4
+ * Atomic operations for solaris' CC
5
+ *
6
+ * Portions Copyright (c) 2013-2023, PostgreSQL Global Development Group
7
+ *
8
+ * NOTES:
9
+ *
10
+ * Documentation:
11
+ * * manpage for atomic_cas(3C)
12
+ * http://www.unix.com/man-page/opensolaris/3c/atomic_cas/
13
+ * http://docs.oracle.com/cd/E23824_01/html/821-1465/atomic-cas-3c.html
14
+ *
15
+ * src/include/port/atomics/generic-sunpro.h
16
+ *
17
+ * -------------------------------------------------------------------------
18
+ */
19
+
20
+ #if defined(HAVE_ATOMICS)
21
+
22
+ #ifdef HAVE_MBARRIER_H
23
+ #include <mbarrier.h>
24
+
25
+ #define pg_compiler_barrier_impl() __compiler_barrier()
26
+
27
+ #ifndef pg_memory_barrier_impl
28
+ /*
29
+ * Despite the name this is actually a full barrier. Expanding to mfence/
30
+ * membar #StoreStore | #LoadStore | #StoreLoad | #LoadLoad on x86/sparc
31
+ * respectively.
32
+ */
33
+ # define pg_memory_barrier_impl() __machine_rw_barrier()
34
+ #endif
35
+ #ifndef pg_read_barrier_impl
36
+ # define pg_read_barrier_impl() __machine_r_barrier()
37
+ #endif
38
+ #ifndef pg_write_barrier_impl
39
+ # define pg_write_barrier_impl() __machine_w_barrier()
40
+ #endif
41
+
42
+ #endif /* HAVE_MBARRIER_H */
43
+
44
+ /* Older versions of the compiler don't have atomic.h... */
45
+ #ifdef HAVE_ATOMIC_H
46
+
47
+ #include <atomic.h>
48
+
49
+ #define PG_HAVE_ATOMIC_U32_SUPPORT
50
+ typedef struct pg_atomic_uint32
51
+ {
52
+ volatile uint32 value;
53
+ } pg_atomic_uint32;
54
+
55
+ #define PG_HAVE_ATOMIC_U64_SUPPORT
56
+ typedef struct pg_atomic_uint64
57
+ {
58
+ /*
59
+ * Syntax to enforce variable alignment should be supported by versions
60
+ * supporting atomic.h, but it's hard to find accurate documentation. If
61
+ * it proves to be a problem, we'll have to add more version checks for 64
62
+ * bit support.
63
+ */
64
+ volatile uint64 value pg_attribute_aligned(8);
65
+ } pg_atomic_uint64;
66
+
67
+ #endif /* HAVE_ATOMIC_H */
68
+
69
+ #endif /* defined(HAVE_ATOMICS) */
70
+
71
+
72
+ #if defined(HAVE_ATOMICS)
73
+
74
+ #ifdef HAVE_ATOMIC_H
75
+
76
+ #define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
77
+ static inline bool
78
+ pg_atomic_compare_exchange_u32_impl(volatile pg_atomic_uint32 *ptr,
79
+ uint32 *expected, uint32 newval)
80
+ {
81
+ bool ret;
82
+ uint32 current;
83
+
84
+ current = atomic_cas_32(&ptr->value, *expected, newval);
85
+ ret = current == *expected;
86
+ *expected = current;
87
+ return ret;
88
+ }
89
+
90
+ #define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64
91
+ static inline bool
92
+ pg_atomic_compare_exchange_u64_impl(volatile pg_atomic_uint64 *ptr,
93
+ uint64 *expected, uint64 newval)
94
+ {
95
+ bool ret;
96
+ uint64 current;
97
+
98
+ current = atomic_cas_64(&ptr->value, *expected, newval);
99
+ ret = current == *expected;
100
+ *expected = current;
101
+ return ret;
102
+ }
103
+
104
+ #endif /* HAVE_ATOMIC_H */
105
+
106
+ #endif /* defined(HAVE_ATOMICS) */
@@ -0,0 +1,3 @@
1
+ /* src/include/port/win32/arpa/inet.h */
2
+
3
+ #include <sys/socket.h>
@@ -0,0 +1 @@
1
+ /* src/include/port/win32/dlfcn.h */
@@ -0,0 +1 @@
1
+ /* src/include/port/win32/grp.h */
@@ -0,0 +1,7 @@
1
+ /* src/include/port/win32/netdb.h */
2
+ #ifndef WIN32_NETDB_H
3
+ #define WIN32_NETDB_H
4
+
5
+ #include <ws2tcpip.h>
6
+
7
+ #endif
@@ -0,0 +1,3 @@
1
+ /* src/include/port/win32/netinet/in.h */
2
+
3
+ #include <sys/socket.h>
@@ -0,0 +1,7 @@
1
+ /* src/include/port/win32/netinet/tcp.h */
2
+ #ifndef WIN32_NETINET_TCP_H
3
+ #define WIN32_NETINET_TCP_H
4
+
5
+ #include <sys/socket.h>
6
+
7
+ #endif
@@ -0,0 +1,3 @@
1
+ /*
2
+ * src/include/port/win32/pwd.h
3
+ */