sic-activerecord-sqlserver-adapter 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +603 -0
  3. data/MIT-LICENSE +20 -0
  4. data/VERSION +1 -0
  5. data/lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb +42 -0
  6. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +41 -0
  7. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain_subscriber.rb +4 -0
  8. data/lib/active_record/connection_adapters/sqlserver/core_ext/odbc.rb +38 -0
  9. data/lib/active_record/connection_adapters/sqlserver/core_ext/relation.rb +19 -0
  10. data/lib/active_record/connection_adapters/sqlserver/database_limits.rb +49 -0
  11. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +458 -0
  12. data/lib/active_record/connection_adapters/sqlserver/errors.rb +36 -0
  13. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +109 -0
  14. data/lib/active_record/connection_adapters/sqlserver/schema_cache.rb +85 -0
  15. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +395 -0
  16. data/lib/active_record/connection_adapters/sqlserver/showplan.rb +67 -0
  17. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +69 -0
  18. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_xml.rb +25 -0
  19. data/lib/active_record/connection_adapters/sqlserver/utils.rb +32 -0
  20. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +545 -0
  21. data/lib/active_record/sqlserver_test_case.rb +17 -0
  22. data/lib/activerecord-sqlserver-adapter.rb +1 -0
  23. data/lib/arel/select_manager_sqlserver.rb +64 -0
  24. data/lib/arel/visitors/sqlserver.rb +326 -0
  25. metadata +98 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d678040c62fef3eae5401f8814ebebdbbe29dba3
