pg_query 2.1.0 → 4.2.1

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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +104 -0
  3. data/README.md +59 -31
  4. data/Rakefile +2 -2
  5. data/ext/pg_query/extconf.rb +8 -2
  6. data/ext/pg_query/include/access/amapi.h +45 -1
  7. data/ext/pg_query/include/access/attmap.h +1 -1
  8. data/ext/pg_query/include/access/attnum.h +2 -2
  9. data/ext/pg_query/include/access/clog.h +4 -2
  10. data/ext/pg_query/include/access/commit_ts.h +6 -9
  11. data/ext/pg_query/include/access/detoast.h +1 -11
  12. data/ext/pg_query/include/access/genam.h +15 -12
  13. data/ext/pg_query/include/access/gin.h +2 -2
  14. data/ext/pg_query/include/access/htup.h +1 -1
  15. data/ext/pg_query/include/access/htup_details.h +75 -87
  16. data/ext/pg_query/include/access/itup.h +7 -1
  17. data/ext/pg_query/include/access/parallel.h +2 -2
  18. data/ext/pg_query/include/access/printtup.h +1 -1
  19. data/ext/pg_query/include/access/relation.h +1 -1
  20. data/ext/pg_query/include/access/relscan.h +17 -2
  21. data/ext/pg_query/include/access/rmgr.h +30 -3
  22. data/ext/pg_query/include/access/rmgrlist.h +23 -23
  23. data/ext/pg_query/include/access/sdir.h +1 -1
  24. data/ext/pg_query/include/access/skey.h +1 -1
  25. data/ext/pg_query/include/access/stratnum.h +4 -2
  26. data/ext/pg_query/include/access/sysattr.h +1 -1
  27. data/ext/pg_query/include/access/table.h +2 -1
  28. data/ext/pg_query/include/access/tableam.h +272 -20
  29. data/ext/pg_query/include/access/toast_compression.h +73 -0
  30. data/ext/pg_query/include/access/transam.h +123 -13
  31. data/ext/pg_query/include/access/tupconvert.h +1 -1
  32. data/ext/pg_query/include/access/tupdesc.h +1 -1
  33. data/ext/pg_query/include/access/tupmacs.h +3 -3
  34. data/ext/pg_query/include/access/twophase.h +5 -1
  35. data/ext/pg_query/include/access/xact.h +79 -19
  36. data/ext/pg_query/include/access/xlog.h +60 -155
  37. data/ext/pg_query/include/access/xlog_internal.h +50 -14
  38. data/ext/pg_query/include/access/xlogdefs.h +8 -16
  39. data/ext/pg_query/include/access/xlogprefetcher.h +55 -0
  40. data/ext/pg_query/include/access/xlogreader.h +148 -32
  41. data/ext/pg_query/include/access/xlogrecord.h +18 -9
  42. data/ext/pg_query/include/access/xlogrecovery.h +157 -0
  43. data/ext/pg_query/include/c.h +101 -44
  44. data/ext/pg_query/include/catalog/catalog.h +3 -1
  45. data/ext/pg_query/include/catalog/catversion.h +2 -2
  46. data/ext/pg_query/include/catalog/dependency.h +10 -16
  47. data/ext/pg_query/include/catalog/genbki.h +83 -5
  48. data/ext/pg_query/include/catalog/index.h +18 -3
  49. data/ext/pg_query/include/catalog/indexing.h +12 -324
  50. data/ext/pg_query/include/catalog/namespace.h +4 -2
  51. data/ext/pg_query/include/catalog/objectaccess.h +70 -2
  52. data/ext/pg_query/include/catalog/objectaddress.h +11 -6
  53. data/ext/pg_query/include/catalog/pg_aggregate.h +14 -10
  54. data/ext/pg_query/include/catalog/pg_aggregate_d.h +2 -1
  55. data/ext/pg_query/include/catalog/pg_am.h +4 -1
  56. data/ext/pg_query/include/catalog/pg_am_d.h +3 -1
  57. data/ext/pg_query/include/catalog/pg_attribute.h +27 -10
  58. data/ext/pg_query/include/catalog/pg_attribute_d.h +21 -18
  59. data/ext/pg_query/include/catalog/pg_authid.h +7 -2
  60. data/ext/pg_query/include/catalog/pg_authid_d.h +17 -9
  61. data/ext/pg_query/include/catalog/pg_class.h +45 -15
  62. data/ext/pg_query/include/catalog/pg_class_d.h +31 -2
  63. data/ext/pg_query/include/catalog/pg_collation.h +33 -8
  64. data/ext/pg_query/include/catalog/pg_collation_d.h +20 -3
  65. data/ext/pg_query/include/catalog/pg_constraint.h +38 -12
  66. data/ext/pg_query/include/catalog/pg_constraint_d.h +10 -4
  67. data/ext/pg_query/include/catalog/pg_control.h +5 -5
  68. data/ext/pg_query/include/catalog/pg_conversion.h +7 -4
  69. data/ext/pg_query/include/catalog/pg_conversion_d.h +4 -1
  70. data/ext/pg_query/include/catalog/pg_depend.h +11 -7
  71. data/ext/pg_query/include/catalog/pg_depend_d.h +3 -1
  72. data/ext/pg_query/include/catalog/pg_event_trigger.h +9 -3
  73. data/ext/pg_query/include/catalog/pg_event_trigger_d.h +3 -1
  74. data/ext/pg_query/include/catalog/pg_index.h +17 -7
  75. data/ext/pg_query/include/catalog/pg_index_d.h +20 -17
  76. data/ext/pg_query/include/catalog/pg_language.h +10 -5
  77. data/ext/pg_query/include/catalog/pg_language_d.h +3 -1
  78. data/ext/pg_query/include/catalog/pg_namespace.h +7 -2
  79. data/ext/pg_query/include/catalog/pg_namespace_d.h +3 -1
  80. data/ext/pg_query/include/catalog/pg_opclass.h +8 -5
  81. data/ext/pg_query/include/catalog/pg_opclass_d.h +3 -1
  82. data/ext/pg_query/include/catalog/pg_operator.h +21 -16
  83. data/ext/pg_query/include/catalog/pg_operator_d.h +37 -1
  84. data/ext/pg_query/include/catalog/pg_opfamily.h +6 -3
  85. data/ext/pg_query/include/catalog/pg_opfamily_d.h +3 -1
  86. data/ext/pg_query/include/catalog/pg_parameter_acl.h +60 -0
  87. data/ext/pg_query/include/catalog/pg_parameter_acl_d.h +34 -0
  88. data/ext/pg_query/include/catalog/pg_partitioned_table.h +20 -9
  89. data/ext/pg_query/include/catalog/pg_partitioned_table_d.h +2 -1
  90. data/ext/pg_query/include/catalog/pg_proc.h +20 -11
  91. data/ext/pg_query/include/catalog/pg_proc_d.h +10 -8
  92. data/ext/pg_query/include/catalog/pg_publication.h +50 -4
  93. data/ext/pg_query/include/catalog/pg_publication_d.h +3 -1
  94. data/ext/pg_query/include/catalog/pg_replication_origin.h +6 -1
  95. data/ext/pg_query/include/catalog/pg_replication_origin_d.h +5 -1
  96. data/ext/pg_query/include/catalog/pg_statistic.h +19 -12
  97. data/ext/pg_query/include/catalog/pg_statistic_d.h +2 -1
  98. data/ext/pg_query/include/catalog/pg_statistic_ext.h +19 -5
  99. data/ext/pg_query/include/catalog/pg_statistic_ext_d.h +7 -2
  100. data/ext/pg_query/include/catalog/pg_transform.h +8 -5
  101. data/ext/pg_query/include/catalog/pg_transform_d.h +3 -1
  102. data/ext/pg_query/include/catalog/pg_trigger.h +24 -8
  103. data/ext/pg_query/include/catalog/pg_trigger_d.h +4 -1
  104. data/ext/pg_query/include/catalog/pg_ts_config.h +6 -3
  105. data/ext/pg_query/include/catalog/pg_ts_config_d.h +3 -1
  106. data/ext/pg_query/include/catalog/pg_ts_dict.h +8 -3
  107. data/ext/pg_query/include/catalog/pg_ts_dict_d.h +3 -1
  108. data/ext/pg_query/include/catalog/pg_ts_parser.h +6 -3
  109. data/ext/pg_query/include/catalog/pg_ts_parser_d.h +3 -1
  110. data/ext/pg_query/include/catalog/pg_ts_template.h +6 -3
  111. data/ext/pg_query/include/catalog/pg_ts_template_d.h +3 -1
  112. data/ext/pg_query/include/catalog/pg_type.h +56 -24
  113. data/ext/pg_query/include/catalog/pg_type_d.h +70 -31
  114. data/ext/pg_query/include/catalog/storage.h +5 -3
  115. data/ext/pg_query/include/commands/async.h +4 -5
  116. data/ext/pg_query/include/commands/dbcommands.h +2 -1
  117. data/ext/pg_query/include/commands/defrem.h +11 -24
  118. data/ext/pg_query/include/commands/event_trigger.h +2 -2
  119. data/ext/pg_query/include/commands/explain.h +1 -1
  120. data/ext/pg_query/include/commands/prepare.h +1 -1
  121. data/ext/pg_query/include/commands/tablespace.h +3 -1
  122. data/ext/pg_query/include/commands/trigger.h +27 -17
  123. data/ext/pg_query/include/commands/user.h +2 -2
  124. data/ext/pg_query/include/commands/vacuum.h +88 -41
  125. data/ext/pg_query/include/commands/variable.h +1 -1
  126. data/ext/pg_query/include/common/file_perm.h +4 -4
  127. data/ext/pg_query/include/common/hashfn.h +1 -1
  128. data/ext/pg_query/include/common/ip.h +1 -7
  129. data/ext/pg_query/include/common/keywords.h +2 -6
  130. data/ext/pg_query/include/common/kwlookup.h +1 -1
  131. data/ext/pg_query/include/common/pg_prng.h +60 -0
  132. data/ext/pg_query/include/common/relpath.h +2 -2
  133. data/ext/pg_query/include/common/string.h +24 -1
  134. data/ext/pg_query/include/common/unicode_combining_table.h +114 -2
  135. data/ext/pg_query/include/common/unicode_east_asian_fw_table.h +125 -0
  136. data/ext/pg_query/include/datatype/timestamp.h +40 -1
  137. data/ext/pg_query/include/executor/execdesc.h +1 -1
  138. data/ext/pg_query/include/executor/executor.h +65 -22
  139. data/ext/pg_query/include/executor/functions.h +17 -3
  140. data/ext/pg_query/include/executor/instrument.h +33 -16
  141. data/ext/pg_query/include/executor/spi.h +41 -3
  142. data/ext/pg_query/include/executor/tablefunc.h +1 -1
  143. data/ext/pg_query/include/executor/tuptable.h +1 -1
  144. data/ext/pg_query/include/fmgr.h +13 -7
  145. data/ext/pg_query/include/funcapi.h +16 -4
  146. data/ext/pg_query/include/getaddrinfo.h +1 -1
  147. data/ext/pg_query/include/jit/jit.h +11 -11
  148. data/ext/pg_query/include/kwlist_d.h +517 -494
  149. data/ext/pg_query/include/lib/dshash.h +112 -0
  150. data/ext/pg_query/include/lib/ilist.h +20 -1
  151. data/ext/pg_query/include/lib/pairingheap.h +1 -1
  152. data/ext/pg_query/include/lib/simplehash.h +150 -25
  153. data/ext/pg_query/include/lib/sort_template.h +432 -0
  154. data/ext/pg_query/include/lib/stringinfo.h +1 -1
  155. data/ext/pg_query/include/libpq/auth.h +6 -4
  156. data/ext/pg_query/include/libpq/crypt.h +5 -4
  157. data/ext/pg_query/include/libpq/hba.h +43 -4
  158. data/ext/pg_query/include/libpq/libpq-be.h +23 -6
  159. data/ext/pg_query/include/libpq/libpq.h +31 -20
  160. data/ext/pg_query/include/libpq/pqcomm.h +17 -31
  161. data/ext/pg_query/include/libpq/pqformat.h +1 -1
  162. data/ext/pg_query/include/libpq/pqsignal.h +4 -4
  163. data/ext/pg_query/include/mb/pg_wchar.h +106 -23
  164. data/ext/pg_query/include/mb/stringinfo_mb.h +1 -1
  165. data/ext/pg_query/include/miscadmin.h +71 -52
  166. data/ext/pg_query/include/nodes/bitmapset.h +1 -1
  167. data/ext/pg_query/include/nodes/execnodes.h +272 -80
  168. data/ext/pg_query/include/nodes/extensible.h +4 -2
  169. data/ext/pg_query/include/nodes/lockoptions.h +1 -1
  170. data/ext/pg_query/include/nodes/makefuncs.h +7 -6
  171. data/ext/pg_query/include/nodes/memnodes.h +5 -3
  172. data/ext/pg_query/include/nodes/nodeFuncs.h +1 -1
  173. data/ext/pg_query/include/nodes/nodes.h +30 -11
  174. data/ext/pg_query/include/nodes/params.h +1 -1
  175. data/ext/pg_query/include/nodes/parsenodes.h +327 -94
  176. data/ext/pg_query/include/nodes/pathnodes.h +245 -67
  177. data/ext/pg_query/include/nodes/pg_list.h +75 -68
  178. data/ext/pg_query/include/nodes/plannodes.h +128 -30
  179. data/ext/pg_query/include/nodes/primnodes.h +99 -47
  180. data/ext/pg_query/include/nodes/print.h +1 -1
  181. data/ext/pg_query/include/nodes/tidbitmap.h +1 -1
  182. data/ext/pg_query/include/nodes/value.h +58 -39
  183. data/ext/pg_query/include/optimizer/cost.h +9 -2
  184. data/ext/pg_query/include/optimizer/geqo.h +9 -7
  185. data/ext/pg_query/include/optimizer/geqo_gene.h +1 -1
  186. data/ext/pg_query/include/optimizer/optimizer.h +25 -22
  187. data/ext/pg_query/include/optimizer/paths.h +6 -6
  188. data/ext/pg_query/include/optimizer/planmain.h +15 -14
  189. data/ext/pg_query/include/parser/analyze.h +19 -5
  190. data/ext/pg_query/include/parser/gram.h +947 -913
  191. data/ext/pg_query/include/parser/gramparse.h +1 -1
  192. data/ext/pg_query/include/parser/kwlist.h +463 -453
  193. data/ext/pg_query/include/parser/parse_agg.h +2 -7
  194. data/ext/pg_query/include/parser/parse_coerce.h +4 -1
  195. data/ext/pg_query/include/parser/parse_expr.h +2 -3
  196. data/ext/pg_query/include/parser/parse_func.h +2 -1
  197. data/ext/pg_query/include/parser/parse_node.h +21 -9
  198. data/ext/pg_query/include/parser/parse_oper.h +1 -3
  199. data/ext/pg_query/include/parser/parse_relation.h +5 -4
  200. data/ext/pg_query/include/parser/parse_type.h +1 -1
  201. data/ext/pg_query/include/parser/parser.h +31 -4
  202. data/ext/pg_query/include/parser/parsetree.h +1 -1
  203. data/ext/pg_query/include/parser/scanner.h +1 -1
  204. data/ext/pg_query/include/parser/scansup.h +2 -5
  205. data/ext/pg_query/include/partitioning/partdefs.h +1 -1
  206. data/ext/pg_query/include/pg_config.h +94 -46
  207. data/ext/pg_query/include/pg_config_manual.h +74 -21
  208. data/ext/pg_query/include/pg_getopt.h +6 -6
  209. data/ext/pg_query/include/pg_query.h +5 -4
  210. data/ext/pg_query/include/pg_query_enum_defs.c +358 -241
  211. data/ext/pg_query/include/pg_query_fingerprint_conds.c +44 -7
  212. data/ext/pg_query/include/pg_query_fingerprint_defs.c +1220 -422
  213. data/ext/pg_query/include/pg_query_outfuncs_conds.c +43 -13
  214. data/ext/pg_query/include/pg_query_outfuncs_defs.c +152 -26
  215. data/ext/pg_query/include/pg_query_readfuncs_conds.c +11 -2
  216. data/ext/pg_query/include/pg_query_readfuncs_defs.c +174 -30
  217. data/ext/pg_query/include/pg_trace.h +1 -1
  218. data/ext/pg_query/include/pgstat.h +449 -1237
  219. data/ext/pg_query/include/pgtime.h +14 -4
  220. data/ext/pg_query/include/pl_gram.h +126 -128
  221. data/ext/pg_query/include/pl_reserved_kwlist.h +1 -1
  222. data/ext/pg_query/include/pl_reserved_kwlist_d.h +10 -10
  223. data/ext/pg_query/include/pl_unreserved_kwlist.h +2 -3
  224. data/ext/pg_query/include/pl_unreserved_kwlist_d.h +54 -56
  225. data/ext/pg_query/include/plerrcodes.h +9 -1
  226. data/ext/pg_query/include/plpgsql.h +52 -54
  227. data/ext/pg_query/include/port/atomics/arch-arm.h +7 -1
  228. data/ext/pg_query/include/port/atomics/arch-ppc.h +1 -1
  229. data/ext/pg_query/include/port/atomics/arch-x86.h +1 -1
  230. data/ext/pg_query/include/port/atomics/fallback.h +1 -1
  231. data/ext/pg_query/include/port/atomics/generic-gcc.h +3 -3
  232. data/ext/pg_query/include/port/atomics/generic.h +1 -1
  233. data/ext/pg_query/include/port/atomics.h +1 -1
  234. data/ext/pg_query/include/port/pg_bitutils.h +88 -12
  235. data/ext/pg_query/include/port/pg_bswap.h +1 -1
  236. data/ext/pg_query/include/port/pg_crc32c.h +1 -1
  237. data/ext/pg_query/include/port.h +72 -43
  238. data/ext/pg_query/include/portability/instr_time.h +1 -1
  239. data/ext/pg_query/include/postgres.h +60 -16
  240. data/ext/pg_query/include/postmaster/autovacuum.h +17 -17
  241. data/ext/pg_query/include/postmaster/auxprocess.h +20 -0
  242. data/ext/pg_query/include/postmaster/bgworker.h +2 -1
  243. data/ext/pg_query/include/postmaster/bgworker_internals.h +2 -2
  244. data/ext/pg_query/include/postmaster/bgwriter.h +5 -5
  245. data/ext/pg_query/include/postmaster/fork_process.h +1 -1
  246. data/ext/pg_query/include/postmaster/interrupt.h +1 -1
  247. data/ext/pg_query/include/postmaster/pgarch.h +42 -8
  248. data/ext/pg_query/include/postmaster/postmaster.h +18 -17
  249. data/ext/pg_query/include/postmaster/startup.h +39 -0
  250. data/ext/pg_query/include/postmaster/syslogger.h +15 -10
  251. data/ext/pg_query/include/postmaster/walwriter.h +3 -3
  252. data/ext/pg_query/include/protobuf/pg_query.pb-c.h +1422 -916
  253. data/ext/pg_query/include/protobuf/pg_query.pb.h +43678 -32769
  254. data/ext/pg_query/include/regex/regex.h +18 -16
  255. data/ext/pg_query/include/replication/logicallauncher.h +3 -5
  256. data/ext/pg_query/include/replication/logicalproto.h +161 -17
  257. data/ext/pg_query/include/replication/logicalworker.h +1 -1
  258. data/ext/pg_query/include/replication/origin.h +7 -7
  259. data/ext/pg_query/include/replication/reorderbuffer.h +262 -44
  260. data/ext/pg_query/include/replication/slot.h +23 -12
  261. data/ext/pg_query/include/replication/syncrep.h +5 -5
  262. data/ext/pg_query/include/replication/walreceiver.h +145 -13
  263. data/ext/pg_query/include/replication/walsender.h +8 -8
  264. data/ext/pg_query/include/rewrite/prs2lock.h +1 -1
  265. data/ext/pg_query/include/rewrite/rewriteHandler.h +1 -3
  266. data/ext/pg_query/include/rewrite/rewriteManip.h +1 -1
  267. data/ext/pg_query/include/rewrite/rewriteSupport.h +1 -1
  268. data/ext/pg_query/include/storage/backendid.h +3 -3
  269. data/ext/pg_query/include/storage/block.h +4 -10
  270. data/ext/pg_query/include/storage/buf.h +1 -1
  271. data/ext/pg_query/include/storage/bufmgr.h +19 -14
  272. data/ext/pg_query/include/storage/bufpage.h +6 -8
  273. data/ext/pg_query/include/storage/condition_variable.h +13 -2
  274. data/ext/pg_query/include/storage/dsm.h +4 -1
  275. data/ext/pg_query/include/storage/dsm_impl.h +3 -2
  276. data/ext/pg_query/include/storage/fd.h +33 -3
  277. data/ext/pg_query/include/storage/fileset.h +40 -0
  278. data/ext/pg_query/include/storage/ipc.h +4 -1
  279. data/ext/pg_query/include/storage/item.h +1 -1
  280. data/ext/pg_query/include/storage/itemid.h +1 -1
  281. data/ext/pg_query/include/storage/itemptr.h +3 -1
  282. data/ext/pg_query/include/storage/large_object.h +2 -2
  283. data/ext/pg_query/include/storage/latch.h +9 -13
  284. data/ext/pg_query/include/storage/lmgr.h +2 -1
  285. data/ext/pg_query/include/storage/lock.h +17 -13
  286. data/ext/pg_query/include/storage/lockdefs.h +2 -2
  287. data/ext/pg_query/include/storage/lwlock.h +6 -32
  288. data/ext/pg_query/include/storage/lwlocknames.h +0 -1
  289. data/ext/pg_query/include/storage/off.h +1 -1
  290. data/ext/pg_query/include/storage/pg_sema.h +1 -1
  291. data/ext/pg_query/include/storage/pg_shmem.h +9 -7
  292. data/ext/pg_query/include/storage/pmsignal.h +15 -4
  293. data/ext/pg_query/include/storage/predicate.h +4 -4
  294. data/ext/pg_query/include/storage/proc.h +183 -55
  295. data/ext/pg_query/include/storage/procarray.h +98 -0
  296. data/ext/pg_query/include/storage/proclist_types.h +1 -1
  297. data/ext/pg_query/include/storage/procsignal.h +3 -7
  298. data/ext/pg_query/include/storage/relfilenode.h +1 -1
  299. data/ext/pg_query/include/storage/s_lock.h +67 -4
  300. data/ext/pg_query/include/storage/sharedfileset.h +3 -11
  301. data/ext/pg_query/include/storage/shm_mq.h +5 -4
  302. data/ext/pg_query/include/storage/shm_toc.h +1 -1
  303. data/ext/pg_query/include/storage/shmem.h +1 -1
  304. data/ext/pg_query/include/storage/sinval.h +3 -3
  305. data/ext/pg_query/include/storage/sinvaladt.h +1 -1
  306. data/ext/pg_query/include/storage/smgr.h +10 -8
  307. data/ext/pg_query/include/storage/spin.h +2 -2
  308. data/ext/pg_query/include/storage/standby.h +13 -6
  309. data/ext/pg_query/include/storage/standbydefs.h +2 -2
  310. data/ext/pg_query/include/storage/sync.h +7 -3
  311. data/ext/pg_query/include/tcop/cmdtag.h +1 -1
  312. data/ext/pg_query/include/tcop/cmdtaglist.h +3 -2
  313. data/ext/pg_query/include/tcop/deparse_utility.h +1 -1
  314. data/ext/pg_query/include/tcop/dest.h +1 -1
  315. data/ext/pg_query/include/tcop/fastpath.h +1 -2
  316. data/ext/pg_query/include/tcop/pquery.h +7 -1
  317. data/ext/pg_query/include/tcop/tcopprot.h +19 -11
  318. data/ext/pg_query/include/tcop/utility.h +7 -3
  319. data/ext/pg_query/include/tsearch/ts_cache.h +2 -2
  320. data/ext/pg_query/include/utils/acl.h +24 -3
  321. data/ext/pg_query/include/utils/aclchk_internal.h +1 -1
  322. data/ext/pg_query/include/utils/array.h +7 -2
  323. data/ext/pg_query/include/utils/backend_progress.h +44 -0
  324. data/ext/pg_query/include/utils/backend_status.h +321 -0
  325. data/ext/pg_query/include/utils/builtins.h +11 -11
  326. data/ext/pg_query/include/utils/bytea.h +3 -2
  327. data/ext/pg_query/include/utils/catcache.h +1 -1
  328. data/ext/pg_query/include/utils/date.h +1 -1
  329. data/ext/pg_query/include/utils/datetime.h +8 -7
  330. data/ext/pg_query/include/utils/datum.h +9 -1
  331. data/ext/pg_query/include/utils/dsa.h +1 -1
  332. data/ext/pg_query/include/utils/dynahash.h +4 -3
  333. data/ext/pg_query/include/utils/elog.h +52 -21
  334. data/ext/pg_query/include/utils/errcodes.h +2 -0
  335. data/ext/pg_query/include/utils/expandeddatum.h +1 -1
  336. data/ext/pg_query/include/utils/expandedrecord.h +1 -1
  337. data/ext/pg_query/include/utils/float.h +7 -7
  338. data/ext/pg_query/include/utils/fmgroids.h +1300 -696
  339. data/ext/pg_query/include/utils/fmgrprotos.h +199 -16
  340. data/ext/pg_query/include/utils/fmgrtab.h +6 -5
  341. data/ext/pg_query/include/utils/guc.h +69 -43
  342. data/ext/pg_query/include/utils/guc_tables.h +23 -19
  343. data/ext/pg_query/include/utils/hsearch.h +15 -11
  344. data/ext/pg_query/include/utils/inval.h +5 -1
  345. data/ext/pg_query/include/utils/lsyscache.h +11 -1
  346. data/ext/pg_query/include/utils/memdebug.h +1 -1
  347. data/ext/pg_query/include/utils/memutils.h +8 -3
  348. data/ext/pg_query/include/utils/numeric.h +19 -5
  349. data/ext/pg_query/include/utils/palloc.h +25 -3
  350. data/ext/pg_query/include/utils/partcache.h +1 -1
  351. data/ext/pg_query/include/utils/pg_locale.h +17 -9
  352. data/ext/pg_query/include/utils/pg_lsn.h +1 -1
  353. data/ext/pg_query/include/utils/pgstat_internal.h +784 -0
  354. data/ext/pg_query/include/utils/pidfile.h +1 -1
  355. data/ext/pg_query/include/utils/plancache.h +6 -5
  356. data/ext/pg_query/include/utils/portal.h +12 -1
  357. data/ext/pg_query/include/utils/ps_status.h +1 -1
  358. data/ext/pg_query/include/utils/queryenvironment.h +1 -1
  359. data/ext/pg_query/include/utils/queryjumble.h +88 -0
  360. data/ext/pg_query/include/utils/regproc.h +14 -3
  361. data/ext/pg_query/include/utils/rel.h +71 -20
  362. data/ext/pg_query/include/utils/relcache.h +9 -7
  363. data/ext/pg_query/include/utils/reltrigger.h +1 -1
  364. data/ext/pg_query/include/utils/resowner.h +1 -1
  365. data/ext/pg_query/include/utils/rls.h +2 -2
  366. data/ext/pg_query/include/utils/ruleutils.h +4 -1
  367. data/ext/pg_query/include/utils/sharedtuplestore.h +1 -1
  368. data/ext/pg_query/include/utils/snapmgr.h +35 -14
  369. data/ext/pg_query/include/utils/snapshot.h +14 -1
  370. data/ext/pg_query/include/utils/sortsupport.h +117 -2
  371. data/ext/pg_query/include/utils/syscache.h +6 -1
  372. data/ext/pg_query/include/utils/timeout.h +11 -4
  373. data/ext/pg_query/include/utils/timestamp.h +6 -5
  374. data/ext/pg_query/include/utils/tuplesort.h +25 -11
  375. data/ext/pg_query/include/utils/tuplestore.h +2 -2
  376. data/ext/pg_query/include/utils/typcache.h +24 -17
  377. data/ext/pg_query/include/utils/tzparser.h +1 -1
  378. data/ext/pg_query/include/utils/varlena.h +5 -3
  379. data/ext/pg_query/include/utils/wait_event.h +289 -0
  380. data/ext/pg_query/include/utils/xml.h +4 -4
  381. data/ext/pg_query/pg_query.pb-c.c +4318 -2307
  382. data/ext/pg_query/pg_query_deparse.c +1114 -381
  383. data/ext/pg_query/pg_query_fingerprint.c +46 -10
  384. data/ext/pg_query/pg_query_fingerprint.h +3 -1
  385. data/ext/pg_query/pg_query_json_plpgsql.c +55 -12
  386. data/ext/pg_query/pg_query_normalize.c +163 -20
  387. data/ext/pg_query/pg_query_outfuncs.h +1 -0
  388. data/ext/pg_query/pg_query_outfuncs_json.c +65 -16
  389. data/ext/pg_query/pg_query_outfuncs_protobuf.c +70 -10
  390. data/ext/pg_query/pg_query_parse.c +1 -1
  391. data/ext/pg_query/pg_query_parse_plpgsql.c +79 -16
  392. data/ext/pg_query/pg_query_readfuncs_protobuf.c +42 -8
  393. data/ext/pg_query/pg_query_ruby.c +1 -1
  394. data/ext/pg_query/pg_query_scan.c +2 -1
  395. data/ext/pg_query/pg_query_split.c +3 -2
  396. data/ext/pg_query/src_backend_catalog_namespace.c +21 -9
  397. data/ext/pg_query/src_backend_catalog_pg_proc.c +4 -1
  398. data/ext/pg_query/src_backend_commands_define.c +11 -1
  399. data/ext/pg_query/src_backend_nodes_bitmapset.c +3 -1
  400. data/ext/pg_query/src_backend_nodes_copyfuncs.c +424 -109
  401. data/ext/pg_query/src_backend_nodes_equalfuncs.c +291 -46
  402. data/ext/pg_query/src_backend_nodes_extensible.c +1 -1
  403. data/ext/pg_query/src_backend_nodes_list.c +86 -11
  404. data/ext/pg_query/src_backend_nodes_makefuncs.c +5 -4
  405. data/ext/pg_query/src_backend_nodes_nodeFuncs.c +55 -12
  406. data/ext/pg_query/src_backend_nodes_value.c +28 -19
  407. data/ext/pg_query/src_backend_parser_gram.c +33890 -31262
  408. data/ext/pg_query/src_backend_parser_parser.c +26 -7
  409. data/ext/pg_query/src_backend_parser_scan.c +644 -441
  410. data/ext/pg_query/src_backend_parser_scansup.c +4 -28
  411. data/ext/pg_query/src_backend_postmaster_postmaster.c +77 -106
  412. data/ext/pg_query/src_backend_storage_ipc_ipc.c +13 -4
  413. data/ext/pg_query/src_backend_storage_lmgr_s_lock.c +5 -4
  414. data/ext/pg_query/src_backend_tcop_postgres.c +73 -24
  415. data/ext/pg_query/src_backend_utils_activity_pgstat_database.c +140 -0
  416. data/ext/pg_query/src_backend_utils_adt_datum.c +13 -1
  417. data/ext/pg_query/src_backend_utils_adt_expandeddatum.c +1 -1
  418. data/ext/pg_query/src_backend_utils_adt_format_type.c +6 -2
  419. data/ext/pg_query/src_backend_utils_adt_ruleutils.c +109 -15
  420. data/ext/pg_query/src_backend_utils_error_assert.c +16 -14
  421. data/ext/pg_query/src_backend_utils_error_elog.c +172 -99
  422. data/ext/pg_query/src_backend_utils_fmgr_fmgr.c +12 -17
  423. data/ext/pg_query/src_backend_utils_hash_dynahash.c +40 -10
  424. data/ext/pg_query/src_backend_utils_init_globals.c +5 -5
  425. data/ext/pg_query/src_backend_utils_mb_mbutils.c +55 -66
  426. data/ext/pg_query/src_backend_utils_misc_guc.c +207 -45
  427. data/ext/pg_query/src_backend_utils_mmgr_aset.c +7 -5
  428. data/ext/pg_query/src_backend_utils_mmgr_mcxt.c +123 -35
  429. data/ext/pg_query/src_common_encnames.c +1 -1
  430. data/ext/pg_query/src_common_hashfn.c +3 -3
  431. data/ext/pg_query/src_common_keywords.c +15 -2
  432. data/ext/pg_query/src_common_kwlist_d.h +517 -494
  433. data/ext/pg_query/src_common_kwlookup.c +1 -1
  434. data/ext/pg_query/src_common_pg_prng.c +152 -0
  435. data/ext/pg_query/src_common_psprintf.c +1 -1
  436. data/ext/pg_query/src_common_string.c +7 -1
  437. data/ext/pg_query/src_common_stringinfo.c +1 -1
  438. data/ext/pg_query/src_common_wchar.c +712 -109
  439. data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +49 -22
  440. data/ext/pg_query/src_pl_plpgsql_src_pl_funcs.c +1 -18
  441. data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1235 -1261
  442. data/ext/pg_query/src_pl_plpgsql_src_pl_handler.c +1 -1
  443. data/ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h +10 -10
  444. data/ext/pg_query/src_pl_plpgsql_src_pl_scanner.c +2 -2
  445. data/ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h +54 -56
  446. data/ext/pg_query/src_port_pg_bitutils.c +41 -52
  447. data/ext/pg_query/src_port_pgsleep.c +1 -1
  448. data/ext/pg_query/src_port_pgstrcasecmp.c +1 -1
  449. data/ext/pg_query/src_port_qsort.c +12 -224
  450. data/ext/pg_query/src_port_snprintf.c +46 -20
  451. data/ext/pg_query/src_port_strerror.c +9 -19
  452. data/ext/pg_query/src_port_strnlen.c +1 -1
  453. data/lib/pg_query/deparse.rb +7 -1
  454. data/lib/pg_query/filter_columns.rb +6 -4
  455. data/lib/pg_query/fingerprint.rb +18 -3
  456. data/lib/pg_query/node.rb +2 -2
  457. data/lib/pg_query/param_refs.rb +1 -1
  458. data/lib/pg_query/parse.rb +87 -51
  459. data/lib/pg_query/pg_query_pb.rb +1109 -942
  460. data/lib/pg_query/treewalker.rb +6 -0
  461. data/lib/pg_query/truncate.rb +54 -8
  462. data/lib/pg_query/version.rb +1 -1
  463. metadata +29 -18
  464. data/ext/pg_query/include/access/xloginsert.h +0 -64
  465. data/ext/pg_query/include/bootstrap/bootstrap.h +0 -62
  466. data/ext/pg_query/include/parser/parse_clause.h +0 -54
  467. data/ext/pg_query/include/parser/parse_collate.h +0 -27
  468. data/ext/pg_query/include/parser/parse_target.h +0 -46
  469. data/ext/pg_query/src_backend_libpq_pqcomm.c +0 -651
  470. data/ext/pg_query/src_backend_parser_parse_expr.c +0 -313
  471. data/ext/pg_query/src_port_erand48.c +0 -127
  472. data/ext/pg_query/src_port_random.c +0 -31
