activerecord-sqlserver-adapter 7.0.0.0.rc1 → 7.0.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: 9983757834cfcc185a0a292ec422cc8e090a5cdff995be814738bb82b0620373
4
- data.tar.gz: 527f419f372081cd743fcd0898c16183136ac36eaf36dd14a521bb455a5147cc
3
+ metadata.gz: da2be1cf7b3b5d8c8ad40cb1c79e037d5054cdf522e8e98b53fd22185af10a24
4
+ data.tar.gz: 9d1da7dc2e59761988098939f3254979df4862f26a7edcb617d7a35ff720155d
5
5
  SHA512:
6
- metadata.gz: 4e64604834556a9bf9bd9be39e3aff2cc267729c6d32f28c697d293a6b9be5f5a44c924bbe6fae48f528b88a6c24c2c2d6337a5658aa295284764cb9a66a46c4
7
- data.tar.gz: c09d354e4af8a5dbb9eb4ef4ab3fdf3b3a527f3ed779895995aac6d60c6335e0698d57cae2509b43e5e3e2825a724bcc41ed2424822b6f067ae6fddfd26ea9bb
6
+ metadata.gz: 51b6f8a1d55f2e27dd0301ee9b65a2922c7120b20db3831a774c33acd3b736035f6a6238c26a3491c817ebe808ccd8719eabfd957766a2064c8368ad2c6cd2ee
7
+ data.tar.gz: dc7b43ee4d532e44f1106064d3757ea3dd636ecc0bc5cec64d58a5c4de3e4b6bf5ce4017ad9bf6ee8c5a4503627b345e2b83811b71318765f5c4072c5e327456
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## v7.0.0.0
2
+
3
+ [Full changelog](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/compare/v7.0.0.0.rc1...v7.0.0.0)
4
+
5
+ #### Fixed
6
+
7
+ - [#1002](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1002) Fix support for index types
8
+
9
+ #### Changed
10
+
11
+ - [#1004](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1004) Dump the precision for datetime columns following the new defaults.
12
+
1
13
  ## v7.0.0.0.rc1
2
14
 
3
15
  [Full changelog](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/compare/6-1-stable...v7.0.0.0.rc1)
data/README.md CHANGED
@@ -13,10 +13,10 @@ Interested in older versions? We follow a rational versioning policy that tracks
13
13
 
14
14
  | Adapter Version | Rails Version | Support |
15
15
  | --------------- | ------------- | ------------------------------------------------------------------------------------------- |
16
- | `7.0.0.0.rc1` | `7.0.x` | [unreleased](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
16
+ | `7.0.0.0` | `7.0.x` | [active](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/main) |
17
17
  | `6.1.2.1` | `6.1.x` | [active](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/6-1-stable) |
18
18
  | `6.0.2` | `6.0.x` | [active](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/6-0-stable) |
19
- | `5.2.1` | `5.2.x` | [active](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/5-2-stable) |
19
+ | `5.2.1` | `5.2.x` | [ended](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/5-2-stable) |
20
20
  | `5.1.6` | `5.1.x` | [ended](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/5-1-stable) |
21
21
  | `4.2.18` | `4.2.x` | [ended](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/4-2-stable) |
22
22
  | `4.1.8` | `4.1.x` | [ended](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/4-1-stable) |
data/VERSION CHANGED
@@ -1 +1 @@
1
- 7.0.0.0.rc1
1
+ 7.0.0.0
@@ -34,17 +34,19 @@ module ActiveRecord
34
34
  end
35
35
 
36
36
  def visit_CreateIndexDefinition(o)
37
- if_not_exists = o.if_not_exists
38
-
39
- o.if_not_exists = false
40
-
41
- sql = super
37
+ index = o.index
42
38
 
43
- if if_not_exists
44
- sql = "IF NOT EXISTS (SELECT name FROM sysindexes WHERE name = '#{o.index.name}') #{sql}"
45
- end
39
+ sql = []
40
+ sql << "IF NOT EXISTS (SELECT name FROM sysindexes WHERE name = '#{o.index.name}')" if o.if_not_exists
41
+ sql << "CREATE"
42
+ sql << "UNIQUE" if index.unique
43
+ sql << index.type.upcase if index.type
44
+ sql << "INDEX"
45
+ sql << "#{quote_column_name(index.name)} ON #{quote_table_name(index.table)}"
46
+ sql << "(#{quoted_columns(index)})"
47
+ sql << "WHERE #{index.where}" if index.where
46
48
 
47
- sql
49
+ sql.join(" ")
48
50
  end
49
51
 
50
52
  def add_column_options!(sql, options)
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "cases/helper_sqlserver"
4
+
5
+ class ActiveSchemaTestSQLServer < ActiveRecord::TestCase
6
+ before do
7
+ connection.create_table :schema_test_table, force: true, id: false do |t|
8
+ t.column :foo, :string, limit: 100
9
+ t.column :state, :string
10
+ end
11
+ end
12
+
13
+ after do
14
+ connection.drop_table :schema_test_table rescue nil
15
+ end
16
+
17
+ it 'default index' do
18
+ assert_sql('CREATE INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo])') do
19
+ connection.add_index :schema_test_table, "foo"
20
+ end
21
+ end
22
+
23
+ it 'unique index' do
24
+ assert_sql('CREATE UNIQUE INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo])') do
25
+ connection.add_index :schema_test_table, "foo", unique: true
26
+ end
27
+ end
28
+
29
+ it 'where condition on index' do
30
+ assert_sql("CREATE INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo]) WHERE state = 'active'") do
31
+ connection.add_index :schema_test_table, "foo", where: "state = 'active'"
32
+ end
33
+ end
34
+
35
+ it 'if index does not exist' do
36
+ assert_sql("IF NOT EXISTS (SELECT name FROM sysindexes WHERE name = 'index_schema_test_table_on_foo') " \
37
+ "CREATE INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo])") do
38
+ connection.add_index :schema_test_table, "foo", if_not_exists: true
39
+ end
40
+ end
41
+
42
+ describe "index types" do
43
+ it 'clustered index' do
44
+ assert_sql('CREATE CLUSTERED INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo])') do
45
+ connection.add_index :schema_test_table, "foo", type: :clustered
46
+ end
47
+ end
48
+
49
+ it 'nonclustered index' do
50
+ assert_sql('CREATE NONCLUSTERED INDEX [index_schema_test_table_on_foo] ON [schema_test_table] ([foo])') do
51
+ connection.add_index :schema_test_table, "foo", type: :nonclustered
52
+ end
53
+ end
54
+ end
55
+ end
@@ -79,7 +79,7 @@ class SchemaDumperTestSQLServer < ActiveRecord::TestCase
79
79
  assert_line :float_col, type: "float", limit: nil, precision: nil, scale: nil, default: nil
80
80
  assert_line :string_col, type: "string", limit: nil, precision: nil, scale: nil, default: nil
81
81
  assert_line :text_col, type: "text", limit: nil, precision: nil, scale: nil, default: nil
82
- assert_line :datetime_col, type: "datetime", limit: nil, precision: 6, scale: nil, default: nil
82
+ assert_line :datetime_col, type: "datetime", limit: nil, precision: nil, scale: nil, default: nil
83
83
  assert_line :timestamp_col, type: "datetime", limit: nil, precision: nil, scale: nil, default: nil
84
84
  assert_line :time_col, type: "time", limit: nil, precision: 7, scale: nil, default: nil
85
85
  assert_line :date_col, type: "date", limit: nil, precision: nil, scale: nil, default: nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-sqlserver-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0.0.rc1
4
+ version: 7.0.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Collins
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2022-01-18 00:00:00.000000000 Z
17
+ date: 2022-02-22 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord
@@ -142,6 +142,7 @@ files:
142
142
  - test/bin/install-freetds.sh
143
143
  - test/bin/install-openssl.sh
144
144
  - test/bin/setup.sh
145
+ - test/cases/active_schema_test_sqlserver.rb
145
146
  - test/cases/adapter_test_sqlserver.rb
146
147
  - test/cases/change_column_collation_test_sqlserver.rb
147
148
  - test/cases/change_column_null_test_sqlserver.rb
@@ -225,8 +226,8 @@ licenses:
225
226
  - MIT
226
227
  metadata:
227
228
  bug_tracker_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues
228
- changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v7.0.0.0.rc1/CHANGELOG.md
229
- source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.0.0.0.rc1
229
+ changelog_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v7.0.0.0/CHANGELOG.md
230
+ source_code_uri: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/tree/v7.0.0.0
230
231
  post_install_message:
231
232
  rdoc_options: []
232
233
  require_paths:
@@ -238,9 +239,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
239
  version: 2.7.0
239
240
  required_rubygems_version: !ruby/object:Gem::Requirement
240
241
  requirements:
241
- - - ">"
242
+ - - ">="
242
243
  - !ruby/object:Gem::Version
243
- version: 1.3.1
244
+ version: '0'
244
245
  requirements: []
245
246
  rubygems_version: 3.2.22
246
247
  signing_key:
@@ -252,6 +253,7 @@ test_files:
252
253
  - test/bin/install-freetds.sh
253
254
  - test/bin/install-openssl.sh
254
255
  - test/bin/setup.sh
256
+ - test/cases/active_schema_test_sqlserver.rb
255
257
  - test/cases/adapter_test_sqlserver.rb
256
258
  - test/cases/change_column_collation_test_sqlserver.rb
257
259
  - test/cases/change_column_null_test_sqlserver.rb