activerecord-sqlserver-adapter 2.2.18

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.
Files changed (37) hide show
  1. data/CHANGELOG +175 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Manifest +36 -0
  4. data/README.rdoc +175 -0
  5. data/RUNNING_UNIT_TESTS +60 -0
  6. data/Rakefile +18 -0
  7. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +1126 -0
  8. data/lib/activerecord-sqlserver-adapter.rb +1 -0
  9. data/lib/core_ext/active_record.rb +133 -0
  10. data/lib/core_ext/dbi.rb +85 -0
  11. data/tasks/sqlserver.rake +31 -0
  12. data/test/cases/aaaa_create_tables_test_sqlserver.rb +19 -0
  13. data/test/cases/adapter_test_sqlserver.rb +707 -0
  14. data/test/cases/attribute_methods_test_sqlserver.rb +33 -0
  15. data/test/cases/basics_test_sqlserver.rb +21 -0
  16. data/test/cases/calculations_test_sqlserver.rb +20 -0
  17. data/test/cases/column_test_sqlserver.rb +264 -0
  18. data/test/cases/connection_test_sqlserver.rb +142 -0
  19. data/test/cases/eager_association_test_sqlserver.rb +42 -0
  20. data/test/cases/execute_procedure_test_sqlserver.rb +33 -0
  21. data/test/cases/inheritance_test_sqlserver.rb +28 -0
  22. data/test/cases/method_scoping_test_sqlserver.rb +28 -0
  23. data/test/cases/migration_test_sqlserver.rb +93 -0
  24. data/test/cases/offset_and_limit_test_sqlserver.rb +108 -0
  25. data/test/cases/pessimistic_locking_test_sqlserver.rb +125 -0
  26. data/test/cases/query_cache_test_sqlserver.rb +24 -0
  27. data/test/cases/schema_dumper_test_sqlserver.rb +72 -0
  28. data/test/cases/specific_schema_test_sqlserver.rb +57 -0
  29. data/test/cases/sqlserver_helper.rb +123 -0
  30. data/test/cases/table_name_test_sqlserver.rb +22 -0
  31. data/test/cases/transaction_test_sqlserver.rb +93 -0
  32. data/test/cases/unicode_test_sqlserver.rb +50 -0
  33. data/test/connections/native_sqlserver/connection.rb +23 -0
  34. data/test/connections/native_sqlserver_odbc/connection.rb +25 -0
  35. data/test/migrations/transaction_table/1_table_will_never_be_created.rb +11 -0
  36. data/test/schema/sqlserver_specific_schema.rb +91 -0
  37. metadata +120 -0
