sic-activerecord-sqlserver-adapter 4.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.
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
+