4
+ data.tar.gz: 5b37ce272204198d853e23e26d1ee1e624356ef0
5
+ SHA512:
6
+ metadata.gz: e4c266a4debee9f5e77bb6d0f0e9b313e41f39ec93638a953724490273624ab9ce848ef9757b35e60d62d4cf7353caf41c94ef7bf0868487fabf6b10c4c8e90a
7
+ data.tar.gz: fbe732b0c0b29d8d7b3ed93d90f34352a7df11740e363ff787f5d60a35269f175cbfee914e1710e25587f2fc5830dc629206abb207929c5cea30f50e0976c8a8
@@ -0,0 +1,603 @@
1
+ * 4.0.0 *
2
+ * Dropped support for ruby 1.8.7
3
+ * Removed deadlock victim retry in favor of Isolation Level
4
+ * Removed auto_explain_threshold_in_seconds (not used in rails 4)
5
+
6
+ * 3.2.12 *
7
+
8
+ * Revert string_to_binary changes in 457af60e. Fixes #273.
9
+
10
+
11
+ * 3.2.11 *
12
+
13
+ * Handle "No such column" when renaming some columns in the migrations. Fixes #237. Thanks @michelgrootjans.
14
+ * Update regex for `RecordNotUnique` exception. Fixes #257. Thanks @pbatorre.
15
+ * Pass tds_version to TinyTDS. Fixes #233. Thanks @denispeplin.
16
+ * Use CONCAT_NULL_YIELDS_NULL for all TinyTDS connections. Fixes #262. Thanks @noel.
17
+ * Fix for Azure SQL. Fixed #263. Thanks @eklipse2k8.
18
+ * Drop shoulda and use minitest-spec-rails!!!
19
+ * Test TinyTDS 0.6.0.
20
+ * Fixed the unit tests due to changes in ActiveRecord that removes blank config values.
21
+ * Fixed explain tests that were failing due to changes in ExplainSubscriber, cause was regex
22
+ * Fixed change_column to update existing table column rows with new default value if there are any NULL values
23
+ and the column does not accept nulls
24
+ * Fixed change_column to drop and add indexes if the colun type is changes
25
+ * Fixed string_to_binary and binary_to_string in some cases where the binary data is not UTF-8
26
+ * Fixing generating profile report to create output dir if needed, and code change for printing report
27
+ * Adding ruby-prof to Gemfile, needed when running profile test cases
28
+ * Updating mocha to work with newer ActiveRecord test cases
29
+
30
+
31
+ * 3.2.10 *
32
+
33
+ * Remove connection defaults for host/username/password. Since we want to suppoert Windows Authentication
34
+ and there are just to many possibilities. So we now have to be explicit.
35
+ * Remove really old TinyTDS warning.
36
+
37
+
38
+ * 3.2.9 *
39
+
40
+ * The #remove_default_constraint uses #execute_procedure now. Fixes #223. Thanks @gicappa and @clintmiller.
41
+ * Mimic other adapters quoting for empty strings passed to integer columns. Fixes #164.
42
+ * Allow named parameters in stored procedures. Fixes #216. Thanks @sixfeetover.
43
+ * Make sure exclude [__rnt] table names form relation reflection. Fixes #219 and #221. Thanks @sphogan.
44
+
45
+
46
+ * 3.2.8 *
47
+
48
+ * Include VERSION in gemspec's files.
49
+
50
+
51
+ * 3.2.7 *
52
+
53
+ * Find VERSION in base file out of module namespace. Fixes #208
54
+ * Better support for explain without sp_execute args. FIxes #207
55
+
56
+
57
+ * 3.2.6 *
58
+
59
+ * Unique has_many associations with pagination now work. Fixes #209
60
+
61
+
62
+ * 3.2.5 *
63
+
64
+ * Fix a few test from ActiveRecord 3.2.6 upgrade.
65
+
66
+ * Fix db_name usage bug in #column_definitions [Altonymous]
67
+
68
+
69
+ * 3.2.4 *
70
+
71
+ * Fixed schema reflection for identity columns using ODBC. Fixes #193.
72
+
73
+
74
+ * 3.2.3 *
75
+
76
+ * Fixed datetime quoting for ActiveSupport::TimeWithZone objects. Fixes #187 and #189.
77
+
78
+
79
+ * 3.2.2 *
80
+
81
+ * Fixes all known issues with cross database schema reflection. Fixes #185 [Chris Altman]
82
+
83
+ * Fix exists? with offset by patching visitor. Fixes #171 and Fixes #167
84
+
85
+ * Set default text size to 2147483647 for TinyTDS connections. Fixes #181
86
+
87
+ * Set @config ivar for 3rd party libs. Fixes #177
88
+
89
+ * Make #sql_type_for_statement work for integers that may have empty parens or none at all. Fixes #175
90
+
91
+
92
+ * 3.2.1 *
93
+
94
+ * Add explicit order-by clause for windowed results. Fixes #161.
95
+
96
+
97
+ * 3.2.0 *
98
+
99
+ * ActiveRecord explain (SHOWPLAN) support.
100
+ http://youtu.be/ckb3YYZZZ2Q
101
+
102
+ * Remove our log_info_schema_queries config since we are not hooking properly into AR's 'SCHEMA' names.
103
+
104
+ * Properly use 'SCHEMA' name arguement in DB statements to comply with ActiveRecord::ExplainSubscriber::IGNORED_PAYLOADS.
105
+
106
+ * Make use of the new ConnectionAdapters::SchemaCache for our needs.
107
+
108
+ * New Sqlserver::Utils class for out helpers. Moved table name unquotes there.
109
+
110
+
111
+ * 3.1.5 *
112
+
113
+ * Better support for orders with an expression. Fixes #155. [Jason Frey, Joe Rafaniello]
114
+
115
+
116
+ * 3.1.4 *
117
+
118
+ * Use INFORMATION_SCHEMA.KEY_COLUMN_USAGE for schema reflection speed.
119
+ Fixes #125. [Wüthrich Hannes @hwuethrich]
120
+
121
+ * New deadlock victim retry using the #retry_deadlock_victim config. [Jason Frey, Joe Rafaniello]
122
+
123
+ * Renamed #with_auto_reconnect to #with_sqlserver_error_handling now that it handles both dropped
124
+ connections and deadlock victim errors. Fixes #150 [Jason Frey, Joe Rafaniello]
125
+
126
+ * Add activity_stats method that mimics the SQL Server Activity Monitor. Fixes #146 [Jason Frey, Joe Rafaniello]
127
+
128
+ * Add methods for sqlserver's #product_version, #product_level, #edition and include them in inspect.
129
+ Fixes #145 [Jason Frey, Joe Rafaniello]
130
+
131
+ * Handle statements that cannot be retried on a new database connection by not reconnecting.
132
+ Fixes #147 [Jason Frey, Joe Rafaniello]
133
+
134
+ * Added connection#spid for debugging. Fixes #144 [Jason Frey, Joe Rafaniello]
135
+
136
+ * Add ENV['TEST_FILES'] to Rakefile for easy single case tests. [Jason Frey, Joe Rafaniello]
137
+
138
+ * Pass ActiveRecord tests. Made windowed distinct pass all orders to groups.
139
+ - test_limited_eager_with_multiple_order_columns
140
+ - test_limited_eager_with_order
141
+
142
+ * Pass AR tests by moving DISTINCT to GROUP BY in windowed SQL.
143
+ - test_count_eager_with_has_many_and_limit_and_high_offset
144
+ - test_eager_with_has_many_and_limit_and_high_offset
145
+
146
+
147
+ * 3.1.3 *
148
+
149
+ * Distinguish between identity and primary key key columns during schema reflection. Allows us
150
+ us to only do identity inserts when technically needed. Fixes #139 [chadcf] & [joncanady]
151
+
152
+
153
+ * 3.1.2 *
154
+
155
+ * Fix SQL Azure conflicts with DBCC useroptions. Use new #user_options_xyz methods. [kazamachi]
156
+
157
+ * Fix identity inserts for tables with natural PKs. [Gian Carlo Pace]
158
+
159
+ * Create a #configure_connection method that can be overridden. Think "SET TEXTSIZE...".
160
+
161
+ * Create a #configure_application_name method that can be overridden for unique TinyTDS app names
162
+
163
+ * Fixed the #finish_statement_handle to cancel the TinyTDS connection if needed.
164
+
165
+
166
+ * 3.1.1 *
167
+
168
+ * Make #rollback_db_transaction smarter.
169
+
170
+ * Provide a method to override for the quoted string prefix. Not a config because trumping this method will
171
+ have drastically bad results. Fixes #124
172
+
173
+ * Allow :limit/:offset to be used with fully qualified table and column in :select.
174
+
175
+
176
+ * 3.1.0 *
177
+
178
+ * Add support/test around handling of float/real column types [Lucas Maxwell]
179
+
180
+ * Make auto reconnect duration configurable. Fixes #109 [David Chelimsky]
181
+
182
+ * Quote most time objects to use ISO8601 format to be multi-language dateformat compatible. The [datetime] data type is
183
+ automatically limited to milliseconds while [time] & [datetimeoffset] have full support. Even included a Date/Time
184
+ ActiveSupport formatter that is used per the language settings of the connection.
185
+
186
+ * Include a visit_Arel_Nodes_UpdateStatement method in our Arel visitor to add a limit/top for update
187
+ that has order and no limit/top. https://github.com/rails/rails/commit/787194ee43ab1fb0a7dc8bfbbfbd5079b047d833
188
+
189
+ * Allow drop_database to be called even when DB does not exist.
190
+
191
+ * Remove totally broken ADONET connection mode. Want it back, submit a patch.
192
+
193
+ * Schema reflection now finds primary key for all occasions. Fixed #60 [Boško Ivanišević]
194
+
195
+ * Allow complex order objects to not be molested by our visitor overrides. Fixes #99
196
+
197
+ * Default unicode datatypes!
198
+
199
+ * New #lowercase_schema_reflection configuration that allows you to downcase all tables and columns.
200
+ Good for legacy databases. Fixes #86. Thanks @dmajkic.
201
+
202
+ * Rails 3.1 with prepared statement support. Uses "EXEC sp_executesql ..." for just about everything now.
203
+
204
+
205
+ * 3.0.15 *
206
+
207
+ * Way better schema support! Thanks to @ianic! Fixes #61
208
+
209
+ * Warn of possible permission problems if "EXEC sp_helptext..." does not work view. Fixes #73.
210
+
211
+
212
+ * 3.0.13/3.0.14 *
213
+
214
+ * Allow TinyTDS/DBLIB mode to pass down :host/:port config options.
215
+
216
+
217
+ * 3.0.12 *
218
+
219
+ * Bug fix for previous TinyTDS lost connections.
220
+
221
+
222
+ * 3.0.11 *
223
+
224
+ * Azure compatibility.
225
+
226
+ * TinyTDS enhancements for lost connections. Default connection mode.
227
+
228
+
229
+ * 3.0.10 *
230
+
231
+ * Fix #rowtable_orders visitor helper to use first column if no pk column was found.
232
+
233
+ * Flatten sp_helpconstraint when looking for constraints just in case fks are present. Issue #64.
234
+
235
+ * Start to support 2011 code named "Denali".
236
+
237
+ * Limit and Offset can take SqlLiteral objects now.
238
+
239
+
240
+ * 3.0.9 *
241
+
242
+ * Fix array literal parsing bug for ruby 1.9.
243
+
244
+
245
+ * 3.0.8 *
246
+
247
+ * Support for ActiveRecord v3.0.3 and ARel v2.0.7
248
+
249
+
250
+ * 3.0.7 *
251
+
252
+ * Properly quote table names when reflecting on views.
253
+
254
+ * Add "dead or not enabled" to :dblib's lost connection messages.
255
+
256
+
257
+ * 3.0.6 *
258
+
259
+ * Maintenance release. Lock down to ActiveRecord 3.0.1 using ARel 1.0.0.
260
+
261
+
262
+ * 3.0.5 *
263
+
264
+ * Fixed native database type memoization, now at connection instance level. Fix #execute_procedure for :dblib mode to return indifferent access rows too.
265
+
266
+ * Make login timeout and query timeout backward database.yml friendly for :dblib mode.
267
+
268
+
269
+ * 3.0.4 *
270
+
271
+ * Add multiple results set support with #execute_procedure for :dblib mode. [Ken Collins]
272
+
273
+ * Simplify encoding support. [Ken Collins]
274
+
275
+ * Add binary timestamp datatype handling. [Erik Bryn]
276
+
277
+
278
+ * 3.0.3
279
+
280
+ * Add TinyTDS/dblib connection mode. [Ken Collins]
281
+
282
+
283
+ * 3.0.2
284
+
285
+ * Fix DSN'less code. [Erik Bryn]
286
+
287
+
288
+ * 3.0.1
289
+
290
+ * Support DSN'less connections. Resolves ticket 38.
291
+
292
+ * Support upcoming ruby odbc 0.99992
293
+
294
+
295
+ * 3.0.0
296
+
297
+ * Release rails 3 version!
298
+
299
+
300
+ * 2.3.8
301
+
302
+ * Properly quote all database names in rake helper methods. [Ken Collins]
303
+
304
+
305
+ * 2.3.7
306
+
307
+ * Correctly use :date/:time SQL types in 2008 [Ken Collins]
308
+
309
+
310
+ * 2.3.6
311
+
312
+ * Allow DNS's to not contain a database and use what is in database.yml [Marco Mastrodonato]
313
+
314
+ * Rake tasks methods for vanilla rails :db namespace parity. [Ken Collins]
315
+
316
+ * IronRuby integrated security fixes [Jimmy Schementi]
317
+
318
+
319
+ * 2.3.5
320
+
321
+ * Initial IronRuby ADONET connection mode support baked right in. Removed most &block
322
+ parameters, no handle/request object yielded anymore. Better abstraction and compliance
323
+ per the ActiveRecord abstract adapter to not yielding handles for #execute and only for
324
+ low level #select. Better wrapping of all queries at lowest level in #log so exceptions
325
+ at anytime can be handled correctly by core AR. Critical for System::Data's command
326
+ readers. Better abstraction for introspecting on #connection_mode. Added support for
327
+ running singular test cases via TextMate's Command-R. [Ken Collins]
328
+
329
+ * Force a binary encoding on values coming in and out of those columns for ruby 1.9.
330
+ Fixes ticket #33 [Jeroen Zwartepoorte]
331
+
332
+ * Using change_column will leave default if the type does not change or a new default
333
+ is not included. Fixes issue #22. [Ransom Briggs]
334
+
335
+ * Use correct SP name for sp_MSforeachtable so any collation can get to it. [7to3]
336
+
337
+ * Qualify INFORMATION_SCHEMA.COLUMNS with a correct period DB name if present.
338
+
339
+ * Allow adapter to return multiple results sets, for example from stored procedures. [Chris Hall]
340
+
341
+
342
+ * 2.3.4
343
+
344
+ * For tables that named with schema(ex. rails.users), they could not get length of column.
345
+ column of varchar(40) gets length => nil. Ticket #27 & #15 [Ken Tachiya]
346
+
347
+ * Altered limited_update_conditions regex conditions, the .* would greedily fail
348
+ if the where_sql had WHERE in a table or field, etc. [Ransom Briggs]
349
+
350
+ * Changing test to allow ENV['ARUNIT_DB_NAME'] as the database name for the test units.
351
+ Matches up with AR conventions. [Ransom Briggs]
352
+
353
+
354
+ 2.3.3
355
+
356
+ * Revert #ad83df82 and again cache column information at the connection's instance. The
357
+ previous commit was causing all sorts of view and schema reflection problems. [Ken Collins]
358
+
359
+
360
+ 2.3.2
361
+
362
+ * Insert queries that include the word "insert" as a partial column name with the word
363
+ "id" as a value were falsely being matched as identity inserts. [Sean Caffery/bfabry]
364
+
365
+ * Delegate all low level #raw_connection calls to #raw_connection_run and #raw_connection_do
366
+ which abstract out the low level modes in the connection options at that point. [Ken Collins]
367
+
368
+ * Remove DBI dependency and go straight ODBC for speed improvement [Erik Bryn]
369
+
370
+ * Leave order by alone when same column crosses two tables [Ransom Briggs]
371
+
372
+
373
+ * 2.3 * (December 1st, 2009)
374
+
375
+ * Table and column aliases can handle many. Resolves ticket #19 [stonegao]
376
+
377
+ * Coerce a few tests that were failing in 2.3.x [Ken Collins]
378
+
379
+ * Change column/view cache to happen at class level. Allows connection pool to share same
380
+ caches as well as the ability to expire the caches when needed. Also fix change_column so
381
+ that exceptions are not raised when the column contains an existing default. [Ken Collins]
382
+
383
+ * Allow query_requires_identity_insert? method to return quoted table name in situations where the
384
+ INSERT parts are not quoted themselves. [Gary/iawgens, Richard Penwell, Ken Collins]
385
+
386
+ * Fixed namespace in calling test_sqlserver_odbc within test_unicode_types. [Gary/iawgens]
387
+
388
+ * Columns with multi-line defaults work correctly. [bfabry]
389
+
390
+
391
+ * 2.2.22 * (October 15th, 2009)
392
+
393
+ * Support Identity-key-column judgement on multiple schema environment [Ken Tachiya]
394
+
395
+ * Add support for tinyint data types. In MySQL all these types would be boolean, however in
396
+ our adapter, they will use the full 1 => 255 Fixnum value as you would expect. [Ken Collins]
397
+
398
+
399
+ * 2.2.21 * (September 10th, 2009)
400
+
401
+ * Changes for gem best practices per http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices
402
+ Details of such are as follows: [Ken Collins]
403
+ - Removed rails-sqlserver-2000-2005-adapter.rb load file for old github usage.
404
+ - Move the core_ext directory to active_record/connection_adapters/sqlserver_adapter/core_ext
405
+ - Renamespace SQLServerDBI to ActiveRecord::ConnectionAdapters::SQLServerCoreExtensions::DBI
406
+ - Renamespace ActiveRecord::ConnectionAdapters::SQLServerActiveRecordExtensions to ActiveRecord::ConnectionAdapters::SQLServerCoreExtensions::ActiveRecord
407
+
408
+
409
+ * 2.2.20 * (September 10th, 2009)
410
+
411
+ * Implement a new remove_default_constraint method that uses sp_helpconstraint [Ken Collins]
412
+
413
+ * Use a lazy match in add_order_by_for_association_limiting! to allow sub selects to be used. Resolves
414
+ ticket #11.
415
+
416
+ * Add default rake task back for testing. Runs the namespaced sqlserver:test_sqlserver_odbc.
417
+ Resolves ticket #10 [Ken Collins]
418
+
419
+ * Default value detection in column_definitions is kinder to badly formatted, or long winded user
420
+ defined functions, for default values. Resolves ticket #8 [Ken Collins]
421
+
422
+ * Make sure bigint SQL Server data type can be used and converted back to Bignum as expected. [Ken Collins]
423
+
424
+
425
+ * 2.2.19 * (June 19th, 2009)
426
+
427
+ * Leave quoted column names as is. Resolves ticket #36 [Vince Puzzella]
428
+
429
+ * Changing add_limit! in ActiveRecord::Base for SQLServer so that it passes through any scoped :order
430
+ parameters. Resolves ticket #35 [Murray Steele]
431
+
432
+
433
+ * 2.2.18 * (June 5th, 2009)
434
+
435
+ * Column reflection on table name rescues LoadError and a few others. Resolves tickets #25 & #33 [Ken Collins]
436
+
437
+ * Added 2008 support. Resolves ticket #32 [Ken Collins]
438
+
439
+
440
+ * 2.2.17 * (May 14th, 2009)
441
+
442
+ * Add simplified type recognition for varchar(max) and nvarchar(max) under SQL Server 2005 to be a
443
+ :text type. This ensures schema dumper does the right thing. Fixes ticket #30. [Ken Collins]
444
+
445
+ * Tested ruby 1.9, ruby-odbc 0.9996, and DBI 0.4.1. Also added correct support for UTF-8 character
446
+ encoding going in and out of the DB. See before gist http://gist.github.com/111709 and after gist
447
+ http://gist.github.com/111719 [Ken Collins]
448
+
449
+
450
+ * 2.2.16 * (April 21st, 2009)
451
+
452
+ * Make add_limit_offset! only add locking hints (for tally) when the :lock option is present. Added tests
453
+ to make sure tally SQL is augmented correctly and tests to make sure that add_lock! is doing what it needs
454
+ for deep sub selects in paginated results. [Ken Collins]
455
+
456
+ * Add auto reconnect support utilizing a new #with_auto_reconnect block. By default each query run through
457
+ the adapter will automatically reconnect at standard intervals, logging attempts along the way, till success
458
+ or the original exception bubbles up. See docs for more details. Resolves ticket #18 [Ken Collins]
459
+
460
+ * Update internal helper method #orders_and_dirs_set to cope with an order clause like "description desc". This
461
+ resolves ticket #26 [Ken Collins]
462
+
463
+ * Provide support for running queries at different isolation levels using #run_with_isolation_level method
464
+ that can take a block or not. Also implement a #user_options method that reflects on the current user
465
+ session values. Resolves #20 [Murray Steele]
466
+
467
+
468
+ * 2.2.15 * (March 23rd, 2009)
469
+
470
+ * Better add_lock! method that can add the lock to just about all the elements in the statement. This
471
+ could be eager loaded associations, joins, etc. Done so that paginated results can easily add lock
472
+ options for performance. Note, the tally count in add_limit_offset! use "WITH (NOLOCK)" explicitly
473
+ as it can not hurt and is needed. [Ken Collins]
474
+
475
+
476
+ * 2.2.14 * (March 17th, 2009)
477
+
478
+ * Rails2.3 - Back passing tests on 2.2 work. Includes: (1) Created new test helpers that check ActiveRecord
479
+ version strings so we can conditionally run 2.2 and 2.3 tests. (2) Making TransactionTestSqlserver use Ship vs
480
+ Bird model. Also made it conditional run a few blocks for different versions of ActiveRecord. (3) Previous
481
+ JoinDependency#aliased_table_name_for is now only patched in ActiveRecord equal or greater than 2.3. [Ken Collins]
482
+
483
+ * Rails2.3 - Implement new savepoint support [Ken Collins]
484
+ http://rails.lighthouseapp.com/projects/8994/tickets/383
485
+ http://www.codeproject.com/KB/database/sqlservertransactions.aspx
486
+
487
+ * Rails2.3 - Coerce NestedScopingTest#test_merged_scoped_find to use correct regexp for adapter. [Ken Collins]
488
+
489
+ * Rails2.3 - Implement a custom ActiveRecord::Associations::ClassMethods::JoinDependency::JoinAssociation#aliased_table_name_for
490
+ method that uses a Regexp.escape so that table/column quoting does not get ignored. [Ken Collins]
491
+
492
+ * Rails2.3 - Implement #outside_transaction? and a new transaction test case to test some SQL Server
493
+ basic support while implementing this method. Future home of some savepoint tests too. [Ken Collins]
494
+
495
+ * Rails2.3 - Coerced tests that ensure hash conditions on referenced tables are considered when eager
496
+ loading with limit/offset. Information on these changes and the ticket in rails are.
497
+ http://github.com/rails/rails/commit/9a4d557713acb0fc8e80f61af18094034aca029a
498
+ http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1404-conditions_tables-doesnt-understand-condition-hashes
499
+
500
+ * Rails2.3 - Add coerced tests for true/false attributes in selects use SQL Server case statement. [Ken Collins]
501
+
502
+ * Making sure that smalldatetime types are OK to use. Also fixed a bug in the #view_information method that
503
+ checks to see if a view definition is equal to 4000 chars, meaning that it is most likely truncated and
504
+ needs to use the backup method of sp_helptext to get it's view definition. [Ken Collins]
505
+
506
+
507
+ * 2.2.13 * (February 10th, 2009)
508
+
509
+ * Update #indexes to use unqualified table name. Fixes cases where users may decide to use table
510
+ name prefixes like 'dbo.'. [Ken Collins]
511
+
512
+
513
+ * 2.2.12 * (February 8th, 2009)
514
+
515
+ * Update table_exists? to work with qualified table names that may include an user prefix. [Ken Collins]
516
+
517
+
518
+ * 2.2.10/11 * (January 22nd, 2009)
519
+
520
+ * Add a rails-sqlserver-2000-2005-adapter.rb file so that long :lib option for config.gem is no longer needed.
521
+
522
+
523
+ * 2.2.9 * (January 22nd, 2009)
524
+
525
+ * Fixing a small bug in the deprecated DBI::Timestamp conversion so it correctly converts nanosecond whole
526
+ numbers to back to pre type cast SQL Server milliseconds, ultimately allow ruby's Time#usec which is
527
+ microseconds to be correct. [Ken Collins]
528
+
529
+ * Sometimes views are more than 4000 chars long and will return NULL for the VIEW_DEFINITION. If so, use
530
+ sp_helptext procedure as a backup method. [Ken Collins]
531
+
532
+
533
+ * 2.2.8 (January 9th, 2009)
534
+
535
+ * Update execute_procedure method a bit to remove excess code. [Ken Collins]
536
+
537
+
538
+ * 2.2.7 (January 9th, 2009)
539
+
540
+ * Created a connection#execute_procedure method that takes can take any number of ruby objects as variables
541
+ and quotes them according to the connection's rules. Also added an ActiveRecord::Base class level core
542
+ extension that hooks into this. It also checks if the connection responds to #execute_procedure and if
543
+ not returns an empty array. [Ken Collins]
544
+
545
+ * Added a #enable_default_unicode_types class attribute access to make all new added or changed string types
546
+ like :string/:text default to unicode/national data types. See the README for full details. Added a rake
547
+ task that assists setting this to true when running tests. [Ken Collins]
548
+
549
+
550
+ * 2.2.6 (January 8th, 2009)
551
+
552
+ * Introduced a bug in 2.2.5 in the #add_order! core ext for ActiveRecord. Fixed [Ken Collins]
553
+
554
+
555
+ * 2.2.5 (January 4th, 2009)
556
+
557
+ * Added a log_info_schema_queries class attribute and make all queries to INFORMATION_SCHEMA silent by
558
+ default. [Ken Collins]
559
+
560
+ * Fix millisecond support in datetime columns. ODBC::Timestamp incorrectly takes SQL Server milliseconds
561
+ and applies them as nanoseconds. We cope with this at the DBI layer by using SQLServerDBI::Type::SqlserverTimestamp
562
+ class to parse the before type cast value appropriately. Also update the adapters #quoted_date method
563
+ to work more simply by converting ruby's #usec milliseconds to SQL Server microseconds. [Ken Collins]
564
+
565
+ * Core extensions for ActiveRecord now reflect on the connection before doing SQL Server things. Now
566
+ this adapter is compatible for using with other adapters. [Ken Collins]
567
+
568
+
569
+ * 2.2.4 (December 5th, 2008)
570
+
571
+ * Fix a type left in #views_real_column_name. Also cache #view_information lookups. [Ken Collins]
572
+
573
+
574
+ * 2.2.3 (December 5th, 2008)
575
+
576
+ * Changing back to using real table name in column_definitions. Makes sure views get back only the columns
577
+ that are defined for them with correct names, etc. Now supporting views by looking for NULL default and
578
+ then if table name is a view, perform a targeted with sub select to the real table name and column name
579
+ to find true default. [Ken Collins]
580
+
581
+ * Ensure that add_limit_offset! does not alter sub queries. [Erik Bryn]
582
+
583
+
584
+ 2.2.2 (December 2nd, 2008)
585
+
586
+ * Add support for view defaults by making column_definitions use real table name for schema info. [Ken Collins]
587
+
588
+ * Include version in connection method and inspection. [Ken Collins]
589
+
590
+
591
+ 2.2.1 (November 25th, 2008)
592
+
593
+ * Add identity insert support for views. Cache #views so that identity #table_name_or_views_table_name
594
+ will run quickly. [Ken Collins]
595
+
596
+ * Add views support. ActiveRecord classes can use views. The connection now has a #views method and
597
+ #table_exists? will now fall back to checking views too. [Ken Collins]
598
+
599
+
600
+ 2.2.0 (November 21st, 2008)
601
+
602
+ * Release for rails 2.2.2. Many many changes. [Ken Collins], [Murray Steele], [Shawn Balestracci], [Joe Rafaniello]
603
+