pg_query 0.13.3 → 0.13.4
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.
- 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
|