pg_saurus 3.4.1 → 3.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 618aace6dddc8e43129c5d58d4841c1dc56b73ea
4
- data.tar.gz: 0d615cbdb00ec89301e0338598abc71580099b5f
3
+ metadata.gz: b29ece12fe51ab68cec6a95570a9bd372aff0d2f
4
+ data.tar.gz: 0ba27c826028135791fcd45f8f742ea650cd3042
5
5
  SHA512:
6
- metadata.gz: fd6a9d724576108778232318bf5d126cf0093d7761f1b4b0fdd12eb178a80bb14cc589b41fe4ea37fdb820cdb65e2251f2a846d862cbacd80bd4996fb94e7ce5
7
- data.tar.gz: 8270bf73dc1723b0c2db75259d764e8968f3403081a15ff616838022fb4ac02a8edc9a38589fffaf64fc1b1ef0910eab76b6833fc400e10140e8ee449afe0f5f
6
+ metadata.gz: 4ce85db15d409ee8ccac7fd7d3315a6bdbb6a721d6df1aff5df23a490d1d1a8bebf8383913b822dd7e724c57ddb424d699032baa723ece99e41078652248342a
7
+ data.tar.gz: ebbc2881e0153ecaea674d28a78aa6f59106a41059db4caf26748a092b7edcdb35324ed4ef8618ede82cbf30fd5b73f7cc31919f905edf37b7fb3260c7b967ef
@@ -27,6 +27,10 @@ module ActiveRecord
27
27
  def add_index_with_concurrently(table_name, column_name, options = {})
28
28
  creation_method = options.delete(:concurrently) ? 'CONCURRENTLY' : nil
29
29
 
30
+ # Whether to skip the quoting of columns. Used only for expressions like JSON indexes in which
31
+ # the column is difficult to target for quoting.
32
+ skip_column_quoting = options.delete(:skip_column_quoting) or false
33
+
30
34
  index_name,
31
35
  index_type,
32
36
  index_columns,
@@ -59,7 +63,8 @@ module ActiveRecord
59
63
  statements << "ON"
60
64
  statements << quote_table_name(table_name)
61
65
  statements << index_using if index_using.present?
62
- statements << "(#{index_columns})" if index_columns.present?
66
+ statements << "(#{index_columns})" if index_columns.present? unless skip_column_quoting
67
+ statements << "(#{column_name})" if column_name.present? and skip_column_quoting
63
68
  statements << index_options if index_options.present?
64
69
 
65
70
  sql = statements.join(' ')
@@ -141,7 +146,7 @@ module ActiveRecord
141
146
  else
142
147
  quote_column_name(column_name)
143
148
  end
144
-
149
+
145
150
  result_name += " " + operator_name if operator_name
146
151
 
147
152
  result_name
@@ -21,9 +21,11 @@ module ActiveRecord #:nodoc:
21
21
  column_name
22
22
  end
23
23
 
24
+ is_json_index = (columns.count == 1 && columns.first =~ /^(.+->.+)$/)
25
+
24
26
  statement_parts = [
25
27
  ('add_index ' + index.table.inspect),
26
- columns.inspect,
28
+ is_json_index ? "\"#{columns.first}\"" : columns.inspect,
27
29
  (':name => ' + index.name.inspect),
28
30
  ]
29
31
  statement_parts << ':unique => true' if index.unique
@@ -37,6 +39,8 @@ module ActiveRecord #:nodoc:
37
39
 
38
40
  statement_parts << (':using => ' + index.access_method.inspect) unless index.access_method.downcase == 'btree'
39
41
 
42
+ statement_parts << ':skip_column_quoting => true' if is_json_index
43
+
40
44
  ' ' + statement_parts.join(', ')
41
45
  end
42
46
 
@@ -1,4 +1,4 @@
1
1
  module PgSaurus
2
2
  # Version of pg_saurus gem.
3
- VERSION = "3.4.1"
3
+ VERSION = "3.5.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_saurus
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.1
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Potapov Sergey
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2019-03-20 00:00:00.000000000 Z
16
+ date: 2019-06-10 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: pg