@@ -1,5 +1,11 @@
1
1
  module PgQuery
2
2
  class ParserResult
3
+ def walk!
4
+ treewalker!(@tree) do |parent_node, parent_field, node, location|
5
+ yield(parent_node, parent_field, node, location)
6
+ end
7
+ end
8
+
3
9
  private
4
10
 
5
11
  def treewalker!(tree) # rubocop:disable Metrics/CyclomaticComplexity
@@ -21,7 +21,7 @@ module PgQuery
21
21
  next if truncation.length < 3
22
22
 
23
23
  find_tree_location(tree, truncation.location) do |node, _k|
24
- dummy_column_ref = PgQuery::Node.new(column_ref: PgQuery::ColumnRef.new(fields: [PgQuery::Node.new(string: PgQuery::String.new(str: '…'))]))
24
+ dummy_column_ref = PgQuery::Node.new(column_ref: PgQuery::ColumnRef.new(fields: [PgQuery::Node.new(string: PgQuery::String.new(sval: '…'))]))
25
25
  case truncation.node_type
26
26
  when :target_list
27
27
  res_target_name = '…' if node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::OnConflictClause)
@@ -32,6 +32,12 @@ module PgQuery
32
32
  )
33
33
  when :where_clause
34
34
  node.where_clause = dummy_column_ref
