composite_primary_keys 9.0.4 → 9.0.5
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 +4 -4
- data/History.rdoc +20 -0
- data/Rakefile +37 -34
- data/lib/composite_primary_keys.rb +5 -10
- data/lib/composite_primary_keys/arel/in.rb +6 -6
- data/lib/composite_primary_keys/arel/sqlserver.rb +36 -0
- data/lib/composite_primary_keys/associations/association_scope.rb +51 -29
- data/lib/composite_primary_keys/attribute_methods/read.rb +3 -1
- data/lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb +22 -0
- data/lib/composite_primary_keys/relation.rb +30 -0
- data/lib/composite_primary_keys/relation/query_methods.rb +25 -36
- data/lib/composite_primary_keys/sanitization.rb +31 -47
- data/lib/composite_primary_keys/version.rb +1 -1
- data/tasks/databases/mysql.rake +40 -42
- data/tasks/databases/oracle.rake +29 -15
- data/tasks/databases/postgresql.rake +38 -47
- data/tasks/databases/sqlite.rake +25 -0
- data/tasks/databases/sqlserver.rake +32 -16
- data/test/abstract_unit.rb +12 -11
- data/test/connections/connection_spec.rb +27 -18
- data/test/connections/databases.ci.yml +5 -4
- data/test/connections/databases.example.yml +19 -4
- data/test/connections/databases.yml +25 -4
- data/test/fixtures/article.rb +6 -5
- data/test/fixtures/db_definitions/mysql.sql +16 -7
- data/test/fixtures/db_definitions/oracle.drop.sql +2 -0
- data/test/fixtures/db_definitions/oracle.sql +25 -15
- data/test/fixtures/db_definitions/postgresql.sql +11 -2
- data/test/fixtures/db_definitions/sqlite.sql +8 -0
- data/test/fixtures/db_definitions/sqlserver.sql +19 -33
- data/test/fixtures/pk_called_id.rb +5 -0
- data/test/fixtures/pk_called_ids.yml +11 -0
- data/test/test_associations.rb +334 -332
- data/test/test_create.rb +9 -1
- data/test/test_delete.rb +17 -39
- data/test/test_ids.rb +113 -109
- data/test/test_preload.rb +94 -0
- data/test/test_suite.rb +1 -1
- data/test/test_update.rb +12 -7
- metadata +14 -24
- data/lib/composite_primary_keys/associations/singular_association.rb +0 -14
- data/lib/composite_primary_keys/connection_adapters/abstract/connection_specification_changes.rb +0 -71
- data/lib/composite_primary_keys/connection_adapters/postgresql_adapter.rb +0 -50
- data/lib/composite_primary_keys/dirty.rb +0 -19
- data/lib/composite_primary_keys/validations/uniqueness.rb +0 -41
- data/tasks/databases/oracle_enhanced.rake +0 -27
- data/tasks/databases/sqlite3.rake +0 -27
- data/test/connections/native_ibm_db/connection.rb +0 -19
- data/test/connections/native_mysql/connection.rb +0 -17
- data/test/connections/native_oracle/connection.rb +0 -11
- data/test/connections/native_oracle_enhanced/connection.rb +0 -16
- data/test/connections/native_postgresql/connection.rb +0 -13
- data/test/connections/native_sqlite3/connection.rb +0 -9
- data/test/connections/native_sqlserver/connection.rb +0 -11
- data/test/fixtures/db_definitions/sqlserver.drop.sql +0 -92
- data/test/test_delete_all.rb +0 -29
@@ -1,11 +0,0 @@
|
|
1
|
-
print "Using native Oracle\n"
|
2
|
-
|
3
|
-
require File.join(PROJECT_ROOT, 'lib', 'composite_primary_keys')
|
4
|
-
|
5
|
-
def connection_string
|
6
|
-
"#{SPEC['username']}/#{SPEC['password']}@//#{SPEC['host']}:#{SPEC['port']}/#{SPEC['database']}"
|
7
|
-
end
|
8
|
-
|
9
|
-
# Adapter config setup in locals/database_connections.rb
|
10
|
-
SPEC = CompositePrimaryKeys::ConnectionSpec['oracle']
|
11
|
-
ActiveRecord::Base.establish_connection(SPEC)
|
@@ -1,16 +0,0 @@
|
|
1
|
-
print "Using native Oracle Enhanced\n"
|
2
|
-
|
3
|
-
require File.join(PROJECT_ROOT, 'lib', 'composite_primary_keys')
|
4
|
-
|
5
|
-
def connection_string
|
6
|
-
"#{SPEC['username']}/#{SPEC['password']}@//#{SPEC['host']}:#{SPEC['port']}/#{SPEC['database']}"
|
7
|
-
end
|
8
|
-
|
9
|
-
# Adapter config setup in locals/database_connections.rb
|
10
|
-
SPEC = CompositePrimaryKeys::ConnectionSpec[:oracle_enhanced]
|
11
|
-
ActiveRecord::Base.establish_connection(SPEC)
|
12
|
-
|
13
|
-
# Change default options for Oracle Enhanced adapter
|
14
|
-
ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.emulate_dates_by_column_name = true
|
15
|
-
# Change NLS_DATE_FORMAT to non-default format to verify that all tests should pass
|
16
|
-
ActiveRecord::Base.connection.execute %q{alter session set nls_date_format = 'DD-MON-YYYY HH24:MI:SS'}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
print "Using native Postgresql\n"
|
2
|
-
|
3
|
-
def connection_string
|
4
|
-
options = Hash.new
|
5
|
-
options['U'] = SPEC['username'] if SPEC['username']
|
6
|
-
options['h'] = SPEC['host'] if SPEC['host']
|
7
|
-
options['p'] = SPEC['port'] if SPEC['port']
|
8
|
-
options.map { |key, value| "-#{key} #{value}" }.join(" ")
|
9
|
-
end
|
10
|
-
|
11
|
-
# Adapter config setup in text/connections/databases.yml
|
12
|
-
SPEC = CompositePrimaryKeys::ConnectionSpec['postgresql']
|
13
|
-
ActiveRecord::Base.establish_connection(SPEC)
|
@@ -1,11 +0,0 @@
|
|
1
|
-
print "Using native SQL Server\n"
|
2
|
-
|
3
|
-
require File.join(PROJECT_ROOT, 'lib', 'composite_primary_keys')
|
4
|
-
|
5
|
-
def connection_string
|
6
|
-
"-S #{SPEC['host']} -U #{SPEC['username']} -P\"#{SPEC['password']}\""
|
7
|
-
end
|
8
|
-
|
9
|
-
# Adapter config setup in locals/database_connections.rb
|
10
|
-
SPEC = CompositePrimaryKeys::ConnectionSpec['sqlserver']
|
11
|
-
ActiveRecord::Base.establish_connection(SPEC)
|
@@ -1,92 +0,0 @@
|
|
1
|
-
USE [composite_primary_keys_unittest];
|
2
|
-
go
|
3
|
-
|
4
|
-
DROP TABLE topics;
|
5
|
-
go
|
6
|
-
|
7
|
-
DROP TABLE topic_sources;
|
8
|
-
go
|
9
|
-
|
10
|
-
DROP TABLE reference_types;
|
11
|
-
go
|
12
|
-
|
13
|
-
DROP TABLE reference_codes;
|
14
|
-
go
|
15
|
-
|
16
|
-
DROP TABLE products;
|
17
|
-
go
|
18
|
-
|
19
|
-
DROP TABLE tariffs;
|
20
|
-
go
|
21
|
-
|
22
|
-
DROP TABLE product_tariffs;
|
23
|
-
go
|
24
|
-
|
25
|
-
DROP TABLE suburbs;
|
26
|
-
go
|
27
|
-
|
28
|
-
DROP TABLE streets;
|
29
|
-
go
|
30
|
-
|
31
|
-
DROP TABLE users;
|
32
|
-
go
|
33
|
-
|
34
|
-
DROP TABLE articles;
|
35
|
-
go
|
36
|
-
|
37
|
-
DROP TABLE readings;
|
38
|
-
go
|
39
|
-
|
40
|
-
DROP TABLE groups;
|
41
|
-
go
|
42
|
-
|
43
|
-
DROP TABLE memberships;
|
44
|
-
go
|
45
|
-
|
46
|
-
DROP TABLE membership_statuses;
|
47
|
-
go
|
48
|
-
|
49
|
-
DROP TABLE departments;
|
50
|
-
go
|
51
|
-
|
52
|
-
DROP TABLE employees;
|
53
|
-
go
|
54
|
-
|
55
|
-
DROP TABLE comments;
|
56
|
-
go
|
57
|
-
|
58
|
-
DROP TABLE hacks;
|
59
|
-
go
|
60
|
-
|
61
|
-
DROP TABLE restaurants;
|
62
|
-
go
|
63
|
-
|
64
|
-
DROP TABLE restaurants_suburbs;
|
65
|
-
go
|
66
|
-
|
67
|
-
DROP TABLE dorms;
|
68
|
-
go
|
69
|
-
|
70
|
-
DROP TABLE rooms;
|
71
|
-
go
|
72
|
-
|
73
|
-
DROP TABLE room_attributes;
|
74
|
-
go
|
75
|
-
|
76
|
-
DROP TABLE room_attribute_assignments;
|
77
|
-
go
|
78
|
-
|
79
|
-
DROP TABLE students;
|
80
|
-
go
|
81
|
-
|
82
|
-
DROP TABLE room_assignments;
|
83
|
-
go
|
84
|
-
|
85
|
-
DROP TABLE seats;
|
86
|
-
go
|
87
|
-
|
88
|
-
DROP TABLE capitols;
|
89
|
-
go
|
90
|
-
|
91
|
-
DROP TABLE products_restaurants;
|
92
|
-
go
|
data/test/test_delete_all.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require File.expand_path('../abstract_unit', __FILE__)
|
2
|
-
|
3
|
-
class EmployeesGroup < ActiveRecord::Base
|
4
|
-
|
5
|
-
end
|
6
|
-
|
7
|
-
class TestValidations < ActiveSupport::TestCase
|
8
|
-
fixtures :employees
|
9
|
-
|
10
|
-
def test_delete_for_model_without_primary_key
|
11
|
-
EmployeesGroup.create(employee_id: 1, group_id: 100)
|
12
|
-
EmployeesGroup.create(employee_id: 2, group_id: 102)
|
13
|
-
EmployeesGroup.create(employee_id: 3, group_id: 103)
|
14
|
-
|
15
|
-
assert_equal(EmployeesGroup.all.size, 3)
|
16
|
-
exception = assert_raises(NoMethodError) {
|
17
|
-
EmployeesGroup.where(employee_id: 1).first.destroy
|
18
|
-
}
|
19
|
-
|
20
|
-
assert(/undefined method `to_sym' for nil:NilClass/ =~ exception.message)
|
21
|
-
|
22
|
-
assert(EmployeesGroup.all.size == 3)
|
23
|
-
end
|
24
|
-
|
25
|
-
# This test fails, requires fixin arel
|
26
|
-
#def test_delete_all_with_joins
|
27
|
-
# ReferenceCode.joins(:reference_type).where(:reference_type_id => 1).delete_all
|
28
|
-
#end
|
29
|
-
end
|