pg_query 0.13.1 → 0.13.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3e1b71a544d0fb300ae470913f157d570579c70
4
- data.tar.gz: dd474651bb19f9a17d9c97c54bef4f772db57af9
3
+ metadata.gz: 7581a181058d0429e35143026aa4cde939af9920
4
+ data.tar.gz: 9dad6882888ad1a1631e6119263383613452df54
5
5
  SHA512:
6
- metadata.gz: 4212d4e1af776ee3a90441c93a8b4f8b4492fe093c95df887a35322c24cdfbb3a27b00e482c4a35ed5e6cbc85c7260f71d28503a2f220e7d60f3c653e0ec4b4a
7
- data.tar.gz: 89fe26ce09d610a61609fbfea3572834e30edd630486c1aa5257e72f39c31f885af1de814fa2caa7ca9c501cc9b2ddacd9c46becd4d2719523e4eef61b20afc4
6
+ metadata.gz: bf7a6b92484148b7431f83e4c9a7474825b3fd510d640210fb5fd7eb90bd761bb97dbd2ce4f8d0731bbb59c29158c5a147190eb098f31e17eb03691f3c322da7
7
+ data.tar.gz: e9418cbb97645d2b7ea861773b5e0ea6f5712183b28165985e5240f26e8335bff1a6c49d396c741c77380430069fb7edfbaeeff64575b49abdc333eba0451b4e
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.2 2017-08-10
4
+
5
+ * Support table detection in sub-SELECTs in JOINs [#68](https://github.com/lfittl/pg_query/pull/65) [@seanmdick](https://github.com/seanmdick)
6
+ * Legacy ".parsetree" helper: Fix "Between" and "In" operator does not have "AEXPR" [#66](https://github.com/lfittl/pg_query/issues/66)
7
+ * For new applications please use ".tree" method which uses the native structure
8
+ returned from libpg_query which resembles Postgres node names more closely
9
+
10
+
3
11
  ## 0.13.1 2017-08-03
4
12
 
5
13
  * Fix regression in 0.13.1 that broke ".tables" logic for COPY statements that
@@ -10,8 +10,7 @@ class PgQuery
10
10
  transform_parsetree_a_const(node)
11
11
  when A_EXPR
12
12
  transform_string_list(node[A_EXPR]['name'])
13
- new_key = LEGACY_A_EXPR_NAMES[node[A_EXPR]['kind']]
14
- node[A_EXPR].delete('kind')
13
+ node[key].delete('kind')
15
14
  when COLUMN_REF
16
15
  transform_string_list(node[COLUMN_REF]['fields'])
17
16
  when CREATE_FUNCTION_STMT
@@ -44,6 +43,7 @@ class PgQuery
44
43
  private
45
44
 
46
45
  LEGACY_NODE_NAMES = {
46
+ A_EXPR => 'AEXPR',
47
47
  SELECT_STMT => 'SELECT',
48
48
  ALTER_TABLE_CMD => 'ALTER TABLE CMD',
49
49
  ALTER_TABLE_STMT => 'ALTER TABLE',
@@ -65,24 +65,6 @@ class PgQuery
65
65
  # All others default to simply upper-casing the input name
66
66
  }.freeze
67
67
 
68
- LEGACY_A_EXPR_NAMES = {
69
- AEXPR_OP => 'AEXPR',
70
- # AEXPR_OP_ANY = 1 # normal operator
71
- # AEXPR_OP_ALL = 2 # scalar op ALL (array)
72
- # AEXPR_DISTINCT = 3 # IS DISTINCT FROM - name must be "="
73
- # AEXPR_NULLIF = 4 # NULLIF - name must be "="
74
- # AEXPR_OF = 5 # IS [NOT] OF - name must be "=" or "<>"
75
- # AEXPR_IN = 6 # [NOT] IN - name must be "=" or "<>"
76
- # AEXPR_LIKE = 7 # [NOT] LIKE - name must be "~~" or "!~~"
77
- # AEXPR_ILIKE = 8 # [NOT] ILIKE - name must be "~~*" or "!~~*"
78
- AEXPR_SIMILAR => 'AEXPR',
79
- # AEXPR_BETWEEN = 10 # name must be "BETWEEN"
80
- # AEXPR_NOT_BETWEEN = 11 # name must be "NOT BETWEEN"
81
- # AEXPR_BETWEEN_SYM = 12 # name must be "BETWEEN SYMMETRIC"
82
- # AEXPR_NOT_BETWEEN_SYM = 13 # name must be "NOT BETWEEN SYMMETRIC"
83
- # AEXPR_PAREN = 14 # nameless dummy node for parentheses
84
- }.freeze
85
-
86
68
  LEGACY_CONSTRAINT_TYPES = {
87
69
  # CONSTR_TYPE_NULL = 0 # not standard SQL, but a lot of people expect it
88
70
  # CONSTR_TYPE_NOTNULL = 1
@@ -201,6 +201,10 @@ class PgQuery
201
201
  table = [rangevar['schemaname'], rangevar['relname']].compact.join('.')
202
202
  @tables << { table: table, type: next_item[:type] }
203
203
  @aliases[rangevar['alias'][ALIAS]['aliasname']] = table if rangevar['alias']
204
+ when RANGE_SUBSELECT
205
+ from_clause_items << { item: next_item[:item][RANGE_SUBSELECT]['subquery'], type: next_item[:type] }
206
+ when SELECT_STMT
207
+ from_clause_items += next_item[:item][SELECT_STMT]['fromClause'].map { |r| { item: r, type: next_item[:type] } }
204
208
  end
205
209
  end
206
210
 
@@ -1,3 +1,3 @@
1
1
  class PgQuery
2
- VERSION = '0.13.1'.freeze
2
+ VERSION = '0.13.2'.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: 0.13.1
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Fittl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-03 00:00:00.000000000 Z
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  requirements: []
144
144
  rubyforge_project:
145
- rubygems_version: 2.5.1
145
+ rubygems_version: 2.6.11
146
146
  signing_key:
147
147
  specification_version: 4
148
148
  summary: PostgreSQL query parsing and normalization library