35
+ when :values_lists
36
+ node.values_lists.replace(
37
+ [
38
+ PgQuery::Node.new(list: PgQuery::List.new(items: [dummy_column_ref]))
39
+ ]
40
+ )
35
41
  when :ctequery
36
42
  node.ctequery = PgQuery::Node.new(select_stmt: PgQuery::SelectStmt.new(where_clause: dummy_column_ref, op: :SETOP_NONE))
37
43
  when :cols
@@ -58,7 +64,11 @@ module PgQuery
58
64
  case k
59
65
  when :target_list
60
66
  next unless node.is_a?(PgQuery::SelectStmt) || node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::OnConflictClause)
61
- length = PgQuery.deparse_stmt(PgQuery::SelectStmt.new(k => v.to_a, op: :SETOP_NONE)).size - 7 # 'SELECT '.size
67
+ length = if node.is_a?(PgQuery::SelectStmt)
68
+ select_target_list_len(v)
69
+ else # UpdateStmt / OnConflictClause
70
+ update_target_list_len(v)
71
+ end
62
72
  truncations << PossibleTruncation.new(location, :target_list, length, true)
63
73
  when :where_clause
64
74
  next unless node.is_a?(PgQuery::SelectStmt) || node.is_a?(PgQuery::UpdateStmt) || node.is_a?(PgQuery::DeleteStmt) ||