@@ -0,0 +1,23 @@
1
+ print "Using native SQLServer\n"
2
+ require_dependency 'models/course'
3
+ require 'logger'
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'arunit' => {
9
+ :adapter => 'sqlserver',
10
+ :host => 'localhost',
11
+ :username => 'rails',
12
+ :database => 'activerecord_unittest'
13
+ },
14
+ 'arunit2' => {
15
+ :adapter => 'sqlserver',
16
+ :host => 'localhost',
17
+ :username => 'rails',
18
+ :database => 'activerecord_unittest2'
19
+ }
20
+ }
21
+
22
+ ActiveRecord::Base.establish_connection 'arunit'
23
+ Course.establish_connection 'arunit2'
@@ -0,0 +1,25 @@
1
+ print "Using native SQLServer via ODBC\n"
2
+ require_dependency 'models/course'
3
+ require 'logger'
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'arunit' => {
9
+ :adapter => 'sqlserver',
10
+ :mode => 'ODBC',
11
+ :host => 'localhost',
12
+ :username => 'rails',
13
+ :dsn => 'activerecord_unittest'
14
+ },
15
+ 'arunit2' => {
16
+ :adapter => 'sqlserver',
17
+ :mode => 'ODBC',
18
+ :host => 'localhost',
19
+ :username => 'rails',
20
+ :dsn => 'activerecord_unittest2'
21
+ }
22
+ }
23
+
24
+ ActiveRecord::Base.establish_connection 'arunit'
25
+ Course.establish_connection 'arunit2'
@@ -0,0 +1,11 @@
1
+ class TableWillNeverBeCreated < ActiveRecord::Migration
2
+
3
+ def self.up
4
+ create_table(:sqlserver_trans_table1) { }
5
+ create_table(:sqlserver_trans_table2) { raise ActiveRecord::StatementInvalid }
6
+ end
7
+
8
+ def self.down
9
+ end
10
+
11
+ end
@@ -0,0 +1,91 @@
1
+ ActiveRecord::Schema.define do
2
+
3
+ create_table :table_with_real_columns, :force => true do |t|
4
+ t.column :real_number, :real
5
+ end
6
+
7
+ create_table :defaults, :force => true do |t|
8
+ t.column :positive_integer, :integer, :default => 1
9
+ t.column :negative_integer, :integer, :default => -1
10
+ t.column :decimal_number, :decimal, :precision => 3, :scale => 2, :default => 2.78
11
+ end
12
+
13
+ create_table :string_defaults, :force => true do |t|
14
+ t.column :string_with_null_default, :string, :default => nil
15
+ t.column :string_with_pretend_null_one, :string, :default => 'null'
16
+ t.column :string_with_pretend_null_two, :string, :default => '(null)'
17
+ t.column :string_with_pretend_null_three, :string, :default => 'NULL'
18
+ t.column :string_with_pretend_null_four, :string, :default => '(NULL)'
19
+ t.column :string_with_pretend_paren_three, :string, :default => '(3)'
20
+ end
21
+
22
+ create_table :sql_server_chronics, :force => true do |t|
23
+ t.column :date, :date
24
+ t.column :time, :time
25
+ t.column :datetime, :datetime
26
+ t.column :timestamp, :timestamp
27
+ t.column :smalldatetime, :smalldatetime
28
+ end
29
+
30
+ create_table(:fk_test_has_fks, :force => true) { |t| t.column(:fk_id, :integer, :null => false) }
31
+ create_table(:fk_test_has_pks, :force => true) { }
32
+ execute <<-ADDFKSQL
33
+ ALTER TABLE fk_test_has_fks
34
+ ADD CONSTRAINT FK__fk_test_has_fk_fk_id
35
+ FOREIGN KEY (#{quote_column_name('fk_id')})
36
+ REFERENCES #{quote_table_name('fk_test_has_pks')} (#{quote_column_name('id')})
37
+ ADDFKSQL
38
+
39
+ create_table :sql_server_unicodes, :force => true do |t|
40
+ t.column :nchar, :nchar
41
+ t.column :nvarchar, :nvarchar
42
+ t.column :ntext, :ntext
43
+ t.column :ntext_10, :ntext, :limit => 10
44
+ t.column :nchar_10, :nchar, :limit => 10
45
+ t.column :nvarchar_100, :nvarchar, :limit => 100
46
+ if ActiveRecord::Base.connection.sqlserver_2005? || ActiveRecord::Base.connection.sqlserver_2008?
47
+ t.column :nvarchar_max, :nvarchar_max
48
+ t.column :nvarchar_max_10, :nvarchar_max, :limit => 10
49
+ end
50
+ end
51
+
52
+ create_table :sql_server_strings, :force => true do |t|
53
+ t.column :char, :char
54
+ t.column :char_10, :char, :limit => 10
55
+ if ActiveRecord::Base.connection.sqlserver_2005? || ActiveRecord::Base.connection.sqlserver_2008?
56
+ t.column :varchar_max, :varchar_max
57
+ t.column :varchar_max_10, :varchar_max, :limit => 10
58
+ end
59
+ end
60
+
61
+ create_table :sql_server_binary_types, :force => true do |t|
62
+ # TODO: Add some different native binary types and test.
63
+ end
64
+
65
+ create_table :sql_server_edge_schemas, :force => true do |t|
66
+ t.string :description
67
+ end
68
+
69
+ execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'customers_view') DROP VIEW customers_view"
70
+ execute <<-CUSTOMERSVIEW
71
+ CREATE VIEW customers_view AS
72
+ SELECT id, name, balance
73
+ FROM customers
74
+ CUSTOMERSVIEW
75
+
76
+ execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'string_defaults_view') DROP VIEW string_defaults_view"
77
+ execute <<-STRINGDEFAULTSVIEW
78
+ CREATE VIEW string_defaults_view AS
79
+ SELECT id, string_with_pretend_null_one as pretend_null
80
+ FROM string_defaults
81
+ STRINGDEFAULTSVIEW
82
+
83
+ execute "IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'string_defaults_big_view') DROP VIEW string_defaults_big_view"
84
+ execute <<-STRINGDEFAULTSBIGVIEW
85
+ CREATE VIEW string_defaults_big_view AS
86
+ SELECT id, string_with_pretend_null_one as pretend_null
87
+ /*#{'x'*4000}}*/
88
+ FROM string_defaults
89
+ STRINGDEFAULTSBIGVIEW
90
+
91
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activerecord-sqlserver-adapter
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.18
5
+ platform: ruby
6
+ authors:
7
+ - Ken Collins, Murray Steele, Shawn Balestracci, Joe Rafaniello, Tom Ward
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-05 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: dbi
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.4.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: dbd-odbc
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.4
34
+ version:
35
+ description: SQL Server 2000, 2005 and 2008 Adapter For Rails.
36
+ email: ken@metaskills.net
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - CHANGELOG
43
+ - lib/active_record/connection_adapters/sqlserver_adapter.rb
44
+ - lib/activerecord-sqlserver-adapter.rb
45
+ - lib/core_ext/active_record.rb
46
+ - lib/core_ext/dbi.rb
47
+ - README.rdoc
48
+ - tasks/sqlserver.rake
49
+ files:
50
+ - CHANGELOG
51
+ - lib/active_record/connection_adapters/sqlserver_adapter.rb
52
+ - lib/activerecord-sqlserver-adapter.rb
53
+ - lib/core_ext/active_record.rb
54
+ - lib/core_ext/dbi.rb
55
+ - Manifest
56
+ - MIT-LICENSE
57
+ - Rakefile
58
+ - README.rdoc
59
+ - RUNNING_UNIT_TESTS
60
+ - tasks/sqlserver.rake
61
+ - test/cases/aaaa_create_tables_test_sqlserver.rb
62
+ - test/cases/adapter_test_sqlserver.rb
63
+ - test/cases/attribute_methods_test_sqlserver.rb
64
+ - test/cases/basics_test_sqlserver.rb
65
+ - test/cases/calculations_test_sqlserver.rb
66
+ - test/cases/column_test_sqlserver.rb
67
+ - test/cases/connection_test_sqlserver.rb
68
+ - test/cases/eager_association_test_sqlserver.rb
69
+ - test/cases/execute_procedure_test_sqlserver.rb
70
+ - test/cases/inheritance_test_sqlserver.rb
71
+ - test/cases/method_scoping_test_sqlserver.rb
72
+ - test/cases/migration_test_sqlserver.rb
73
+ - test/cases/offset_and_limit_test_sqlserver.rb
74
+ - test/cases/pessimistic_locking_test_sqlserver.rb
75
+ - test/cases/query_cache_test_sqlserver.rb
76
+ - test/cases/schema_dumper_test_sqlserver.rb
77
+ - test/cases/specific_schema_test_sqlserver.rb
78
+ - test/cases/sqlserver_helper.rb
79
+ - test/cases/table_name_test_sqlserver.rb
80
+ - test/cases/transaction_test_sqlserver.rb
81
+ - test/cases/unicode_test_sqlserver.rb
82
+ - test/connections/native_sqlserver/connection.rb
83
+ - test/connections/native_sqlserver_odbc/connection.rb
84
+ - test/migrations/transaction_table/1_table_will_never_be_created.rb
85
+ - test/schema/sqlserver_specific_schema.rb
86
+ has_rdoc: true
87
+ homepage: http://github.com/rails-sqlserver
88
+ licenses: []
89
+
90
+ post_install_message:
91
+ rdoc_options:
92
+ - --line-numbers
93
+ - --inline-source
94
+ - --title
95
+ - Activerecord-sqlserver-adapter
96
+ - --main
97
+ - README.rdoc
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
105
+ version:
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "1.2"
111
+ version:
112
+ requirements: []
113
+
114
+ rubyforge_project: arsqlserver
115
+ rubygems_version: 1.3.3
116
+ signing_key:
117
+ specification_version: 3
118
+ summary: SQL Server 2000, 2005 and 2008 Adapter For Rails.
119
+ test_files: []
120
+