From 2afe8f05ba1d11e88c5f7261c0cb4bd7a8d4d961 Mon Sep 17 00:00:00 2001 From: Christopher Jolly Date: Mon, 25 Dec 2023 13:28:21 +0800 Subject: [PATCH] Ensure strings with length greater than 255 are converted to long text/memo (#197) When the option to use the short text (aka varchar) as the default for System.String, if we have a attribute or fluent api that sets its max length to greater than 255 it would stay as varchar, which is invalid with a length greater than 255. Fix this to upgrade this instance to an unbounded string. This will use the long text/memo data type in Jet (longchar) --- .../Storage/Internal/JetStringTypeMapping.cs | 1 + .../Storage/Internal/JetTypeMappingSource.cs | 4 +- .../GreenTests/ace_2010_odbc_x86.txt | 11 ++++++ .../GreenTests/ace_2010_oledb_x86.txt | 38 +++++++++++++++++++ .../JetMigrationsSqlGeneratorTest.cs | 4 +- 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/EFCore.Jet/Storage/Internal/JetStringTypeMapping.cs b/src/EFCore.Jet/Storage/Internal/JetStringTypeMapping.cs index 594db88..969e8a8 100644 --- a/src/EFCore.Jet/Storage/Internal/JetStringTypeMapping.cs +++ b/src/EFCore.Jet/Storage/Internal/JetStringTypeMapping.cs @@ -114,6 +114,7 @@ namespace EntityFrameworkCore.Jet.Storage.Internal return _keepLineBreakCharacters ? escaped : escaped + .Replace("\r\n", "' & CHR(13) & CHR(10) & '") .Replace("\r", "' & CHR(13) & '") .Replace("\n", "' & CHR(10) & '"); } diff --git a/src/EFCore.Jet/Storage/Internal/JetTypeMappingSource.cs b/src/EFCore.Jet/Storage/Internal/JetTypeMappingSource.cs index c69c07f..66e0985 100644 --- a/src/EFCore.Jet/Storage/Internal/JetTypeMappingSource.cs +++ b/src/EFCore.Jet/Storage/Internal/JetTypeMappingSource.cs @@ -329,12 +329,14 @@ namespace EntityFrameworkCore.Jet.Storage.Internal const int maxIndexedCharColumnSize = 255; var size = mappingInfo.Size ?? (mappingInfo.IsKeyOrIndex ? (int?)maxIndexedCharColumnSize : null); + bool extendtolongchar = false; if (size > maxCharColumnSize) { size = isFixedLength ? maxCharColumnSize : (int?)null; + extendtolongchar = true; } - if (_options.UseShortTextForSystemString && size == null) + if (_options.UseShortTextForSystemString && size == null && !extendtolongchar) { return new JetStringTypeMapping("varchar", unicode: true, size: 255); diff --git a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt index 91d35bd..7f337a6 100644 --- a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt +++ b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt @@ -6423,6 +6423,17 @@ EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.OneToOneSelfRefe EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingManyToManyTest EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingUnidirectionalManyToManyTest EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.UnidirectionalManyToManyTest +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_ReturnsOrderIfInvalidPromoCode +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Browse_ReturnsViewWithGenre +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Can_add_items_to_cart +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsErrorIfInvalidOrder +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: False) +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: True) +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Details_ReturnsAlbumDetail +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.GenreMenuComponent_Returns_NineGenres +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_CreatesViewWithGenres +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_GetsSixTopAlbums +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Music_store_project_to_mapped_entity EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_collections_referenced_from_already_tracked_notification_entities_as_Unchanged EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_entities_referenced_from_already_tracked_notification_entities_as_Unchanged EntityFrameworkCore.Jet.FunctionalTests.OptimisticConcurrencyJetTest.Adding_the_same_entity_twice_results_in_DbUpdateException diff --git a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt index 1428886..e944265 100644 --- a/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt +++ b/test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt @@ -702,6 +702,30 @@ EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.Single EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.Single(async: True) EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.ToList(async: False) EntityFrameworkCore.Jet.FunctionalTests.ConcurrencyDetectorEnabledJetTest.ToList(async: True) +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession_bad_attendee +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_AddSession_bad_session +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Get +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_GetSessions +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Post_with_existing_attendee +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_Post_with_new_attendee +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession_bad_attendee +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.AttendeesController_RemoveSession_bad_session +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "C#", totalCount: 3, sessionCount: 3) +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "ran", totalCount: 5, sessionCount: 1) +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SearchController_Search(searchTerm: "Scott", totalCount: 1, sessionCount: 0) +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Delete +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Delete_with_bad_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get_with_bad_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Get_with_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Post +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Put +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SessionsController_Put_with_bad_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeaker_with_bad_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeaker_with_ID +EntityFrameworkCore.Jet.FunctionalTests.ConferencePlannerJetTest.SpeakersController_GetSpeakers EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_passively(async: False) EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_passively(async: True) EntityFrameworkCore.Jet.FunctionalTests.ConnectionInterceptionJetTestBase+ConnectionInterceptionJetTest.Intercept_connection_creation_with_multiple_interceptors(async: False) @@ -7781,6 +7805,20 @@ EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.OneToOneSelfRefe EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingManyToManyTest EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.SelfReferencingUnidirectionalManyToManyTest EntityFrameworkCore.Jet.FunctionalTests.ModelBuilding101JetTest.UnidirectionalManyToManyTest +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_RedirectToCompleteWhenSuccessful +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.AddressAndPayment_ReturnsOrderIfInvalidPromoCode +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Browse_ReturnsViewWithGenre +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Can_add_items_to_cart +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.CartSummaryComponent_returns_items +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsErrorIfInvalidOrder +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Complete_ReturnsOrderIdIfValid +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: False) +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Custom_projection_FirstOrDefault_works(async: True) +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Details_ReturnsAlbumDetail +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.GenreMenuComponent_Returns_NineGenres +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_CreatesViewWithGenres +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Index_GetsSixTopAlbums +EntityFrameworkCore.Jet.FunctionalTests.MusicStoreJetTest.Music_store_project_to_mapped_entity EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_collections_referenced_from_already_tracked_notification_entities_as_Unchanged EntityFrameworkCore.Jet.FunctionalTests.NotificationEntitiesJetTest.Include_brings_entities_referenced_from_already_tracked_notification_entities_as_Unchanged EntityFrameworkCore.Jet.FunctionalTests.OptimisticConcurrencyJetTest.Adding_the_same_entity_twice_results_in_DbUpdateException diff --git a/test/EFCore.Jet.FunctionalTests/JetMigrationsSqlGeneratorTest.cs b/test/EFCore.Jet.FunctionalTests/JetMigrationsSqlGeneratorTest.cs index 96b70f0..1b4c1f8 100644 --- a/test/EFCore.Jet.FunctionalTests/JetMigrationsSqlGeneratorTest.cs +++ b/test/EFCore.Jet.FunctionalTests/JetMigrationsSqlGeneratorTest.cs @@ -874,7 +874,7 @@ SELECT @@ROWCOUNT; base.DefaultValue_with_line_breaks(isUnicode); var expectedSql = @$"CREATE TABLE `TestLineBreaks` ( - `TestDefaultValue` longchar NOT NULL DEFAULT '' & CHR(13) & '' & CHR(10) & 'Various Line' & CHR(13) & 'Breaks' & CHR(10) & '' + `TestDefaultValue` longchar NOT NULL DEFAULT '' & CHR(13) & CHR(10) & 'Various Line' & CHR(13) & 'Breaks' & CHR(10) & '' ); "; AssertSql(expectedSql); @@ -886,7 +886,7 @@ SELECT @@ROWCOUNT; var unicodePrefixForType = string.Empty; var expectedSql = @$"CREATE TABLE `TestLineBreaks` ( - `TestDefaultValue` longchar NOT NULL DEFAULT '0' & CHR(13) & '' & CHR(10) & '1' & CHR(13) & '' & CHR(10) & '2' & CHR(13) & '' & CHR(10) & '3' & CHR(13) & '' & CHR(10) & '4' & CHR(13) & '' & CHR(10) & '5' & CHR(13) & '' & CHR(10) & '6' & CHR(13) & '' & CHR(10) & '7' & CHR(13) & '' & CHR(10) & '8' & CHR(13) & '' & CHR(10) & '9' & CHR(13) & '' & CHR(10) & '10' & CHR(13) & '' & CHR(10) & '11' & CHR(13) & '' & CHR(10) & '12' & CHR(13) & '' & CHR(10) & '13' & CHR(13) & '' & CHR(10) & '14' & CHR(13) & '' & CHR(10) & '15' & CHR(13) & '' & CHR(10) & '16' & CHR(13) & '' & CHR(10) & '17' & CHR(13) & '' & CHR(10) & '18' & CHR(13) & '' & CHR(10) & '19' & CHR(13) & '' & CHR(10) & '20' & CHR(13) & '' & CHR(10) & '21' & CHR(13) & '' & CHR(10) & '22' & CHR(13) & '' & CHR(10) & '23' & CHR(13) & '' & CHR(10) & '24' & CHR(13) & '' & CHR(10) & '25' & CHR(13) & '' & CHR(10) & '26' & CHR(13) & '' & CHR(10) & '27' & CHR(13) & '' & CHR(10) & '28' & CHR(13) & '' & CHR(10) & '29' & CHR(13) & '' & CHR(10) & '30' & CHR(13) & '' & CHR(10) & '31' & CHR(13) & '' & CHR(10) & '32' & CHR(13) & '' & CHR(10) & '33' & CHR(13) & '' & CHR(10) & '34' & CHR(13) & '' & CHR(10) & '35' & CHR(13) & '' & CHR(10) & '36' & CHR(13) & '' & CHR(10) & '37' & CHR(13) & '' & CHR(10) & '38' & CHR(13) & '' & CHR(10) & '39' & CHR(13) & '' & CHR(10) & '40' & CHR(13) & '' & CHR(10) & '41' & CHR(13) & '' & CHR(10) & '42' & CHR(13) & '' & CHR(10) & '43' & CHR(13) & '' & CHR(10) & '44' & CHR(13) & '' & CHR(10) & '45' & CHR(13) & '' & CHR(10) & '46' & CHR(13) & '' & CHR(10) & '47' & CHR(13) & '' & CHR(10) & '48' & CHR(13) & '' & CHR(10) & '49' & CHR(13) & '' & CHR(10) & '50' & CHR(13) & '' & CHR(10) & '51' & CHR(13) & '' & CHR(10) & '52' & CHR(13) & '' & CHR(10) & '53' & CHR(13) & '' & CHR(10) & '54' & CHR(13) & '' & CHR(10) & '55' & CHR(13) & '' & CHR(10) & '56' & CHR(13) & '' & CHR(10) & '57' & CHR(13) & '' & CHR(10) & '58' & CHR(13) & '' & CHR(10) & '59' & CHR(13) & '' & CHR(10) & '60' & CHR(13) & '' & CHR(10) & '61' & CHR(13) & '' & CHR(10) & '62' & CHR(13) & '' & CHR(10) & '63' & CHR(13) & '' & CHR(10) & '64' & CHR(13) & '' & CHR(10) & '65' & CHR(13) & '' & CHR(10) & '66' & CHR(13) & '' & CHR(10) & '67' & CHR(13) & '' & CHR(10) & '68' & CHR(13) & '' & CHR(10) & '69' & CHR(13) & '' & CHR(10) & '70' & CHR(13) & '' & CHR(10) & '71' & CHR(13) & '' & CHR(10) & '72' & CHR(13) & '' & CHR(10) & '73' & CHR(13) & '' & CHR(10) & '74' & CHR(13) & '' & CHR(10) & '75' & CHR(13) & '' & CHR(10) & '76' & CHR(13) & '' & CHR(10) & '77' & CHR(13) & '' & CHR(10) & '78' & CHR(13) & '' & CHR(10) & '79' & CHR(13) & '' & CHR(10) & '80' & CHR(13) & '' & CHR(10) & '81' & CHR(13) & '' & CHR(10) & '82' & CHR(13) & '' & CHR(10) & '83' & CHR(13) & '' & CHR(10) & '84' & CHR(13) & '' & CHR(10) & '85' & CHR(13) & '' & CHR(10) & '86' & CHR(13) & '' & CHR(10) & '87' & CHR(13) & '' & CHR(10) & '88' & CHR(13) & '' & CHR(10) & '89' & CHR(13) & '' & CHR(10) & '90' & CHR(13) & '' & CHR(10) & '91' & CHR(13) & '' & CHR(10) & '92' & CHR(13) & '' & CHR(10) & '93' & CHR(13) & '' & CHR(10) & '94' & CHR(13) & '' & CHR(10) & '95' & CHR(13) & '' & CHR(10) & '96' & CHR(13) & '' & CHR(10) & '97' & CHR(13) & '' & CHR(10) & '98' & CHR(13) & '' & CHR(10) & '99' & CHR(13) & '' & CHR(10) & '100' & CHR(13) & '' & CHR(10) & '101' & CHR(13) & '' & CHR(10) & '102' & CHR(13) & '' & CHR(10) & '103' & CHR(13) & '' & CHR(10) & '104' & CHR(13) & '' & CHR(10) & '105' & CHR(13) & '' & CHR(10) & '106' & CHR(13) & '' & CHR(10) & '107' & CHR(13) & '' & CHR(10) & '108' & CHR(13) & '' & CHR(10) & '109' & CHR(13) & '' & CHR(10) & '110' & CHR(13) & '' & CHR(10) & '111' & CHR(13) & '' & CHR(10) & '112' & CHR(13) & '' & CHR(10) & '113' & CHR(13) & '' & CHR(10) & '114' & CHR(13) & '' & CHR(10) & '115' & CHR(13) & '' & CHR(10) & '116' & CHR(13) & '' & CHR(10) & '117' & CHR(13) & '' & CHR(10) & '118' & CHR(13) & '' & CHR(10) & '119' & CHR(13) & '' & CHR(10) & '120' & CHR(13) & '' & CHR(10) & '121' & CHR(13) & '' & CHR(10) & '122' & CHR(13) & '' & CHR(10) & '123' & CHR(13) & '' & CHR(10) & '124' & CHR(13) & '' & CHR(10) & '125' & CHR(13) & '' & CHR(10) & '126' & CHR(13) & '' & CHR(10) & '127' & CHR(13) & '' & CHR(10) & '128' & CHR(13) & '' & CHR(10) & '129' & CHR(13) & '' & CHR(10) & '130' & CHR(13) & '' & CHR(10) & '131' & CHR(13) & '' & CHR(10) & '132' & CHR(13) & '' & CHR(10) & '133' & CHR(13) & '' & CHR(10) & '134' & CHR(13) & '' & CHR(10) & '135' & CHR(13) & '' & CHR(10) & '136' & CHR(13) & '' & CHR(10) & '137' & CHR(13) & '' & CHR(10) & '138' & CHR(13) & '' & CHR(10) & '139' & CHR(13) & '' & CHR(10) & '140' & CHR(13) & '' & CHR(10) & '141' & CHR(13) & '' & CHR(10) & '142' & CHR(13) & '' & CHR(10) & '143' & CHR(13) & '' & CHR(10) & '144' & CHR(13) & '' & CHR(10) & '145' & CHR(13) & '' & CHR(10) & '146' & CHR(13) & '' & CHR(10) & '147' & CHR(13) & '' & CHR(10) & '148' & CHR(13) & '' & CHR(10) & '149' & CHR(13) & '' & CHR(10) & '150' & CHR(13) & '' & CHR(10) & '151' & CHR(13) & '' & CHR(10) & '152' & CHR(13) & '' & CHR(10) & '153' & CHR(13) & '' & CHR(10) & '154' & CHR(13) & '' & CHR(10) & '155' & CHR(13) & '' & CHR(10) & '156' & CHR(13) & '' & CHR(10) & '157' & CHR(13) & '' & CHR(10) & '158' & CHR(13) & '' & CHR(10) & '159' & CHR(13) & '' & CHR(10) & '160' & CHR(13) & '' & CHR(10) & '161' & CHR(13) & '' & CHR(10) & '162' & CHR(13) & '' & CHR(10) & '163' & CHR(13) & '' & CHR(10) & '164' & CHR(13) & '' & CHR(10) & '165' & CHR(13) & '' & CHR(10) & '166' & CHR(13) & '' & CHR(10) & '167' & CHR(13) & '' & CHR(10) & '168' & CHR(13) & '' & CHR(10) & '169' & CHR(13) & '' & CHR(10) & '170' & CHR(13) & '' & CHR(10) & '171' & CHR(13) & '' & CHR(10) & '172' & CHR(13) & '' & CHR(10) & '173' & CHR(13) & '' & CHR(10) & '174' & CHR(13) & '' & CHR(10) & '175' & CHR(13) & '' & CHR(10) & '176' & CHR(13) & '' & CHR(10) & '177' & CHR(13) & '' & CHR(10) & '178' & CHR(13) & '' & CHR(10) & '179' & CHR(13) & '' & CHR(10) & '180' & CHR(13) & '' & CHR(10) & '181' & CHR(13) & '' & CHR(10) & '182' & CHR(13) & '' & CHR(10) & '183' & CHR(13) & '' & CHR(10) & '184' & CHR(13) & '' & CHR(10) & '185' & CHR(13) & '' & CHR(10) & '186' & CHR(13) & '' & CHR(10) & '187' & CHR(13) & '' & CHR(10) & '188' & CHR(13) & '' & CHR(10) & '189' & CHR(13) & '' & CHR(10) & '190' & CHR(13) & '' & CHR(10) & '191' & CHR(13) & '' & CHR(10) & '192' & CHR(13) & '' & CHR(10) & '193' & CHR(13) & '' & CHR(10) & '194' & CHR(13) & '' & CHR(10) & '195' & CHR(13) & '' & CHR(10) & '196' & CHR(13) & '' & CHR(10) & '197' & CHR(13) & '' & CHR(10) & '198' & CHR(13) & '' & CHR(10) & '199' & CHR(13) & '' & CHR(10) & '200' & CHR(13) & '' & CHR(10) & '201' & CHR(13) & '' & CHR(10) & '202' & CHR(13) & '' & CHR(10) & '203' & CHR(13) & '' & CHR(10) & '204' & CHR(13) & '' & CHR(10) & '205' & CHR(13) & '' & CHR(10) & '206' & CHR(13) & '' & CHR(10) & '207' & CHR(13) & '' & CHR(10) & '208' & CHR(13) & '' & CHR(10) & '209' & CHR(13) & '' & CHR(10) & '210' & CHR(13) & '' & CHR(10) & '211' & CHR(13) & '' & CHR(10) & '212' & CHR(13) & '' & CHR(10) & '213' & CHR(13) & '' & CHR(10) & '214' & CHR(13) & '' & CHR(10) & '215' & CHR(13) & '' & CHR(10) & '216' & CHR(13) & '' & CHR(10) & '217' & CHR(13) & '' & CHR(10) & '218' & CHR(13) & '' & CHR(10) & '219' & CHR(13) & '' & CHR(10) & '220' & CHR(13) & '' & CHR(10) & '221' & CHR(13) & '' & CHR(10) & '222' & CHR(13) & '' & CHR(10) & '223' & CHR(13) & '' & CHR(10) & '224' & CHR(13) & '' & CHR(10) & '225' & CHR(13) & '' & CHR(10) & '226' & CHR(13) & '' & CHR(10) & '227' & CHR(13) & '' & CHR(10) & '228' & CHR(13) & '' & CHR(10) & '229' & CHR(13) & '' & CHR(10) & '230' & CHR(13) & '' & CHR(10) & '231' & CHR(13) & '' & CHR(10) & '232' & CHR(13) & '' & CHR(10) & '233' & CHR(13) & '' & CHR(10) & '234' & CHR(13) & '' & CHR(10) & '235' & CHR(13) & '' & CHR(10) & '236' & CHR(13) & '' & CHR(10) & '237' & CHR(13) & '' & CHR(10) & '238' & CHR(13) & '' & CHR(10) & '239' & CHR(13) & '' & CHR(10) & '240' & CHR(13) & '' & CHR(10) & '241' & CHR(13) & '' & CHR(10) & '242' & CHR(13) & '' & CHR(10) & '243' & CHR(13) & '' & CHR(10) & '244' & CHR(13) & '' & CHR(10) & '245' & CHR(13) & '' & CHR(10) & '246' & CHR(13) & '' & CHR(10) & '247' & CHR(13) & '' & CHR(10) & '248' & CHR(13) & '' & CHR(10) & '249' & CHR(13) & '' & CHR(10) & '250' & CHR(13) & '' & CHR(10) & '251' & CHR(13) & '' & CHR(10) & '252' & CHR(13) & '' & CHR(10) & '253' & CHR(13) & '' & CHR(10) & '254' & CHR(13) & '' & CHR(10) & '255' & CHR(13) & '' & CHR(10) & '256' & CHR(13) & '' & CHR(10) & '257' & CHR(13) & '' & CHR(10) & '258' & CHR(13) & '' & CHR(10) & '259' & CHR(13) & '' & CHR(10) & '260' & CHR(13) & '' & CHR(10) & '261' & CHR(13) & '' & CHR(10) & '262' & CHR(13) & '' & CHR(10) & '263' & CHR(13) & '' & CHR(10) & '264' & CHR(13) & '' & CHR(10) & '265' & CHR(13) & '' & CHR(10) & '266' & CHR(13) & '' & CHR(10) & '267' & CHR(13) & '' & CHR(10) & '268' & CHR(13) & '' & CHR(10) & '269' & CHR(13) & '' & CHR(10) & '270' & CHR(13) & '' & CHR(10) & '271' & CHR(13) & '' & CHR(10) & '272' & CHR(13) & '' & CHR(10) & '273' & CHR(13) & '' & CHR(10) & '274' & CHR(13) & '' & CHR(10) & '275' & CHR(13) & '' & CHR(10) & '276' & CHR(13) & '' & CHR(10) & '277' & CHR(13) & '' & CHR(10) & '278' & CHR(13) & '' & CHR(10) & '279' & CHR(13) & '' & CHR(10) & '280' & CHR(13) & '' & CHR(10) & '281' & CHR(13) & '' & CHR(10) & '282' & CHR(13) & '' & CHR(10) & '283' & CHR(13) & '' & CHR(10) & '284' & CHR(13) & '' & CHR(10) & '285' & CHR(13) & '' & CHR(10) & '286' & CHR(13) & '' & CHR(10) & '287' & CHR(13) & '' & CHR(10) & '288' & CHR(13) & '' & CHR(10) & '289' & CHR(13) & '' & CHR(10) & '290' & CHR(13) & '' & CHR(10) & '291' & CHR(13) & '' & CHR(10) & '292' & CHR(13) & '' & CHR(10) & '293' & CHR(13) & '' & CHR(10) & '294' & CHR(13) & '' & CHR(10) & '295' & CHR(13) & '' & CHR(10) & '296' & CHR(13) & '' & CHR(10) & '297' & CHR(13) & '' & CHR(10) & '298' & CHR(13) & '' & CHR(10) & '299' & CHR(13) & '' & CHR(10) & '' + `TestDefaultValue` longchar NOT NULL DEFAULT '0' & CHR(13) & CHR(10) & '1' & CHR(13) & CHR(10) & '2' & CHR(13) & CHR(10) & '3' & CHR(13) & CHR(10) & '4' & CHR(13) & CHR(10) & '5' & CHR(13) & CHR(10) & '6' & CHR(13) & CHR(10) & '7' & CHR(13) & CHR(10) & '8' & CHR(13) & CHR(10) & '9' & CHR(13) & CHR(10) & '10' & CHR(13) & CHR(10) & '11' & CHR(13) & CHR(10) & '12' & CHR(13) & CHR(10) & '13' & CHR(13) & CHR(10) & '14' & CHR(13) & CHR(10) & '15' & CHR(13) & CHR(10) & '16' & CHR(13) & CHR(10) & '17' & CHR(13) & CHR(10) & '18' & CHR(13) & CHR(10) & '19' & CHR(13) & CHR(10) & '20' & CHR(13) & CHR(10) & '21' & CHR(13) & CHR(10) & '22' & CHR(13) & CHR(10) & '23' & CHR(13) & CHR(10) & '24' & CHR(13) & CHR(10) & '25' & CHR(13) & CHR(10) & '26' & CHR(13) & CHR(10) & '27' & CHR(13) & CHR(10) & '28' & CHR(13) & CHR(10) & '29' & CHR(13) & CHR(10) & '30' & CHR(13) & CHR(10) & '31' & CHR(13) & CHR(10) & '32' & CHR(13) & CHR(10) & '33' & CHR(13) & CHR(10) & '34' & CHR(13) & CHR(10) & '35' & CHR(13) & CHR(10) & '36' & CHR(13) & CHR(10) & '37' & CHR(13) & CHR(10) & '38' & CHR(13) & CHR(10) & '39' & CHR(13) & CHR(10) & '40' & CHR(13) & CHR(10) & '41' & CHR(13) & CHR(10) & '42' & CHR(13) & CHR(10) & '43' & CHR(13) & CHR(10) & '44' & CHR(13) & CHR(10) & '45' & CHR(13) & CHR(10) & '46' & CHR(13) & CHR(10) & '47' & CHR(13) & CHR(10) & '48' & CHR(13) & CHR(10) & '49' & CHR(13) & CHR(10) & '50' & CHR(13) & CHR(10) & '51' & CHR(13) & CHR(10) & '52' & CHR(13) & CHR(10) & '53' & CHR(13) & CHR(10) & '54' & CHR(13) & CHR(10) & '55' & CHR(13) & CHR(10) & '56' & CHR(13) & CHR(10) & '57' & CHR(13) & CHR(10) & '58' & CHR(13) & CHR(10) & '59' & CHR(13) & CHR(10) & '60' & CHR(13) & CHR(10) & '61' & CHR(13) & CHR(10) & '62' & CHR(13) & CHR(10) & '63' & CHR(13) & CHR(10) & '64' & CHR(13) & CHR(10) & '65' & CHR(13) & CHR(10) & '66' & CHR(13) & CHR(10) & '67' & CHR(13) & CHR(10) & '68' & CHR(13) & CHR(10) & '69' & CHR(13) & CHR(10) & '70' & CHR(13) & CHR(10) & '71' & CHR(13) & CHR(10) & '72' & CHR(13) & CHR(10) & '73' & CHR(13) & CHR(10) & '74' & CHR(13) & CHR(10) & '75' & CHR(13) & CHR(10) & '76' & CHR(13) & CHR(10) & '77' & CHR(13) & CHR(10) & '78' & CHR(13) & CHR(10) & '79' & CHR(13) & CHR(10) & '80' & CHR(13) & CHR(10) & '81' & CHR(13) & CHR(10) & '82' & CHR(13) & CHR(10) & '83' & CHR(13) & CHR(10) & '84' & CHR(13) & CHR(10) & '85' & CHR(13) & CHR(10) & '86' & CHR(13) & CHR(10) & '87' & CHR(13) & CHR(10) & '88' & CHR(13) & CHR(10) & '89' & CHR(13) & CHR(10) & '90' & CHR(13) & CHR(10) & '91' & CHR(13) & CHR(10) & '92' & CHR(13) & CHR(10) & '93' & CHR(13) & CHR(10) & '94' & CHR(13) & CHR(10) & '95' & CHR(13) & CHR(10) & '96' & CHR(13) & CHR(10) & '97' & CHR(13) & CHR(10) & '98' & CHR(13) & CHR(10) & '99' & CHR(13) & CHR(10) & '100' & CHR(13) & CHR(10) & '101' & CHR(13) & CHR(10) & '102' & CHR(13) & CHR(10) & '103' & CHR(13) & CHR(10) & '104' & CHR(13) & CHR(10) & '105' & CHR(13) & CHR(10) & '106' & CHR(13) & CHR(10) & '107' & CHR(13) & CHR(10) & '108' & CHR(13) & CHR(10) & '109' & CHR(13) & CHR(10) & '110' & CHR(13) & CHR(10) & '111' & CHR(13) & CHR(10) & '112' & CHR(13) & CHR(10) & '113' & CHR(13) & CHR(10) & '114' & CHR(13) & CHR(10) & '115' & CHR(13) & CHR(10) & '116' & CHR(13) & CHR(10) & '117' & CHR(13) & CHR(10) & '118' & CHR(13) & CHR(10) & '119' & CHR(13) & CHR(10) & '120' & CHR(13) & CHR(10) & '121' & CHR(13) & CHR(10) & '122' & CHR(13) & CHR(10) & '123' & CHR(13) & CHR(10) & '124' & CHR(13) & CHR(10) & '125' & CHR(13) & CHR(10) & '126' & CHR(13) & CHR(10) & '127' & CHR(13) & CHR(10) & '128' & CHR(13) & CHR(10) & '129' & CHR(13) & CHR(10) & '130' & CHR(13) & CHR(10) & '131' & CHR(13) & CHR(10) & '132' & CHR(13) & CHR(10) & '133' & CHR(13) & CHR(10) & '134' & CHR(13) & CHR(10) & '135' & CHR(13) & CHR(10) & '136' & CHR(13) & CHR(10) & '137' & CHR(13) & CHR(10) & '138' & CHR(13) & CHR(10) & '139' & CHR(13) & CHR(10) & '140' & CHR(13) & CHR(10) & '141' & CHR(13) & CHR(10) & '142' & CHR(13) & CHR(10) & '143' & CHR(13) & CHR(10) & '144' & CHR(13) & CHR(10) & '145' & CHR(13) & CHR(10) & '146' & CHR(13) & CHR(10) & '147' & CHR(13) & CHR(10) & '148' & CHR(13) & CHR(10) & '149' & CHR(13) & CHR(10) & '150' & CHR(13) & CHR(10) & '151' & CHR(13) & CHR(10) & '152' & CHR(13) & CHR(10) & '153' & CHR(13) & CHR(10) & '154' & CHR(13) & CHR(10) & '155' & CHR(13) & CHR(10) & '156' & CHR(13) & CHR(10) & '157' & CHR(13) & CHR(10) & '158' & CHR(13) & CHR(10) & '159' & CHR(13) & CHR(10) & '160' & CHR(13) & CHR(10) & '161' & CHR(13) & CHR(10) & '162' & CHR(13) & CHR(10) & '163' & CHR(13) & CHR(10) & '164' & CHR(13) & CHR(10) & '165' & CHR(13) & CHR(10) & '166' & CHR(13) & CHR(10) & '167' & CHR(13) & CHR(10) & '168' & CHR(13) & CHR(10) & '169' & CHR(13) & CHR(10) & '170' & CHR(13) & CHR(10) & '171' & CHR(13) & CHR(10) & '172' & CHR(13) & CHR(10) & '173' & CHR(13) & CHR(10) & '174' & CHR(13) & CHR(10) & '175' & CHR(13) & CHR(10) & '176' & CHR(13) & CHR(10) & '177' & CHR(13) & CHR(10) & '178' & CHR(13) & CHR(10) & '179' & CHR(13) & CHR(10) & '180' & CHR(13) & CHR(10) & '181' & CHR(13) & CHR(10) & '182' & CHR(13) & CHR(10) & '183' & CHR(13) & CHR(10) & '184' & CHR(13) & CHR(10) & '185' & CHR(13) & CHR(10) & '186' & CHR(13) & CHR(10) & '187' & CHR(13) & CHR(10) & '188' & CHR(13) & CHR(10) & '189' & CHR(13) & CHR(10) & '190' & CHR(13) & CHR(10) & '191' & CHR(13) & CHR(10) & '192' & CHR(13) & CHR(10) & '193' & CHR(13) & CHR(10) & '194' & CHR(13) & CHR(10) & '195' & CHR(13) & CHR(10) & '196' & CHR(13) & CHR(10) & '197' & CHR(13) & CHR(10) & '198' & CHR(13) & CHR(10) & '199' & CHR(13) & CHR(10) & '200' & CHR(13) & CHR(10) & '201' & CHR(13) & CHR(10) & '202' & CHR(13) & CHR(10) & '203' & CHR(13) & CHR(10) & '204' & CHR(13) & CHR(10) & '205' & CHR(13) & CHR(10) & '206' & CHR(13) & CHR(10) & '207' & CHR(13) & CHR(10) & '208' & CHR(13) & CHR(10) & '209' & CHR(13) & CHR(10) & '210' & CHR(13) & CHR(10) & '211' & CHR(13) & CHR(10) & '212' & CHR(13) & CHR(10) & '213' & CHR(13) & CHR(10) & '214' & CHR(13) & CHR(10) & '215' & CHR(13) & CHR(10) & '216' & CHR(13) & CHR(10) & '217' & CHR(13) & CHR(10) & '218' & CHR(13) & CHR(10) & '219' & CHR(13) & CHR(10) & '220' & CHR(13) & CHR(10) & '221' & CHR(13) & CHR(10) & '222' & CHR(13) & CHR(10) & '223' & CHR(13) & CHR(10) & '224' & CHR(13) & CHR(10) & '225' & CHR(13) & CHR(10) & '226' & CHR(13) & CHR(10) & '227' & CHR(13) & CHR(10) & '228' & CHR(13) & CHR(10) & '229' & CHR(13) & CHR(10) & '230' & CHR(13) & CHR(10) & '231' & CHR(13) & CHR(10) & '232' & CHR(13) & CHR(10) & '233' & CHR(13) & CHR(10) & '234' & CHR(13) & CHR(10) & '235' & CHR(13) & CHR(10) & '236' & CHR(13) & CHR(10) & '237' & CHR(13) & CHR(10) & '238' & CHR(13) & CHR(10) & '239' & CHR(13) & CHR(10) & '240' & CHR(13) & CHR(10) & '241' & CHR(13) & CHR(10) & '242' & CHR(13) & CHR(10) & '243' & CHR(13) & CHR(10) & '244' & CHR(13) & CHR(10) & '245' & CHR(13) & CHR(10) & '246' & CHR(13) & CHR(10) & '247' & CHR(13) & CHR(10) & '248' & CHR(13) & CHR(10) & '249' & CHR(13) & CHR(10) & '250' & CHR(13) & CHR(10) & '251' & CHR(13) & CHR(10) & '252' & CHR(13) & CHR(10) & '253' & CHR(13) & CHR(10) & '254' & CHR(13) & CHR(10) & '255' & CHR(13) & CHR(10) & '256' & CHR(13) & CHR(10) & '257' & CHR(13) & CHR(10) & '258' & CHR(13) & CHR(10) & '259' & CHR(13) & CHR(10) & '260' & CHR(13) & CHR(10) & '261' & CHR(13) & CHR(10) & '262' & CHR(13) & CHR(10) & '263' & CHR(13) & CHR(10) & '264' & CHR(13) & CHR(10) & '265' & CHR(13) & CHR(10) & '266' & CHR(13) & CHR(10) & '267' & CHR(13) & CHR(10) & '268' & CHR(13) & CHR(10) & '269' & CHR(13) & CHR(10) & '270' & CHR(13) & CHR(10) & '271' & CHR(13) & CHR(10) & '272' & CHR(13) & CHR(10) & '273' & CHR(13) & CHR(10) & '274' & CHR(13) & CHR(10) & '275' & CHR(13) & CHR(10) & '276' & CHR(13) & CHR(10) & '277' & CHR(13) & CHR(10) & '278' & CHR(13) & CHR(10) & '279' & CHR(13) & CHR(10) & '280' & CHR(13) & CHR(10) & '281' & CHR(13) & CHR(10) & '282' & CHR(13) & CHR(10) & '283' & CHR(13) & CHR(10) & '284' & CHR(13) & CHR(10) & '285' & CHR(13) & CHR(10) & '286' & CHR(13) & CHR(10) & '287' & CHR(13) & CHR(10) & '288' & CHR(13) & CHR(10) & '289' & CHR(13) & CHR(10) & '290' & CHR(13) & CHR(10) & '291' & CHR(13) & CHR(10) & '292' & CHR(13) & CHR(10) & '293' & CHR(13) & CHR(10) & '294' & CHR(13) & CHR(10) & '295' & CHR(13) & CHR(10) & '296' & CHR(13) & CHR(10) & '297' & CHR(13) & CHR(10) & '298' & CHR(13) & CHR(10) & '299' & CHR(13) & CHR(10) & '' ); "; AssertSql(expectedSql);