@@ -67,23 +77,59 @@ module PgQuery
67
77
 
68
78
  length = PgQuery.deparse_expr(v).size
69
79
  truncations << PossibleTruncation.new(location, :where_clause, length, false)
80
+ when :values_lists
81
+ length = select_values_lists_len(v)
82
+ truncations << PossibleTruncation.new(location, :values_lists, length, false)
70
83
  when :ctequery
71
84
  next unless node.is_a?(PgQuery::CommonTableExpr)
72
85
  length = PgQuery.deparse_stmt(v[v.node.to_s]).size
73
86
  truncations << PossibleTruncation.new(location, :ctequery, length, false)
74
87
  when :cols
75
88
  next unless node.is_a?(PgQuery::InsertStmt)
76
- length = PgQuery.deparse_stmt(
77
- PgQuery::InsertStmt.new(
78
- relation: PgQuery::RangeVar.new(relname: 'x', inh: true),
79
- cols: v.to_a
80
- )
81
- ).size - 31 # "INSERT INTO x () DEFAULT VALUES".size
89
+ length = cols_len(v)
82
90
  truncations << PossibleTruncation.new(location, :cols, length, true)
83
91
  end
84
92
  end
85
93
 
86
94
  truncations
87
95
  end
96
+
97
+ def select_target_list_len(target_list)
98
+ deparsed_len = PgQuery.deparse_stmt(
99
+ PgQuery::SelectStmt.new(
100
+ target_list: target_list.to_a, op: :SETOP_NONE
101
+ )
102
+ ).size
103
+ deparsed_len - 7 # 'SELECT '.size
104
+ end
105
+
106
+ def select_values_lists_len(values_lists)
107
+ deparsed_len = PgQuery.deparse_stmt(
108
+ PgQuery::SelectStmt.new(
109
+ values_lists: values_lists.to_a, op: :SETOP_NONE
110
+ )
111
+ ).size
112
+ deparsed_len - 7 # 'SELECT '.size
113
+ end
114
+
115
+ def update_target_list_len(target_list)
116
+ deparsed_len = PgQuery.deparse_stmt(
117
+ PgQuery::UpdateStmt.new(
118
+ target_list: target_list.to_a,
119
+ relation: PgQuery::RangeVar.new(relname: 'x', inh: true)
120
+ )
121
+ ).size
122
+ deparsed_len - 13 # 'UPDATE x SET '.size
123
+ end
124
+
125
+ def cols_len(cols)
126
+ deparsed_len = PgQuery.deparse_stmt(
127
+ PgQuery::InsertStmt.new(
128
+ relation: PgQuery::RangeVar.new(relname: 'x', inh: true),
129
+ cols: cols.to_a
130
+ )
131
+ ).size
132
+ deparsed_len - 31 # "INSERT INTO x () DEFAULT VALUES".size
133
+ end
88
134
  end
