Skip to content

Commit 57826d9

Browse files
committed
Merge branch 'master' of github.com:attribution/sequel-redshift
2 parents c1d9cb9 + 0905295 commit 57826d9

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

Diff for: lib/sequel/adapters/redshift.rb

+16-6
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ class Database < Postgres::Database
1616
# The order of column modifiers to use when defining a column.
1717
COLUMN_DEFINITION_ORDER = [:collate, :default, :primary_key, :dist_key, :sort_key, :null, :unique, :auto_increment, :references]
1818

19+
def dataset_class_default
20+
Sequel::Redshift::Dataset
21+
end
22+
1923
# We need to change these default settings because they correspond to
2024
# Postgres configuration variables which do not exist in Redshift
2125
def adapter_initialize
@@ -27,9 +31,9 @@ def adapter_initialize
2731
end
2832

2933
def column_definition_primary_key_sql(sql, column)
30-
result = super
31-
result << ' IDENTITY' if result
32-
result
34+
if column[:primary_key] && column[:type] == Integer
35+
sql << ' IDENTITY'
36+
end
3337
end
3438

3539
# Add DISTKEY SQL fragment to column creation SQL.
@@ -61,16 +65,22 @@ def combinable_alter_table_op?(op)
6165
false
6266
end
6367

68+
def supports_transactional_ddl?
69+
false
70+
end
71+
6472
end
6573

6674
class Dataset < Postgres::Dataset
6775
Database::DatasetClass = self
6876

6977
Dataset.def_sql_method(self, :select, [['if opts[:values]', %w'values order limit'], ['elsif server_version >= 80400', %w'with select distinct columns from join where group having window compounds order limit lock'], ['else', %w'with select distinct columns from join where group having compounds order limit lock']])
7078

71-
def initialize(*args)
72-
super(*args)
73-
@opts = @opts.merge(disable_insert_returning: true).freeze
79+
def initialize(db)
80+
@db = db
81+
@opts = {disable_insert_returning: true}.freeze
82+
@cache = {}
83+
freeze
7484
end
7585

7686
def supports_cte?(type = :select)

Diff for: sequel-redshift.gemspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
1919
spec.require_paths = ["lib"]
2020

2121
spec.add_dependency "pg"
22-
spec.add_dependency "sequel"
22+
spec.add_dependency "sequel", '~> 5'
2323

24-
spec.add_development_dependency "bundler", "~> 1.3"
24+
spec.add_development_dependency "bundler", "~> 2"
2525
spec.add_development_dependency "rake"
2626
spec.add_development_dependency "rspec"
2727
end

Diff for: spec/features/redshift_spec.rb

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
end
1010

1111
it "inserts new record" do
12+
DB.drop_table? :items
1213
DB.create_table :items do
1314
primary_key :id
1415
column :name, 'varchar(255)'

Diff for: spec/spec_helper.rb

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
options.merge(logger: Logger.new(STDOUT))
2323

2424
DB = Sequel.connect(options)
25+
if ENV['DEBUG_SQL'] == 'true'
26+
DB.loggers << Logger.new($stdout)
27+
end
2528
# Run all the tests in a specific test schema
2629
DB.run "set search_path to 'sequel_redshift_adapter_test'"
2730

0 commit comments

Comments
 (0)