pg_query 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,12 @@
1
1
  class PgQuery
2
2
  PossibleTruncation = Struct.new(:location, :node_type, :length, :is_array)
3
3
 
4
+ A_TRUNCATED = 'A_Truncated'.freeze
5
+
4
6
  # Truncates the query string to be below the specified length, first trying to
5
7
  # omit less important parts of the query, and only then cutting off the end.
6
8
  def truncate(max_length)
7
- output = deparse(parsetree)
9
+ output = deparse(@tree)
8
10
 
9
11
  # Early exit if we're already below the max length
10
12
  return output if output.size <= max_length
@@ -14,12 +16,12 @@ class PgQuery
14
16
  # Truncate the deepest possible truncation that is the longest first
15
17
  truncations.sort_by! { |t| [-t.location.size, -t.length] }
16
18
 
17
- tree = deep_dup(parsetree)
19
+ tree = deep_dup(@tree)
18
20
  truncations.each do |truncation|
19
21
  next if truncation.length < 3
20
22
 
21
23
  find_tree_location(tree, truncation.location) do |expr, k|
22
- expr[k] = { 'A_TRUNCATED' => nil }
24
+ expr[k] = { A_TRUNCATED => nil }
23
25
  expr[k] = [expr[k]] if truncation.is_array
24
26
  end
25
27
 
@@ -36,14 +38,14 @@ class PgQuery
36
38
  def find_possible_truncations
37
39
  truncations = []
38
40
 
39
- treewalker! parsetree do |_expr, k, v, location|
41
+ treewalker! @tree do |_expr, k, v, location|
40
42
  case k
41
- when 'targetList'
42
- length = deparse([{ 'SELECT' => { k => v } }]).size - 'SELECT '.size
43
+ when TARGET_LIST_FIELD
44
+ length = deparse([{ SELECT_STMT => { k => v } }]).size - 'SELECT '.size
43
45
 
44
- truncations << PossibleTruncation.new(location, 'targetList', length, true)
46
+ truncations << PossibleTruncation.new(location, TARGET_LIST_FIELD, length, true)
45
47
  when 'whereClause'
46
- length = deparse([{ 'SELECT' => { k => v } }]).size
48
+ length = deparse([{ SELECT_STMT => { k => v } }]).size
47
49
 
48
50
  truncations << PossibleTruncation.new(location, 'whereClause', length, false)
49
51
  when 'ctequery'
@@ -1,3 +1,3 @@
1
1
  class PgQuery
2
- VERSION = '0.8.0'
2
+ VERSION = '0.9.0'
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.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Fittl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-07 00:00:00.000000000 Z
11
+ date: 2016-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -98,11 +98,14 @@ files:
98
98
  - ext/pg_query/pg_query_ruby.h
99
99
  - ext/pg_query/pg_query_ruby.sym
100
100
  - lib/pg_query.rb
101
+ - lib/pg_query/deep_dup.rb
101
102
  - lib/pg_query/deparse.rb
102
103
  - lib/pg_query/deparse/alter_table.rb
103
104
  - lib/pg_query/deparse/interval.rb
104
105
  - lib/pg_query/filter_columns.rb
105
106
  - lib/pg_query/fingerprint.rb
107
+ - lib/pg_query/legacy_parsetree.rb
108
+ - lib/pg_query/node_types.rb
106
109
  - lib/pg_query/param_refs.rb
107
110
  - lib/pg_query/parse.rb
108
111
  - lib/pg_query/parse_error.rb