89
135
  end
@@ -1,3 +1,3 @@
1
1
  module PgQuery
2
- VERSION = '2.1.0'.freeze
2
+ VERSION = '4.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Fittl
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-04 00:00:00.000000000 Z
11
+ date: 2023-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 3.17.1
75
+ version: 3.22.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 3.17.1
82
+ version: 3.22.3
83
83
  description: Parses SQL queries using a copy of the PostgreSQL server query parser
84
84
  email: lukas@fittl.com
85
85
  executables: []
@@ -118,6 +118,7 @@ files:
118
118
  - ext/pg_query/include/access/sysattr.h
119
119
  - ext/pg_query/include/access/table.h
120
120
  - ext/pg_query/include/access/tableam.h
121
+ - ext/pg_query/include/access/toast_compression.h
121
122
  - ext/pg_query/include/access/transam.h
122
123
  - ext/pg_query/include/access/tupconvert.h
123
124
  - ext/pg_query/include/access/tupdesc.h
@@ -127,10 +128,10 @@ files:
127
128
  - ext/pg_query/include/access/xlog.h
128
129
  - ext/pg_query/include/access/xlog_internal.h
129
130
  - ext/pg_query/include/access/xlogdefs.h
130
- - ext/pg_query/include/access/xloginsert.h
131
+ - ext/pg_query/include/access/xlogprefetcher.h
131
132
  - ext/pg_query/include/access/xlogreader.h
132
133
  - ext/pg_query/include/access/xlogrecord.h
133
- - ext/pg_query/include/bootstrap/bootstrap.h
134
+ - ext/pg_query/include/access/xlogrecovery.h
134
135
  - ext/pg_query/include/c.h
135
136
  - ext/pg_query/include/catalog/catalog.h
136
137
  - ext/pg_query/include/catalog/catversion.h
@@ -174,6 +175,8 @@ files:
174
175
  - ext/pg_query/include/catalog/pg_operator_d.h
175
176
  - ext/pg_query/include/catalog/pg_opfamily.h
176
177
  - ext/pg_query/include/catalog/pg_opfamily_d.h
178
+ - ext/pg_query/include/catalog/pg_parameter_acl.h
179
+ - ext/pg_query/include/catalog/pg_parameter_acl_d.h
177
180
  - ext/pg_query/include/catalog/pg_partitioned_table.h
178
181
  - ext/pg_query/include/catalog/pg_partitioned_table_d.h
179
182
  - ext/pg_query/include/catalog/pg_proc.h
@@ -217,9 +220,11 @@ files:
217
220
  - ext/pg_query/include/common/ip.h
218
221
  - ext/pg_query/include/common/keywords.h
219
222
  - ext/pg_query/include/common/kwlookup.h
223
+ - ext/pg_query/include/common/pg_prng.h
220
224
  - ext/pg_query/include/common/relpath.h
221
225
  - ext/pg_query/include/common/string.h
222
226
  - ext/pg_query/include/common/unicode_combining_table.h
227
+ - ext/pg_query/include/common/unicode_east_asian_fw_table.h
223
228
  - ext/pg_query/include/datatype/timestamp.h
224
229
  - ext/pg_query/include/executor/execdesc.h
225
230
  - ext/pg_query/include/executor/executor.h
@@ -233,9 +238,11 @@ files:
233
238
  - ext/pg_query/include/getaddrinfo.h
234
239
  - ext/pg_query/include/jit/jit.h
235
240
  - ext/pg_query/include/kwlist_d.h
241
+ - ext/pg_query/include/lib/dshash.h
236
242
  - ext/pg_query/include/lib/ilist.h
237
243
  - ext/pg_query/include/lib/pairingheap.h
238
244
  - ext/pg_query/include/lib/simplehash.h
245
+ - ext/pg_query/include/lib/sort_template.h
239
246
  - ext/pg_query/include/lib/stringinfo.h
240
247
  - ext/pg_query/include/libpq/auth.h
241
248
  - ext/pg_query/include/libpq/crypt.h
@@ -276,15 +283,12 @@ files:
276
283
  - ext/pg_query/include/parser/gramparse.h
277
284
  - ext/pg_query/include/parser/kwlist.h
278
285
  - ext/pg_query/include/parser/parse_agg.h
279
- - ext/pg_query/include/parser/parse_clause.h
280
286
  - ext/pg_query/include/parser/parse_coerce.h
281
- - ext/pg_query/include/parser/parse_collate.h
282
287
  - ext/pg_query/include/parser/parse_expr.h
283
288
  - ext/pg_query/include/parser/parse_func.h
284
289
  - ext/pg_query/include/parser/parse_node.h
285
290
  - ext/pg_query/include/parser/parse_oper.h
286
291
  - ext/pg_query/include/parser/parse_relation.h
287
- - ext/pg_query/include/parser/parse_target.h
288
292
  - ext/pg_query/include/parser/parse_type.h
289
293
  - ext/pg_query/include/parser/parser.h
290
294
  - ext/pg_query/include/parser/parsetree.h
@@ -330,6 +334,7 @@ files:
330
334
  - ext/pg_query/include/postgres.h
331
335
  - ext/pg_query/include/postgres_ext.h
332
336
  - ext/pg_query/include/postmaster/autovacuum.h
337
+ - ext/pg_query/include/postmaster/auxprocess.h
333
338
  - ext/pg_query/include/postmaster/bgworker.h
334
339
  - ext/pg_query/include/postmaster/bgworker_internals.h
335
340
  - ext/pg_query/include/postmaster/bgwriter.h
@@ -337,6 +342,7 @@ files:
337
342
  - ext/pg_query/include/postmaster/interrupt.h
338
343
  - ext/pg_query/include/postmaster/pgarch.h
339
344
  - ext/pg_query/include/postmaster/postmaster.h
345
+ - ext/pg_query/include/postmaster/startup.h
340
346
  - ext/pg_query/include/postmaster/syslogger.h
341
347
  - ext/pg_query/include/postmaster/walwriter.h
342
348
  - ext/pg_query/include/protobuf-c.h
@@ -366,6 +372,7 @@ files:
366
372
  - ext/pg_query/include/storage/dsm.h
367
373
  - ext/pg_query/include/storage/dsm_impl.h
368
374
  - ext/pg_query/include/storage/fd.h
375
+ - ext/pg_query/include/storage/fileset.h
369
376
  - ext/pg_query/include/storage/ipc.h
370
377
  - ext/pg_query/include/storage/item.h
371
378
  - ext/pg_query/include/storage/itemid.h
@@ -383,6 +390,7 @@ files:
383
390
  - ext/pg_query/include/storage/pmsignal.h
384
391
  - ext/pg_query/include/storage/predicate.h
385
392
  - ext/pg_query/include/storage/proc.h
393
+ - ext/pg_query/include/storage/procarray.h
386
394
  - ext/pg_query/include/storage/proclist_types.h
387
395
  - ext/pg_query/include/storage/procsignal.h
388
396
  - ext/pg_query/include/storage/relfilenode.h
@@ -410,6 +418,8 @@ files:
410
418
  - ext/pg_query/include/utils/acl.h
411
419
  - ext/pg_query/include/utils/aclchk_internal.h
412
420
  - ext/pg_query/include/utils/array.h
421
+ - ext/pg_query/include/utils/backend_progress.h
422
+ - ext/pg_query/include/utils/backend_status.h
413
423
  - ext/pg_query/include/utils/builtins.h
