activerecord-redshift-adapter 8.0.0.beta2 → 8.0.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
  SHA256:
3
- metadata.gz: 35bf91b5a6116c1055f34e7bb0fc17805e6e693cec22520fc9014010962f2ee3
4
- data.tar.gz: d4c0213bcee62e43faa979d0fdc1080b590f86d511a4b1f53c2ff623622737ce
3
+ metadata.gz: 692d2587480e3e8474c03b2f00acbf455a7e59c9f2e95c746b9fb67ee7edc8b3
4
+ data.tar.gz: e4e9f46485d980b6e52a052f60b9c01f6758e374b7be1beba575e811705a6dc8
5
5
  SHA512:
6
- metadata.gz: 6075000b038c72d2e516173fa1ee3f29b3c80d2cff8036418f36b919ccc312e8085edfe841394642f906bbe6bf5161ccd6d0c0b42da10af061ce9618425194a1
7
- data.tar.gz: f797bb18c2b7b4732ff0652b6f50b1f26cf0688a2d1c0eca5c2a0e310405af715f2ecfd1f9537b08dfbbbfb95e928eda10ffd6f35790db11eff5ff6e915d1430
6
+ metadata.gz: 498a1d46c28dbe7432209ca5632756878709442396dd048b5785c4c06ef364113f03e075ffe05c0ce83f483383ae130f082011e24e983f78bc586e7a256fe1a3
7
+ data.tar.gz: 7f3128a718ed1ae5069912c14a339bb9b2c15f4253fee0f19d6052e3d051ae59660907d957d5909f5d11d819a643569014de15a2d0b162ce01778fc8c171a848
@@ -207,6 +207,11 @@ module ActiveRecord
207
207
  end
208
208
  end
209
209
 
210
+ # Returns the current ID of a table's sequence.
211
+ def last_insert_id_result(sequence_name)
212
+ internal_exec_query("SELECT currval(#{quote(sequence_name)})", "SQL")
213
+ end
214
+
210
215
  # Begins a transaction.
211
216
  def begin_db_transaction
212
217
  execute 'BEGIN'
@@ -220,17 +220,17 @@ module ActiveRecord
220
220
  end
221
221
 
222
222
  # Returns the sequence name for a table's primary key or some other specified key.
223
- def default_sequence_name(table_name, pk = nil) # :nodoc:
224
- result = serial_sequence(table_name, pk || 'id')
223
+ def default_sequence_name(table_name, pk = "id") # :nodoc:
224
+ result = serial_sequence(table_name, pk)
225
225
  return nil unless result
226
226
 
227
227
  Utils.extract_schema_qualified_name(result).to_s
228
228
  rescue ActiveRecord::StatementInvalid
229
- Redshift::Name.new(nil, "#{table_name}_#{pk || 'id'}_seq").to_s
229
+ Redshift::Name.new(nil, "#{table_name}_#{pk}_seq").to_s
230
230
  end
231
231
 
232
232
  def serial_sequence(table, column)
233
- select_value("SELECT pg_get_serial_sequence('#{table}', '#{column}')", 'SCHEMA')
233
+ select_value("SELECT pg_get_serial_sequence(#{quote(table)}, #{quote(column)})", 'SCHEMA')
234
234
  end
235
235
 
236
236
  def set_pk_sequence!(table, value); end
@@ -616,10 +616,6 @@ module ActiveRecord
616
616
  end
617
617
  end
618
618
 
619
- def last_insert_id_result(sequence_name) # :nodoc:
620
- exec_query("SELECT currval('#{sequence_name}')", 'SQL')
621
- end
622
-
623
619
  # Returns the list of a table's column names, data types, and default values.
624
620
  #
625
621
  # The underlying query is roughly:
@@ -651,8 +647,9 @@ module ActiveRecord
651
647
  end
652
648
 
653
649
  def extract_table_ref_from_insert_sql(sql)
654
- sql[/into\s("[A-Za-z0-9_."\[\]\s]+"|[A-Za-z0-9_."\[\]]+)\s*/im]
655
- Regexp.last_match(1)&.strip
650
+ if sql =~ /into\s("[A-Za-z0-9_."\[\]\s]+"|[A-Za-z0-9_."\[\]]+)\s*/im
651
+ $1.delete('"').strip
652
+ end
656
653
  end
657
654
 
658
655
  def arel_visitor
@@ -220,17 +220,17 @@ module ActiveRecord
220
220
  end
221
221
 
222
222
  # Returns the sequence name for a table's primary key or some other specified key.
223
- def default_sequence_name(table_name, pk = nil) # :nodoc:
224
- result = serial_sequence(table_name, pk || 'id')
223
+ def default_sequence_name(table_name, pk = 'id') # :nodoc:
224
+ result = serial_sequence(table_name, pk)
225
225
  return nil unless result
226
226
 
227
227
  Utils.extract_schema_qualified_name(result).to_s
228
228
  rescue ActiveRecord::StatementInvalid
229
- Redshift::Name.new(nil, "#{table_name}_#{pk || 'id'}_seq").to_s
229
+ Redshift::Name.new(nil, "#{table_name}_#{pk}_seq").to_s
230
230
  end
231
231
 
232
232
  def serial_sequence(table, column)
233
- select_value("SELECT pg_get_serial_sequence('#{table}', '#{column}')", 'SCHEMA')
233
+ select_value("SELECT pg_get_serial_sequence(#{quote(table)}, #{quote(column)})", 'SCHEMA')
234
234
  end
235
235
 
