activerecord-sqlserver-adapter 2.2.18

Sign up to get free protection for your applications and to get access to all the features.
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
+