414
424
  - ext/pg_query/include/utils/bytea.h
415
425
  - ext/pg_query/include/utils/catcache.h
@@ -438,12 +448,14 @@ files:
438
448
  - ext/pg_query/include/utils/partcache.h
439
449
  - ext/pg_query/include/utils/pg_locale.h
440
450
  - ext/pg_query/include/utils/pg_lsn.h
451
+ - ext/pg_query/include/utils/pgstat_internal.h
441
452
  - ext/pg_query/include/utils/pidfile.h
442
453
  - ext/pg_query/include/utils/plancache.h
443
454
  - ext/pg_query/include/utils/portal.h
444
455
  - ext/pg_query/include/utils/probes.h
445
456
  - ext/pg_query/include/utils/ps_status.h
446
457
  - ext/pg_query/include/utils/queryenvironment.h
458
+ - ext/pg_query/include/utils/queryjumble.h
447
459
  - ext/pg_query/include/utils/regproc.h
448
460
  - ext/pg_query/include/utils/rel.h
449
461
  - ext/pg_query/include/utils/relcache.h
@@ -463,6 +475,7 @@ files:
463
475
  - ext/pg_query/include/utils/typcache.h
464
476
  - ext/pg_query/include/utils/tzparser.h
465
477
  - ext/pg_query/include/utils/varlena.h
478
+ - ext/pg_query/include/utils/wait_event.h
466
479
  - ext/pg_query/include/utils/xml.h
467
480
  - ext/pg_query/include/xxhash.h
468
481
  - ext/pg_query/include/xxhash/xxhash.h
@@ -490,7 +503,6 @@ files:
490
503
  - ext/pg_query/src_backend_catalog_namespace.c
491
504
  - ext/pg_query/src_backend_catalog_pg_proc.c
492
505
  - ext/pg_query/src_backend_commands_define.c
493
- - ext/pg_query/src_backend_libpq_pqcomm.c
494
506
  - ext/pg_query/src_backend_nodes_bitmapset.c
495
507
  - ext/pg_query/src_backend_nodes_copyfuncs.c
496
508
  - ext/pg_query/src_backend_nodes_equalfuncs.c
@@ -500,7 +512,6 @@ files:
500
512
  - ext/pg_query/src_backend_nodes_nodeFuncs.c
501
513
  - ext/pg_query/src_backend_nodes_value.c
502
514
  - ext/pg_query/src_backend_parser_gram.c
503
- - ext/pg_query/src_backend_parser_parse_expr.c
504
515
  - ext/pg_query/src_backend_parser_parser.c
505
516
  - ext/pg_query/src_backend_parser_scan.c
506
517
  - ext/pg_query/src_backend_parser_scansup.c
@@ -508,6 +519,7 @@ files:
508
519
  - ext/pg_query/src_backend_storage_ipc_ipc.c
509
520
  - ext/pg_query/src_backend_storage_lmgr_s_lock.c
510
521
  - ext/pg_query/src_backend_tcop_postgres.c
522
+ - ext/pg_query/src_backend_utils_activity_pgstat_database.c
511
523
  - ext/pg_query/src_backend_utils_adt_datum.c
512
524
  - ext/pg_query/src_backend_utils_adt_expandeddatum.c
513
525
  - ext/pg_query/src_backend_utils_adt_format_type.c
@@ -526,6 +538,7 @@ files:
526
538
  - ext/pg_query/src_common_keywords.c
527
539
  - ext/pg_query/src_common_kwlist_d.h
528
540
  - ext/pg_query/src_common_kwlookup.c
541
+ - ext/pg_query/src_common_pg_prng.c
529
542
  - ext/pg_query/src_common_psprintf.c
530
543
  - ext/pg_query/src_common_string.c
531
544
  - ext/pg_query/src_common_stringinfo.c
@@ -537,12 +550,10 @@ files:
537
550
  - ext/pg_query/src_pl_plpgsql_src_pl_reserved_kwlist_d.h
538
551
  - ext/pg_query/src_pl_plpgsql_src_pl_scanner.c
539
552
  - ext/pg_query/src_pl_plpgsql_src_pl_unreserved_kwlist_d.h
540
- - ext/pg_query/src_port_erand48.c
541
553
  - ext/pg_query/src_port_pg_bitutils.c
542
554
  - ext/pg_query/src_port_pgsleep.c
543
555
  - ext/pg_query/src_port_pgstrcasecmp.c
544
556
  - ext/pg_query/src_port_qsort.c
545
- - ext/pg_query/src_port_random.c
546
557
  - ext/pg_query/src_port_snprintf.c
547
558
  - ext/pg_query/src_port_strerror.c
548
559
  - ext/pg_query/src_port_strnlen.c
@@ -561,11 +572,11 @@ files:
561
572
  - lib/pg_query/treewalker.rb
562
573
  - lib/pg_query/truncate.rb
563
574
  - lib/pg_query/version.rb
564
- homepage: http://github.com/pganalyze/pg_query
575
+ homepage: https://github.com/pganalyze/pg_query
565
576
  licenses:
566
577
  - BSD-3-Clause
567
578
  metadata: {}
568
- post_install_message:
579
+ post_install_message:
569
580
  rdoc_options:
570
581
  - "--main"
571
582
  - README.md
@@ -584,8 +595,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
584
595
  - !ruby/object:Gem::Version
585
596
  version: '0'
586
597
  requirements: []
587
- rubygems_version: 3.0.3
588
- signing_key:
598
+ rubygems_version: 3.1.6
599
+ signing_key:
589
600
  specification_version: 4
590
601
  summary: PostgreSQL query parsing and normalization library
591
602
  test_files: []