236
236
  def set_pk_sequence!(table, value); end
@@ -689,11 +689,6 @@ module ActiveRecord
689
689
  end
690
690
  end
691
691
 
692
- def last_insert_id_result(sequence_name)
693
- # :nodoc:
694
- exec_query("SELECT currval('#{sequence_name}')", 'SQL')
695
- end
696
-
697
692
  # Returns the list of a table's column names, data types, and default values.
698
693
  #
699
694
  # The underlying query is roughly:
@@ -725,11 +720,6 @@ module ActiveRecord
725
720
  END_SQL
726
721
  end
727
722
 
728
- def extract_table_ref_from_insert_sql(sql)
729
- sql[/into\s("[A-Za-z0-9_."\[\]\s]+"|[A-Za-z0-9_."\[\]]+)\s*/im]
730
- Regexp.last_match(1)&.strip
731
- end
732
-
733
723
  def arel_visitor
734
724
  Arel::Visitors::PostgreSQL.new(self)
735
725
  end
@@ -220,17 +220,17 @@ module ActiveRecord
220
220
  end
221
221
 
222
222
  # Returns the sequence name for a table's primary key or some other specified key.
223
- def default_sequence_name(table_name, pk = nil) # :nodoc:
224
- result = serial_sequence(table_name, pk || 'id')
223
+ def default_sequence_name(table_name, pk = 'id') # :nodoc:
224
+ result = serial_sequence(table_name, pk)
225
225
  return nil unless result
226
226
 
227
227
  Utils.extract_schema_qualified_name(result).to_s
228
228
  rescue ActiveRecord::StatementInvalid
229
- Redshift::Name.new(nil, "#{table_name}_#{pk || 'id'}_seq").to_s
229
+ Redshift::Name.new(nil, "#{table_name}_#{pk}_seq").to_s
230
230
  end
231
231
 
232
232
  def serial_sequence(table, column)
233
- select_value("SELECT pg_get_serial_sequence('#{table}', '#{column}')", 'SCHEMA')
233
+ select_value("SELECT pg_get_serial_sequence(#{quote(table)}, #{quote(column)})".tap { puts _1 }, 'SCHEMA')
234
234
  end
235
235
 
236
236
  def set_pk_sequence!(table, value); end
@@ -689,11 +689,6 @@ module ActiveRecord
689
689
  end
690
690
  end
691
691
 
692
- def last_insert_id_result(sequence_name)
693
- # :nodoc:
694
- exec_query("SELECT currval('#{sequence_name}')", 'SQL')
695
- end
696
-
697
692
  # Returns the list of a table's column names, data types, and default values.
698
693
  #
699
694
  # The underlying query is roughly:
@@ -725,11 +720,6 @@ module ActiveRecord
725
720
  END_SQL
726
721
  end
727
722
 
728
- def extract_table_ref_from_insert_sql(sql)
729
- sql[/into\s("[A-Za-z0-9_."\[\]\s]+"|[A-Za-z0-9_."\[\]]+)\s*/im]
730
- Regexp.last_match(1)&.strip
731
- end
732
-
733
723
  def arel_visitor
734
724
  Arel::Visitors::PostgreSQL.new(self)
735
725
  end
@@ -220,17 +220,17 @@ module ActiveRecord
220
220
  end
221
221
 
222
222
  # Returns the sequence name for a table's primary key or some other specified key.
223
- def default_sequence_name(table_name, pk = nil) # :nodoc:
224
- result = serial_sequence(table_name, pk || 'id')
223
+ def default_sequence_name(table_name, pk = 'id') # :nodoc:
224
+ result = serial_sequence(table_name, pk)
225
225
  return nil unless result
226
226
 
227
227
  Utils.extract_schema_qualified_name(result).to_s
228
228
  rescue ActiveRecord::StatementInvalid
229
- Redshift::Name.new(nil, "#{table_name}_#{pk || 'id'}_seq").to_s
229
+ Redshift::Name.new(nil, "#{table_name}_#{pk}_seq").to_s
230
230
  end
231
231
 
232
232
  def serial_sequence(table, column)
233
- select_value("SELECT pg_get_serial_sequence('#{table}', '#{column}')", 'SCHEMA')
233
+ select_value("SELECT pg_get_serial_sequence(#{quote(table)}, #{quote(column)})".tap { puts _1 }, 'SCHEMA')
234
234
  end
235
235
 
236
236
  def set_pk_sequence!(table, value); end
@@ -688,11 +688,6 @@ module ActiveRecord
688
688
  end
689
689
  end
690
690
 
691
- def last_insert_id_result(sequence_name)
692
- # :nodoc:
693
- exec_query("SELECT currval('#{sequence_name}')", 'SQL')
694
- end
695
-
696
691
  # Returns the list of a table's column names, data types, and default values.
697
692
  #
698
693
  # The underlying query is roughly:
@@ -724,11 +719,6 @@ module ActiveRecord
724
719
  END_SQL
725
720
  end
726
721
 
727
- def extract_table_ref_from_insert_sql(sql)
728
- sql[/into\s("[A-Za-z0-9_."\[\]\s]+"|[A-Za-z0-9_."\[\]]+)\s*/im]
729
- Regexp.last_match(1)&.strip
730
- end
731
-
732
722
  def arel_visitor
733
723
  Arel::Visitors::PostgreSQL.new(self)
734
724
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-redshift-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0.beta2
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janusz Mordarski
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2024-11-26 00:00:00.000000000 Z
17
+ date: 2024-12-05 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord