pg_query 0.13.3 → 0.13.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/ext/pg_query/extconf.rb +1 -1
- data/lib/pg_query/deparse.rb +4 -2
- data/lib/pg_query/parse.rb +13 -10
- 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: ff41b6f96f4b8cf081341854b35684016ccfdab7
|
4
|
+
data.tar.gz: 016e672d36156857083385248901065174e95ca2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c61da4a93cf780a6b55fb47ee366db887a0c75d88a50bf2c7e15f28bbbb298ea8715386b16e83462077836c1f323b6aa381d46f8361f6d292ee3f9198480e5d0
|
7
|
+
data.tar.gz: 622df6653bea3aad75f39f1b816038633c51f9ae31a45ba0fc81802470ea4dd1b1089b63db0684920bdf7096f3b8d7efa2d378d17e63ff7090a7054d119d7cbc
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.13.4 2017-10-20
|
4
|
+
|
5
|
+
* Update to libpg_query 9.5-1.7.0
|
6
|
+
- Fixes compilation old gcc before 4.6.0 [#73](https://github.com/lfittl/pg_query/issues/73)
|
7
|
+
|
8
|
+
|
3
9
|
## 0.13.3 2017-09-04
|
4
10
|
|
5
11
|
* Fix table detection for SELECTs that have sub-SELECTs without FROM clause [#69](https://github.com/lfittl/pg_query/issues/69)
|
data/ext/pg_query/extconf.rb
CHANGED
data/lib/pg_query/deparse.rb
CHANGED
@@ -424,12 +424,12 @@ class PgQuery
|
|
424
424
|
format('NULLIF(%s, %s)', lexpr, rexpr)
|
425
425
|
end
|
426
426
|
|
427
|
-
def deparse_joinexpr(node)
|
427
|
+
def deparse_joinexpr(node) # rubocop:disable Metrics/CyclomaticComplexity
|
428
428
|
output = []
|
429
429
|
output << deparse_item(node['larg'])
|
430
430
|
case node['jointype']
|
431
431
|
when 0
|
432
|
-
output << 'CROSS' if node['quals'].nil?
|
432
|
+
output << 'CROSS' if node['quals'].nil? && node['usingClause'].nil?
|
433
433
|
when 1
|
434
434
|
output << 'LEFT'
|
435
435
|
end
|
@@ -441,6 +441,8 @@ class PgQuery
|
|
441
441
|
output << deparse_item(node['quals'])
|
442
442
|
end
|
443
443
|
|
444
|
+
output << format('USING (%s)', node['usingClause'].map { |n| deparse_item(n) }.join(', ')) if node['usingClause']
|
445
|
+
|
444
446
|
output.join(' ')
|
445
447
|
end
|
446
448
|
|
data/lib/pg_query/parse.rb
CHANGED
@@ -27,6 +27,9 @@ class PgQuery
|
|
27
27
|
@query = query
|
28
28
|
@tree = tree
|
29
29
|
@warnings = warnings
|
30
|
+
@tables = nil
|
31
|
+
@aliases = nil
|
32
|
+
@cte_names = nil
|
30
33
|
end
|
31
34
|
|
32
35
|
def tables
|
@@ -87,20 +90,20 @@ class PgQuery
|
|
87
90
|
from_clause_items << { item: item, type: :select }
|
88
91
|
end
|
89
92
|
end
|
90
|
-
|
91
|
-
# CTEs
|
92
|
-
with_clause = statement[SELECT_STMT]['withClause']
|
93
|
-
if with_clause
|
94
|
-
with_clause[WITH_CLAUSE]['ctes'].each do |item|
|
95
|
-
next unless item[COMMON_TABLE_EXPR]
|
96
|
-
@cte_names << item[COMMON_TABLE_EXPR]['ctename']
|
97
|
-
statements << item[COMMON_TABLE_EXPR]['ctequery']
|
98
|
-
end
|
99
|
-
end
|
100
93
|
when 1
|
101
94
|
statements << statement[SELECT_STMT]['larg'] if statement[SELECT_STMT]['larg']
|
102
95
|
statements << statement[SELECT_STMT]['rarg'] if statement[SELECT_STMT]['rarg']
|
103
96
|
end
|
97
|
+
|
98
|
+
# CTEs
|
99
|
+
with_clause = statement[SELECT_STMT]['withClause']
|
100
|
+
if with_clause
|
101
|
+
with_clause[WITH_CLAUSE]['ctes'].each do |item|
|
102
|
+
next unless item[COMMON_TABLE_EXPR]
|
103
|
+
@cte_names << item[COMMON_TABLE_EXPR]['ctename']
|
104
|
+
statements << item[COMMON_TABLE_EXPR]['ctequery']
|
105
|
+
end
|
106
|
+
end
|
104
107
|
# The following statements modify the contents of a table
|
105
108
|
when INSERT_STMT, UPDATE_STMT, DELETE_STMT
|
106
109
|
from_clause_items << { item: statement.values[0]['relation'], type: :dml }
|
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.4
|
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-
|
11
|
+
date: 2017-10-20 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
|