@@ -1,64 +0,0 @@
1
- /*
2
- * xloginsert.h
3
- *
4
- * Functions for generating WAL records
5
- *
6
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7
- * Portions Copyright (c) 1994, Regents of the University of California
8
- *
9
- * src/include/access/xloginsert.h
10
- */
11
- #ifndef XLOGINSERT_H
12
- #define XLOGINSERT_H
13
-
14
- #include "access/rmgr.h"
15
- #include "access/xlogdefs.h"
16
- #include "storage/block.h"
17
- #include "storage/buf.h"
18
- #include "storage/relfilenode.h"
19
- #include "utils/relcache.h"
20
-
21
- /*
22
- * The minimum size of the WAL construction working area. If you need to
23
- * register more than XLR_NORMAL_MAX_BLOCK_ID block references or have more
24
- * than XLR_NORMAL_RDATAS data chunks in a single WAL record, you must call
25
- * XLogEnsureRecordSpace() first to allocate more working memory.
26
- */
27
- #define XLR_NORMAL_MAX_BLOCK_ID 4
28
- #define XLR_NORMAL_RDATAS 20
29
-
30
- /* flags for XLogRegisterBuffer */
31
- #define REGBUF_FORCE_IMAGE 0x01 /* force a full-page image */
32
- #define REGBUF_NO_IMAGE 0x02 /* don't take a full-page image */
33
- #define REGBUF_WILL_INIT (0x04 | 0x02) /* page will be re-initialized at
34
- * replay (implies NO_IMAGE) */
35
- #define REGBUF_STANDARD 0x08 /* page follows "standard" page layout,
36
- * (data between pd_lower and pd_upper
37
- * will be skipped) */
38
- #define REGBUF_KEEP_DATA 0x10 /* include data even if a full-page image
39
- * is taken */
40
-
41
- /* prototypes for public functions in xloginsert.c: */
42
- extern void XLogBeginInsert(void);
43
- extern void XLogSetRecordFlags(uint8 flags);
44
- extern XLogRecPtr XLogInsert(RmgrId rmid, uint8 info);
45
- extern void XLogEnsureRecordSpace(int max_block_id, int ndatas);
46
- extern void XLogRegisterData(char *data, int len);
47
- extern void XLogRegisterBuffer(uint8 block_id, Buffer buffer, uint8 flags);
48
- extern void XLogRegisterBlock(uint8 block_id, RelFileNode *rnode,
49
- ForkNumber forknum, BlockNumber blknum, char *page,
50
- uint8 flags);
51
- extern void XLogRegisterBufData(uint8 block_id, char *data, int len);
52
- extern void XLogResetInsertion(void);
53
- extern bool XLogCheckBufferNeedsBackup(Buffer buffer);
54
-
55
- extern XLogRecPtr log_newpage(RelFileNode *rnode, ForkNumber forkNum,
56
- BlockNumber blk, char *page, bool page_std);
57
- extern XLogRecPtr log_newpage_buffer(Buffer buffer, bool page_std);
58
- extern void log_newpage_range(Relation rel, ForkNumber forkNum,
59
- BlockNumber startblk, BlockNumber endblk, bool page_std);
60
- extern XLogRecPtr XLogSaveBufferForHint(Buffer buffer, bool buffer_std);
61
-
62
- extern void InitXLogInsert(void);
63
-
64
- #endif /* XLOGINSERT_H */
@@ -1,62 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * bootstrap.h
4
- * include file for the bootstrapping code
5
- *
6
- *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
- * Portions Copyright (c) 1994, Regents of the University of California
9
- *
10
- * src/include/bootstrap/bootstrap.h
11
- *
12
- *-------------------------------------------------------------------------
13
- */
14
- #ifndef BOOTSTRAP_H
15
- #define BOOTSTRAP_H
16
-
17
- #include "nodes/execnodes.h"
18
-
19
-
20
- /*
21
- * MAXATTR is the maximum number of attributes in a relation supported
22
- * at bootstrap time (i.e., the max possible in a system table).
23
- */
24
- #define MAXATTR 40
25
-
26
- #define BOOTCOL_NULL_AUTO 1
27
- #define BOOTCOL_NULL_FORCE_NULL 2
28
- #define BOOTCOL_NULL_FORCE_NOT_NULL 3
29
-
30
- extern Relation boot_reldesc;
31
- extern Form_pg_attribute attrtypes[MAXATTR];
32
- extern int numattr;
33
-
34
-
35
- extern void AuxiliaryProcessMain(int argc, char *argv[]) pg_attribute_noreturn();
36
-
37
- extern void closerel(char *name);
38
- extern void boot_openrel(char *name);
39
-
40
- extern void DefineAttr(char *name, char *type, int attnum, int nullness);
41
- extern void InsertOneTuple(void);
42
- extern void InsertOneValue(char *value, int i);
43
- extern void InsertOneNull(int i);
44
-
45
- extern void index_register(Oid heap, Oid ind, IndexInfo *indexInfo);
46
- extern void build_indices(void);
47
-
48
- extern void boot_get_type_io_data(Oid typid,
49
- int16 *typlen,
50
- bool *typbyval,
51
- char *typalign,
52
- char *typdelim,
53
- Oid *typioparam,
54
- Oid *typinput,
55
- Oid *typoutput);
56
-
57
- extern int boot_yyparse(void);
58
-
59
- extern int boot_yylex(void);
60
- extern void boot_yyerror(const char *str) pg_attribute_noreturn();
61
-
62
- #endif /* BOOTSTRAP_H */
@@ -1,54 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * parse_clause.h
4
- * handle clauses in parser
5
- *
6
- *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
- * Portions Copyright (c) 1994, Regents of the University of California
9
- *
10
- * src/include/parser/parse_clause.h
11
- *
12
- *-------------------------------------------------------------------------
13
- */
14
- #ifndef PARSE_CLAUSE_H
15
- #define PARSE_CLAUSE_H
16
-
17
- #include "parser/parse_node.h"
18
-
19
- extern void transformFromClause(ParseState *pstate, List *frmList);
20
- extern int setTargetTable(ParseState *pstate, RangeVar *relation,
21
- bool inh, bool alsoSource, AclMode requiredPerms);
22
-
23
- extern Node *transformWhereClause(ParseState *pstate, Node *clause,
24
- ParseExprKind exprKind, const char *constructName);
25
- extern Node *transformLimitClause(ParseState *pstate, Node *clause,
26
- ParseExprKind exprKind, const char *constructName,
27
- LimitOption limitOption);
28
- extern List *transformGroupClause(ParseState *pstate, List *grouplist,
29
- List **groupingSets,
30
- List **targetlist, List *sortClause,
31
- ParseExprKind exprKind, bool useSQL99);
32
- extern List *transformSortClause(ParseState *pstate, List *orderlist,
33
- List **targetlist, ParseExprKind exprKind,
34
- bool useSQL99);
35
-
36
- extern List *transformWindowDefinitions(ParseState *pstate,
37
- List *windowdefs,
38
- List **targetlist);
39
-
40
- extern List *transformDistinctClause(ParseState *pstate,
41
- List **targetlist, List *sortClause, bool is_agg);
42
- extern List *transformDistinctOnClause(ParseState *pstate, List *distinctlist,
43
- List **targetlist, List *sortClause);
44
- extern void transformOnConflictArbiter(ParseState *pstate,
45
- OnConflictClause *onConflictClause,
46
- List **arbiterExpr, Node **arbiterWhere,
47
- Oid *constraint);
48
-
49
- extern List *addTargetToSortList(ParseState *pstate, TargetEntry *tle,
50
- List *sortlist, List *targetlist, SortBy *sortby);
51
- extern Index assignSortGroupRef(TargetEntry *tle, List *tlist);
52
- extern bool targetIsInSortList(TargetEntry *tle, Oid sortop, List *sortList);
53
-
54
- #endif /* PARSE_CLAUSE_H */
@@ -1,27 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * parse_collate.h
4
- * Routines for assigning collation information.
5
- *
6
- *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
- * Portions Copyright (c) 1994, Regents of the University of California
9
- *
10
- * src/include/parser/parse_collate.h
11
- *
12
- *-------------------------------------------------------------------------
13
- */
14
- #ifndef PARSE_COLLATE_H
15
- #define PARSE_COLLATE_H
16
-
17
- #include "parser/parse_node.h"
18
-
19
- extern void assign_query_collations(ParseState *pstate, Query *query);
20
-
21
- extern void assign_list_collations(ParseState *pstate, List *exprs);
22
-
23
- extern void assign_expr_collations(ParseState *pstate, Node *expr);
24
-
25
- extern Oid select_common_collation(ParseState *pstate, List *exprs, bool none_ok);
26
-
27
- #endif /* PARSE_COLLATE_H */
@@ -1,46 +0,0 @@
1
- /*-------------------------------------------------------------------------
2
- *
3
- * parse_target.h
4
- * handle target lists
5
- *
6
- *
7
- * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
8
- * Portions Copyright (c) 1994, Regents of the University of California
9
- *
10
- * src/include/parser/parse_target.h
11
- *
12
- *-------------------------------------------------------------------------
13
- */
14
- #ifndef PARSE_TARGET_H
15
- #define PARSE_TARGET_H
16
-
17
- #include "parser/parse_node.h"
18
-
19
-
20
- extern List *transformTargetList(ParseState *pstate, List *targetlist,
21
- ParseExprKind exprKind);
22
- extern List *transformExpressionList(ParseState *pstate, List *exprlist,
23
- ParseExprKind exprKind, bool allowDefault);
24
- extern void resolveTargetListUnknowns(ParseState *pstate, List *targetlist);
25
- extern void markTargetListOrigins(ParseState *pstate, List *targetlist);
26
- extern TargetEntry *transformTargetEntry(ParseState *pstate,
27
- Node *node, Node *expr, ParseExprKind exprKind,
28
- char *colname, bool resjunk);
29
- extern Expr *transformAssignedExpr(ParseState *pstate, Expr *expr,
30
- ParseExprKind exprKind,
31
- const char *colname,
32
- int attrno,
33
- List *indirection,
34
- int location);
35
- extern void updateTargetListEntry(ParseState *pstate, TargetEntry *tle,
36
- char *colname, int attrno,
37
- List *indirection,
38
- int location);
39
- extern List *checkInsertTargets(ParseState *pstate, List *cols,
40
- List **attrnos);
41
- extern TupleDesc expandRecordVariable(ParseState *pstate, Var *var,
42
- int levelsup);
43
- extern char *FigureColname(Node *node);
44
- extern char *FigureIndexColname(Node *node);
45
-
46
- #endif /* PARSE_TARGET_H */