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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/pg_query/legacy_parsetree.rb +2 -20
- data/lib/pg_query/parse.rb +4 -0
- data/lib/pg_query/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7581a181058d0429e35143026aa4cde939af9920
|
4
|
+
data.tar.gz: 9dad6882888ad1a1631e6119263383613452df54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf7a6b92484148b7431f83e4c9a7474825b3fd510d640210fb5fd7eb90bd761bb97dbd2ce4f8d0731bbb59c29158c5a147190eb098f31e17eb03691f3c322da7
|
7
|
+
data.tar.gz: e9418cbb97645d2b7ea861773b5e0ea6f5712183b28165985e5240f26e8335bff1a6c49d396c741c77380430069fb7edfbaeeff64575b49abdc333eba0451b4e
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
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
|
data/lib/pg_query/parse.rb
CHANGED
@@ -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
|
|
data/lib/pg_query/version.rb
CHANGED
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.
|
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-
|
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.
|
145
|
+
rubygems_version: 2.6.11
|
146
146
|
signing_key:
|
147
147
|
specification_version: 4
|
148
148
|
summary: PostgreSQL query parsing and normalization library
|